<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.primefaces.extensions</groupId>
        <artifactId>primefaces-extensions-parent</artifactId>
        <version>15.0.16</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>primefaces-extensions-showcase</artifactId>
    <packaging>war</packaging>
    <name>PrimeFaces Extensions Showcase</name>
    <description>
    <![CDATA[PrimeFaces Extensions Project Showcase for Maven.]]></description>

    <scm>
        <connection>scm:git:git://github.com/primefaces-extensions/showcase.git</connection>
        <developerConnection>scm:git:ssh://github.com:primefaces-extensions/showcase.git</developerConnection>
        <url>https://github.com/primefaces-extensions/showcase</url>
    </scm>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <main.basedir>${project.parent.basedir}</main.basedir>
        <primefaces-extensions.core.version>${project.version}</primefaces-extensions.core.version>
        <primefaces-extensions.new-components>echart;osmap;marktext;kanban;meterGroup</primefaces-extensions.new-components>
        <primefaces-extensions.updated-components>inputPhone;monacoEditor;orgchart;sunEditor</primefaces-extensions.updated-components>
        <primefaces-extensions.deprecated-components/>
        <owb.version>2.0.27</owb.version>
        <jetty.version>9.4.56.v20240826</jetty.version>
        <omnifaces.version>3.14.6</omnifaces.version>
        <hibernate-validator.version>9.0.1.Final</hibernate-validator.version>
        <font-awesome.version>6.4.0</font-awesome.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <scope>compile</scope>
        </dependency>
        <!-- Test -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>8.0.1</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.3.6</version>
        </dependency>

        <!-- PrimeFaces -->
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
        </dependency>
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces-themes</artifactId>
        </dependency>
        <dependency>
            <groupId>org.primefaces.extensions</groupId>
            <artifactId>primefaces-extensions</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces.extensions</groupId>
            <artifactId>resources-monacoeditor</artifactId>
        </dependency>
        <dependency>
            <groupId>org.omnifaces</groupId>
            <artifactId>omnifaces</artifactId>
            <version>${omnifaces.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>font-awesome</artifactId>
            <version>${font-awesome.version}</version>
        </dependency>
        <!-- GChart and Layout needs GSON-->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>
        <!-- InputPhone -->
        <dependency>
            <groupId>com.googlecode.libphonenumber</groupId>
            <artifactId>libphonenumber</artifactId>
        </dependency>
        <!-- Sheet -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
        </dependency>
        <!-- Document Viewer -->
        <dependency>
            <groupId>com.github.librepdf</groupId>
            <artifactId>openpdf</artifactId>
            <version>1.3.43</version>
        </dependency>
        <!-- SunEditor Export PDF -->
        <dependency>
            <groupId>org.xhtmlrenderer</groupId>
            <artifactId>flying-saucer-pdf-openpdf</artifactId>
            <version>9.4.0</version>
        </dependency>
        <!-- Sanitizing Converter -->
        <dependency>
            <groupId>com.googlecode.owasp-java-html-sanitizer</groupId>
            <artifactId>owasp-java-html-sanitizer</artifactId>
        </dependency>
        <!-- Localized -->
        <dependency>
            <groupId>org.commonmark</groupId>
            <artifactId>commonmark</artifactId>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>pe-showcase.properties</include>
                </includes>
            </resource>
            <!-- Do not apply filter to other properties files as they contain special characters.-->
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <excludes>
                    <exclude>pe-showcase.properties</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/webapp</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/resources-app.xhtml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>${jetty.version}</version>
                <configuration>
                    <webAppConfig>
                        <contextPath>/showcase-ext</contextPath>
                        <overrideDescriptor>src/main/webapp/WEB-INF/web-overwrite.xml</overrideDescriptor>
                    </webAppConfig>
                    <webXml>${project.build.directory}/classes/WEB-INF/web.xml</webXml>
                    <webAppSourceDirectory>${project.basedir}/src/main/webapp</webAppSourceDirectory>
                    <scanIntervalSeconds>1</scanIntervalSeconds>
                    <stopPort>9966</stopPort>
                    <stopKey>foo</stopKey>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.4.0</version>
                <configuration>
                    <webappDirectory>${project.build.directory}/webapp</webappDirectory>
                    <warSourceDirectory>${project.basedir}/src/main/webapp</warSourceDirectory>
                    <warSourceExcludes>**/resources/**/*.css,**/resources/**/*.js</warSourceExcludes>
                    <webResources>
                        <resource>
                            <directory>${project.build.directory}/webapp-resources</directory>
                        </resource>
                        <resource>
                            <directory>${project.basedir}/src/main/webapp</directory>
                            <filtering>true</filtering>
                            <includes>**/resources-app.xhtml</includes>
                        </resource>
                    </webResources>
                    <packagingExcludes>**/web-overwrite.xml,WEB-INF/web.xml</packagingExcludes>
                    <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
                    <nonFilteredFileExtensions>
                        <nonFilteredFileExtension>jpeg</nonFilteredFileExtension>
                        <nonFilteredFileExtension>jpg</nonFilteredFileExtension>
                        <nonFilteredFileExtension>gif</nonFilteredFileExtension>
                        <nonFilteredFileExtension>png</nonFilteredFileExtension>
                        <nonFilteredFileExtension>ico</nonFilteredFileExtension>
                        <nonFilteredFileExtension>bmp</nonFilteredFileExtension>
                        <nonFilteredFileExtension>pdf</nonFilteredFileExtension>
                        <nonFilteredFileExtension>jar</nonFilteredFileExtension>
                        <nonFilteredFileExtension>cab</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                    <archive>
                        <addMavenDescriptor>false</addMavenDescriptor>
                        <manifest>
                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                        </manifest>
                        <manifestEntries>
                            <X-Compile-Source>${maven.compiler.source}</X-Compile-Source>
                            <X-Compile-Target>${maven.compiler.target}</X-Compile-Target>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/webapp-resources/resources</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>${project.basedir}/src/main/webapp/resources</directory>
                                    <filtering>true</filtering>
                                    <includes>
                                        <include>**/*.css</include>
                                        <include>**/*.js</include>
                                    </includes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-java-files</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>src/main/java</directory>
                                    <filtering>false</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.primefaces.extensions</groupId>
                <artifactId>resources-optimizer-maven-plugin</artifactId>
                <configuration>
                    <useDataUri>true</useDataUri>
                    <resourcesSets>
                        <resourcesSet>
                            <inputDir>${project.build.directory}/webapp-resources</inputDir>
                        </resourcesSet>
                    </resourcesSets>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>myfaces</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <jsf-impl>myfaces</jsf-impl>
                <jsf-listener>org.apache.myfaces.webapp.StartupServletContextListener</jsf-listener>
                <head-renderer>org.apache.myfaces.renderkit.html.HtmlHeadRenderer</head-renderer>
                <cdi-listener>org.apache.webbeans.servlet.WebBeansConfigurationListener</cdi-listener>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.apache.myfaces.core</groupId>
                    <artifactId>myfaces-api</artifactId>
                    <version>${apache-faces.version}</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.myfaces.core</groupId>
                    <artifactId>myfaces-impl</artifactId>
                    <version>${apache-faces.version}</version>
                    <scope>compile</scope>
                </dependency>
                <!-- Bean Validation -->
                <dependency>
                    <groupId>org.hibernate.validator</groupId>
                    <artifactId>hibernate-validator</artifactId>
                    <version>${hibernate-validator.version}</version>
                </dependency>
                <!-- EE API -->
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-atinject_1.0_spec</artifactId>
                    <version>1.2</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jcdi_2.0_spec</artifactId>
                    <version>1.3</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-interceptor_1.2_spec</artifactId>
                    <version>1.2</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-annotation_1.3_spec</artifactId>
                    <version>1.3</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-validation_2.0_spec</artifactId>
                    <version>1.1</version>
                </dependency>
                <!-- OpenWebBeans -->
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-impl</artifactId>
                    <version>${owb.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-jsf</artifactId>
                    <version>${owb.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-web</artifactId>
                    <version>${owb.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-el22</artifactId>
                    <version>${owb.version}</version>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>jakarta</id>
            <properties>
                <jsf-impl>jakarta</jsf-impl>
                <jsf-listener>com.sun.faces.config.ConfigureListener</jsf-listener>
                <head-renderer>com.sun.faces.renderkit.html_basic.HeadRenderer</head-renderer>
                <cdi-listener>org.apache.webbeans.servlet.WebBeansConfigurationListener</cdi-listener>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.glassfish</groupId>
                    <artifactId>jakarta.faces</artifactId>
                    <scope>compile</scope>
                </dependency>
                <!-- Bean Validation -->
                <dependency>
                    <groupId>org.hibernate.validator</groupId>
                    <artifactId>hibernate-validator</artifactId>
                    <version>${hibernate-validator.version}</version>
                </dependency>
                <!-- EE API -->
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-atinject_1.0_spec</artifactId>
                    <version>1.2</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jcdi_2.0_spec</artifactId>
                    <version>1.3</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-interceptor_1.2_spec</artifactId>
                    <version>1.2</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-annotation_1.3_spec</artifactId>
                    <version>1.3</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-validation_2.0_spec</artifactId>
                    <version>1.1</version>
                </dependency>
                <!-- OpenWebBeans -->
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-impl</artifactId>
                    <version>${owb.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-jsf</artifactId>
                    <version>${owb.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-web</artifactId>
                    <version>${owb.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.openwebbeans</groupId>
                    <artifactId>openwebbeans-el22</artifactId>
                    <version>${owb.version}</version>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>tomee</id>
            <properties>
                <jsf-impl>myfaces</jsf-impl>
                <jsf-listener>org.primefaces.extensions.showcase.util.NoOpServletContextListener</jsf-listener>
                <head-renderer>org.apache.myfaces.renderkit.html.HtmlHeadRenderer</head-renderer>
                <cdi-listener>org.primefaces.extensions.showcase.util.NoOpServletContextListener</cdi-listener>
            </properties>
        </profile>
        <profile>
            <id>run-jetty</id>
            <properties>
                <maven.test.skip>true</maven.test.skip>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>default-war</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>