<?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-metrics</artifactId>
	<name>Apache Aries CDI - MicroProfile Metrics ${mp.metrics.version} Using Apache Geronimo</name>
	<description>Apache Aries CDI - MicroProfile Metrics ${mp.metrics.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.metrics.*
								-includepackage: org.apache.geronimo.microprofile.metrics.*
								-cdiannotations:
								-noclassforname: true
								-fixupmessages: "Split package...";is:=ignore
								-bundleannotations: \
									!org.eclipse.microprofile.metrics.*,\
									org.apache.aries.cdi.extension.mp.metrics.*
							]]></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.metrics</value>
								</argument>
								<argument>
									<index>2</index>
									<value>${mp.metrics.version}</value>
								</argument>
								<argument>
									<index>3</index>
									<value>org.eclipse.microprofile.metrics.annotation.*</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.spi</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-interceptor_1.2_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.eclipse.microprofile.metrics</groupId>
			<artifactId>microprofile-metrics-api</artifactId>
			<version>${mp.metrics.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.geronimo</groupId>
			<artifactId>geronimo-metrics</artifactId>
			<version>1.0.3</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.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.osgi</groupId>
					<artifactId>org.osgi.service.http.whiteboard</artifactId>
				</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.metrics.test
										Export-Package: !${p}.tb*,${p}.*
										-make: (*).(jar); type=bnd; recipe="${.}/bnd/$1.bnd"
										-includeresource: \
											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/metrics/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>
