<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>io.kokuwa.micronaut</groupId>
	<artifactId>micronaut-openapi-codegen</artifactId>
	<version>4.5.0</version>

	<name>OpenAPI codegen for Micronaut</name>
	<description>This is an openapi generator for Micronaut.</description>
	<url>https://github.com/kokuwaio/micronaut-openapi-codegen</url>
	<inceptionYear>2019</inceptionYear>
	<organization>
		<name>Kokuwa.io</name>
		<url>http://kokuwa.io</url>
	</organization>
	<licenses>
		<license>
			<name>Apache-2.0</name>
			<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<developers>
		<developer>
			<id>stephan.schnabel</id>
			<name>Stephan Schnabel</name>
			<url>https://schnabel.org</url>
			<email>stephan@schnabel.org</email>
			<timezone>Europe/Berlin</timezone>
		</developer>
	</developers>

	<scm>
		<url>https://git.kokuwa.io/kokuwaio/micronaut-openapi-codegen</url>
		<connection>scm:git:https://git.kokuwa.io/kokuwaio/micronaut-openapi-codegen.git</connection>
		<developerConnection>scm:git:https://git.kokuwa.io/kokuwaio/micronaut-openapi-codegen.git</developerConnection>
		<tag>4.5.0</tag>
	</scm>
	<issueManagement>
		<system>forgejo</system>
		<url>https://git.kokuwa.io/kokuwaio/micronaut-openapi-codegen/issues</url>
	</issueManagement>
	<ciManagement>
		<system>woodpecker</system>
		<url>https://ci.kokuwa.io/repos/kokuwaio/micronaut-openapi-codegen</url>
	</ciManagement>
	<distributionManagement>
		<snapshotRepository>
			<id>sonatype.org</id>
			<url>https://central.sonatype.com/repository/maven-snapshots/</url>
		</snapshotRepository>
	</distributionManagement>

	<properties>
		<project.build.outputTimestamp>2025-07-17T07:13:05Z</project.build.outputTimestamp>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.release>17</maven.compiler.release>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>io.micronaut.platform</groupId>
				<artifactId>micronaut-platform</artifactId>
				<version>4.9.1</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>

		<!-- openapi -->
		<dependency>
			<groupId>org.openapitools</groupId>
			<artifactId>openapi-generator</artifactId>
			<version>7.14.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.openapitools</groupId>
			<artifactId>jackson-databind-nullable</artifactId>
			<version>0.2.6</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>com.fasterxml.jackson.core</groupId>
					<artifactId>jackson-databind</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- micronaut -->
		<dependency>
			<groupId>io.micronaut</groupId>
			<artifactId>micronaut-http</artifactId>
			<exclusions>
				<exclusion>
					<groupId>io.micronaut</groupId>
					<artifactId>micronaut-context</artifactId>
				</exclusion>
				<exclusion>
					<groupId>io.micronaut</groupId>
					<artifactId>micronaut-context-propagation</artifactId>
				</exclusion>
				<exclusion>
					<groupId>io.micronaut</groupId>
					<artifactId>micronaut-core-reactive</artifactId>
				</exclusion>
				<exclusion>
					<groupId>io.projectreactor</groupId>
					<artifactId>reactor-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>io.micronaut</groupId>
			<artifactId>micronaut-core</artifactId>
			<scope>provided</scope>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- test -->
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- generated sources -->
		<dependency>
			<groupId>jakarta.annotation</groupId>
			<artifactId>jakarta.annotation-api</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>jakarta.validation</groupId>
			<artifactId>jakarta.validation-api</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>javax.annotation</groupId>
			<artifactId>javax.annotation-api</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>javax.validation</groupId>
			<artifactId>validation-api</artifactId>
			<version>2.0.1.Final</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.micronaut</groupId>
			<artifactId>micronaut-http-client-core</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.micronaut.security</groupId>
			<artifactId>micronaut-security</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.micronaut.serde</groupId>
			<artifactId>micronaut-serde-api</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.micronaut.validation</groupId>
			<artifactId>micronaut-validation</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-aop</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-beans</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-expression</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-jcl</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

	</dependencies>

	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.14.0</version>
					<configuration>
						<showDeprecation>true</showDeprecation>
						<showWarnings>true</showWarnings>
						<failOnWarning>true</failOnWarning>
						<compilerArgument>-Xlint:all,-processing</compilerArgument>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>3.1.4</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-gpg-plugin</artifactId>
					<version>3.2.8</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-install-plugin</artifactId>
					<version>3.1.4</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-invoker-plugin</artifactId>
					<version>3.9.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>3.4.2</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>3.11.2</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-release-plugin</artifactId>
					<version>3.1.1</version>
					<configuration>
						<preparationProfiles>check</preparationProfiles>
						<releaseProfiles>deploy,release</releaseProfiles>
						<signTag>true</signTag>
						<scmReleaseCommitComment>@{prefix} prepare release @{releaseLabel} [CI SKIP]</scmReleaseCommitComment>
						<tagNameFormat>@{project.version}</tagNameFormat>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>3.3.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.21.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>3.3.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>3.5.3</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>build-helper-maven-plugin</artifactId>
					<version>3.6.1</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>tidy-maven-plugin</artifactId>
					<version>1.4.0</version>
				</plugin>
				<plugin>
					<groupId>org.sonatype.central</groupId>
					<artifactId>central-publishing-maven-plugin</artifactId>
					<version>0.8.0</version>
				</plugin>
				<plugin>
					<groupId>net.revelc.code.formatter</groupId>
					<artifactId>formatter-maven-plugin</artifactId>
					<version>2.27.0</version>
					<configuration>
						<configFile>${project.basedir}/src/eclipse/formatter.xml</configFile>
						<directories>
							<directory>${project.basedir}/src/main/java</directory>
							<directory>${project.basedir}/src/test/java</directory>
							<directory>${project.basedir}/src/it</directory>
						</directories>
					</configuration>
				</plugin>
				<plugin>
					<groupId>net.revelc.code</groupId>
					<artifactId>impsort-maven-plugin</artifactId>
					<version>1.12.0</version>
					<configuration>
						<removeUnused>true</removeUnused>
						<groups>java.,javax.,jakarta.,org.</groups>
						<directories>
							<directory>${project.basedir}/src/main/java</directory>
							<directory>${project.basedir}/src/test/java</directory>
							<directory>${project.basedir}/src/it</directory>
						</directories>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>

			<!-- run surefire tests -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<executions>
					<execution>
						<phase>test</phase>
						<goals>
							<goal>add-test-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>${project.basedir}/gen/main/java</source>
								<source>${project.basedir}/gen/test/java</source>
							</sources>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<executions>
					<execution>
						<id>generated-code</id>
						<phase>test</phase>
						<goals>
							<goal>testCompile</goal>
						</goals>
						<configuration>
							<compilerArgument>-Xlint:none</compilerArgument>
							<skip>${skipTests}</skip>
							<compilerArgument>-Xlint:all,-unchecked,-rawtypes,-serial,-processing</compilerArgument>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- run invoker tests -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-invoker-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>install</goal>
							<goal>integration-test</goal>
							<goal>verify</goal>
						</goals>
						<configuration>
							<cloneProjectsTo>${project.build.directory}/its</cloneProjectsTo>
							<mergeUserSettings>true</mergeUserSettings>
							<goals>verify</goals>
							<streamLogs>false</streamLogs>
							<streamLogsOnFailures>true</streamLogsOnFailures>
						</configuration>
					</execution>
				</executions>
			</plugin>

		</plugins>
	</build>

	<profiles>
		<profile>
			<id>dev</id>
			<activation>
				<property>
					<name>!env.CI</name>
				</property>
			</activation>
			<properties>
				 <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
			</properties>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>tidy-maven-plugin</artifactId>
						<executions>
							<execution>
								<phase>validate</phase>
								<goals>
									<goal>pom</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>net.revelc.code</groupId>
						<artifactId>impsort-maven-plugin</artifactId>
						<executions>
							<execution>
								<phase>validate</phase>
								<goals>
									<goal>sort</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>net.revelc.code.formatter</groupId>
						<artifactId>formatter-maven-plugin</artifactId>
						<executions>
							<execution>
								<phase>validate</phase>
								<goals>
									<goal>format</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>check</id>
			<activation>
				<property>
					<name>env.CI</name>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>tidy-maven-plugin</artifactId>
						<executions>
							<execution>
								<phase>validate</phase>
								<goals>
									<goal>check</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>net.revelc.code</groupId>
						<artifactId>impsort-maven-plugin</artifactId>
						<executions>
							<execution>
								<phase>validate</phase>
								<goals>
									<goal>check</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>net.revelc.code.formatter</groupId>
						<artifactId>formatter-maven-plugin</artifactId>
						<executions>
							<execution>
								<phase>validate</phase>
								<goals>
									<goal>validate</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>deploy</id>
			<build>
				<plugins>

					<!-- add source/javadoc -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
						<executions>
							<execution>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<executions>
							<execution>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<!-- sign before upload -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<executions>
							<execution>
								<goals>
									<goal>sign</goal>
								</goals>
								<configuration>
									<signer>bc</signer>
								</configuration>
							</execution>
						</executions>
					</plugin>

				</plugins>
			</build>
		</profile>
		<profile>
			<id>release</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.sonatype.central</groupId>
						<artifactId>central-publishing-maven-plugin</artifactId>
						<extensions>true</extensions>
						<configuration>
							<publishingServerId>sonatype.org</publishingServerId>
							<autoPublish>true</autoPublish>
							<waitUntil>published</waitUntil>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
