<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>org.mandas</groupId>
	<artifactId>docker-client</artifactId>
	<version>9.0.4</version>
	<packaging>jar</packaging>
	<name>docker-client</name>
	<description>A docker client</description>
	<url>https://github.com/dmandalidis/docker-client</url>

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

	<scm>
		<connection>scm:git:https://github.com/dmandalidis/docker-client</connection>
		<developerConnection>scm:git:git@github.com:dmandalidis/docker-client</developerConnection>
		<url>https://github.com/dmandalidis/docker-client</url>
		<tag>v9.0.4</tag>
	</scm>

	<developers>
		<developer>
			<id>dmandalidis</id>
			<name>Dimitris Mandalidis</name>
			<email>dimitris.mandalidis@gmail.com</email>
		</developer>
	</developers>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		
		<maven.compiler.release>17</maven.compiler.release>

		<version.slf4j>2.0.17</version.slf4j>
		<version.jackson>2.19.2</version.jackson>
		<version.jersey>3.1.10</version.jersey>
		<version.immutables>2.11.1</version.immutables>
		<version.apache.compress>1.28.0</version.apache.compress>
		<version.unixsocket>0.38.23</version.unixsocket>
		<version.apache.lang>2.6</version.apache.lang>
		<version.bcpkix>1.81</version.bcpkix>
		<version.google.oauth2>1.30.1</version.google.oauth2>

		<version.junit>4.13.2</version.junit>
		<version.mockito>5.18.0</version.mockito>
		<version.logback>1.5.18</version.logback>
		<version.jimfs>1.3.1</version.jimfs>
		<version.awaitility>4.3.0</version.awaitility>
		<version.mockwebserver>5.1.0</version.mockwebserver>
		<version.spotify.hamcrest>1.3.2</version.spotify.hamcrest>

		<version.plugin.spotbugs>4.9.3.2</version.plugin.spotbugs>
		<version.plugin.compiler>3.14.0</version.plugin.compiler>
		<version.spotbugs>4.9.3</version.spotbugs>
		<version.plugin.checkstyle>3.6.0</version.plugin.checkstyle>
		<version.plugin.enforcer>3.6.1</version.plugin.enforcer>
		<version.plugin.jar>3.4.2</version.plugin.jar>
		<version.plugin.projectinfo>3.9.0</version.plugin.projectinfo>
		<version.plugin.source>3.3.1</version.plugin.source>
		<version.plugin.failsafe>3.5.3</version.plugin.failsafe>
		<version.plugin.javadoc>3.11.2</version.plugin.javadoc>
		<version.plugin.jacoco>0.8.13</version.plugin.jacoco>
		<version.plugin.publishing>0.8.0</version.plugin.publishing>
		<version.plugin.gpg>3.2.8</version.plugin.gpg>
		<version.plugin.surefire>3.5.3</version.plugin.surefire>
		<version.plugin.bundle>6.0.0</version.plugin.bundle>
		<version.plugin.pmd>3.27.0</version.plugin.pmd>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.fasterxml.jackson</groupId>
				<artifactId>jackson-bom</artifactId>
				<version>${version.jackson}</version>
				<scope>import</scope>
				<type>pom</type>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<!--compile deps -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${version.slf4j}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-compress</artifactId>
			<version>${version.apache.compress}</version>
		</dependency>
		<dependency>
			<groupId>com.github.jnr</groupId>
			<artifactId>jnr-unixsocket</artifactId>
			<version>${version.unixsocket}</version>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcpkix-jdk18on</artifactId>
			<version>${version.bcpkix}</version>
		</dependency>
		<dependency>
			<groupId>org.immutables</groupId>
			<artifactId>value</artifactId>
			<version>${version.immutables}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.glassfish.jersey.core</groupId>
			<artifactId>jersey-client</artifactId>
			<version>${version.jersey}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.inject</groupId>
			<artifactId>jersey-hk2</artifactId>
			<version>${version.jersey}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.connectors</groupId>
			<artifactId>jersey-apache-connector</artifactId>
			<version>${version.jersey}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.media</groupId>
			<artifactId>jersey-media-json-jackson</artifactId>
			<version>${version.jersey}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.jakarta.rs</groupId>
			<artifactId>jackson-jakarta-rs-json-provider</artifactId>
		</dependency>

		<!--test deps -->
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>${version.apache.lang}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${version.junit}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<version>${version.mockito}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>${version.logback}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.google.jimfs</groupId>
			<artifactId>jimfs</artifactId>
			<version>${version.jimfs}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.awaitility</groupId>
			<artifactId>awaitility</artifactId>
			<version>${version.awaitility}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.squareup.okhttp3</groupId>
			<artifactId>mockwebserver</artifactId>
			<version>${version.mockwebserver}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.spotify</groupId>
			<artifactId>hamcrest-jackson</artifactId>
			<version>${version.spotify.hamcrest}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.spotify</groupId>
			<artifactId>hamcrest-pojo</artifactId>
			<version>${version.spotify.hamcrest}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${version.plugin.compiler}</version>
				<configuration>
					<release>${maven.compiler.release}</release>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<version>${version.plugin.checkstyle}</version>
				<configuration>
					<includeTestSourceDirectory>true</includeTestSourceDirectory>
					<violationSeverity>warning</violationSeverity>
					<excludes>**\/Immutable*.java</excludes>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-enforcer-plugin</artifactId>
				<version>${version.plugin.enforcer}</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>${version.plugin.projectinfo}</version>
			</plugin>
			<plugin>
				<groupId>com.github.spotbugs</groupId>
				<artifactId>spotbugs-maven-plugin</artifactId>
				<version>${version.plugin.spotbugs}</version>
				<executions>
					<execution>
						<phase>verify</phase>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<excludeFilterFile>findbugs-exclude.xml</excludeFilterFile>
				</configuration>
				<dependencies>
				    <dependency>
				      <groupId>com.github.spotbugs</groupId>
				      <artifactId>spotbugs</artifactId>
				      <version>${version.spotbugs}</version>
				    </dependency>
				</dependencies>
			</plugin>
			<plugin>
		        <artifactId>maven-pmd-plugin</artifactId>
		        <version>${version.plugin.pmd}</version>
		        <executions>
		          <execution>
		            <goals>
		              <goal>check</goal>
		            </goals>
		          </execution>
		        </executions>
		        <configuration>
		          <printFailingErrors>true</printFailingErrors>
		          <rulesets>
		            <ruleset>./pmd-build.xml</ruleset>
		          </rulesets>
		          <excludeRoots>
		            <excludeRoot>target/generated-sources</excludeRoot>
		          </excludeRoots>
		        </configuration>
		    </plugin>
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
				<version>${version.plugin.bundle}</version>
				<extensions>true</extensions>
				<executions>
					<execution>
						<id>bundle-manifest</id>
						<phase>process-classes</phase>
						<goals>
							<goal>manifest</goal>
						</goals>
					</execution>
					<execution>
						<id>bundle-install</id>
						<phase>install</phase>
						<goals>
							<goal>install</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<artifactId>maven-jar-plugin</artifactId>
				<version>${version.plugin.jar}</version>
				<configuration>
					<archive>
						<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
						<addMavenDescriptor>false</addMavenDescriptor>
					</archive>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>${version.plugin.source}</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>${version.plugin.surefire}</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-failsafe-plugin</artifactId>
				<version>${version.plugin.failsafe}</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>${version.plugin.javadoc}</version>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<release>${maven.compiler.release}</release>
					<doclint>syntax,reference,html,missing</doclint>
					<sourceFileExcludes>
						<sourceFileExclude>**/generated-sources/**</sourceFileExclude>
					</sourceFileExcludes>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>${version.plugin.jacoco}</version>
				<configuration>
					<excludes>
						<exclude>org/mandas/**/Immutable*</exclude>
					</excludes>
				</configuration>
				<executions>
					<execution>
						<id>jacoco-initialize</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
					<execution>
						<id>jacoco-site</id>
						<phase>test</phase>
						<goals>
							<goal>report</goal>
						</goals>
						<configuration>
							<append>true</append>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>deploy-artifacts</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.sonatype.central</groupId>
						<artifactId>central-publishing-maven-plugin</artifactId>
						<version>${version.plugin.publishing}</version>
						<extensions>true</extensions>
						<configuration>
							<publishingServerId>central</publishingServerId>
							<autoPublish>true</autoPublish>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<version>${version.plugin.gpg}</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>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
