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

	<groupId>io.github.jony1748</groupId>
	<artifactId>ida-client</artifactId>
	<version>1.0.0</version>
	<packaging>jar</packaging>

	<name>ida-client</name>
	<description>Reusable IDA Client Library for OTP, Authentication and eKYC</description>
	<url>https://github.com/National-ID-Program-Ethiopia/ida-client-service-java.git</url>

	<!-- License Information (Required for Maven Central) -->
	<licenses>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<!-- Developer Information (Required for Maven Central) -->
	<developers>
		<developer>
			<name>Amanuel Gulti</name>
			<email>amanueljony1748@gmail.com</email>
			<organization>National ID Ethiopia(Fayda)</organization>
			<organizationUrl>https://id.et</organizationUrl>
		</developer>
		<developer>
			<name>Cherinet Hailu</name>
			<email>cherinethailu619@gmail.com</email>
			<organization>National ID Ethiopia(Fayda)</organization>
			<organizationUrl>https://id.et</organizationUrl>
		</developer>
	</developers>

	<!-- SCM Information (Required for Maven Central) -->
	<scm>
		<connection>scm:git:git@github.com:National-ID-Program-Ethiopia/ida-client-service-java.git</connection>
		<developerConnection>scm:git:git@github.com:National-ID-Program-Ethiopia/ida-client-service-java.git</developerConnection>
		<url>https://github.com/National-ID-Program-Ethiopia/ida-client-service-java</url>
		<tag>HEAD</tag>
	</scm>


	<properties>
		<java.version>11</java.version>
		<maven.compiler.source>${java.version}</maven.compiler.source>
		<maven.compiler.target>${java.version}</maven.compiler.target>
		<maven.compiler.plugin.version>3.11.0</maven.compiler.plugin.version>

		<!-- Spring version removed - library is framework-agnostic -->
		<jose4j.version>0.9.6</jose4j.version>
		<bouncycastle.version>1.78</bouncycastle.version>
		<logback.version>1.2.11</logback.version>
		<logstash.logback.encoder.version>7.2</logstash.logback.encoder.version>
		<lombok.version>1.18.32</lombok.version>
		<aspectj.version>1.9.7</aspectj.version>
		<junit-jupiter.version>5.8.2</junit-jupiter.version>
	</properties>

	<dependencies>
		<!-- Removed Spring dependencies for plain Java compatibility -->

		<!-- Lombok -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>${lombok.version}</version>
			<scope>provided</scope>
		</dependency>

		<!-- Logging -->
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>${logback.version}</version>
		</dependency>
		<dependency>
			<groupId>net.logstash.logback</groupId>
			<artifactId>logstash-logback-encoder</artifactId>
			<version>${logstash.logback.encoder.version}</version>
		</dependency>

		<!-- Crypto -->
		<dependency>
			<groupId>org.bitbucket.b_c</groupId>
			<artifactId>jose4j</artifactId>
			<version>${jose4j.version}</version>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcprov-jdk18on</artifactId>
			<version>${bouncycastle.version}</version>
		</dependency>

		<!-- Mosip dependencies -->
		<dependency>
			<groupId>io.mosip.kernel</groupId>
			<artifactId>kernel-core</artifactId>
			<version>1.2.0.1-B1</version>
		</dependency>
		<dependency>
			<groupId>io.mosip.kernel</groupId>
			<artifactId>kernel-keymanager-service</artifactId>
			<version>1.2.0.1-B1</version>
			<classifier>lib</classifier>
			<exclusions>
				<exclusion>
					<groupId>ch.qos.logback</groupId>
					<artifactId>logback-classic</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>io.mosip.kernel</groupId>
			<artifactId>kernel-pdfgenerator-itext</artifactId>
			<version>1.2.0.1-B1</version>
		</dependency>

		<!-- Jakarta EE APIs -->
		<dependency>
			<groupId>javax.ws.rs</groupId>
			<artifactId>javax.ws.rs-api</artifactId>
			<version>2.1.1</version>
		</dependency>
		<dependency>
			<groupId>com.sun.activation</groupId>
			<artifactId>javax.activation</artifactId>
			<version>1.2.0</version>
		</dependency>
		<dependency>
			<groupId>javax.xml.bind</groupId>
			<artifactId>jaxb-api</artifactId>
			<version>2.3.1</version>
		</dependency>
		<dependency>
			<groupId>com.sun.xml.bind</groupId>
			<artifactId>jaxb-core</artifactId>
			<version>2.3.0.1</version>
		</dependency>
		<dependency>
			<groupId>com.sun.xml.bind</groupId>
			<artifactId>jaxb-impl</artifactId>
			<version>2.3.2</version>
		</dependency>

		<!-- HTTP Client -->
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>4.5.13</version>
		</dependency>

		<!-- AspectJ -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>${aspectj.version}</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.16.1</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.datatype</groupId>
			<artifactId>jackson-datatype-jsr310</artifactId>
			<version>2.16.1</version> <!-- match your Jackson version -->
		</dependency>
		<!-- Test -->
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>${junit-jupiter.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<version>${junit-jupiter.version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<!-- Compiler -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${maven.compiler.plugin.version}</version>
				<configuration>
					<source>${maven.compiler.source}</source>
					<target>${maven.compiler.target}</target>
					<release>${java.version}</release>
				</configuration>
			</plugin>

			<!-- Surefire -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.0.0-M5</version>
				<configuration>
					<useModulePath>false</useModulePath>
				</configuration>
			</plugin>

			<!-- Maven Source Plugin (Required for Maven Central) -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>3.2.1</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Maven Javadoc Plugin (Required for Maven Central) -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.4.1</version>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<doclint>none</doclint>
					<failOnError>false</failOnError>
				</configuration>
			</plugin>

			<!-- Maven GPG Plugin for signing (Required for Maven Central) -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-gpg-plugin</artifactId>
				<version>3.0.1</version>
				<executions>
					<execution>
						<id>sign-artifacts</id>
						<phase>verify</phase>
						<goals>
							<goal>sign</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Maven Nexus Staging Plugin (For Maven Central) -->
			<plugin>
				<groupId>org.sonatype.central</groupId>
				<artifactId>central-publishing-maven-plugin</artifactId>
				<version>0.7.0</version>
				<extensions>true</extensions>
				<configuration>
					<autoPublish>true</autoPublish>
					<waitUntil>published</waitUntil>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<profiles>
		<profile>
			<id>release</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<properties>
				<gpg.executable>gpg</gpg.executable>
			</properties>
		</profile>
	</profiles>


	<!-- Distribution Management (For Maven Central) -->
	<distributionManagement>
		<repository>
			<id>central</id>
			<name>Maven Central</name>
			<url>https://central.sonatype.com/api/v1/publishing</url>
		</repository>
	</distributionManagement>
</project>
