<project>
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.monark-markets</groupId>
	<artifactId>primary-api-client</artifactId>
	<version>1.3.10</version>
	<packaging>jar</packaging>

	<name>Primary Offerings Web API Java Client</name>
	<description>Primary Offerings Web API Java Client</description>
	<url>https://www.monark-markets.com</url>

	<licenses>
		<license>
			<name>Monark SDK License</name>
			<url>https://monark-markets.com/sdk-license.html</url>
			<distribution>repo</distribution>
			<comments>Proprietary SDK license. For use only with Monark Markets APIs.</comments>
		</license>
	</licenses>

	<scm>
		<url>https://github.com/Monark-Markets/monark-sdk-java/tree/master</url>
		<connection>scm:git:git@github.com:Monark-Markets/monark-sdk-java.git</connection>
		<developerConnection>scm:git:git@github.com:Monark-Markets/monark-sdk-java.git</developerConnection>
	</scm>

	<developers>
		<developer>
			<id>eduardo-monark</id>
			<name>Eduardo Sanchez-Ros</name>
			<email>eduardo@monark-markets.com</email>
		</developer>
	</developers>

	<properties>
		<java.version>17</java.version>
		<maven.compiler.source>${java.version}</maven.compiler.source>
		<maven.compiler.target>${java.version}</maven.compiler.target>
		<revision>1.0.0-SNAPSHOT</revision>

		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<httpclient-version>5.5.1</httpclient-version>
		<jackson-core-version>2.20.1</jackson-core-version>
		<jackson-annotations-version>2.20</jackson-annotations-version>
		<jackson-jaxrs-json-provider-version>2.20.1</jackson-jaxrs-json-provider-version>
		<jackson-datatype-jsr310-version>2.20.1</jackson-datatype-jsr310-version>
		<jackson-databind-version>2.20.1</jackson-databind-version>
		<jackson-databind-nullable-version>0.2.8</jackson-databind-nullable-version>
		<jakarta-annotation-version>3.0.0</jakarta-annotation-version>
		<jakarta.validation-api.version>3.1.1</jakarta.validation-api.version>
		<lombok.version>1.18.42</lombok.version>

		<!-- Plugins -->
		<openapi.generator.version>7.17.0</openapi.generator.version>
		<build-helper-maven-plugin.version>3.6.1</build-helper-maven-plugin.version>
		<central-publishing-maven-plugin.version>0.9.0</central-publishing-maven-plugin.version>
		<maven-compiler-plugin.version>3.14.1</maven-compiler-plugin.version>
		<maven-gpg-plugin.version>3.2.8</maven-gpg-plugin.version>
		<maven-source-plugin.version>3.3.1</maven-source-plugin.version>
		<maven-javadoc-plugin.version>3.12.0</maven-javadoc-plugin.version>
	</properties>

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

		<!-- HTTP client: apache client -->
		<dependency>
			<groupId>org.apache.httpcomponents.client5</groupId>
			<artifactId>httpclient5</artifactId>
			<version>${httpclient-version}</version>
		</dependency>

		<!-- JSON processing: jackson -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>${jackson-core-version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>${jackson-annotations-version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>${jackson-databind-version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.jaxrs</groupId>
			<artifactId>jackson-jaxrs-json-provider</artifactId>
			<version>${jackson-jaxrs-json-provider-version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.datatype</groupId>
			<artifactId>jackson-datatype-jsr310</artifactId>
			<version>${jackson-datatype-jsr310-version}</version>
		</dependency>
		<dependency>
			<groupId>org.openapitools</groupId>
			<artifactId>jackson-databind-nullable</artifactId>
			<version>${jackson-databind-nullable-version}</version>
		</dependency>
		<dependency>
			<groupId>jakarta.annotation</groupId>
			<artifactId>jakarta.annotation-api</artifactId>
			<version>${jakarta-annotation-version}</version>
		</dependency>
		<dependency>
			<groupId>jakarta.validation</groupId>
			<artifactId>jakarta.validation-api</artifactId>
			<version>${jakarta.validation-api.version}</version>
		</dependency>
	</dependencies>

	<build>
		<sourceDirectory>${project.build.directory}/generated-sources/openapi/src/main/java</sourceDirectory>

		<plugins>
			<plugin>
				<groupId>org.openapitools</groupId>
				<artifactId>openapi-generator-maven-plugin</artifactId>
				<version>${openapi.generator.version}</version>
				<executions>
					<execution>
						<goals>
							<goal>generate</goal>
						</goals>
						<configuration>
							<inputSpec>${project.basedir}/po-web-api.json</inputSpec>
							<generatorName>java</generatorName>
							<library>apache-httpclient</library>
							<templateDirectory>${project.basedir}/templates/java</templateDirectory>
							<generateApiTests>false</generateApiTests>
							<generateModelTests>false</generateModelTests>
							<skipValidateSpec>true</skipValidateSpec>
							<output>${project.build.directory}/generated-sources/openapi</output>

							<configOptions>
								<useJakartaEe>true</useJakartaEe>
								<useLombokAnnotations>false</useLombokAnnotations>
								<serializationLibrary>jackson</serializationLibrary>
								<dateLibrary>java8</dateLibrary>
								<modelPropertyNaming>camelCase</modelPropertyNaming>
								<additionalModelTypeAnnotations>@JsonInclude(JsonInclude.Include.NON_NULL)</additionalModelTypeAnnotations>
								<hideGenerationTimestamp>true</hideGenerationTimestamp>
								<openApiNullable>false</openApiNullable>

								<groupId>com.monark-markets</groupId>
								<artifactId>primary-api-client</artifactId>
								<javaVersion>17</javaVersion>

								<invokerPackage>com.monarkmarkets.primary.client.invoker</invokerPackage>
								<apiPackage>com.monarkmarkets.primary.client.api</apiPackage>
								<modelPackage>com.monarkmarkets.primary.client.model</modelPackage>
								<packageName>com.monarkmarkets.primary.client</packageName>

								<licenseName>Monark SDK License</licenseName>
								<licenseUrl>https://monark-markets.com/sdk-license.html</licenseUrl>

								<developerEmail>eduardo@monark-markets.com</developerEmail>
								<developerName>Eduardo Sanchez-Ros</developerName>
								<developerOrganization>Monark Markets</developerOrganization>
								<developerOrganizationUrl>https://www.monark-markets.com</developerOrganizationUrl>

								<scmUrl>https://github.com/Monark-Markets/monark-sdk-java/tree/master</scmUrl>
								<scmConnection>scm:git:git@github.com:Monark-Markets/monark-sdk-java.git</scmConnection>
								<scmDeveloperConnection>scm:git:git@github.com:Monark-Markets/monark-sdk-java.git</scmDeveloperConnection>
							</configOptions>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<version>${build-helper-maven-plugin.version}</version>
				<executions>
					<execution>
						<id>add-source</id>
						<phase>generate-sources</phase>
						<goals><goal>add-source</goal></goals>
						<configuration>
							<sources>
								<source>${project.build.directory}/generated-sources/openapi/src/main/java</source>
							</sources>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.sonatype.central</groupId>
				<artifactId>central-publishing-maven-plugin</artifactId>
				<version>${central-publishing-maven-plugin.version}</version>
				<extensions>true</extensions>
				<configuration>
					<publishingServerId>ossrh-monark-public</publishingServerId>
					<autoPublish>true</autoPublish>
					<waitUntil>published</waitUntil>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${maven-compiler-plugin.version}</version>
				<configuration>
					<release>${java.version}</release>
				</configuration>
			</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>
					</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>
				<configuration>
					<doclint>none</doclint>
				</configuration>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>flatten-maven-plugin</artifactId>
				<version>1.7.3</version>
				<configuration>
					<updatePomFile>true</updatePomFile>
					<flattenMode>resolveCiFriendliesOnly</flattenMode>
				</configuration>
				<executions>
					<execution>
						<id>flatten</id>
						<phase>process-resources</phase>
						<goals>
							<goal>flatten</goal>
						</goals>
					</execution>
					<execution>
						<id>flatten.clean</id>
						<phase>clean</phase>
						<goals>
							<goal>clean</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>