omnifaces
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.omnifaces</groupId>
<artifactId>omnifaces</artifactId>
<version>5.0-M6</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd"
>
<modelVersion>4.0.0</modelVersion>
<groupId>org.omnifaces</groupId>
<artifactId>omnifaces</artifactId>
<version>5.0-M6</version>
<packaging>jar</packaging>
<name>OmniFaces</name>
<description>Jakarta Faces 4.0+ utility library</description>
<url>https://omnifaces.org</url>
<organization>
<name>OmniFaces</name>
<url>https://omnifaces.org</url>
</organization>
<inceptionYear>2012</inceptionYear>
<developers>
<developer>
<id>balusc</id>
<name>Bauke Scholtz</name>
<email>balusc@gmail.com</email>
</developer>
<developer>
<id>arjan.tijms</id>
<name>Arjan Tijms</name>
<email>arjan.tijms@gmail.com</email>
</developer>
</developers>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<url>https://github.com/omnifaces/omnifaces</url>
<connection>scm:git:git://github.com/omnifaces/omnifaces.git</connection>
<developerConnection>scm:git:git@github.com:omnifaces/omnifaces.git</developerConnection>
</scm>
<distributionManagement>
<snapshotRepository>
<id>central</id>
<url>https://central.sonatype.com/repository/maven-snapshots</url>
</snapshotRepository>
</distributionManagement>
<properties>
<!-- Java versions. -->
<javase.version>17</javase.version>
<jakartaee.version>11</jakartaee.version>
<!-- Essential Maven defaults. -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>${javase.version}</maven.compiler.source>
<maven.compiler.target>${javase.version}</maven.compiler.target>
<maven.source.excludeResources>true</maven.source.excludeResources>
<!-- Test server versions. -->
<test.wildfly-mojarra.version>36.0.1.Final</test.wildfly-mojarra.version> <!-- https://mvnrepository.com/artifact/org.wildfly/wildfly-preview-dist -->
<test.glassfish-mojarra.version>8.0.0-M12</test.glassfish-mojarra.version> <!-- https://mvnrepository.com/artifact/org.glassfish.main.distributions/glassfish -->
<test.tomcat.version>11.0.9</test.tomcat.version> <!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat -->
<test.payara-mojarra.version>7.2025.1.Alpha3</test.payara-mojarra.version> <!-- https://mvnrepository.com/artifact/fish.payara.distributions/payara-web -->
<test.quarkus.version>3.29.4</test.quarkus.version> <!-- https://mvnrepository.com/artifact/io.quarkus.platform/quarkus-bom -->
<test.piranha.version>25.6.0</test.piranha.version> <!-- https://mvnrepository.com/artifact/cloud.piranha.arquillian/piranha-arquillian-server -->
<!-- Test impl versions for servletcontainers (Tomcat). -->
<test.mojarra.version>4.1.3</test.mojarra.version> <!-- https://mvnrepository.com/artifact/org.glassfish/jakarta.faces -->
<test.faces5.version>5.0.0-SNAPSHOT</test.faces5.version>
<test.mojarra5.version>5.0.0-SNAPSHOT</test.mojarra5.version>
<test.myfaces.version>4.1.2</test.myfaces.version> <!-- https://mvnrepository.com/artifact/org.apache.myfaces.core/myfaces-impl -->
<test.weld.version>6.0.3.Final</test.weld.version> <!-- https://mvnrepository.com/artifact/org.jboss.weld.servlet/weld-servlet-shaded -->
<test.hibernateValidator.version>9.0.1.Final</test.hibernateValidator.version> <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
<test.jsonp.version>2.0.1</test.jsonp.version> <!-- https://mvnrepository.com/artifact/org.glassfish/jakarta.json -->
<test.jstl.version>3.0.1</test.jstl.version> <!-- https://mvnrepository.com/artifact/org.glassfish.web/jakarta.servlet.jsp.jstl -->
<test.tyrus.version>2.2.0</test.tyrus.version> <!-- https://mvnrepository.com/artifact/org.glassfish.tyrus/tyrus-container-servlet -->
<test.primefaces.version>15.0.6</test.primefaces.version> <!-- https://mvnrepository.com/artifact/org.primefaces/primefaces -->
<!-- Arquillian config. -->
<arquillian.browser>chrome</arquillian.browser> <!-- To use a different browser, use e.g. mvn clean verify -Darquillian.browser=firefox -->
<!-- Sonar config. -->
<sonar.organization>balusc-github</sonar.organization>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
</properties>
<dependencies>
<!-- Required Jakarta EE 11 dependencies. -->
<dependency>
<groupId>org.apache.myfaces.core</groupId> <!-- NOTE: myfaces-api instead of jakarta.faces-api because jakarta.faces-api has a hardcoded dependency on com.sun.faces.util.Util (fixed in 5.0.0) and quarkus-arquillian is for unclear reason pulling and prioritizing a provided dependency over myfaces-api dependency of myfaces-quarkus -->
<artifactId>myfaces-api</artifactId>
<version>4.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.el</groupId>
<artifactId>jakarta.el-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.enterprise</groupId>
<artifactId>jakarta.enterprise.cdi-api</artifactId>
<version>4.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.websocket</groupId>
<artifactId>jakarta.websocket-api</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.websocket</groupId>
<artifactId>jakarta.websocket-client-api</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
<!-- Optional Jakarta EE 11 dependencies. -->
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<!-- Test dependencies. -->
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-web-api</artifactId>
<version>11.0.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>jakarta.faces</groupId> <!-- because of conflict with quarkus-arquillian -->
<artifactId>jakarta.faces-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.14.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>5.20.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.junit5</groupId>
<artifactId>arquillian-junit5-container</artifactId>
<version>1.8.0.Final</version> <!-- NOTE: 1.8.1 and newer don't work with GlassFish: java.lang.reflect.MalformedParameterizedTypeException: Mismatch of count of formal and actual type arguments in constructor of org.jboss.arquillian.container.spi.Container: 0 formal argument(s) 1 actual argument(s) -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-impl-maven-archive</artifactId>
<version>3.3.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.38.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-devtools-v140</artifactId>
<version>4.38.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>6.3.3</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<!-- Exclude TypeScript files, unminified JavaScript files and Eclipse's jsfdia from resources. -->
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.ts</exclude>
<exclude>**/*.unminified.js</exclude>
<exclude>**/*.jsfdia</exclude>
</excludes>
</resource>
</resources>
<plugins>
<!-- Prevent wrong JDK from being used to build the project. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>[17,)</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- Add missing license headers to source files. -->
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>4.6</version>
<configuration>
<licenseSets>
<licenseSet>
<header>license.txt</header>
<excludes>
<exclude>*.*</exclude>
</excludes>
</licenseSet>
</licenseSets>
</configuration>
</plugin>
<!-- Configure the TypeScript compiler and packer for omnifaces.js. -->
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.15.1</version>
<configuration>
<nodeVersion>v18.15.0</nodeVersion>
<installDirectory>target</installDirectory>
</configuration>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
<execution>
<id>npm run build</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>run build</arguments>
</configuration>
</execution>
</executions>
</plugin>
<!-- Configure the JavaScript minifier. -->
<plugin>
<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<version>1.7.6</version> <!-- Old, but we can't migrate to closure-compiler-maven-plugin because it enforces 'use strict' -->
<configuration>
<jsTargetDir>META-INF/resources/omnifaces</jsTargetDir>
<nosuffix>true</nosuffix>
<jsEngine>CLOSURE</jsEngine>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>minify-omnifaces</id>
<configuration>
<webappSourceDir>${project.build.directory}</webappSourceDir>
<webappTargetDir>${project.build.outputDirectory}</webappTargetDir>
<jsSourceDir>tsc</jsSourceDir>
<jsSourceFiles>
<jsSourceFile>omnifaces.unminified.js</jsSourceFile>
</jsSourceFiles>
<jsFinalFile>omnifaces.js</jsFinalFile>
</configuration>
<goals>
<goal>minify</goal>
</goals>
</execution>
<execution>
<id>minify-sw</id>
<configuration>
<webappSourceDir>${basedir}/src/main/resources</webappSourceDir>
<webappTargetDir>${project.build.outputDirectory}</webappTargetDir>
<jsSourceDir>META-INF/resources/omnifaces</jsSourceDir>
<jsSourceFiles>
<jsSourceFile>sw.unminified.js</jsSourceFile>
</jsSourceFiles>
<jsFinalFile>sw.js</jsFinalFile>
</configuration>
<goals>
<goal>minify</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Configure the *.old.taglib.xml generators -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xml-maven-plugin</artifactId>
<version>1.1.0</version>
<executions>
<execution>
<id>generate-old-taglib-files</id>
<goals>
<goal>transform</goal>
</goals>
</execution>
</executions>
<configuration>
<transformationSets>
<transformationSet>
<dir>src/main/resources/META-INF</dir>
<includes><include>omnifaces.taglib.xml</include></includes>
<stylesheet>src/main/generate-omnifaces-ui.old.taglib.xsl</stylesheet>
<outputDir>${project.build.directory}/generated-resources/xslt/omnifaces-ui</outputDir>
</transformationSet>
<transformationSet>
<dir>src/main/resources/META-INF</dir>
<includes><include>omnifaces.taglib.xml</include></includes>
<stylesheet>src/main/generate-omnifaces-functions.old.taglib.xsl</stylesheet>
<outputDir>${project.build.directory}/generated-resources/xslt/omnifaces-functions</outputDir>
</transformationSet>
</transformationSets>
</configuration>
</plugin>
<!-- Rename these *.old.taglib.xml files and put them back in the right place -->
<plugin>
<groupId>com.coderplus.maven.plugins</groupId>
<artifactId>copy-rename-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>rename-old-taglib-files</id>
<phase>compile</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<fileSets>
<fileSet>
<sourceFile>${project.build.directory}/generated-resources/xslt/omnifaces-ui/omnifaces.taglib.xml</sourceFile>
<destinationFile>${project.build.outputDirectory}/META-INF/omnifaces-ui.taglib.xml</destinationFile>
</fileSet>
<fileSet>
<sourceFile>${project.build.directory}/generated-resources/xslt/omnifaces-functions/omnifaces.taglib.xml</sourceFile>
<destinationFile>${project.build.outputDirectory}/META-INF/omnifaces-functions.taglib.xml</destinationFile>
</fileSet>
</fileSets>
</configuration>
</execution>
</executions>
</plugin>
<!-- Configure the jar with the binaries. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<URL>${project.url}</URL>
<Extension-Name>${project.artifactId}</Extension-Name>
<Automatic-Module-Name>${project.groupId}</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
<!-- Configure the jar with the sources. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Configure the jar with the javadoc. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
<javadocVersion>${javase.version}</javadocVersion>
<notimestamp>true</notimestamp>
<splitindex>true</splitindex>
<doclint>all,-missing</doclint>
<doctitle>OmniFaces API documentation</doctitle>
<links>
<link>https://jakarta.ee/specifications/platform/${jakartaee.version}/apidocs/</link>
</links>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Configure snapshot deployment (release deployment is done via 'release' profile). -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.1.4</version>
<configuration>
<skip>false</skip>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!-- Make sure Eclipse itself also runs license format and JavaScript minifier during build. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<versionRange>[4.6,)</versionRange>
<goals>
<goal>format</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnConfiguration>true</runOnConfiguration>
</execute>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<versionRange>[1.7.6,)</versionRange>
<goals>
<goal>minify</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnConfiguration>true</runOnConfiguration>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
<!-- Global configuration for (integration) test profiles. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.8.0</version>
<executions>
<execution>
<phase>process-test-classes</phase>
<goals>
<goal>unpack</goal>
</goals>
</execution>
</executions>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.5.1</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<rerunFailingTestsCount>0</rerunFailingTestsCount>
<systemPropertyVariables>
<profile.id>${project.activeProfiles[0].id}</profile.id>
<omnifaces.jar>${project.build.directory}/${project.build.finalName}.jar</omnifaces.jar>
<arquillian.browser>${arquillian.browser}</arquillian.browser>
<primefaces.version>${test.primefaces.version}</primefaces.version>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<!-- NOTE: If Eclipse+M2E shows "Plugin execution not covered by lifecycle configuration" error in one of -->
<!-- below sections, then you need to add a default lifecycle mapping as instructed in M2E documentation: -->
<!-- https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html#common-problems -->
<!-- WildFly - Mojarra integration test profile: mvn verify -P wildfly-mojarra -->
<profile>
<id>wildfly-mojarra</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.wildfly.arquillian</groupId>
<artifactId>wildfly-arquillian-container-managed</artifactId>
<version>5.1.0.Beta6</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-preview-dist</artifactId>
<version>${test.wildfly-mojarra.version}</version>
<type>zip</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<jboss.home>${project.build.directory}/wildfly-preview-${test.wildfly-mojarra.version}</jboss.home>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- GlassFish - Mojarra integration test profile: mvn verify -P glassfish-mojarra -->
<profile>
<id>glassfish-mojarra</id>
<dependencies>
<dependency>
<groupId>org.omnifaces.arquillian</groupId>
<artifactId>arquillian-glassfish-server-managed</artifactId>
<version>1.6</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.glassfish.main.distributions</groupId>
<artifactId>glassfish</artifactId>
<version>${test.glassfish-mojarra.version}</version>
<type>zip</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<glassfish.home>${project.build.directory}/glassfish8</glassfish.home>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Tomcat - Mojarra integration test profile: mvn verify -P tomcat-mojarra -->
<profile>
<id>tomcat-mojarra</id>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-tomcat-managed-10</artifactId>
<version>1.2.2.Final</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat</artifactId>
<version>${test.tomcat.version}</version>
<type>zip</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>update-tomcat-users</id> <!-- Else Tomcat unexpectedly spits error that Arquillian isn't allowed to manage Tomcat. Should actually have been managed by arquillian-tomcat-managed-10 library. -->
<phase>pre-integration-test</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/apache-tomcat-${test.tomcat.version}/conf</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/test/resources/arquillian/tomcat</directory>
<includes>
<include>tomcat-users.xml</include>
</includes>
</resource>
</resources>
<overwrite>true</overwrite>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<arquillian.launch>tomcat</arquillian.launch>
<war.libraries>
org.glassfish:jakarta.faces:${test.mojarra.version},
org.jboss.weld.servlet:weld-servlet-shaded:${test.weld.version},
org.hibernate.validator:hibernate-validator:${test.hibernateValidator.version},
org.glassfish:jakarta.json:${test.jsonp.version},
org.glassfish.web:jakarta.servlet.jsp.jstl:${test.jstl.version}
</war.libraries>
</systemPropertyVariables>
<environmentVariables>
<CATALINA_HOME>${project.build.directory}/apache-tomcat-${test.tomcat.version}</CATALINA_HOME>
</environmentVariables>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Tomcat - Mojarra 5 integration test profile: mvn verify -P tomcat-mojarra5 -->
<profile>
<id>tomcat-mojarra5</id>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-tomcat-managed-10</artifactId>
<version>1.2.2.Final</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat</artifactId>
<version>${test.tomcat.version}</version>
<type>zip</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>update-tomcat-users</id> <!-- Else Tomcat unexpectedly spits error that Arquillian isn't allowed to manage Tomcat. Should actually have been managed by arquillian-tomcat-managed-10 library. -->
<phase>pre-integration-test</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/apache-tomcat-${test.tomcat.version}/conf</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/test/resources/arquillian/tomcat</directory>
<includes>
<include>tomcat-users.xml</include>
</includes>
</resource>
</resources>
<overwrite>true</overwrite>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<arquillian.launch>tomcat</arquillian.launch>
<war.libraries>
jakarta.faces:jakarta.faces-api:${test.faces5.version},
org.glassfish.mojarra:mojarra:${test.mojarra5.version},
org.jboss.weld.servlet:weld-servlet-shaded:${test.weld.version},
org.hibernate.validator:hibernate-validator:${test.hibernateValidator.version},
org.glassfish:jakarta.json:${test.jsonp.version},
org.glassfish.web:jakarta.servlet.jsp.jstl:${test.jstl.version}
</war.libraries>
</systemPropertyVariables>
<environmentVariables>
<CATALINA_HOME>${project.build.directory}/apache-tomcat-${test.tomcat.version}</CATALINA_HOME>
</environmentVariables>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Tomcat - MyFaces integration test profile: mvn verify -P tomcat-myfaces -->
<profile>
<id>tomcat-myfaces</id>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-tomcat-managed-10</artifactId>
<version>1.2.2.Final</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat</artifactId>
<version>${test.tomcat.version}</version>
<type>zip</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>update-tomcat-users</id> <!-- Else Tomcat unexpectedly spits error that Arquillian isn't allowed to manage Tomcat. Should actually have been managed by arquillian-tomcat-managed-10 library. -->
<phase>pre-integration-test</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/apache-tomcat-${test.tomcat.version}/conf</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/test/resources/arquillian/tomcat</directory>
<includes>
<include>tomcat-users.xml</include>
</includes>
</resource>
</resources>
<overwrite>true</overwrite>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<arquillian.launch>tomcat</arquillian.launch>
<war.libraries>
org.apache.myfaces.core:myfaces-impl:${test.myfaces.version},
org.jboss.weld.servlet:weld-servlet-shaded:${test.weld.version},
org.hibernate.validator:hibernate-validator:${test.hibernateValidator.version},
org.glassfish:jakarta.json:${test.jsonp.version},
org.glassfish.web:jakarta.servlet.jsp.jstl:${test.jstl.version}
</war.libraries>
</systemPropertyVariables>
<environmentVariables>
<CATALINA_HOME>${project.build.directory}/apache-tomcat-${test.tomcat.version}</CATALINA_HOME>
</environmentVariables>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Payara - Mojarra integration test profile: mvn verify -P payara-mojarra -->
<profile>
<id>payara-mojarra</id>
<dependencies>
<dependency>
<groupId>org.omnifaces.arquillian</groupId>
<artifactId>arquillian-glassfish-server-managed</artifactId>
<version>1.6</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<configuration>
<artifactItems>
<artifactItem>
<groupId>fish.payara.distributions</groupId>
<artifactId>payara-web</artifactId>
<version>${test.payara-mojarra.version}</version>
<type>zip</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<glassfish.home>${project.build.directory}/payara7</glassfish.home>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Quarkus - MyFaces integration test profile: mvn verify -P quarkus-myfaces -->
<profile>
<id>quarkus-myfaces</id>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.quarkus.platform</groupId>
<artifactId>quarkus-bom</artifactId>
<version>${test.quarkus.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-arc</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-arquillian</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-hibernate-validator</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core.extensions.quarkus</groupId>
<artifactId>myfaces-quarkus</artifactId>
<version>${test.myfaces.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.quarkiverse.omnifaces</groupId>
<artifactId>quarkus-omnifaces</artifactId>
<version>5.0-M6</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.omnifaces</groupId>
<artifactId>omnifaces</artifactId> <!-- Because we provide our own one, namely this very project! -->
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<!-- Piranha - Mojarra integration test profile: mvn verify -P piranha-mojarra4 -->
<!--
Note1: Piranha must be run using JDK 21, so the entire test suite should be run with JDK 21.
There's no need to compile OmniFaces with JDK 21. JDK 17 is fine for that.
Note2: doesn't currently work:
-->
<profile>
<id>piranha-mojarra</id>
<dependencies>
<dependency>
<groupId>cloud.piranha.arquillian</groupId>
<artifactId>piranha-arquillian-server</artifactId>
<version>${test.piranha.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<argLine>--add-opens java.base/java.lang=ALL-UNNAMED</argLine>
<systemPropertyVariables>
<javaEEServer>piranha-embedded</javaEEServer>
<piranha.rootIsWarName>true</piranha.rootIsWarName>
<war.libraries>
org.glassfish:jakarta.faces:${test.mojarra.version},
org.hibernate.validator:hibernate-validator:${test.hibernateValidator.version},
org.glassfish:jakarta.json:${test.jsonp.version},
org.glassfish.tyrus:tyrus-container-servlet:${test.tyrus.version}
</war.libraries>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Release deploy: mvn clean deploy -P release -->
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.7.0</version>
<extensions>true</extensions>
<configuration>
<autoPublish>true</autoPublish>
</configuration>
</plugin>
<!-- Signing with GPG is a requirement for a release deployment to Maven central. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.7</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>