<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>ipojo.tests</groupId>
  <artifactId>tests.transactions</artifactId>
  <packaging>jar</packaging>
  <version>1.3.0-SNAPSHOT</version>
  <name>iPOJO Transaction Handler Test Suite</name>
  <dependencies>
    <dependency>
  		<groupId>org.apache.felix</groupId>
  		<artifactId>org.apache.felix.ipojo</artifactId>
  		<version>${pom.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.apache.felix</groupId>
  		<artifactId>org.apache.felix.ipojo.metadata</artifactId>
  		<version>${pom.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.apache.felix</groupId>
  		<artifactId>org.apache.felix.ipojo.annotations</artifactId>
  		<version>${pom.version}</version>
  	</dependency>
  	<dependency>
  		<groupId>org.apache.felix</groupId>
  		<artifactId>org.apache.felix.transaction</artifactId>
  		<version>0.9.0-SNAPSHOT</version>
  	</dependency>
  	  	<dependency>
  		<groupId>org.apache.felix</groupId>
  		<artifactId>org.apache.felix.ipojo.handler.transaction</artifactId>
  		<version>${pom.version}</version>
  	</dependency>
  <!--
		Pax Exam API:
	-->
	<dependency>
		<groupId>org.ops4j.pax.exam</groupId>
		<artifactId>pax-exam</artifactId>
		<version>0.6.0</version>
	</dependency>
	<!--
		During runtime Pax Exam will discover the OSGi container to use by
		searching metadata available into classpath. Pax Exam comes with a
		default container that uses [Pax Runner] for implementing the
		container requirements:
	-->
	<dependency>
		<groupId>org.ops4j.pax.exam</groupId>
		<artifactId>pax-exam-container-default
		</artifactId>
		<version>0.6.0</version>
	</dependency>
	<!--
		If your test code is based on JUnit you will have to have the Junit
		support artifact:
	-->
	<dependency>
		<groupId>org.ops4j.pax.exam</groupId>
		<artifactId>pax-exam-junit</artifactId>
		<version>0.6.0</version>
	</dependency>
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.5</version>
		<type>jar</type>
		<scope>test</scope>
	</dependency>

	<dependency>
		<groupId>org.ops4j.pax.swissbox</groupId>
		<artifactId>pax-swissbox-tinybundles</artifactId>
		<version>1.0.0</version>
	</dependency>
	<dependency>
		<groupId>org.apache.felix</groupId>
		<artifactId>org.apache.felix.ipojo.tinybundles.bundleAsiPOJO</artifactId>
		<version>${pom.version}</version>
	</dependency>
	 <dependency>
			<groupId>xerces</groupId>
			<artifactId>xercesImpl</artifactId>
			<version>2.4.0</version>
		</dependency>
	 <dependency>
	 	<groupId>org.ops4j.pax.logging</groupId>
	 	<artifactId>pax-logging-api</artifactId>
	 	<version>1.3.0</version>
	 </dependency>
	 <dependency>
	 	<groupId>org.ops4j.pax.logging</groupId>
	 	<artifactId>pax-logging-service</artifactId>
	 	<version>1.3.0</version>
	 </dependency>

	</dependencies>

	<repositories>
		<repository>
			<id>ops4j.releases</id>
			<name>OPS4J Release</name>
			<url> http://repository.ops4j.org/maven2/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

		<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.5</source>
					<target>1.5</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.servicemix.tooling</groupId>
				<artifactId>depends-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>generate-depends-file</id>
						<goals>
							<goal>generate-depends-file</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			</plugins>
			</build>
</project>
