<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>net.magiccode</groupId>
	<artifactId>kilauea</artifactId>
	<version>0.1.7</version>
	<description>Provides annotations for entity-json mapping dto generation</description>
	<url>https://github.com/CodeWeazle/kilauea</url>

	<properties>
		<java.version>17</java.version>
		<jackson.version>2.16.0</jackson.version>
		<log4j.version>2.21.1</log4j.version>
		<lombok.version>1.18.30</lombok.version>
		<javapoet.version>1.13.0</javapoet.version>
		<auto-service.version>1.1.1</auto-service.version>
		<jaxb-api.version>2.3.1</jaxb-api.version>
		<jaxb-runtime.version>2.3.2</jaxb-runtime.version>
		<delombok.output>target/delombok</delombok.output>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>${jackson.version}</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>${jackson.version}</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>${jackson.version}</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.dataformat</groupId>
			<artifactId>jackson-dataformat-xml</artifactId>
			<version>${jackson.version}</version>
		</dependency>

		<!-- Java 8 date/time support according to jsr310 -->
		<dependency>
		    <groupId>com.fasterxml.jackson.datatype</groupId>
		    <artifactId>jackson-datatype-jsr310</artifactId>
		   <version>${jackson.version}</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jdk8 -->
		<dependency>
		    <groupId>com.fasterxml.jackson.datatype</groupId>
		    <artifactId>jackson-datatype-jdk8</artifactId>
		    <version>${jackson.version}</version>
		</dependency>
		
		<!-- allows usage of JaxB annotations -->		
		<dependency>
			<groupId>com.fasterxml.jackson.module</groupId>
			<artifactId>jackson-module-jaxb-annotations</artifactId>
			<version>${jackson.version}</version>
		</dependency>

		<dependency>
			<groupId>javax.xml.bind</groupId>
			<artifactId>jaxb-api</artifactId>
			<version>${jaxb-api.version}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jaxb</groupId>
			<artifactId>jaxb-runtime</artifactId>
			<version>${jaxb-runtime.version}</version>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>${lombok.version}</version>
		</dependency>

		<dependency>
			<groupId>com.squareup</groupId>
			<artifactId>javapoet</artifactId>
			<version>${javapoet.version}</version>
		</dependency>

		<dependency>
			<groupId>com.google.auto.service</groupId>
			<artifactId>auto-service</artifactId>
			<version>${auto-service.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>${log4j.version}</version>
		</dependency>

	</dependencies>

	<build>
		<sourceDirectory>src/main/java</sourceDirectory>

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.6.1</version>

				<configuration>
					<source>${java.version}</source>
					<target>${java.version}</target>
					<compilerArgs>
	                    <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
	                    <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
					</compilerArgs>
				</configuration>
				
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>3.3.0</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<phase>verify</phase>
						<goals>
							<goal>jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.projectlombok</groupId>
				<artifactId>lombok-maven-plugin</artifactId>
				<version>1.18.20.0</version>
				<configuration>
					<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
					<outputDirectory>${delombok.output}</outputDirectory>
					<addOutputDirectory>false</addOutputDirectory>
					<encoding>${project.build.sourceEncoding}</encoding>
				</configuration>
				<executions>
					<execution>
						<phase>generate-sources</phase>
						<goals>
							<goal>delombok</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.6.0</version>
				<configuration>
					<show>public</show>
					<nohelp>true</nohelp>
					<sourcepath>${delombok.output}</sourcepath>
				</configuration>
				<executions>
					<execution>
						<id>javadoc-jar</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
							<!-- switch on dependency-driven aggregation -->
							<includeDependencySources>true</includeDependencySources>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-gpg-plugin</artifactId>
				<version>3.1.0</version>
				<configuration>
				  <keyname>CDB4C379E59BDB0637A37786E38088ACA8297A36</keyname>
				  <passphraseServerId>CDB4C379E59BDB0637A37786E38088ACA8297A36</passphraseServerId>
				  <gpgArguments>
				    <arg>--pinentry-mode</arg>
				    <arg>loopback</arg>
				  </gpgArguments>
				</configuration>
				<executions>
					<execution>
						<id>sign-artifacts</id>
						<phase>verify</phase>
						<goals>
							<goal>sign</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
			  <groupId>org.sonatype.central</groupId>
			  <artifactId>central-publishing-maven-plugin</artifactId>
			  <version>0.1.2</version>
			  <extensions>true</extensions>
			  <configuration>
			    <publishingServerId>central</publishingServerId>
			    <tokenEnabled>true</tokenEnabled>
			  </configuration>
			</plugin>

		</plugins>
	</build>

	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.6.0</version>
				<configuration>
					<stylesheetfile>${basedir}/src/main/javadoc/stylesheet.css</stylesheetfile>
					<show>public</show>
				</configuration>
			</plugin>
		</plugins>
	</reporting>

	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
		</license>
	</licenses>


	<developers>
		<developer>
			<name>Volker Karlmeier</name>
			<email>volker@magiccode.net</email>
			<timezone>Europe/London</timezone>
			<url>https://github.com/CodeWeazle/kilauea</url>
		</developer>
	</developers>

	<scm>
		<connection>scm:git:git://github.com/CodeWeazle/kilauea.git</connection>
		<developerConnection>scm:git:ssh://github.com:CodeWeazle/kilauea.git</developerConnection>
		<url>https://maven.pkg.github.com/CodeWeazle/kilauea</url>
	</scm>

</project>

