<?xml version="1.0" encoding="UTF-8"?>
<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>dev.hctbst</groupId>
	<artifactId>jsonschema2pojo-spring-data-couchbase</artifactId>
	<version>1.0.0</version>
	<packaging>jar</packaging>

	<name>jsonschema2pojo Spring Data Couchbase</name>
	<description>jsonschema2pojo extension to generate Spring Data Couchbase specific POJOs</description>
	<url>https://github.com/hectorbst/jsonschema2pojo-spring-data-couchbase</url>

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

	<developers>
		<developer>
			<id>HectorBst</id>
			<name>Hector Basset</name>
			<email>hector.basset.dev@gmail.com</email>
			<url>https://github.com/HectorBst</url>
		</developer>
	</developers>

	<scm>
		<connection>scm:git:git://github.com/hectorbst/jsonschema2pojo-spring-data-couchbase.git</connection>
		<developerConnection>scm:git:ssh://github.com:hectorbst/jsonschema2pojo-spring-data-couchbase.git
		</developerConnection>
		<url>https://github.com/hectorbst/jsonschema2pojo-spring-data-couchbase</url>
	</scm>

	<properties>
		<maven.compiler.source>8</maven.compiler.source>
		<maven.compiler.target>8</maven.compiler.target>
		<jsonschema2pojo.version>1.0.2</jsonschema2pojo.version>
		<spring-boot.version>2.3.4.RELEASE</spring-boot.version>
		<junit.version>5.7.0</junit.version>
		<assertj.version>3.17.2</assertj.version>
		<mockito.version>3.5.13</mockito.version>
		<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
		<maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
		<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
		<nexus-staging-maven-plugin.version>1.6.8</nexus-staging-maven-plugin.version>
		<jacoco-maven-plugin.version>0.8.6</jacoco-maven-plugin.version>
		<sonar.projectKey>HectorBst_jsonschema2pojo-spring-data-couchbase</sonar.projectKey>
		<sonar.organization>hectorbst</sonar.organization>
		<sonar.host.url>https://sonarcloud.io</sonar.host.url>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.jsonschema2pojo</groupId>
			<artifactId>jsonschema2pojo-core</artifactId>
			<version>${jsonschema2pojo.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-couchbase</artifactId>
			<version>${spring-boot.version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.platform</groupId>
			<artifactId>junit-platform-runner</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-params</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>${assertj.version}</version>
			<scope>test</scope>
		</dependency>

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

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.junit</groupId>
				<artifactId>junit-bom</artifactId>
				<version>${junit.version}</version>
				<scope>import</scope>
				<type>pom</type>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<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>
					<execution>
						<id>report</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.jsonschema2pojo</groupId>
				<artifactId>jsonschema2pojo-maven-plugin</artifactId>
				<version>${jsonschema2pojo.version}</version>
				<executions>
					<execution>
						<goals>
							<goal>generate</goal>
						</goals>
						<configuration>
							<sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
							<targetPackage>
								dev.hctbst.jsonschema2pojo.springframework.data.couchbase.definitions
							</targetPackage>
							<classNameSuffix>Def</classNameSuffix>
							<generateBuilders>false</generateBuilders>
							<includeSetters>false</includeSetters>
							<includeAdditionalProperties>false</includeAdditionalProperties>
							<useDoubleNumbers>true</useDoubleNumbers>
							<useLongIntegers>true</useLongIntegers>
							<dateType>java.time.LocalDate</dateType>
							<timeType>java.time.OffsetTime</timeType>
							<dateTimeType>java.time.OffsetDateTime</dateTimeType>
							<removeOldOutput>true</removeOldOutput>
							<annotationStyle>none</annotationStyle>
							<useOptionalForGetters>false</useOptionalForGetters>
							<initializeCollections>false</initializeCollections>
							<serializable>true</serializable>
							<includeConstructors>true</includeConstructors>
							<formatTypeMapping>
								<int32>java.lang.Integer</int32>
								<int64>java.lang.Long</int64>
								<float32>java.lang.Float</float32>
								<float64>java.lang.Double</float64>
								<timeUnit>java.util.concurrent.TimeUnit</timeUnit>
								<generationStrategy>
									org.springframework.data.couchbase.core.mapping.id.GenerationStrategy
								</generationStrategy>
								<queryIndexDirection>org.springframework.data.couchbase.core.index.QueryIndexDirection
								</queryIndexDirection>
							</formatTypeMapping>
						</configuration>
					</execution>
				</executions>
			</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-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>${maven-javadoc-plugin.version}</version>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-gpg-plugin</artifactId>
				<version>${maven-gpg-plugin.version}</version>
				<executions>
					<execution>
						<id>sign-artifacts</id>
						<phase>verify</phase>
						<goals>
							<goal>sign</goal>
						</goals>
						<configuration>
							<gpgArguments>
								<arg>--pinentry-mode</arg>
								<arg>loopback</arg>
							</gpgArguments>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<version>${nexus-staging-maven-plugin.version}</version>
				<extensions>true</extensions>
				<configuration>
					<serverId>ossrh</serverId>
					<nexusUrl>https://oss.sonatype.org/</nexusUrl>
					<autoReleaseAfterClose>true</autoReleaseAfterClose>
				</configuration>
			</plugin>
		</plugins>
	</build>

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