<?xml version="1.0"?>
<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/maven-v4_0_0.xsd">

	<modelVersion>4.0.0</modelVersion>

	<groupId>com.nimbusds</groupId>
	<artifactId>oauth2-oidc-sdk</artifactId>
	<version>11.18</version>
	<packaging>jar</packaging>

	<name>OAuth 2.0 SDK with OpenID Connect extensions</name>
	<description>
		OAuth 2.0 SDK with OpenID Connection extensions for developing client
		and server applications.
	</description>
	<url>https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions</url>

	<organization>
		<name>Connect2id Ltd.</name>
		<url>https://connect2id.com</url>
	</organization>

	<licenses>
		<license>
			<name>Apache License, version 2.0</name>
			<url>https://www.apache.org/licenses/LICENSE-2.0.html</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<scm>
		<connection>scm:git:https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions.git</connection>
		<developerConnection>scm:git:git@bitbucket.org:connect2id/oauth-2.0-sdk-with-openid-connect-extensions.git</developerConnection>
		<url>https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions</url>
		<tag>11.18</tag>
	</scm>

	<developers>
		<developer>
			<id>vdzhuvinov</id>
			<name>Vladimir Dzhuvinov</name>
			<email>vd@connect2id.com</email>
		</developer>
	</developers>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<repositories>
		<repository>
			<id>shibboleth-repo</id>
			<name>Shibboleth repo for OpenSAML dependencies</name>
			<url>https://build.shibboleth.net/nexus/content/repositories/releases/</url>
		</repository>
		<repository>
			<id>maven_central</id>
			<name>Maven Central</name>
			<url>https://repo.maven.apache.org/maven2/</url>
		</repository>
	</repositories>

	<dependencies>
		<dependency>
			<groupId>com.github.stephenc.jcip</groupId>
			<artifactId>jcip-annotations</artifactId>
			<version>1.0-1</version>
		</dependency>
		<dependency>
			<groupId>com.nimbusds</groupId>
			<artifactId>content-type</artifactId>
			<version>2.3</version>
		</dependency>
		<dependency>
			<groupId>net.minidev</groupId>
			<artifactId>json-smart</artifactId>
			<version>2.5.1</version>
		</dependency>
		<dependency>
			<groupId>com.nimbusds</groupId>
			<artifactId>lang-tag</artifactId>
			<version>1.7</version>
		</dependency>
		<dependency>
			<groupId>com.nimbusds</groupId>
			<artifactId>nimbus-jose-jwt</artifactId>
			<version>9.40</version>
		</dependency>
		<dependency>
			<groupId>com.google.crypto.tink</groupId>
			<artifactId>tink</artifactId>
			<version>1.13.0</version>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcprov-jdk18on</artifactId>
			<version>1.78</version>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcpkix-jdk18on</artifactId>
			<version>1.78</version>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.cryptomator</groupId>
			<artifactId>siv-mode</artifactId>
			<version>1.4.4</version>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.opensaml</groupId>
			<artifactId>opensaml-core</artifactId>
			<version>3.4.6</version>
			<optional>true</optional>
			<exclusions>
				<exclusion>
					<groupId>org.bouncycastle</groupId>
					<artifactId>bcprov-jdk15on</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.opensaml</groupId>
			<artifactId>opensaml-saml-api</artifactId>
			<version>3.4.6</version>
			<optional>true</optional>
			<exclusions>
				<exclusion>
					<!-- switch to org.bouncycastle:bcprov-jdk18on -->
					<groupId>org.bouncycastle</groupId>
					<artifactId>bcprov-jdk15on</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.opensaml</groupId>
			<artifactId>opensaml-saml-impl</artifactId>
			<version>3.4.6</version>
			<optional>true</optional>
			<exclusions>
				<exclusion>
					<!-- switch to org.bouncycastle:bcprov-jdk18on -->
					<groupId>org.bouncycastle</groupId>
					<artifactId>bcprov-jdk15on</artifactId>
				</exclusion>
				<exclusion>
					<!-- not required for SAML assertion processing -->
					<groupId>org.apache.velocity</groupId>
					<artifactId>velocity</artifactId>
				</exclusion>
				<exclusion>
					<!-- not required for SAML assertion processing -->
					<groupId>org.apache.httpcomponents</groupId>
					<artifactId>httpclient</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<!-- Transitive dep of OpenSAML, bump to more secure -->
			<groupId>org.apache.santuario</groupId>
			<artifactId>xmlsec</artifactId>
			<version>2.3.4</version>
			<optional>true</optional>
		</dependency>
		<dependency>
			<!-- Transitive dep of OpenSAML, bump to more secure -->
			<groupId>com.fasterxml.woodstox</groupId>
			<artifactId>woodstox-core</artifactId>
			<version>6.4.0</version>
			<optional>true</optional>
		</dependency>
		<dependency>
			<!-- Transitive dep of OpenSAML, bump to more secure -->
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>32.0.1-jre</version>
			<optional>true</optional>
		</dependency>
		<dependency>
			<!-- Transitive dep of OpenSAML, bump to more secure -->
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.15</version>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>jakarta.servlet</groupId>
			<artifactId>jakarta.servlet-api</artifactId>
			<version>5.0.0</version>
			<scope>provided</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.0.1</version>
			<scope>provided</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13.2</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>net.jadler</groupId>
			<artifactId>jadler-all</artifactId>
			<version>1.3.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-math3</artifactId>
			<version>3.6.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<version>2.25.0</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.thetransactioncompany</groupId>
			<artifactId>pretty-json</artifactId>
			<version>1.5</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>4.5.14</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.12.1</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
					<fork>true</fork>
					<compilerArgument>-Xlint</compilerArgument>
				</configuration>
				<dependencies>
					<!-- Using the eclipse compiler allows for different source and target,
                            which is a good thing (outweighing that this is a rarely used combination,
                            and most people use javac) This should also allow us to run maven builds
                            on a JRE and not a JDK. -->
					<dependency>
						<groupId>org.codehaus.plexus</groupId>
						<artifactId>plexus-compiler-eclipse</artifactId>
						<version>2.14.2</version>
					</dependency>
				</dependencies>
				<executions>
					<execution>
						<id>default-compile</id>
					</execution>
					<execution>
						<id>jdk8-compile</id>
						<phase>compile</phase>
						<goals>
							<goal>compile</goal>
						</goals>
						<configuration>
							<source>1.7</source>
							<target>1.8</target>
							<outputDirectory>${project.build.outputDirectory}_jdk8</outputDirectory>
						</configuration>
					</execution>
					<execution>
						<id>jdk11-compile</id>
						<phase>compile</phase>
						<goals>
							<goal>compile</goal>
						</goals>
						<configuration>
							<source>1.7</source>
							<target>11</target>
							<outputDirectory>${project.build.outputDirectory}_jdk11</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>3.3.0</version>
				<configuration>
					<archive>
						<manifestEntries>
							<Build-Date>${timestamp}</Build-Date>
							<Build-Number>${buildNumber}</Build-Number>
							<Build-Tag>${project.scm.tag}</Build-Tag>
							<Built-By>connect2id</Built-By>
						</manifestEntries>
						<!-- Make sure MANIFEST.MF generated by maven-bundle-plugin is used for final JAR -->
						<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
						<manifest>
							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
						</manifest>
					</archive>
				</configuration>
				<executions>
					<execution>
						<id>default-jar</id>
					</execution>
					<execution>
						<id>jdk8-jar</id>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
							<classesDirectory>${project.build.outputDirectory}_jdk8</classesDirectory>
							<classifier>jdk8</classifier>
						</configuration>
					</execution>
					<execution>
						<id>jdk11-jar</id>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
							<archive>
								<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
								<manifestEntries>
									<Automatic-Module-Name>com.nimbusds.oauth2.sdk</Automatic-Module-Name>
								</manifestEntries>
							</archive>
							<classesDirectory>${project.build.outputDirectory}_jdk11</classesDirectory>
							<classifier>jdk11</classifier>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>3.3.0</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.6.3</version>
				<configuration>
                    <source>8</source>
                    <author>true</author>
					<version>true</version>
					<use>true</use>
					<linksource>true</linksource>
					<windowtitle>Nimbus OAuth 2.0 SDK with OpenID Connect 1.0 extensions v${project.version}
					</windowtitle>
					<doctitle>Nimbus OAuth 2.0 SDK with OpenID Connect 1.0 extensions v${project.version}</doctitle>
					<overview>${basedir}/src/main/javadoc/overview.html
					</overview>
				</configuration>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>3.1.1</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<version>3.0.1</version>
				<configuration>
					<useReleaseProfile>false</useReleaseProfile>
					<goals>deploy</goals>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-gpg-plugin</artifactId>
				<version>3.1.0</version>
				<executions>
					<execution>
						<id>sign-artifacts</id>
						<phase>verify</phase>
						<goals>
							<goal>sign</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>buildnumber-maven-plugin</artifactId>
				<version>3.1.0</version>
				<executions>
					<execution>
						<phase>validate</phase>
						<goals>
							<goal>create</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<getRevisionOnlyOnce>true</getRevisionOnlyOnce>
					<doCheck>false</doCheck>
					<doUpdate>false</doUpdate>
					<timestampFormat>{0,date,yyyyMMdd.HHmmss.SSS}</timestampFormat>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.2.3</version>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.8.11</version>
				<executions>
					<execution>
						<id>jacoco-init</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
					<execution>
						<id>jacoco-report</id>
						<phase>test</phase>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>biz.aQute.bnd</groupId>
				<artifactId>bnd-maven-plugin</artifactId>
				<version>6.3.1</version>
				<extensions>true</extensions>
				<executions>
					<execution>
						<id>bnd-process</id>
						<goals>
							<goal>bnd-process</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<bnd>
						<![CDATA[
							-exportcontents: *
							-noimportjava: true
							-noextraheaders: true
							-snapshot: SNAPSHOT
							Import-Package: \
								org.bouncycastle.*;resolution:=optional, \
								org.cryptomator.siv.*;resolution:=optional, \
								org.opensaml.*;resolution:=optional, \
								org.joda.time.*;resolution:=optional, \
								net.shibboleth.utilities.java.support.*;resolution:=optional, \
								javax.servlet.*;version="[3,5)";resolution:=optional, \
								jakarta.servlet.*;version="[5,7)";resolution:=optional, \
								*
						]]>
					</bnd>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<version>1.6.13</version>
				<extensions>true</extensions>
				<configuration>
					<serverId>ossrh</serverId>
					<nexusUrl>https://oss.sonatype.org/</nexusUrl>
					<autoReleaseAfterClose>true</autoReleaseAfterClose>
				</configuration>
			</plugin>
			<plugin>
				<!-- run with mvn org.owasp:dependency-check-maven:check -->
				<groupId>org.owasp</groupId>
				<artifactId>dependency-check-maven</artifactId>
				<version>10.0.3</version>
				<executions>
					<execution>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</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>
