<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>net.tascalate.javaflow</groupId>
		<artifactId>net.tascalate.javaflow.parent</artifactId>
		<version>2.6.4</version>
		<relativePath>../</relativePath>
	</parent>

	<artifactId>net.tascalate.javaflow.tools.javaagent</artifactId>
	<packaging>jar</packaging>

	<name>Tascalate JavaFlow / Tools / Continuations Instrumentation Agent</name>

	<properties>
		<license.header>../HEADER-ORIGINAL.txt</license.header>
		<java-agent.class>org.apache.commons.javaflow.instrumentation.JavaFlowInstrumentationAgent</java-agent.class>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-simple</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>net.tascalate.javaflow</groupId>
			<artifactId>net.tascalate.javaflow.providers.asmx</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>net.tascalate.javaflow</groupId>
			<artifactId>net.tascalate.javaflow.tools.instrument</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.moditect</groupId>
				<artifactId>moditect-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<manifestEntries>
							<Premain-Class>${java-agent.class}</Premain-Class>
							<Agent-Class>${java-agent.class}</Agent-Class>
							<Can-Redefine-Classes>false</Can-Redefine-Classes>
							<Can-Retransform-Classes>true</Can-Retransform-Classes>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>3.2.1</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<createDependencyReducedPom>true</createDependencyReducedPom>
							<finalName>javaflow.instrument-continuations</finalName>
							<minimizeJar>true</minimizeJar>
							<relocations>
								<!--
								<relocation>
									<pattern>net.tascalate.javaflow.asmx</pattern>
									<shadedPattern>net.tascalate._a</shadedPattern>
								</relocation>
								-->
							</relocations>
							<filters>
								<filter>
									<artifact>*:*</artifact>
									<excludes>
										<exclude>META-INF/maven/**/*.*</exclude>
										<exclude>**/module-info.class</exclude>
									</excludes>
								</filter>
								<filter>
									<artifact>org.slf4j:slf4j-simple</artifact>
									<includes>
										<include>**</include>
									</includes>
								</filter>  
							</filters>
							<transformers>
								<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<manifestEntries>
										<Automatic-Module-Name>net.tascalate.javaflow.tools.javaagent.shaded</Automatic-Module-Name>
										<Multi-Release>false</Multi-Release>
									</manifestEntries>
								</transformer>
							</transformers>
	
						</configuration>
					</execution>
				</executions>
			</plugin> 
		</plugins>
	</build>
</project>
