<!-- 
	This file is derived from ToolFactory JVM driver.                 
	                                                                  
	Hosted at: https://github.com/toolfactory/jvm-driver              
	                                                                  
	Modified by: Roberto Gentili                                      
	                                                                  
	Modifications hosted at: https://github.com/burningwave/jvm-driver                                                           
	                                                                                                            
	- -                                                                                                          
	                                                                                                            
	The MIT License (MIT)                                                                                       
	                                                                                                            
	Copyright (c) 2019-2022 Luke Hutchison, Roberto Gentili                                                                          
	                                                                                                            
	Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
	documentation files (the "Software"), to deal in the Software without restriction, including without        
	limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of   
	the Software, and to permit persons to whom the Software is furnished to do so, subject to the following    
	conditions:                                                                                                 
	                                                                                                            
	The above copyright notice and this permission notice shall be included in all copies or substantial        
	portions of the Software.                                                                                   
	                                                                                                            
	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT       
	LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO   
	EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
	AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
	OR OTHER DEALINGS IN THE SOFTWARE.
-->
<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.burningwave</groupId>
	<artifactId>jvm-driver</artifactId>
	<version>8.14.0</version>

	<packaging>jar</packaging>

	<name>Burningwave JVM Driver</name>
	<description>
		A driver derived from ToolFactory JVM Driver to allow deep interaction with the JVM without any restrictions
	</description>
	<url>https://burningwave.github.io/jvm-driver/</url>

	<licenses>
		<license>
			<name>MIT License</name>
			<url>https://github.com/burningwave/jvm-driver/blob/master/LICENSE</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<organization>
		<name>Burningwave</name>
		<url>https://www.burningwave.org/</url>
	</organization>

	<developers>
		<developer>
			<name>Roberto Gentili</name>
			<id>roberto.gentili</id>
			<email>info@burningwave.org</email>
			<organization>Burningwave</organization>
			<organizationUrl>https://www.burningwave.org/</organizationUrl>
			<roles>
				<role>Administrator</role>
				<role>Developer</role>
			</roles>
		</developer>
		<developer>
			<name>Alessio Perrotta</name>
			<email>info@burningwave.org</email>
			<organization>Burningwave</organization>
			<organizationUrl>https://www.burningwave.org/</organizationUrl>
			<roles>
				<role>External relationship manager</role>
				<role>Developer</role>
			</roles>
		</developer>
	</developers>

	<properties>
		<copyright.holder>Roberto Gentili</copyright.holder>
		<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project_jdk_version>7</project_jdk_version>
		<javadocExecutable.relativePath>bin/javadoc</javadocExecutable.relativePath>
		<skipTests>true</skipTests>
		<project.test.testSuite>AllTestsSuite</project.test.testSuite>
		<project.test.includes>**/${project.test.testSuite}.java</project.test.includes>
		<project.test.excludes>**/*Test.java</project.test.excludes>
		<repository.url>https://burningwave@github.com/burningwave/jvm-driver.git</repository.url>

		<coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
		<jacoco-maven-plugin.version>0.7.6.201602180812</jacoco-maven-plugin.version>
		<junit-jupiter.version>5.8.2</junit-jupiter.version>
		<junit.version>1.8.2</junit.version>
		<jvm-driver.version>9.4.2</jvm-driver.version>
		<maven-antrun-plugin.version>3.0.0</maven-antrun-plugin.version>
		<maven-compiler-plugin.version>3.9.0</maven-compiler-plugin.version>
		<maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
		<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
		<maven-jar-plugin.version>3.2.2</maven-jar-plugin.version>
		<maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
		<maven-jxr-plugin.version>3.1.1</maven-jxr-plugin.version>
		<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
		<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
		<maven-scm-provider-gitexe.version>1.9.5</maven-scm-provider-gitexe.version>
		<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
		<nexus-staging-maven-plugin.version>1.6.12</nexus-staging-maven-plugin.version>
	</properties>

	<issueManagement>
		<system>github.com</system>
		<url>https://github.com/burningwave/jvm-driver/issues</url>
	</issueManagement>

	<distributionManagement>
		<snapshotRepository>
			<id>ossrh</id>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
		</snapshotRepository>
		<repository>
			<id>ossrh</id>
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
		</repository>
	</distributionManagement>

	<scm>
		<connection>scm:git:${repository.url}</connection>
		<developerConnection>scm:git:${repository.url}</developerConnection>
		<url>https://github.com/burningwave/jvm-driver</url>
	  <tag>jvm-driver-8.14.0</tag>
  </scm>

	<dependencies>

		<dependency>
			<groupId>io.github.toolfactory</groupId>
			<artifactId>jvm-driver</artifactId>
			<version>${jvm-driver.version}</version>
			<exclusions>
				<exclusion>
					<groupId>io.github.toolfactory</groupId>
					<artifactId>narcissus</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<version>${junit-jupiter.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.junit.platform</groupId>
			<artifactId>junit-platform-engine</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.junit.platform</groupId>
			<artifactId>junit-platform-commons</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.junit.platform</groupId>
			<artifactId>junit-platform-runner</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<build>
		<resources>
			<resource>
				<directory>${project.basedir}/../</directory>
				<includes>
					<include>**LICENSE</include>
				</includes>
				<targetPath>META-INF</targetPath>
			</resource>
			<resource>
				<directory>${project.basedir}/src/main/resources</directory>
				<includes>
					<include>**</include>
				</includes>
			</resource>
			<resource>
				<directory>${project.basedir}/../native/src/main/c-c++</directory>
				<includes>
					<include>**</include>
				</includes>
			</resource>
		</resources>
		<testResources>
			<testResource>
				<directory>${project.basedir}/src/test/resources</directory>
			</testResource>
		</testResources>
		<plugins>
			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>${maven-antrun-plugin.version}</version>
				<executions>
					<execution>
						<goals>
							<goal>run</goal>
						</goals>
						<phase>
                            compile
                        </phase>
						<configuration>
							<target>
								<copy toDir="${project.build.directory}/classes/org/burningwave/jvm">
									<fileset dir="${project.basedir}/../native/bin" />
								</copy>
							</target>
						</configuration>
					</execution>
					<execution>
						<id>add-module-info-to-jar</id>
						<phase>package</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target>
								<jar update="true" destfile="${project.build.directory}/${project.build.finalName}.jar">
									<zipfileset prefix="META-INF/versions/9" dir="${project.build.directory}/classes" includes="module-info.class" />
								</jar>
							</target>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${maven-compiler-plugin.version}</version>
				<executions>
					<execution>
						<id>default-compile</id>
						<configuration>
							<!-- compile everything to ensure module-info contains right entries -->
							<release>9</release>
							<!-- <excludes> <exclude>module-info.java</exclude> </excludes> -->
						</configuration>
					</execution>
					<execution>
						<id>default-testCompile</id>
						<configuration>
							<testExcludes>
								<testExclude>module-info.java</testExclude>
							</testExcludes>
							<release>${project_jdk_version}</release>
							<verbose>true</verbose>
						</configuration>
					</execution>
					<execution>
						<id>base-compile</id>
						<goals>
							<goal>compile</goal>
						</goals>
						<!-- recompile everything for target VM except the module-info.java -->
						<configuration>
							<excludes>
								<exclude>module-info.java</exclude>
							</excludes>
							<source>${project_jdk_version}</source>
							<target>${project_jdk_version}</target>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>${maven-surefire-plugin.version}</version>
				<configuration>
					<skipTests>${skipTests}</skipTests>
					<excludes>
						<exclude>${project.test.excludes}</exclude>
					</excludes>
					<includes>
						<include>${project.test.includes}</include>
					</includes>
					<useModulePath>false</useModulePath>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-jar-plugin</artifactId>
				<version>${maven-jar-plugin.version}</version>
				<configuration>
					<excludes>
						<exclude>module-info.class</exclude>
						<exclude>META-INF/maven/</exclude>
						<exclude>**/*.c</exclude>
						<exclude>**/*.cpp</exclude>
						<exclude>**/*.h</exclude>
					</excludes>
					<archive>
						<addMavenDescriptor>false</addMavenDescriptor>
						<manifest>
							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
						</manifest>
						<manifestEntries>
							<built-by>Burningwave</built-by>
							<Bundle-Category>Utilities</Bundle-Category>
							<Bundle-License>https://github.com/burningwave/jvm-driver/blob/master/LICENSE</Bundle-License>
							<Bundle-ManifestVersion>2</Bundle-ManifestVersion>
							<Bundle-Name>JVM Driver</Bundle-Name>
							<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
							<Bundle-Vendor>Burningwave</Bundle-Vendor>
							<Bundle-Description>${project.description}</Bundle-Description>
							<Bundle-Version>${project.version}</Bundle-Version>
							<Require-Capability>osgi.ee;filter:="(&amp;(osgi.ee=JavaSE)(version=1.7))"</Require-Capability>
							<Import-Package>io.github.toolfactory.jvm;version="8.9.4",io.github.toolfactory.jvm.function.catalog;version="8.9.4",io.github.toolfactory.jvm.function.template;version="8.9.4",io.github.toolfactory.jvm.util;version="8.9.4"</Import-Package>
							<Export-Package>org.burningwave.jvm;uses:="io.github.toolfactory.jvm,io.github.toolfactory.jvm.function.catalog,org.burningwave.jvm.function.catalog";version="6.8.4",org.burningwave.jvm.function.catalog;uses:="io.github.toolfactory.jvm.function.catalog,io.github.toolfactory.jvm.function.template,io.github.toolfactory.jvm.util,org.burningwave.jvm";version="6.8.4",org.burningwave.jvm.util;uses:="io.github.toolfactory.jvm.function.template";version="6.8.4"</Export-Package>
							<Multi-Release>true</Multi-Release>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>${maven-deploy-plugin.version}</version>
				<executions>
					<execution>
						<id>default-deploy</id>
						<phase>deploy</phase>
						<goals>
							<goal>deploy</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<version>${maven-release-plugin.version}</version>
				<configuration>
					<localCheckout>true</localCheckout>
					<pushChanges>true</pushChanges>
					<mavenExecutorId>forked-path</mavenExecutorId>
					<arguments>-Dgpg.passphrase=${gpg.passphrase}</arguments>
					<!-- <tagNameFormat>${project.artifactId}-${project.version}</tagNameFormat> -->
				</configuration>
				<dependencies>
					<dependency>
						<groupId>org.apache.maven.scm</groupId>
						<artifactId>maven-scm-provider-gitexe</artifactId>
						<version>${maven-scm-provider-gitexe.version}</version>
					</dependency>
				</dependencies>
			</plugin>
			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<version>${nexus-staging-maven-plugin.version}</version>
				<extensions>true</extensions>
				<configuration>
					<stagingProgressTimeoutMinutes>20</stagingProgressTimeoutMinutes>
					<serverId>ossrh</serverId>
					<nexusUrl>https://oss.sonatype.org/</nexusUrl>
					<autoReleaseAfterClose>true</autoReleaseAfterClose>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>${maven-source-plugin.version}</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>${maven-javadoc-plugin.version}</version>
				<configuration>
					<javadocExecutable>${java.home}/${javadocExecutable.relativePath}</javadocExecutable>
					<encoding>UTF-8</encoding>
					<source>${project_jdk_version}</source>
				</configuration>
				<executions>
					<execution>
						<id>attach-javadoc</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
				<version>${maven-jxr-plugin.version}</version>
			</plugin>
		</plugins>
	</reporting>

	<profiles>
		<!-- GPG Signature on release -->
		<profile>
			<id>release-sign-artifacts</id>
			<activation>
				<property>
					<name>performRelease</name>
					<value>true</value>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<version>${maven-gpg-plugin.version}</version>
						<executions>
							<execution>
								<phase>verify</phase>
								<goals>
									<goal>sign</goal>
								</goals>
								<configuration>
									<gpgArguments>
										<arg>--pinentry-mode</arg>
										<arg>loopback</arg>
									</gpgArguments>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>run-coveralls</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<!-- Generate coveralls reports from CI server. -->
					<plugin>
						<groupId>org.eluder.coveralls</groupId>
						<artifactId>coveralls-maven-plugin</artifactId>
						<version>${coveralls-maven-plugin.version}</version>
						<configuration>
							<sourceDirectories>
								<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
							</sourceDirectories>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.jacoco</groupId>
						<artifactId>jacoco-maven-plugin</artifactId>
						<version>${jacoco-maven-plugin.version}</version>
						<executions>
							<execution>
								<id>prepare-agent</id>
								<goals>
									<goal>prepare-agent</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
