<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.github.xeroapi</groupId>
    <artifactId>xero-java</artifactId>
    <packaging>jar</packaging>
    <name>xero-java</name>
    <version>13.0.0</version>
    <url>https://github.com/XeroAPI/Xero-Java</url>
    <description>This is the official Java SDK for Xero API</description>
    <licenses>
		<license>
			<name>MIT License</name>
			<url>http://www.opensource.org/licenses/mit-license.php</url>
		</license>
	</licenses>
	<distributionManagement>
		<snapshotRepository>
			<id>ossrh</id>
			<url>https://ossrh-staging-api.central.sonatype.com/content/repositories/snapshots</url>
		</snapshotRepository>
		<repository>
			<id>ossrh</id>
			<url>https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/</url>
		</repository>
	</distributionManagement>
    <developers>
        <developer>
            <name>Xero API Team</name>
            <email>api@xero.com</email>
            <organization>Xero</organization>
            <organizationUrl>https://developer.xero.com</organizationUrl>
        </developer>
    </developers>
    <scm>
        <connection>scm:git:git://github.com/XeroAPI/Xero-Java.git</connection>
        <developerConnection>scm:git:ssh://github.com:XeroAPI/Xero-Java.git</developerConnection>
        <url>http://github.com/XeroAPI/Xero-Java/tree/master</url>
    </scm>
    <dependencies>
		<dependency>
		    <groupId>com.auth0</groupId>
		    <artifactId>java-jwt</artifactId>
		    <version>4.4.0</version>
		</dependency>
		<dependency>
		    <groupId>com.auth0</groupId>
		    <artifactId>jwks-rsa</artifactId>
		    <version>0.22.1</version>
		</dependency>
		<dependency>
            <groupId>com.google.api-client</groupId>
            <artifactId>google-api-client</artifactId>
            <version>${google-api-client-version}</version>
        </dependency>
		<dependency>
			<groupId>com.googlecode.json-simple</groupId>
			<artifactId>json-simple</artifactId>
			<version>1.1.1</version>
			<exclusions>
				<!-- json-simple incorrectly includes junit in compile scope -->
				<exclusion>
					<groupId>junit</groupId>
					<artifactId>junit</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.17.0</version>
		</dependency>
		<dependency>
			<groupId>jakarta.servlet</groupId>
			<artifactId>jakarta.servlet-api</artifactId>
			<version>6.1.0</version>
		</dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>5.14.1</version>
            <scope>test</scope>
        </dependency>

        <!-- This will get hamcrest-core automatically -->
		<dependency>
			<groupId>org.hamcrest</groupId>
			<artifactId>hamcrest-all</artifactId>
			<version>1.3</version>
			<scope>test</scope>
		</dependency>
        <dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>2.0.16</version>
		</dependency>
		
	    <!-- JSON processing: jackson -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>${jackson-version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>${jackson-version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>${jackson-databind-version}</version>
		</dependency>
		<dependency>
			<groupId>com.github.joschi.jackson</groupId>
			<artifactId>jackson-datatype-threetenbp</artifactId>
			<version>${jackson-threetenbp-version}</version>
		</dependency>
		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-annotations</artifactId>
			<version>${swagger-annotations-version}</version>
		</dependency>
		
        <!-- HTTP client: jersey-client -->
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-client</artifactId>
            <version>${jersey-version}</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-multipart</artifactId>
            <version>${jersey-version}</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
            <version>${jersey-version}</version>
        </dependency>
        <!-- Base64 encoding that works in both JVM and Android -->
        <dependency>
            <groupId>com.brsanthu</groupId>
            <artifactId>migbase64</artifactId>
            <version>2.2</version>
        </dependency>

        <!-- test dependencies -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit-version}</version>
            <scope>test</scope>
        </dependency>
       
	</dependencies>
	<build>
		<finalName>Xero-Java-SDK</finalName>
		<plugins>	
			<plugin>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>3.1.3</version>
			</plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
                <configuration>
                    <source>11</source>
                    <target>11</target>
	            </configuration>
            </plugin>
			 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.3.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<configuration>
					<descriptorRefs>
						<descriptorRef>jar-with-dependencies</descriptorRef>
					</descriptorRefs>
				</configuration>
				<executions>
					<execution>
						<id>make-assembly</id> <!-- this is used for inheritance merges -->
						<phase>package</phase> <!-- bind to the packaging phase -->
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-pmd-plugin</artifactId>
				<version>3.25.0</version>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>findbugs-maven-plugin</artifactId>
				<version>3.0.5</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>3.4.0</version>
				<configuration>
					<webXml>example/src/main/webapp/WEB-INF/web.xml</webXml>
					<webResources>
						<resource>
							<!-- this is relative to the pom.xml directory -->
							<directory>example/src/main/webapp</directory>
						</resource>
						<resource>
							<!-- this is relative to the pom.xml directory -->
							 <targetPath>WEB-INF/classes</targetPath>
							<directory>example/src/main/resources</directory>
						</resource>
					</webResources>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.10.1</version>
				<configuration>
					<source>8</source>
				</configuration>
				<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>3.2.7</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>1.7.0</version>
				<extensions>true</extensions>
				<configuration>
					<serverId>ossrh</serverId>
					<nexusUrl>https://ossrh-staging-api.central.sonatype.com/</nexusUrl>
					<autoReleaseAfterClose>true</autoReleaseAfterClose>
				</configuration>
			</plugin>
			<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.5.0</version>
                <configuration>
                    <argLine>-Duser.timezone=GMT-08:00</argLine>
                </configuration>
            </plugin>
		</plugins>
	</build>
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-pmd-plugin</artifactId>
				<version>3.25.0</version>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>findbugs-maven-plugin</artifactId>
				<version>3.0.5</version>
				<configuration>
					<!-- Enables analysis which takes more memory but finds more bugs. If 
						you run out of memory, changes the value of the effort element to 'low'. -->
					<effort>Max</effort>
					<!-- Reports all bugs (other values are medium and max) -->
					<threshold>Low</threshold>
					<!-- Produces XML report -->
					<xmlOutput>true</xmlOutput>
				</configuration>
			</plugin>
		</plugins>
	</reporting>
	<properties>
		<!-- github server corresponds to entry in ~/.m2/settings.xml -->
		<github.global.server>github</github.global.server>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>11</java.version>
		<swagger-annotations-version>1.6.14</swagger-annotations-version>
		<google-api-client-version>2.7.0</google-api-client-version>
		<jersey-common-version>2.25.1</jersey-common-version>
		<jackson-version>2.18.0</jackson-version>
		<jackson-databind-version>2.18.0</jackson-databind-version>
		<jackson-threetenbp-version>2.15.2</jackson-threetenbp-version>
        <junit-version>4.13.2</junit-version>
        <org-apache-httpcomponents>4.5.3</org-apache-httpcomponents>
        <jersey-version>3.1.5</jersey-version>
        <threetenbp-version>2.6.4</threetenbp-version>
        <maven-plugin-version>1.0.0</maven-plugin-version>
        <feign-version>9.7.0</feign-version>
        <feign-form-version>2.1.0</feign-form-version>
        <oltu-version>1.0.1</oltu-version>
	</properties>
</project>
