<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-->

<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>

	<parent>
		<groupId>org.apache.aries.cdi</groupId>
		<artifactId>org.apache.aries.cdi</artifactId>
		<version>${revision}</version>
		<relativePath>..</relativePath>
	</parent>

	<artifactId>org.apache.aries.cdi.extension.mp-jwt-auth</artifactId>
	<name>Apache Aries CDI - MicroProfile JWT Auth ${mp.jwt.auth.version} Using Apache Geronimo</name>
	<description>Apache Aries CDI - MicroProfile JWT Auth ${mp.jwt.auth.version} Using Apache Geronimo</description>

	<licenses>
		<license>
			<name>ASL 2.0</name>
			<url>https://www.apache.org/licenses/LICENSE-2.0</url>
		</license>
	</licenses>

	<scm>
		<connection>scm:git:git@github.com:apache/aries-cdi.git</connection>
		<developerConnection>scm:git:git@github.com:apache/aries-cdi.git</developerConnection>
		<tag>HEAD</tag>
		<url>https://github.com/apache/aries-cdi</url>
	</scm>

	<build>
		<plugins>
			<plugin>
				<groupId>biz.aQute.bnd</groupId>
				<artifactId>bnd-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>bnd-process</id>
						<configuration>
							<bnd><![CDATA[
								Export-Package: \
									org.eclipse.microprofile.auth.*,\
									org.eclipse.microprofile.jwt.*
								-includepackage: org.apache.geronimo.microprofile.impl.jwtauth.*
								-cdiannotations:
								-noclassforname: true
								-fixupmessages: "Split package...";is:=ignore
								-bundleannotations: \
									!org.eclipse.microprofile.*,\
									org.apache.aries.cdi.extension.mp.jwt.*
							]]></bnd>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>net.bytebuddy</groupId>
				<artifactId>byte-buddy-maven-plugin</artifactId>
				<version>${byte.buddy.version}</version>
				<executions>
					<execution>
						<goals>
							<goal>transform</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<transformations>
						<transformation>
							<plugin>org.apache.aries.cdi.build.tools.AddExtensionRequirement</plugin>
							<arguments>
								<argument>
									<index>1</index>
									<value>eclipse.microprofile.jwt-auth</value>
								</argument>
								<argument>
									<index>2</index>
									<value>${mp.jwt.auth.version}</value>
								</argument>
								<argument>
									<index>3</index>
									<value>org.eclipse.microprofile.**</value>
								</argument>
							</arguments>
						</transformation>
					</transformations>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>org.osgi</groupId>
						<artifactId>osgi.annotation</artifactId>
						<version>7.0.0</version>
					</dependency>
					<dependency>
						<groupId>org.apache.aries.cdi</groupId>
						<artifactId>org.apache.aries.cdi.build.tools</artifactId>
						<version>${revision}</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<dependency>
			<groupId>biz.aQute.bnd</groupId>
			<artifactId>biz.aQute.bnd.annotation</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.aries.cdi</groupId>
			<artifactId>org.apache.aries.cdi.extra</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.aries.cdi</groupId>
			<artifactId>org.apache.aries.cdi.extension.mp-config</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.aries.cdi</groupId>
			<artifactId>org.apache.aries.cdi.spi</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.felix</groupId>
			<artifactId>org.apache.felix.http.servlet-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-annotation_1.3_spec</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-atinject_1.0_spec</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-jaxrs_2.1_spec</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-jcdi_2.0_spec</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-json_1.1_spec</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eclipse.microprofile.jwt</groupId>
			<artifactId>microprofile-jwt-auth-api</artifactId>
			<version>${mp.jwt.auth.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.geronimo</groupId>
			<artifactId>geronimo-jwt-auth</artifactId>
			<version>1.0.4</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi.namespace.extender</artifactId>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi.namespace.implementation</artifactId>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi.namespace.service</artifactId>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi.service.cdi</artifactId>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi.service.http.whiteboard</artifactId>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi.service.jaxrs</artifactId>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>osgi.annotation</artifactId>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>osgi.core</artifactId>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.apache.aries.cdi</groupId>
				<artifactId>org.apache.aries.cdi.bom</artifactId>
				<version>${project.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.apache.felix</groupId>
				<artifactId>org.apache.felix.gogo.bom</artifactId>
				<version>1.0.2</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<profiles>
		<profile>
			<id>experimental</id>

			<properties>
				<maven.test.skip>false</maven.test.skip>
				<johnzon.version>1.2.8</johnzon.version>
				<jax.rs.whiteboard.version>1.0.7</jax.rs.whiteboard.version>
			</properties>

			<dependencies>
				<dependency>
					<groupId>org.apache.johnzon</groupId>
					<artifactId>johnzon-osgi</artifactId>
					<version>${johnzon.version}</version>
					<scope>runtime</scope>
				</dependency>
				<dependency>
					<groupId>org.apache.aries.jax.rs</groupId>
					<artifactId>org.apache.aries.jax.rs.whiteboard</artifactId>
					<version>${jax.rs.whiteboard.version}</version><!--$NO-MVN-MAN-VER$-->
					<scope>runtime</scope>
				</dependency>

				<dependency>
					<groupId>org.eclipse.microprofile.jwt</groupId>
					<artifactId>microprofile-jwt-auth-tck</artifactId>
					<version>${mp.jwt.auth.version}</version>
					<scope>test</scope>
					<exclusions>
						<exclusion>
							<groupId>javax.enterprise</groupId>
							<artifactId>cdi-api</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.testng</groupId>
							<artifactId>testng</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.jboss.shrinkwrap</groupId>
							<artifactId>shrinkwrap-api</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.jboss.arquillian.container</groupId>
							<artifactId>arquillian-container-spi</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.jboss.arquillian.container</groupId>
							<artifactId>
								arquillian-container-test-spi
							</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.jboss.arquillian.testng</groupId>
							<artifactId>arquillian-testng-container</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.jboss.shrinkwrap.resolver</groupId>
							<artifactId>
								shrinkwrap-resolver-depchain
							</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.eclipse.microprofile.jwt</groupId>
					<artifactId>microprofile-jwt-auth-tck</artifactId>
					<version>${mp.jwt.auth.version}</version>
					<type>test-jar</type>
					<scope>test</scope>
					<exclusions>
						<exclusion>
							<groupId>javax.enterprise</groupId>
							<artifactId>cdi-api</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.testng</groupId>
							<artifactId>testng</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.jboss.shrinkwrap.resolver</groupId>
							<artifactId>shrinkwrap-resolver-depchain</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.jboss.shrinkwrap</groupId>
							<artifactId>shrinkwrap-api</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.jboss.arquillian.container</groupId>
							<artifactId>arquillian-container-spi</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.jboss.arquillian.container</groupId>
							<artifactId>arquillian-container-test-spi</artifactId>
						</exclusion>
						<exclusion>
							<groupId>org.jboss.arquillian.testng</groupId>
							<artifactId>arquillian-testng-container</artifactId>
						</exclusion>
					</exclusions>
				</dependency>

				<dependency>
					<groupId>org.osgi</groupId>
					<artifactId>org.osgi.test.assertj.framework</artifactId>
				</dependency>
				<dependency>
					<groupId>org.osgi</groupId>
					<artifactId>org.osgi.test.junit4</artifactId>
				</dependency>
			</dependencies>

			<build>
				<plugins>
					<plugin>
						<groupId>biz.aQute.bnd</groupId>
						<artifactId>bnd-maven-plugin</artifactId>
						<executions>
							<!-- Integration Test Configuration -->
							<execution>
								<id>bnd-process-test</id>
								<goals>
									<goal>bnd-process-tests</goal>
								</goals>
								<configuration>
									<bnd><![CDATA[
										p = org.apache.aries.cdi.extension.mp.jwt.test
										Export-Package: !${p}.tb*,${p}.*
										Import-Package:	\
											!net.jcip.annotations.*,\
											!org.testng.*,\
											!org.bouncycastle.*,\
											*
										Private-Package: \
											com.nimbusds.*,\
											net.minidev.json.*,\
											org.eclipse.microprofile.jwt.tck.util
										-make: (*).(jar); type=bnd; recipe="${.}/bnd/$1.bnd"
										-includeresource: \
											@microprofile-jwt-auth-tck-[0-9.]*-tests.jar!/privateKey.pem,\
											@microprofile-jwt-auth-tck-[0-9.]*-tests.jar!/Token2.json,\
											tb01.jar
										-fixupmessages: "Split package...";is:=ignore
									]]></bnd>
									<testCases>junit4</testCases>
									<includeClassesDir>false</includeClassesDir>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<artifactId>maven-jar-plugin</artifactId>
						<executions>
							<execution>
								<id>test-jar</id>
								<goals>
									<goal>test-jar</goal>
								</goals>
								<configuration>
									<archive>
										<manifestFile>${project.build.testOutputDirectory}/META-INF/MANIFEST.MF</manifestFile>
									</archive>
									<excludes>
										<exclude>org/apache/aries/cdi/extension/mp/jwt/test/tb*/**</exclude>
									</excludes>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>biz.aQute.bnd</groupId>
						<artifactId>bnd-resolver-maven-plugin</artifactId>
						<configuration>
							<bundles>
								<bundle>target/${project.build.finalName}-tests.jar</bundle>
							</bundles>
							<scopes>
								<scope>compile</scope>
								<scope>runtime</scope>
								<scope>test</scope>
							</scopes>
						</configuration>
						<executions>
							<execution>
								<id>owb-resolve</id>
								<phase>package</phase>
								<goals>
									<goal>resolve</goal>
								</goals>
								<configuration>
									<bndruns>
										<bndrun>owb-itest.bndrun</bndrun>
									</bndruns>
								</configuration>
							</execution>
							<execution>
								<id>weld-resolve</id>
								<phase>package</phase>
								<goals>
									<goal>resolve</goal>
								</goals>
								<configuration>
									<bndruns>
										<bndrun>weld-itest.bndrun</bndrun>
									</bndruns>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<!-- This is the plugin runs the OSGi integration tests. -->
					<plugin>
						<groupId>biz.aQute.bnd</groupId>
						<artifactId>bnd-testing-maven-plugin</artifactId>
						<configuration>
							<bundles>
								<bundle>target/${project.build.finalName}-tests.jar</bundle>
							</bundles>
							<scopes>
								<scope>compile</scope>
								<scope>runtime</scope>
								<scope>test</scope>
							</scopes>
						</configuration>
						<executions>
							<execution>
								<id>testing-owb</id>
								<goals>
									<goal>testing</goal>
								</goals>
								<configuration>
									<bndruns>
										<bndrun>owb-itest.bndrun</bndrun>
									</bndruns>
								</configuration>
							</execution>
							<execution>
								<id>testing-weld</id>
								<goals>
									<goal>testing</goal>
								</goals>
								<configuration>
									<bndruns>
										<bndrun>weld-itest.bndrun</bndrun>
									</bndruns>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<artifactId>maven-resources-plugin</artifactId>
						<executions>
							<execution>
								<id>default-testResources</id>
								<phase>process-test-resources</phase>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<artifactId>maven-compiler-plugin</artifactId>
						<executions>
							<execution>
								<id>default-testCompile</id>
								<phase>test-compile</phase>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
