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

	<artifactId>ontologizerlib-benchmark</artifactId>
	<packaging>jar</packaging>

	<name>${project.groupId}:${project.artifactId}</name>

	<parent>
		<groupId>de.ontologizer</groupId>
		<artifactId>OntologizerLib</artifactId>
		<version>0.1</version>
	</parent>


	<properties>
		<!-- JMH version to use with this project. -->
		<jmh.version>1.19</jmh.version>

		<!-- Name of the benchmark Uber-JAR to generate. -->
		<uberjar.name>OntologizerJMH</uberjar.name>
	</properties>

	<dependencies>
		<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>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>de.ontologizer</groupId>
			<artifactId>ontologizerlib-io</artifactId>
			<version>${project.version}</version>
		</dependency>
		<!-- Also depend on the test, primarily for the shared resources -->
		<dependency>
			<groupId>de.ontologizer</groupId>
			<artifactId>ontologizerlib-io</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>2.2</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<finalName>${uberjar.name}</finalName>
							<transformers>
								<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>org.openjdk.jmh.Main</mainClass>
								</transformer>
							</transformers>
							<filters>
								<filter>
									<!-- Shading signed JARs will fail without this. http://stackoverflow.com/questions/999489/invalid-signature-file-when-attempting-to-run-a-jar -->
									<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>


	<profiles>
		<!-- Run benchmark if the respective property is set -->
		<profile>
			<id>enable-benchmark</id>
			<activation>
				<property>
					<name>runBenchmark</name>
				</property>
			</activation>

			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>exec-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>run-benchmarks</id>
								<phase>test</phase>
								<goals>
									<goal>exec</goal>
								</goals>
								<configuration>
									<executable>java</executable>
									<arguments>
										<argument>-classpath</argument>
										<classpath />
										<argument>org.openjdk.jmh.Main</argument>
										<argument>.*</argument>
									</arguments>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

</project>
