blob: 958e2b1240319af7597dcea0c35837f256872946 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>32</version>
</parent>
<groupId>org.apache.wayang</groupId>
<artifactId>wayang</artifactId>
<version>1.1.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Apache Wayang</name>
<description>
Apache Wayang is a tool to build platform-agnostic data processing apps and have them both optimized for and
executed on multiple different execution platforms, such as Java Streams and Apache Spark.
</description>
<url>https://wayang.apache.org</url>
<inceptionYear>2020</inceptionYear>
<organization>
<name>The Apache Software Foundation</name>
<url>https://www.apache.org/</url>
</organization>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:git:https://gitbox.apache.org/repos/asf/wayang.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/wayang.git</developerConnection>
<url>https://github.com/apache/wayang</url>
</scm>
<issueManagement>
<system>JIRA</system>
<url>https://issues.apache.org/jira/browse/WAYANG</url>
</issueManagement>
<mailingLists>
<mailingList>
<name>Apache Wayang Developer List</name>
<subscribe>mailto:dev-subscribe@wayang.apache.org</subscribe>
<unsubscribe>mailto:dev-unsubscribe@wayang.apache.org</unsubscribe>
<post>mailto:dev@wayang.apache.org</post>
<archive>http://mail-archives.apache.org/mod_mbox/wayang-dev/</archive>
</mailingList>
<mailingList>
<name>Apache Wayang Commits List</name>
<subscribe>mailto:commits-subscribe@wayang.apache.org</subscribe>
<unsubscribe>mailto:commits-unsubscribe@wayang.apache.org</unsubscribe>
<post>mailto:commits@wayang.apache.org</post>
<archive>http://mail-archives.apache.org/mod_mbox/wayang-commits/</archive>
</mailingList>
</mailingLists>
<properties>
<encoding>UTF-8</encoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.root>${basedir}</project.root>
<dist.id>${project.artifactId}</dist.id>
<jacoco.destfile>${project.build.directory}/jacoco.exec</jacoco.destfile>
<maven.kotlin.skip>false</maven.kotlin.skip>
<!-- Timestamp for the reproducible builds -->
<project.build.outputTimestamp>2026-02-09T07:52:37Z</project.build.outputTimestamp>
<scala.version>2.12.17</scala.version>
<scala.mayor.version>2.12</scala.mayor.version>
<spark.version>3.4.4</spark.version>
<flink.version>1.20.0</flink.version>
<calcite.version>1.39.0</calcite.version>
<java.version>17</java.version>
<source.level>17</source.level>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.release>17</maven.compiler.release>
<jaxb.version>2.2.11</jaxb.version>
<java-activation.version>1.1.1</java-activation.version>
<javax-annotation-api>1.3.2</javax-annotation-api>
<assertj.version>3.27.7</assertj.version>
<commons-io.version>2.15.1</commons-io.version>
<guava.version>33.4.0-jre</guava.version>
<hamcrest.version>2.2</hamcrest.version>
<jackson.version>2.15.4</jackson.version>
<jacoco.version>0.8.9</jacoco.version>
<jodatime.version>2.10.6</jodatime.version>
<jsonpath.version>2.4.0</jsonpath.version>
<junit5.version>5.12.2</junit5.version>
<mockito.version>5.11.0</mockito.version>
<mockk.version>1.10.0</mockk.version>
<external.platforms.scope>provided</external.platforms.scope>
<hadoop.version>3.3.6</hadoop.version>
<!-- To be overridden by individual modules -->
<java-module-name>org.apache.wayang.default</java-module-name>
<code.coverage.project.folder>${basedir}/</code.coverage.project.folder>
<code.coverage.overall.data.folder>${basedir}/target/aggregate.exec</code.coverage.overall.data.folder>
</properties>
<profiles>
<profile>
<!-- Include the external platforms in the build. -->
<id>standalone</id>
<properties>
<external.platforms.scope>compile</external.platforms.scope>
</properties>
</profile>
<profile>
<!-- Profile to be activated when building the docs artifacts. -->
<id>build-docs</id>
<properties>
<shared.resources>${project.build.directory}/shared-resources</shared.resources>
<maven.main.skip>false</maven.main.skip>
<maven.test.skip>false</maven.test.skip>
<maven.install.skip>false</maven.install.skip>
<maven.deploy.skip>false</maven.deploy.skip>
<skipTests>false</skipTests>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.wayang</groupId>
<artifactId>wayang-resources</artifactId>
<version>1.1.1-SNAPSHOT</version>
<type>zip</type>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<finalName>apache-${project.artifactId}-${project.version}</finalName>
<plugins>
<!-- Configures JavaDoc generation. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>aggregate-javadoc</id>
<goals>
<goal>aggregate-no-fork</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jfrog.buildinfo</groupId>
<artifactId>artifactory-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>web-documentation</id>
<modules>
<module>wayang-docs</module>
</modules>
</profile>
<profile>
<!-- Perform steps to deploy Apache Wayang. -->
<id>deployment</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- Perform steps to deploy Apache Wayang -->
<id>deployment-dryrun</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- Profile to be run on the CI server, JARs JavaDocs -->
<id>ci</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>package-javadoc</id>
<goals>
<goal>jar</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<configLocation>google_checks.xml</configLocation>
<includes>**/*</includes>
<excludes>
**/.flattened-pom.xml,.git/**/*,target/**/*,**/target/**/*,.idea/**/*,**/spring.schemas,**/*.svg,mvnw,mvnw.cmd,**/*.graphml,work/**/*
</excludes>
<sourceDirectories>./</sourceDirectories>
</configuration>
<executions>
<execution>
<phase>
validate
</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!--
Profile to be run before a release is executed, currently does the following:
- Prevents thrid-party snapshot dependencies in projects
-->
<!-- TODO: This is actually automatically done by the maven-release-plugin:prepare goal Therefore it could be removed -->
<profile>
<id>pre-release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-no-third-party-snapshots</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireReleaseDeps>
<failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
<excludes>
<exclude>org.apache.wayang:*</exclude>
</excludes>
</requireReleaseDeps>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>scala</id>
<activation>
<file>
<exists>src/main/scala</exists>
</file>
</activation>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>4.9.5</version>
<executions>
<execution>
<id>compile-scala</id>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
<configuration>
<scalaVersion>${scala.version}</scalaVersion>
<sourceDir>${project.build.sourceDirectory}/../scala</sourceDir>
<testSourceDir>${project.build.testSourceDirectory}/../scala</testSourceDir>
</configuration>
</execution>
<execution>
<id>add-scala-src</id>
<phase>prepare-package</phase>
<goals>
<goal>add-source</goal>
</goals>
</execution>
<!-- Getting strange CNFE errors:
java.lang.NoClassDefFoundError: javax/tools/ToolProvider
-->
<!--execution>
<id>generate-scaladoc</id>
<goals>
<goal>doc-jar</goal>
</goals>
</execution-->
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
</plugin>
<!-- <plugin>-->
<!-- <artifactId>maven-jar-plugin</artifactId>-->
<!-- </plugin>-->
</plugins>
</build>
</profile>
<profile>
<id>scala-12</id>
<activation>
<file>
<exists>scala_2.12</exists>
</file>
</activation>
<properties>
<scala.version>2.12.17</scala.version>
<scala.mayor.version>2.12</scala.mayor.version>
<spark.version>3.4.4</spark.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>adding-source-java-scala</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>../code/main/java</source>
<source>src/main/java</source>
</sources>
</configuration>
</execution>
<execution>
<id>adding-resources-scala-2.12</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>
../code/main/resources
</directory>
</resource>
<resource>
<directory>
src/main/resources
</directory>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>adding-test-source-java-scala</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>../code/test/java</source>
<source>src/test/java</source>
</sources>
</configuration>
</execution>
<execution>
<id>adding-test-resources-scala-2.12</id>
<phase>generate-test-resources</phase>
<goals>
<goal>add-test-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>
../code/test/resources
</directory>
</resource>
<resource>
<directory>
src/test/resources
</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source-scala</id>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sourceDir>../code/main/scala</sourceDir>
<testSourceDir>../code/test/scala</testSourceDir>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>antlr</id>
<activation>
<file>
<exists>src/main/antlr4</exists>
</file>
</activation>
<properties>
<antlr.version>4.13.1</antlr.version>
</properties>
<build>
<pluginManagement>
<plugins>
<!-- trigger run with mvn process-resouces; then see target/generated-sources/antlr4 -->
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<version>${antlr.version}</version>
<executions>
<execution>
<id>run-antlr</id>
<goals>
<goal>antlr4</goal>
</goals>
<configuration>
<visitor>true</visitor>
<sourceDirectory>${project.build.sourceDirectory}/../antlr4</sourceDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- trigger run with mvn process-resouces; then see target/generated-sources/antlr4 -->
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr4</artifactId>
<version>${antlr.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>add-dependencies</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.2</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<!-- Allows skipping of the pre-flight-check as needed when deploying on jenkins -->
<profile>
<id>skip-prerequisite-check</id>
<activation>
</activation>
<build>
<plugins>
<!-- Make some additional properties available to simplify keeping some content up to date -->
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<version>2.1.1</version>
<executions>
<!-- Do some pre-build checks and report any findings to the user -->
<execution>
<id>prerequisite-check</id>
<phase>validate</phase>
<goals>
<goal>execute</goal>
</goals>
<inherited>false</inherited>
<configuration>
<source>
print "\nSkipping prerequisite-check\n\n"
</source>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile for linux (Self-Enabling) -->
<profile>
<id>os-unix</id>
<activation>
<os>
<family>unix</family>
</os>
</activation>
<properties>
<os.suffix>linux</os.suffix>
<os.classifier>linux-x86_64</os.classifier>
</properties>
</profile>
<!-- Profile for mac (Self-Enabling) -->
<profile>
<id>os-mac</id>
<activation>
<os>
<family>mac</family>
</os>
</activation>
<properties>
<os.suffix>mac</os.suffix>
<os.classifier>mac-x86_64</os.classifier>
</properties>
</profile>
<!-- profile for windows (Self-Enabling) -->
<profile>
<id>os-windows</id>
<activation>
<os>
<family>windows</family>
</os>
</activation>
<properties>
<os.suffix>win</os.suffix>
<os.classifier>windows-x86_64</os.classifier>
</properties>
</profile>
<profile>
<id>disable-java8-doclint</id>
<activation>
<jdk>[1.8,)</jdk>
</activation>
<properties>
<additionalparam>-Xdoclint:none</additionalparam>
</properties>
</profile>
<profile>
<id>apache-release</id>
<build>
<finalName>apache-${project.artifactId}-${project.version}</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>${project.basedir}</directory>
<includes>
<include>DISCLAIMER</include>
<include>LICENSE</include>
<include>NOTICE</include>
<include>RELEASE_NOTES</include>
<include>README.md</include>
</includes>
</resource>
</resources>
<plugins>
<!-- Create a source-release artifact that contains the fully buildable
project directory source structure. This is the artifact which is
the official subject of any release vote. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>source-release-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>apache-${project.artifactId}-${project.version}</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>${jackson.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit5.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>2.20.0</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-cli/commons-cli -->
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.3.1</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<!-- Test -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj.version}</version>
<scope>test</scope>
</dependency>
<!-- Coverage -->
<!-- TODO: add the coverage elements -->
</dependencies>
<build>
<finalName>apache-${project.artifactId}-${project.version}</finalName>
<!--
Default versioned declarations of managed plugins
to be overridden when the distribute profile is active.
If this section was missing, Maven would complain about
missing version numbers for executions without the
profile active.
-->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.openclover</groupId>
<artifactId>clover-maven-plugin</artifactId>
<version>4.2.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.5.0</version>
<configuration>
<finalName>apache-${project.artifactId}-${project.version}</finalName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.33</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.0.0-M1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<trimStackTrace>false</trimStackTrace>
<enableAssertions>true</enableAssertions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<detectLinks>false</detectLinks>
<detectJavaApiLink>true</detectJavaApiLink>
<doclint>none</doclint>
<!-- <additionalparam>-Xdoclint:none</additionalparam>-->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<argLine>
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
--add-opens=java.base/sun.reflect.annotation=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED
</argLine>
<useSystemClassLoader>false</useSystemClassLoader>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.jfrog.buildinfo</groupId>
<artifactId>artifactory-maven-plugin</artifactId>
<version>2.7.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7</version>
<configuration>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- Make some additional properties available to simplify keeping some content up to date -->
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<version>2.1.1</version>
<executions>
<!-- Do some pre-build checks and report any findings to the user -->
<execution>
<id>prerequisite-check</id>
<phase>validate</phase>
<goals>
<goal>execute</goal>
</goals>
<inherited>false</inherited>
<configuration>
<source>${project.basedir}/src/main/script/prerequisiteCheck.groovy</source>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.8</version>
</dependency>
</dependencies>
</plugin>
<!-- Fail the build if files don't have a valid header -->
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>0.13</version>
<executions>
<execution>
<id>license-check</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<useMavenDefaultExcludes>true</useMavenDefaultExcludes>
<!--
Make rat output the files with missing licensed directly into the
build output (This way we don't have to look into the rat.txt to find
out which ones)
-->
<consoleOutput>true</consoleOutput>
<excludes>
<!-- Git related files -->
<exclude>**/.git/**</exclude>
<exclude>**/.gitignore</exclude>
<exclude>**/.gitmodules</exclude>
<exclude>**/.github/actions/**</exclude>
<!-- Maven related files -->
<exclude>**/target/**</exclude>
<exclude>target/**</exclude>
<!-- Eclipse related files -->
<exclude>**/.project</exclude>
<exclude>**/.settings/**</exclude>
<exclude>**/.classpath</exclude>
<exclude>**/.factorypath</exclude>
<!--RAT files-->
<exclude>**/apache-rat-0.13/**</exclude>
<!--Javadoc files-->
<exclude>**/docs/**</exclude>
<!-- IntelliJ related files -->
<exclude>**/.idea/**</exclude>
<exclude>**/*.iml</exclude>
<exclude>**/*.yaml</exclude>
<exclude>**/*.json</exclude>
<exclude>**/*.log</exclude>
<exclude>**/*.input</exclude>
<exclude>**/*.svg</exclude>
<exclude>**/Gemfile.lock</exclude>
<exclude>**/.jekyll-cache/**</exclude>
<exclude>**/README.md</exclude>
<exclude>**/general-todos.md</exclude>
<exclude>**/scala_1*</exclude>
<exclude>**/*pb2.py</exclude>
<exclude>**/.rat-excludes</exclude>
<exclude>**/*.csv</exclude>
<exclude>**/*.properties</exclude>
</excludes>
</configuration>
</plugin>
<!-- Fail the build if some dependency don't have a valid license -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>2.0.0</version>
<executions>
<execution>
<id>license-check</id>
<phase>verify</phase>
<goals>
<goal>aggregate-add-third-party</goal>
</goals>
</execution>
</executions>
<configuration>
<licenseMerges>
<licenseMerge>ASF 2.0 | The Apache Software License, Version 2.0 | Apache License, Version 2.0 | Apache 2.0 License | Apache License Version 2.0 | Apache 2.0 | Apache-2.0 | The Apache License, Version 2.0 | Apache License Version 2 | Apache 2 | http://www.apache.org/licenses/LICENSE-2.0.txt | Apache License 2.0 | Apache Software License - Version 2.0 | Apache License, version 2.0 | Apache License v2.0 </licenseMerge>
<licenseMerge>BSD 3-claus | 3-Clause BSD License | BSD 3 Clause License | BSD 3 Clause | BSD 3-Clause "New" or "Revised" License (BSD-3-Clause) | BSD licence | BSD | New BSD License | Revised BSD | The BSD 3-Clause License | The BSD License | The New BSD License | New BSD license | BSD 3-clause | BSD 3-Clause | BSD-3-Clause | BSD New license | Go License </licenseMerge>
<licenseMerge>MIT | MIT License | The MIT License | The MIT License (MIT) | MIT license </licenseMerge>
<licenseMerge>BSD 2-claus | BSD 2-Clause License | BSD 2-Clause | BSD-2-Clause </licenseMerge>
<licenseMerge>HSQLDB | HSQLDB License, a BSD open source license</licenseMerge>
<licenseMerge>Eclipse | EPL 2.0 | EPL 1.0 | Eclipse Public License, Version 2.0 | Eclipse Distribution License - v 1.0 | EDL 1.0</licenseMerge></licenseMerges>
<includedLicenses>
ASF 2.0 | BSD 2-claus | BSD 3-claus | MIT | CC0 | HSQLDB | PostgreSQL | Eclipse | Public Domain | iCal4j - License | CDDL + GPLv2 with classpath exception
</includedLicenses>
<failOnBlacklist>true</failOnBlacklist>
<excludedGroups>
org.apache.spark.*|org.apache.hadoop.*|org.apache.giraph.*|org.antlr.*|junit.*|org.graphchi.*|org.springframework.*
</excludedGroups>
<excludeTransitiveDependencies>true</excludeTransitiveDependencies>
</configuration>
</plugin>
<!-- Generate the legally required text files in the jars -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<executions>
<execution>
<id>process-resource-bundles</id>
<phase>generate-resources</phase>
<goals>
<goal>process</goal>
</goals>
<configuration>
<resourceBundles>
<!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} -->
<resourceBundle>org.apache.apache.resources:apache-jar-resource-bundle:1.7</resourceBundle>
</resourceBundles>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${source.level}</source>
<target>${source.level}</target>
</configuration>
<executions>
<execution>
<id>default-compile</id>
<phase>none</phase>
</execution>
<execution>
<id>default-testCompile</id>
<phase>none</phase>
</execution>
<execution>
<id>java-compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>java-test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<useSystemClassLoader>false</useSystemClassLoader>
<useFile>false</useFile>
<includes>
<include>**/*Tests.java</include>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Implementation-Title>${project.name}</Implementation-Title>
<Implementation-Version>${project.version}</Implementation-Version>
<!--Automatic-Module-Name>${java-module-name}</Automatic-Module-Name-->
</manifestEntries>
</archive>
</configuration>
</plugin>
<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-javadoc-plugin</artifactId>
<configuration>
<locale>en_US</locale>
<breakiterator>true</breakiterator>
<header>${project.name}</header>
<source>${source.level}</source>
<quiet>true</quiet>
<javadocDirectory>${shared.resources}/javadoc</javadocDirectory>
<overview>${shared.resources}/javadoc/overview.html</overview>
<!-- copies doc-files subdirectory which contains image resources -->
<docfilessubdirs>true</docfilessubdirs>
<additionalOptions>
<additionalOption>-Xdoclint:none</additionalOption>
</additionalOptions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M3</version>
<executions>
<execution>
<id>enforce-maven-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>3.5.0</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.9</version>
<executions>
<execution>
<id>coverage-initialize</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>coverage-report</id>
<phase>post-integration-test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<!-- TODO addd the check to the minimum coverage -->
<!-- &lt;!&ndash; Threshold &ndash;&gt;-->
<!-- <execution>-->
<!-- <id>coverage-check</id>-->
<!-- <goals>-->
<!-- <goal>check</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<execution>
<id>report-aggregate</id>
<phase>verify</phase>
<goals>
<goal>report-aggregate</goal>
</goals>
</execution>
<execution>
<id>merge-results</id>
<phase>verify</phase>
<goals>
<goal>merge</goal>
</goals>
<configuration>
<fileSets>
<fileSet>
<directory>${code.coverage.project.folder}</directory>
<includes>
<include>**/target/jacoco.exec</include>
</includes>
</fileSet>
</fileSets>
<destFile>${code.coverage.overall.data.folder}/aggregate.exec</destFile>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<autoResolveSnapshots>all</autoResolveSnapshots>
<releaseProfiles>apache-release</releaseProfiles>
<!--<pushChanges>false</pushChanges>-->
<!--<dryRun>true</dryRun>-->
<updateWorkingCopyVersions>true</updateWorkingCopyVersions>
<updateDependencies>true</updateDependencies>
<scmReleaseCommitComment>@{prefix} prepare release 1.1.0</scmReleaseCommitComment>
<tagNameFormat>apache-@{project.artifactId}-@{project.version}</tagNameFormat>
</configuration>
</plugin>
</plugins>
</build>
<modules>
<module>wayang-commons</module>
<module>wayang-platforms</module>
<module>wayang-api</module>
<module>wayang-profiler</module>
<module>wayang-plugins</module>
<module>wayang-resources</module>
<module>wayang-assembly</module>
<module>wayang-ml4all</module>
<module>wayang-applications</module>
<module>wayang-benchmark</module>
<module>wayang-tests-integration</module>
<!--module>wayang-docs</module-->
</modules>
</project>