<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>
	<parent>
		<groupId>org.apache.aries</groupId>
		<artifactId>parent</artifactId>
		<version>2.0.1</version>
		<relativePath>../../parent/pom.xml</relativePath>
	</parent>
	<groupId>org.apache.aries.tx-control</groupId>
	<artifactId>tx-control-service-xa</artifactId>
	<packaging>bundle</packaging>
	<name>OSGi Transaction Control Service - XA Transactions</name>
	<version>0.0.1-SNAPSHOT</version>

	<description>
        This bundle contains an OSGi Transaction Control Service implementation based on
        the Geronimo Transaction Manager. It is suitable for use with XA resources.
    </description>

	<scm>
		<connection>
            scm:svn:http://svn.apache.org/repos/asf/aries/trunk/tx-control/tx-control-service-xa
        </connection>
		<developerConnection>
            scm:svn:https://svn.apache.org/repos/asf/aries/trunk/tx-control/tx-control-service-xa
        </developerConnection>
		<url>
            http://svn.apache.org/viewvc/aries/trunk/tx-control/tx-control-service-xa
        </url>
	</scm>

	<properties>
		<aries.osgi.activator>
			org.apache.aries.tx.control.service.xa.impl.Activator
		</aries.osgi.activator>
		<aries.osgi.export.pkg>
			org.osgi.service.transaction.control
		</aries.osgi.export.pkg>
        <!-- 
            The JTA API package should be private as we don't share any of it, but we 
            Must take javax.transaction.xa from the outside 
        -->
		<aries.osgi.private.pkg>
			javax.resource.spi,
			javax.transaction,
			org.apache.aries.tx.control.service.common.*,
			org.apache.aries.tx.control.service.xa.*,
			org.apache.geronimo.transaction.*
		</aries.osgi.private.pkg>
		<!--
		  No transaction log at the moment. 
		  Also we must explicitly import javax.transaction.xa at zero so that we can pick it
		  up from the JRE.
		-->
		<aries.osgi.import.pkg>
			!javax.resource.*,
			!org.objectweb.howl.*,
			javax.transaction.xa;version=0,
			org.osgi.service.transaction.control,
			*
		</aries.osgi.import.pkg>
		<lastReleaseVersion>0.0.1-SNAPSHOT</lastReleaseVersion>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.aries.tx-control</groupId>
			<artifactId>tx-control-api</artifactId>
			<version>0.0.1-SNAPSHOT</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.aries.tx-control</groupId>
			<artifactId>tx-control-service-common</artifactId>
			<version>0.0.1-SNAPSHOT</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.geronimo.components</groupId>
			<artifactId>geronimo-transaction</artifactId>
			<version>3.1.3</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-jta_1.1_spec</artifactId>
			<version>1.1.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi.util.tracker</artifactId>
			<version>1.5.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi.core</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-all</artifactId>
			<version>1.9.5</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.aries.versioning</groupId>
				<artifactId>org.apache.aries.versioning.plugin</artifactId>
				<executions>
					<execution>
						<id>default-verify</id>
						<phase>verify</phase>
						<goals>
							<goal>version-check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>3.0.1</version>
                <configuration>
                    <instructions>
                        <Provide-Capability>osgi.service;objectClass="org.osgi.service.transaction.control.TransactionControl";osgi.local.enabled="true";osgi.xa.enabled="true";uses:="org.osgi.service.transaction.control"</Provide-Capability>
                    </instructions>
                </configuration>
            </plugin>
		</plugins>
	</build>
</project>