<!--
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>
