<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>com.fathzer</groupId>
		<artifactId>parent-pom</artifactId>
		<version>1.0.8</version>
	</parent>
	<artifactId>java-check-launcher</artifactId>
	<version>1.0.0</version>

	<name>java-check-launcher</name>

	<description>A java application launcher that checks if used JRE is
		compatible with launched application</description>
	<url>https://github.com/yapbam/yapbam-launcher</url>

	<scm>
		<url>https://github.com/yapbam/yapbam-launcher.git</url>
		<connection>https://github.com/yapbam/yapbam-launcher.git</connection>
	</scm>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<animal-sniffer-signature>java12</animal-sniffer-signature>
		<compileSource>1.2</compileSource>
		<testCompileSource>1.7</testCompileSource>
	</properties>

	<profiles>
		<profile>
			<id>sonar</id>
			<properties>
				<sonar.issue.ignore.multicriteria>e1,e2,e3,e4,e5,e6</sonar.issue.ignore.multicriteria>
				<!-- Skip parametrized type for generic not supported in java 1.2 -->
				<sonar.issue.ignore.multicriteria.e1.ruleKey>java:S3740</sonar.issue.ignore.multicriteria.e1.ruleKey>
				<sonar.issue.ignore.multicriteria.e1.resourceKey>**/*</sonar.issue.ignore.multicriteria.e1.resourceKey>
				<!-- Skip catch with same body, not supported in java 1.2 -->
				<sonar.issue.ignore.multicriteria.e2.ruleKey>java:S2147</sonar.issue.ignore.multicriteria.e2.ruleKey>
				<sonar.issue.ignore.multicriteria.e2.resourceKey>**/*</sonar.issue.ignore.multicriteria.e2.resourceKey>
				<!-- Skip use of System.err for Console logger -->
				<sonar.issue.ignore.multicriteria.e3.ruleKey>java:S106</sonar.issue.ignore.multicriteria.e3.ruleKey>
				<sonar.issue.ignore.multicriteria.e3.resourceKey>**/Console.java</sonar.issue.ignore.multicriteria.e3.resourceKey>
				<!-- Skip e.printStackTrace usage in Console -->
				<sonar.issue.ignore.multicriteria.e4.ruleKey>java:S4507</sonar.issue.ignore.multicriteria.e4.ruleKey>
				<sonar.issue.ignore.multicriteria.e4.resourceKey>**/Console.java</sonar.issue.ignore.multicriteria.e4.resourceKey>
				<!-- Skip Define and throw a dedicated exception instead of using a generic one in Launcher
					Unfortunately, RefelectiveOperationException, which would be a good candidate does not exists
					in JDK versions < 1.7. Creating a dedicated exception would force use to keep it even when,
					in a future release, we will stop java 1.7- versions support
 				-->
				<sonar.issue.ignore.multicriteria.e5.ruleKey>java:S112</sonar.issue.ignore.multicriteria.e5.ruleKey>
				<sonar.issue.ignore.multicriteria.e5.resourceKey>**/Launcher.java</sonar.issue.ignore.multicriteria.e5.resourceKey>
				<!-- Skip Disambiguate this call and Remove this arry creation in Parameters -->
				<sonar.issue.ignore.multicriteria.e6.ruleKey> java:S3878</sonar.issue.ignore.multicriteria.e6.ruleKey>
				<sonar.issue.ignore.multicriteria.e6.resourceKey>**/Parameters.java</sonar.issue.ignore.multicriteria.e6.resourceKey>
				
				<!-- exclude Loggers from coverage -->
				<sonar.coverage.exclusions>**/Swing.java,**/Console.java</sonar.coverage.exclusions>

				<!-- Sonar requires java 17 that does not support any java version under 1.7 -->
				<compileSource>1.7</compileSource>
				<!-- We should check code with java 1.7 signatures because the
				String + operator results in StringBuilder use which is unavailable in 1.2 -->
				<animal-sniffer-signature>java17</animal-sniffer-signature>
				<!-- Be cool with the planet, javadoc is totally useless in Sonar context -->
				<maven.javadoc.skip>true</maven.javadoc.skip>
			</properties>
		</profile>
	</profiles>

	<build>
		<plugins>
			<!-- -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<executions>
					<execution>
						<id>default-compile</id>
						<configuration>
							<fork>true</fork>
							<source>${compileSource}</source>
							<target>${compileSource}</target>
						</configuration>
					</execution>
					<execution>
						<id>default-test-compile</id>
						<configuration>
							<fork>true</fork>
							<source>${testCompileSource}</source>
							<target>${testCompileSource}</target>
						</configuration>
					</execution>
				</executions>
			</plugin>
			
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>animal-sniffer-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13.2</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>