hazelcast-root
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-root</artifactId>
<version>5.6.0</version>
</dependency><!--
~ Copyright (c) 2008-2025, Hazelcast, Inc. All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<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>com.hazelcast</groupId>
<artifactId>hazelcast-parent</artifactId>
<version>5.6.0</version>
<relativePath>hazelcast-parent/pom.xml</relativePath>
</parent>
<artifactId>hazelcast-root</artifactId>
<packaging>pom</packaging>
<version>5.6.0</version>
<name>Hazelcast Root</name>
<description>Hazelcast In-Memory DataGrid</description>
<url>http://www.hazelcast.com/</url>
<modules>
<module>hazelcast-parent</module>
<module>hazelcast-tpc-engine</module>
<module>hazelcast</module>
<module>hazelcast-archunit-rules</module>
<module>hazelcast-spring</module>
<module>hazelcast-spring-tests</module>
<module>hazelcast-build-utils</module>
<module>hazelcast-sql</module>
</modules>
<properties>
<main.basedir>${project.basedir}</main.basedir>
<target.dir>target</target.dir>
<timestamp>${maven.build.timestamp}</timestamp>
<hazelcast.distribution>Hazelcast</hazelcast.distribution>
<hazelcast.serialization.version>1</hazelcast.serialization.version>
<hazelcast.serverMainClass>com.hazelcast.core.server.HazelcastMemberStarter</hazelcast.serverMainClass>
<!-- Additional JVM system arguments -->
<extraVmArgs/>
<vmHeapSettings>-Xms512m -Xmx2G</vmHeapSettings>
<!-- Java 9+ module system args to be appended during surefire/failsafe executions. -->
<hazelcast.module.name>ALL-UNNAMED</hazelcast.module.name>
<!-- needed for CheckStyle -->
<checkstyle.configLocation>${main.basedir}/checkstyle/checkstyle.xml</checkstyle.configLocation>
<checkstyle.supressionsLocation>${main.basedir}/checkstyle/suppressions.xml</checkstyle.supressionsLocation>
<checkstyle.headerLocation>${main.basedir}/checkstyle/ClassHeaderApache.txt</checkstyle.headerLocation>
<shade.jar-with-dependencies.phase>package</shade.jar-with-dependencies.phase>
<fat.dependency.classifier>jar-with-dependencies</fat.dependency.classifier>
<!--
Allow access to Operating system metrics:
open jdk.management/com.sun.management.internal
export jdk.management/com.ibm.lang.management.internal
Avoid warnings caused by reflection in
SelectorOptimizer:
open java.base/sun.nio.ch
FilteringClassLoader:
open java.base/java.lang
TimedMemberStateFactoryHelper:
open java.management/sun.management
NOTE: There are additional arguments for IBM OpenJ9, see the specific profile
-->
<javaStandardModuleArgs>
--add-exports java.base/jdk.internal.ref=${hazelcast.module.name}
--add-opens jdk.management/com.sun.management.internal=${hazelcast.module.name}
--add-opens java.base/sun.nio.ch=${hazelcast.module.name}
--add-opens java.base/java.lang=${hazelcast.module.name}
--add-opens java.management/sun.management=${hazelcast.module.name}
</javaStandardModuleArgs>
<javaModuleArgs>${javaStandardModuleArgs}</javaModuleArgs>
</properties>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:git:git://github.com/hazelcast/hazelcast.git</connection>
<developerConnection>scm:git:git@github.com:hazelcast/hazelcast.git</developerConnection>
<url>https://github.com/hazelcast/hazelcast/</url>
</scm>
<developers>
<developer>
<id>hazelcast-team</id>
<name>Hazelcast team</name>
<email>info@hazelcast.com</email>
<organization>Hazelcast, Inc.</organization>
<organizationUrl>https://hazelcast.com</organizationUrl>
</developer>
</developers>
<contributors>
<contributor>
<name>Hazelcast Community</name>
<email>info@hazelcast.com</email>
<url>https://hazelcast.atlassian.net/wiki/display/COM/Hazelcast+Contributor+Agreement</url>
</contributor>
</contributors>
<issueManagement>
<system>Github</system>
<url>https://github.com/hazelcast/hazelcast/issues</url>
</issueManagement>
<organization>
<name>Hazelcast, Inc.</name>
<url>http://www.hazelcast.com/</url>
</organization>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<outputDirectory>${target.dir}/classes</outputDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<testOutputDirectory>${target.dir}/test-classes</testOutputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.html</include>
<include>**/*.bat</include>
<include>**/*.sh</include>
<include>**/*.py</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yaml</include>
<include>**/*.xsd</include>
<include>**/*.txt</include>
<include>**/hazelcast-config-*.json</include>
<include>**/*.handlers</include>
<include>**/*.schemas</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>**/*.so</include>
<include>**/*.license</include>
<include>**/*.key</include>
<include>**/*.ftl</include>
<include>**/META-INF/services/*.*</include>
</includes>
</resource>
</resources>
<!-- ignore the testjob module -->
<testResources>
<testResource>
<directory>src/test/resources</directory>
<excludes>
<exclude>com/hazelcast/jet/server/testjob/**</exclude>
</excludes>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration combine.self="override">
<useFile>false</useFile>
<trimStackTrace>false</trimStackTrace>
<runOrder>failedfirst</runOrder>
<!-- 1C means 1 process per cpu core -->
<!-- forkCount>1C</forkCount>
<reuseForks>true</reuseForks>
<threadCount>1</threadCount>
<perCoreThreadCount>true</perCoreThreadCount>
<parallel>methods</parallel -->
<!-- JaCoCo will use the argLine set here. Test profiles override it. -->
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=false
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
<includes>
<include>**/**.java</include>
</includes>
<excludes>
<exclude>**/jsr/**.java</exclude>
<exclude>**/**IT.java</exclude>
</excludes>
<excludedGroups>
com.hazelcast.test.annotation.SlowTest,
com.hazelcast.test.annotation.NightlyTest
</excludedGroups>
<!-- Use TCP for IPC communication to avoid warnings: Corrupted STDOUT by directly writing... -->
<forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
<!-- Fixes missing parameters in test name for tests run via mvn -->
<statelessTestsetReporter
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
<usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
</statelessTestsetReporter>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration combine.self="override">
<trimStackTrace>false</trimStackTrace>
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=true
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
<useManifestOnlyJar>false</useManifestOnlyJar>
<useSystemClassLoader>true</useSystemClassLoader>
<excludedGroups>
com.hazelcast.test.annotation.SlowTest,
com.hazelcast.test.annotation.NightlyTest
</excludedGroups>
<!-- Use TCP for IPC communication to avoid warnings: Corrupted STDOUT by directly writing... -->
<forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>add-notice-and-license</id>
<phase>none</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/META-INF</outputDirectory>
<resources>
<resource>
<directory>..</directory>
<includes>
<include>NOTICE</include>
</includes>
</resource>
<resource>
<!-- Don't include the top level LICENSE file which is valid for whole repository
use rather the ASF license file located in hazelcast-build-utils module.-->
<directory>../hazelcast-build-utils/src/main/resources</directory>
<includes>
<include>LICENSE</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>get-hz-3</id>
<goals>
<goal>get</goal>
</goals>
<phase>generate-test-resources</phase>
<configuration>
<artifact>com.hazelcast:hazelcast:4.0</artifact>
<artifact>com.hazelcast:hazelcast:4.0:jar:tests</artifact>
<artifact>com.hazelcast:hazelcast:4.0.1</artifact>
<artifact>com.hazelcast:hazelcast:4.0.1:jar:tests</artifact>
<artifact>com.hazelcast:hazelcast:4.0.2</artifact>
<artifact>com.hazelcast:hazelcast:4.0.2:jar:tests</artifact>
<artifact>com.hazelcast:hazelcast:4.0.3</artifact>
<artifact>com.hazelcast:hazelcast:4.0.3:jar:tests</artifact>
</configuration>
</execution>
</executions>
<inherited>false</inherited>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<!--
Executes:
- `ParallelJVMTest`s in parallel via several surefire forks (note: inside the fork tests still run serially)
- Excludes:
- `SlowTest`
- `NightlyTest`
- Typically `QuickTest`s
Duplicated in OS & EE
used by the PR builder
-->
<id>parallelTest</id>
<properties>
<skip-singlejvm-tests>false</skip-singlejvm-tests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>default-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration combine.self="override">
<useFile>false</useFile>
<trimStackTrace>false</trimStackTrace>
<!-- 0.5C means half as many forks as cpu cores -->
<forkCount>0.5C</forkCount>
<reuseForks>true</reuseForks>
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-ea
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=false
-Dhazelcast.test.multiple.jvm=true
-Dlog4j.configurationFile=log4j2.xml
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
<includes>
<include>**/**.java</include>
</includes>
<excludes>
<exclude>**/jsr/**.java</exclude>
<exclude>**/**IT.java</exclude>
</excludes>
<groups>
com.hazelcast.test.annotation.ParallelJVMTest
</groups>
<excludedGroups>
com.hazelcast.test.annotation.SlowTest,
com.hazelcast.test.annotation.NightlyTest
</excludedGroups>
<systemPropertyVariables>
<multipleJVM>true</multipleJVM>
</systemPropertyVariables>
<!-- Fixes missing parameters in test name for tests run via mvn -->
<statelessTestsetReporter
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
<usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
</statelessTestsetReporter>
</configuration>
</execution>
<execution>
<id>singlejvm</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration combine.self="override">
<skip>${skip-singlejvm-tests}</skip>
<useFile>false</useFile>
<trimStackTrace>false</trimStackTrace>
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=false
-Dlog4j.configurationFile=log4j2.xml
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
<includes>
<include>**/**.java</include>
</includes>
<excludes>
<exclude>**/jsr/**.java</exclude>
<exclude>**/**IT.java</exclude>
</excludes>
<excludedGroups>
com.hazelcast.test.annotation.SlowTest,
com.hazelcast.test.annotation.NightlyTest,
com.hazelcast.test.annotation.ParallelJVMTest
</excludedGroups>
<!-- Fixes missing parameters in test name for tests run via mvn -->
<statelessTestsetReporter
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
<usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
</statelessTestsetReporter>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration combine.self="override">
<useFile>false</useFile>
<trimStackTrace>false</trimStackTrace>
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=false
-Dlog4j.configurationFile=log4j2.xml
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
<useManifestOnlyJar>false</useManifestOnlyJar>
<useSystemClassLoader>true</useSystemClassLoader>
<excludedGroups>
com.hazelcast.test.annotation.SlowTest,
com.hazelcast.test.annotation.NightlyTest
</excludedGroups>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!--
Configures execution to optimize runtime of the PR builder, by excluding tasks not required for build validation (e.g., shading)
-->
<id>pr-builder</id>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>usercodedeployment-child-parent</id>
<configuration>
<skipAssembly>false</skipAssembly>
</configuration>
</execution>
<execution>
<id>usercodedeployment-entry-processor-with-anonymous-and-inner</id>
<configuration>
<skipAssembly>false</skipAssembly>
</configuration>
</execution>
<execution>
<id>usercodedeployment-incrementing-entry-processor</id>
<configuration>
<skipAssembly>false</skipAssembly>
</configuration>
</execution>
<execution>
<id>usercodedeployment-incrementing-entry-processor-conflicting</id>
<configuration>
<skipAssembly>false</skipAssembly>
</configuration>
</execution>
<execution>
<id>usercodedeployment-shaded-classes</id>
<configuration>
<skipAssembly>false</skipAssembly>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<!--
To improve PR builder runtime, skip *some* assembly-plugins that are not required for build validation
https://github.com/hazelcast/hazelcast/pull/18521
-->
<assembly.skipAssembly>true</assembly.skipAssembly>
<!-- Set the classifier to empty in this profile to use regular jar-->
<fat.dependency.classifier/>
<shade.jar-with-dependencies.phase>none</shade.jar-with-dependencies.phase>
</properties>
</profile>
<profile>
<id>test-coverage-Local</id>
<properties>
<vmHeapSettings>-Xms128m -Xmx1G</vmHeapSettings>
</properties>
<modules>
<module>hazelcast-coverage-report</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<configuration>
<instrumentation>
<ignores/>
<excludes/>
</instrumentation>
<check/>
</configuration>
<executions>
<execution>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration combine.self="override">
<useFile>false</useFile>
<trimStackTrace>false</trimStackTrace>
<testFailureIgnore>true</testFailureIgnore>
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=false
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
<includes>
<include>**/YourTestFileHear.java</include>
</includes>
<!-- Fixes missing parameters in test name for tests run via mvn -->
<statelessTestsetReporter
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
<usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
</statelessTestsetReporter>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
</plugin>
</plugins>
</reporting>
</profile>
<profile>
<id>test-coverage</id>
<modules>
<module>hazelcast-coverage-report</module>
</modules>
<properties>
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=false
-Dhazelcast.operation.call.timeout.millis=120000
-Dhazelcast.graceful.shutdown.max.wait=240
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>**DummyProperty**</exclude>
<exclude>**DummyEntity**</exclude>
<exclude>**test-hibernate**</exclude>
<exclude>**HibernateStatisticsTestSupport**</exclude>
<exclude>**HibernateTestSupport**</exclude>
<exclude>**RegionFactoryDefaultTest**</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration combine.self="override">
<useFile>false</useFile>
<trimStackTrace>false</trimStackTrace>
<testFailureIgnore>true</testFailureIgnore>
<includes>
<include>**/*.java</include>
</includes>
<excludes>
<exclude>**/**IT.java</exclude>
</excludes>
<excludedGroups>
com.hazelcast.test.annotation.NightlyTest
</excludedGroups>
<!-- Fixes missing parameters in test name for tests run via mvn -->
<statelessTestsetReporter
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
<usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
</statelessTestsetReporter>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration combine.self="override">
<trimStackTrace>false</trimStackTrace>
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=true
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
<excludedGroups>
com.hazelcast.test.annotation.NightlyTest
</excludedGroups>
<useManifestOnlyJar>false</useManifestOnlyJar>
<useSystemClassLoader>true</useSystemClassLoader>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>release-devel</id>
<build>
<plugins>
<plugin>
<groupId>com.hazelcast.maven</groupId>
<artifactId>attribution-maven-plugin</artifactId>
<executions>
<execution>
<id>aggregated-attribution-oss</id>
<inherited>false</inherited>
<goals>
<goal>aggregate</goal>
</goals>
<configuration>
<outputFile>${project.build.directory}/aggregated-attribution/attribution.txt</outputFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.7.0</version>
<extensions>true</extensions>
<configuration>
<serverId>release-repository</serverId>
<nexusUrl>https://ossrh-staging-api.central.sonatype.com/</nexusUrl>
<stagingProfileId>com.hazelcast</stagingProfileId>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<groupId>com.hazelcast.maven</groupId>
<artifactId>attribution-maven-plugin</artifactId>
<executions>
<execution>
<id>aggregated-attribution-oss</id>
<inherited>false</inherited>
<goals>
<goal>aggregate</goal>
</goals>
<configuration>
<outputFile>${project.build.directory}/aggregated-attribution/attribution.txt</outputFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!--
Executes:
- `SlowTest`s
- `NightlyTest`s
- Excludes all other tests
Duplicated in OS & EE
Used for scheduled, longer running tests
-->
<id>nightly-build</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration combine.self="override">
<parallel>none</parallel>
<useFile>false</useFile>
<trimStackTrace>false</trimStackTrace>
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=false
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
<groups>
com.hazelcast.test.annotation.NightlyTest,
com.hazelcast.test.annotation.SlowTest
</groups>
<includes>
<include>**/**Test.java</include>
</includes>
<excludes>
<exclude>**/**IT.java</exclude>
<exclude>**/jsr/**.java</exclude>
</excludes>
<!-- Fixes missing parameters in test name for tests run via mvn -->
<statelessTestsetReporter
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
<usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
</statelessTestsetReporter>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration combine.self="override">
<trimStackTrace>false</trimStackTrace>
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=true
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
<useManifestOnlyJar>false</useManifestOnlyJar>
<useSystemClassLoader>true</useSystemClassLoader>
<includes>
<include>**/*IT.java</include>
</includes>
<groups>
com.hazelcast.test.annotation.NightlyTest,
com.hazelcast.test.annotation.SlowTest
</groups>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!--
Executes all tests (`QuickTest` and `SlowTest`)
Duplicated in OS & EE
-->
<id>all-tests</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration combine.self="override">
<useFile>false</useFile>
<trimStackTrace>false</trimStackTrace>
<parallel>none</parallel>
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=false
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
<includes>
<include>**/**.java</include>
</includes>
<excludes>
<exclude>**/jsr/**.java</exclude>
<exclude>**/**IT.java</exclude>
</excludes>
<!-- Use TCP for IPC communication to avoid warnings: Corrupted STDOUT by directly writing... -->
<forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
<!-- Fixes missing parameters in test name for tests run via mvn -->
<statelessTestsetReporter
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
<usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
</statelessTestsetReporter>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration combine.self="override">
<trimStackTrace>false</trimStackTrace>
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=true
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
<useManifestOnlyJar>false</useManifestOnlyJar>
<useSystemClassLoader>true</useSystemClassLoader>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!--
Profile which allows to skip the modulepath-tests module.
The module runs by default, but can be skipped by adding -Dskip-modulepath-tests property.
This is used in PR builder when we run only `mvn test-compile` which is not possible due
to an automatic module name not being created in the hazelcast jar (no jar is built at all).
-->
<id>modulepath-tests</id>
<activation>
<property>
<name>!skip-modulepath-tests</name>
</property>
</activation>
<modules>
<module>modulepath-tests</module>
</modules>
</profile>
<profile>
<!-- same as default build (excludes Nightly & Slow tests), outputs serialized objects to a blob -->
<!-- for compatibility testing -->
<id>generate-compatibility-samples</id>
<properties>
<vmHeapSettings>-Xms4G -Xmx8G</vmHeapSettings>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration combine.self="override">
<properties>
<property>
<name>listener</name>
<value>com.hazelcast.test.compatibility.SamplingTestExecutionListener</value>
</property>
</properties>
<trimStackTrace>false</trimStackTrace>
<runOrder>failedfirst</runOrder>
<argLine>
${vmHeapSettings}
${javaModuleArgs}
-Dhazelcast.phone.home.enabled=false
-Dhazelcast.test.use.network=false
-Dhazelcast.test.sample.serialized.objects=${target.dir}/serialized-objects-${project.version}-
-Dlog4j.skipJansi=true
${extraVmArgs}
</argLine>
<includes>
<include>**/**.java</include>
</includes>
<excludes>
<exclude>**/jsr/**.java</exclude>
<!-- code triggered by UserCodeDeploymentSmokeTest and OperationRunnerImplTest -->
<!-- casts to SerializationServiceV1 and fails when Node is configured with the -->
<!-- sampling serialization service -->
<exclude>**/OperationRunnerImplTest.java</exclude>
<exclude>**/**IT.java</exclude>
<exclude>**/jet/**/*.java</exclude>
<exclude>**/*Jet*.java</exclude>
</excludes>
<excludedGroups>
com.hazelcast.test.annotation.SlowTest,
com.hazelcast.test.annotation.NightlyTest,
com.hazelcast.test.annotation.SerializationSamplesExcluded
</excludedGroups>
<!-- Fixes missing parameters in test name for tests run via mvn -->
<statelessTestsetReporter
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
<usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
</statelessTestsetReporter>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!--
In isolation, does nothing as typically enabled by default
Works in conjunction with the `-Dquick` argument - which disables this profile - allowing additional modules to be skipped to reduce build time
This implementation is preferred as it also supports excluding child modules
Duplicated in OS & EE
-->
<id>not-quick</id>
<activation>
<property>
<name>!quick</name>
</property>
</activation>
<modules>
<module>extensions</module>
<module>distribution</module>
<module>hazelcast-it</module>
</modules>
</profile>
<profile>
<id>IBM</id>
<activation>
<property>
<name>java.vendor</name>
<value>IBM Corporation</value>
</property>
</activation>
<properties>
<javaModuleArgs>
${javaStandardModuleArgs}
--add-exports jdk.management/com.ibm.lang.management.internal=${hazelcast.module.name}
</javaModuleArgs>
</properties>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
<version>${jsr107.api.version}</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.snakeyaml</groupId>
<artifactId>snakeyaml-engine</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit-pioneer</groupId>
<artifactId>junit-pioneer</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>uk.org.webcompere</groupId>
<artifactId>system-stubs-jupiter</artifactId>
<version>${system-stubs.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>uk.org.webcompere</groupId>
<artifactId>system-stubs-junit4</artifactId>
<version>${system-stubs.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<scope>test</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>nl.jqno.equalsverifier</groupId>
<artifactId>equalsverifier</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>11.0.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>