| <!-- |
| 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.flink</groupId> |
| <artifactId>benchmark</artifactId> |
| <version>0.1</version> |
| <packaging>jar</packaging> |
| |
| <name>Flink : Benchmark Job</name> |
| <url>http://flink.apache.org</url> |
| <inceptionYear>2014</inceptionYear> |
| |
| <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/apache/flink-statefun</url> |
| <connection>git@github.com:apache/flink-benchmarks.git</connection> |
| <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/flink-benchmarks.git</developerConnection> |
| </scm> |
| |
| <properties> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <flink.version>1.18-SNAPSHOT</flink.version> |
| <flink.shaded.version>16.1</flink.shaded.version> |
| <netty.tcnative.version>2.0.54.Final</netty.tcnative.version> |
| <java.version>1.8</java.version> |
| <scala.binary.version>2.12</scala.binary.version> |
| <maven.compiler.source>${java.version}</maven.compiler.source> |
| <maven.compiler.target>${java.version}</maven.compiler.target> |
| <slf4j.version>1.7.36</slf4j.version> |
| <log4j.version>1.2.17</log4j.version> |
| <jmh.version>1.19</jmh.version> |
| <junit.version>4.13.2</junit.version> |
| <avro.version>1.11.1</avro.version> |
| <mockito.version>3.4.6</mockito.version> |
| <maven.exec.version>1.6.0</maven.exec.version> |
| <maven.compiler.version>3.8.0</maven.compiler.version> |
| <chill.version>0.7.6</chill.version> |
| <thrift.version>0.13.0</thrift.version> |
| <protobuf.version>3.21.7</protobuf.version> |
| <netty-tcnative.flavor>dynamic</netty-tcnative.flavor> |
| <benchmarkExcludes>org.apache.flink.benchmark.full.*,org.apache.flink.state.benchmark.*,org.apache.flink.scheduler.benchmark.*</benchmarkExcludes> |
| <benchmarks>.*</benchmarks> |
| <executableJava>java</executableJava> |
| </properties> |
| |
| <repositories> |
| <repository> |
| <id>apache.snapshots</id> |
| <name>Apache Development Snapshot Repository</name> |
| <url>https://repository.apache.org/content/repositories/snapshots/</url> |
| <releases> |
| <enabled>false</enabled> |
| </releases> |
| <snapshots> |
| <enabled>true</enabled> |
| </snapshots> |
| </repository> |
| </repositories> |
| |
| <dependencies> |
| <!-- Apache Flink dependencies --> |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-java</artifactId> |
| <version>${flink.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-streaming-java</artifactId> |
| <version>${flink.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-clients</artifactId> |
| <version>${flink.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-streaming-java</artifactId> |
| <version>${flink.version}</version> |
| <type>test-jar</type> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-test-utils-junit</artifactId> |
| <version>${flink.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <version>${junit.version}</version> |
| <type>jar</type> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.openjdk.jmh</groupId> |
| <artifactId>jmh-core</artifactId> |
| <version>${jmh.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.openjdk.jmh</groupId> |
| <artifactId>jmh-generator-annprocess</artifactId> |
| <version>${jmh.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-statebackend-rocksdb</artifactId> |
| <version>${flink.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-statebackend-rocksdb</artifactId> |
| <version>${flink.version}</version> |
| <type>test-jar</type> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-avro</artifactId> |
| <version>${flink.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-table-planner_${scala.binary.version}</artifactId> |
| <version>${flink.version}</version> |
| <type>test-jar</type> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-tests</artifactId> |
| <version>${flink.version}</version> |
| <type>test-jar</type> |
| </dependency> |
| |
| <dependency> |
| <!-- required for using a pre-defined MiniCluster --> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-test-utils</artifactId> |
| <version>${flink.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-cep</artifactId> |
| <version>${flink.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-shaded-netty-tcnative-${netty-tcnative.flavor}</artifactId> |
| <version>${netty.tcnative.version}-${flink.shaded.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <version>${mockito.version}</version> |
| <type>jar</type> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-core</artifactId> |
| <version>${flink.version}</version> |
| <type>test-jar</type> |
| </dependency> |
| |
| <!-- serialization benchmark requirements --> |
| |
| <!-- Thrift --> |
| <dependency> |
| <groupId>com.twitter</groupId> |
| <artifactId>chill-thrift</artifactId> |
| <version>${chill.version}</version> |
| <!-- exclusions for dependency conversion --> |
| <exclusions> |
| <exclusion> |
| <groupId>com.esotericsoftware.kryo</groupId> |
| <artifactId>kryo</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.thrift</groupId> |
| <artifactId>libthrift</artifactId> |
| <version>${thrift.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>javax.servlet</groupId> |
| <artifactId>servlet-api</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.apache.httpcomponents</groupId> |
| <artifactId>httpclient</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <!-- Protobuf --> |
| <dependency> |
| <groupId>com.twitter</groupId> |
| <artifactId>chill-protobuf</artifactId> |
| <version>${chill.version}</version> |
| <!-- exclusions for dependency conversion --> |
| <exclusions> |
| <exclusion> |
| <groupId>com.esotericsoftware.kryo</groupId> |
| <artifactId>kryo</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java</artifactId> |
| <version>${protobuf.version}</version> |
| </dependency> |
| </dependencies> |
| |
| <profiles> |
| <profile> |
| <id>test</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>${maven.exec.version}</version> |
| <executions> |
| <execution> |
| <id>test-benchmarks</id> |
| <phase>test</phase> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <skip>${skipTests}</skip> |
| <classpathScope>test</classpathScope> |
| <executable>${executableJava}</executable> |
| <arguments> |
| <argument>-Xmx6g</argument> |
| <argument>-classpath</argument> |
| <classpath/> |
| <argument>org.openjdk.jmh.Main</argument> |
| <!--shouldFailOnError--> |
| <argument>-foe</argument> |
| <argument>true</argument> |
| <!--speed up tests--> |
| <argument>-f</argument> |
| <argument>1</argument> |
| <argument>-i</argument> |
| <argument>1</argument> |
| <argument>-wi</argument> |
| <argument>0</argument> |
| <argument>-rf</argument> |
| <argument>csv</argument> |
| <argument>.*</argument> |
| </arguments> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <profile> |
| <id>benchmark</id> |
| <activation> |
| <activeByDefault>true</activeByDefault> |
| <property> |
| <name>benchmarks</name> |
| </property> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>${maven.exec.version}</version> |
| <executions> |
| <execution> |
| <id>run-benchmarks</id> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <classpathScope>test</classpathScope> |
| <executable>${executableJava}</executable> |
| <arguments> |
| <argument>-classpath</argument> |
| <classpath/> |
| <argument>org.openjdk.jmh.Main</argument> |
| <!--shouldFailOnError--> |
| <argument>-foe</argument> |
| <argument>true</argument> |
| <argument>-e</argument> |
| <argument>${benchmarkExcludes}</argument> |
| <argument>-rf</argument> |
| <argument>csv</argument> |
| <argument>${benchmarks}</argument> |
| </arguments> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-shade-plugin</artifactId> |
| <version>3.2.0</version> |
| <executions> |
| <execution> |
| <phase>package</phase> |
| <goals> |
| <goal>shade</goal> |
| </goals> |
| <configuration> |
| <finalName>benchmarks</finalName> |
| <transformers> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> |
| <mainClass>org.openjdk.jmh.Main</mainClass> |
| </transformer> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> |
| <resource>reference.conf</resource> |
| </transformer> |
| <!-- The service transformer is needed to merge META-INF/services files --> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer"> |
| <projectName>Apache Flink</projectName> |
| </transformer> |
| </transformers> |
| <filters> |
| <filter> |
| <artifact>*</artifact> |
| <excludes> |
| <exclude>META-INF/*.SF</exclude> |
| <exclude>META-INF/*.DSA</exclude> |
| <exclude>META-INF/*.RSA</exclude> |
| </excludes> |
| </filter> |
| </filters> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>custom-benchmark</id> |
| <activation> |
| <property> |
| <name>benchmarks</name> |
| </property> |
| </activation> |
| <properties> |
| <benchmarkExcludes>""</benchmarkExcludes> |
| </properties> |
| </profile> |
| |
| <profile> |
| <id>generate-thrift</id> |
| <activation> |
| <property> |
| <name>generate-thrift</name> |
| </property> |
| </activation> |
| <build> |
| <plugins> |
| <!-- Generate MyPojo class from thrift schema --> |
| <plugin> |
| <groupId>org.apache.thrift</groupId> |
| <artifactId>thrift-maven-plugin</artifactId> |
| <version>0.10.0</version> |
| <configuration> |
| <thriftSourceRoot>${project.basedir}/src/main/resources/thrift</thriftSourceRoot> |
| <outputDirectory>${project.basedir}/src/main/java/</outputDirectory> |
| </configuration> |
| <executions> |
| <execution> |
| <id>thrift-sources</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>compile</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>thrift-test-sources</id> |
| <phase>generate-test-sources</phase> |
| <goals> |
| <goal>testCompile</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| |
| <build> |
| <extensions> |
| <!-- required for getting the correct protoc binary for protobuf --> |
| <extension> |
| <groupId>kr.motd.maven</groupId> |
| <artifactId>os-maven-plugin</artifactId> |
| <version>1.6.2</version> |
| </extension> |
| </extensions> |
| <plugins> |
| <plugin> |
| <groupId>net.alchim31.maven</groupId> |
| <artifactId>scala-maven-plugin</artifactId> |
| <version>4.4.0</version> |
| <executions> |
| <execution> |
| <id>scala-compile-first</id> |
| <phase>process-resources</phase> |
| <goals> |
| <goal>add-source</goal> |
| <goal>compile</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>scala-test-compile</id> |
| <phase>process-test-resources</phase> |
| <goals> |
| <goal>testCompile</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>${maven.compiler.version}</version> |
| <configuration> |
| <source>${java.version}</source> |
| <target>${java.version}</target> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <version>0.13</version> |
| <inherited>false</inherited> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <excludeSubProjects>false</excludeSubProjects> |
| <numUnapprovedLicenses>0</numUnapprovedLicenses> |
| <licenses> |
| <!-- Enforce this license: |
| 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. |
| --> |
| <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense"> |
| <licenseFamilyCategory>AL2 </licenseFamilyCategory> |
| <licenseFamilyName>Apache License 2.0</licenseFamilyName> |
| <notes /> |
| <patterns> |
| <pattern>Licensed to the Apache Software Foundation (ASF) under one</pattern> |
| </patterns> |
| </license> |
| </licenses> |
| <licenseFamilies> |
| <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily"> |
| <familyName>Apache License 2.0</familyName> |
| </licenseFamily> |
| </licenseFamilies> |
| <excludes> |
| <!-- Additional files like .gitignore etc.--> |
| <exclude>**/.*/**</exclude> |
| <exclude>**/*.prefs</exclude> |
| <exclude>**/*.log</exclude> |
| |
| <!-- Administrative files in the main trunk. --> |
| <exclude>**/README.md</exclude> |
| <exclude>.github/**</exclude> |
| <!-- Build files --> |
| <exclude>**/*.iml</exclude> |
| <!-- Generated content --> |
| <exclude>out/**</exclude> |
| <exclude>**/target/**</exclude> |
| <!-- manually installed version on travis --> |
| <exclude>apache-maven-3.2.5/**</exclude> |
| <!-- PyCharm --> |
| <exclude>**/.idea/**</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| |
| <!-- Generate MyPojo class from avro schema --> |
| <plugin> |
| <groupId>org.apache.avro</groupId> |
| <artifactId>avro-maven-plugin</artifactId> |
| <version>${avro.version}</version> |
| <executions> |
| <execution> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>schema</goal> |
| </goals> |
| <configuration> |
| <sourceDirectory>${project.basedir}/src/main/resources/avro</sourceDirectory> |
| <!--<outputDirectory>${project.basedir}/src/main/java/</outputDirectory>--> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- Generate MyPojo class from protobuf schema --> |
| <plugin> |
| <groupId>org.xolstice.maven.plugins</groupId> |
| <artifactId>protobuf-maven-plugin</artifactId> |
| <version>0.6.1</version> |
| <configuration> |
| <protoSourceRoot>${project.basedir}/src/main/resources/protobuf</protoSourceRoot> |
| <protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>compile</goal> |
| <goal>test-compile</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </project> |