blob: 66d19baee4b00750b951f8e47c8e6da7601840a4 [file]
<?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>
<groupId>org.apache.geaflow</groupId>
<artifactId>geaflow-parent</artifactId>
<version>0.8.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.version>3.6.3</maven.version>
<mysql.version>8.0.30</mysql.version>
<maven-surefire.version>3.0.0-M7</maven-surefire.version>
<!-- By default, JDK 8 is used -->
<jdk.version>1.8</jdk.version>
<maven.compiler.source>${jdk.version}</maven.compiler.source>
<maven.compiler.target>${jdk.version}</maven.compiler.target>
<extraJavaTestArgs>
-XX:+IgnoreUnrecognizedVMOptions
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
--add-opens=java.base/jdk.internal.ref=ALL-UNNAMED
--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED
--add-opens=jdk.unsupported/sun.misc=ALL-UNNAMED
--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED
--add-opens=java.base/sun.nio.cs=ALL-UNNAMED
--add-opens=java.base/sun.security.action=ALL-UNNAMED
--add-opens=java.base/sun.util.calendar=ALL-UNNAMED
-Djdk.reflect.useDirectMethodHandle=false
-Dio.netty.tryReflectionSetAccessible=true
</extraJavaTestArgs>
</properties>
<modules>
<module>geaflow</module>
<module>geaflow-console</module>
<module>geaflow-mcp</module>
<module>geaflow-ai</module>
</modules>
<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>
<developers>
<developer>
<id>Loognqiang</id>
<name>zhouqiang</name>
<roles>
<role>Developer</role>
</roles>
</developer>
</developers>
<scm>
<connection>https://github.com/apache/geaflow.git</connection>
<developerConnection>https://github.com/apache/geaflow.git</developerConnection>
<url>https://github.com/apache/geaflow</url>
</scm>
<name>${project.groupId}:${project.artifactId}</name>
<description>Geaflow is a distributed streaming computing engine based on graph model.</description>
<url>https://github.com/apache/geaflow</url>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<executions>
<!-- Replacing default-compile as it is treated specially by maven -->
<execution>
<id>default-compile</id>
<phase>none</phase>
</execution>
<!-- Replacing default-testCompile as it is treated specially by maven -->
<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>
<configuration>
<!-- The default configuration will be overridden by Profile -->
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<encoding>UTF-8</encoding>
<fork>true</fork>
<meminitial>512m</meminitial>
<maxmem>1048m</maxmem>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.1</version>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
<skipIfEmpty>false</skipIfEmpty>
<forceCreation>true</forceCreation>
</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>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Add jacoco configuration -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.8</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<propertyName>coverageAgent</propertyName>
<destFile>${jacoco.path}</destFile>
<!-- Allocate 400MB for each test process, reserve system overhead -->
<argLine>${coverageAgent} -Xmx400m -XX:MaxMetaspaceSize=128m -XX:+UseG1GC</argLine>
<!-- Maximum 2 parallel processes -->
<forkCount>2</forkCount>
<reuseForks>false</reuseForks>
<parallel>classes</parallel>
<threadCount>2</threadCount>
<perCoreThreadCount>false</perCoreThreadCount>
</configuration>
</execution>
<execution>
<id>default-report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<dataFile>${jacoco.path}</dataFile>
<outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire.version}</version>
<executions>
<execution>
<id>default-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<argLine>${coverageAgent} ${extraJavaTestArgs}</argLine>
</configuration>
</execution>
</executions>
</plugin>
<!-- checkstyle -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<configLocation>tools/checkstyle.xml</configLocation>
<excludes>**/generated/**/*,**/proto/**/*</excludes>
<failOnViolation>true</failOnViolation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<logViolationsToConsole>true</logViolationsToConsole>
<suppressionsFileExpression>checkstyle.suppressions.file
</suppressionsFileExpression>
<suppressionsLocation>tools/checkstyle-suppressions.xml</suppressionsLocation>
<violationSeverity>warning</violationSeverity>
</configuration>
<dependencies>
<dependency>
<artifactId>checkstyle</artifactId>
<groupId>com.puppycrawl.tools</groupId>
<version>8.45</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<id>validate</id>
<phase>validate</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.8.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<show>private</show>
<nohelp>true</nohelp>
<charset>UTF-8</charset>
<encoding>UTF-8</encoding>
<docencoding>UTF-8</docencoding>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>0.16.1</version>
<executions>
<execution>
<id>header-check</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<consoleOutput>true</consoleOutput>
<excludeSubProjects>false</excludeSubProjects>
<numUnapprovedLicenses>0</numUnapprovedLicenses>
<licenses>
<license>
<family>AL2</family>
<notes></notes>
<text>Licensed to the Apache Software Foundation (ASF) under one</text>
</license>
</licenses>
<families>
<family>
<id>AL2</id>
<name>ApacheLicense 2.0</name>
</family>
</families>
<approvedLicenses>
<id>AL2</id>
</approvedLicenses>
<addDefaultLicenses>false</addDefaultLicenses>
<excludes>
<!-- Docs related -->
<exclude>docs/**/**</exclude>
<exclude>ci/**/**</exclude>
<exclude>.github/**/**</exclude>
<exclude>tools/**/*</exclude>
<exclude>geaflow-web/**/**</exclude>
<exclude>**/geaflow-web/**</exclude>
<exclude>**/target/**</exclude>
<exclude>**/docs/**</exclude>
<exclude>**/ci/**</exclude>
<exclude>**/web-dashboard/**</exclude>
<exclude>**/codegen/**</exclude>
<exclude>**/template/*.vm</exclude>
<exclude>**/resources/graph_ldbc_sf/**/**</exclude>
<exclude>**/resources/index/**</exclude>
<exclude>**/resources/data/**</exclude>
<exclude>**/resources/expect/**</exclude>
<exclude>**/resources/zip_test2.txt</exclude>
<exclude>**/resources/zip_test.txt</exclude>
<exclude>**/resources/demo/demo_job_data.txt</exclude>
<exclude>**/resources/input/**</exclude>
<exclude>**/resources/i18n/**</exclude>
<exclude>**/resources/public/**</exclude>
<exclude>**/dependency-reduced-pom.xml</exclude>
<exclude>**/*.log</exclude>
<exclude>**/*.md</exclude>
<exclude>**/**/data/geaflow.sql</exclude>
<exclude>**/**/Filter.template</exclude>
<exclude>**/**/version.txt</exclude>
<exclude>**/**/graph_data.fbs</exclude>
<exclude>**/**/*.toml</exclude>
<exclude>**/**/.helmignore</exclude>
<exclude>**/**/templates/NOTES.txt</exclude>
<exclude>.readthedocs.yaml</exclude>
<exclude>.aci-plugin-outputs.sh</exclude>
<exclude>.aci.yml</exclude>
<exclude>mkdocs.yml</exclude>
<exclude>data/**</exclude>
<exclude>sync_code.sh</exclude>
<!-- Third-party works related -->
<exclude>**/MultiIterator.java</exclude>
<exclude>**/memory/cleaner/**</exclude>
<exclude>**/geaflow/memory/Chunk.java</exclude>
<exclude>**/geaflow/memory/DirectMemory.java</exclude>
<exclude>**/geaflow/memory/Page.java</exclude>
<exclude>**/geaflow/memory/PlatformDependent.java</exclude>
<exclude>**/analytics/service/client/jdbc/property/**</exclude>
<exclude>**/analytics/service/client/jdbc/AnalyticsDriver.java</exclude>
<exclude>**/analytics/service/client/HttpResponse.java</exclude>
<exclude>**/geaflow/analytics/service/query/IQueryStatus.java</exclude>
<exclude>**/geaflow/analytics/service/query/QueryIdGenerator.java</exclude>
<exclude>**/geaflow/analytics/service/query/QueryResults.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<!-- Profile 1: Activated when JDK 8 is detected -->
<profile>
<id>jdk8</id>
<activation>
<jdk>1.8</jdk>
</activation>
<properties>
<jdk.version>1.8</jdk.version>
</properties>
</profile>
<!-- Profile 2: Activated when JDK 11+ is detected -->
<profile>
<id>jdk11</id>
<activation>
<jdk>[11,)</jdk>
</activation>
<properties>
<jdk.version>11</jdk.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<compilerArgs>
<arg>--add-exports</arg>
<arg>java.base/sun.nio.ch=ALL-UNNAMED</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>maven-release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
<goal>test-jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Javadoc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<show>private</show>
<nohelp>true</nohelp>
<charset>UTF-8</charset>
<encoding>UTF-8</encoding>
<docencoding>UTF-8</docencoding>
<failOnError>false</failOnError>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!--Compiler -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<fork>true</fork>
<verbose>true</verbose>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!--Release -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.1</version>
</plugin>
<!-- GPG -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>apache-release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.6.0</version>
<dependencies>
<dependency>
<groupId>org.apache.apache.resources</groupId>
<artifactId>apache-source-release-assembly-descriptor</artifactId>
<version>1.0.6</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>source-release-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>source-release</descriptorRef>
</descriptorRefs>
<finalName>apache-geaflow-${project.version}-src</finalName>
<appendAssemblyId>false</appendAssemblyId>
<!-- Output file format: tar.gz -->
<formats>
<format>tar.gz</format>
</formats>
<tarLongFileMode>gnu</tarLongFileMode>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<argument>--pinentry-mode</argument>
<argument>loopback</argument>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>apache.releases.https</id>
<name>Apache Release Distribution Repository</name>
<url>https://repository.apache.org/service/local/staging/deploy/maven2/</url>
</repository>
<snapshotRepository>
<id>apache.snapshots.https</id>
<name>Apache Snapshot Distribution Repository</name>
<url>https://repository.apache.org/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>