<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>org.apache.felix</groupId>
  <artifactId>org.apache.felix.ipojo.online.manipulator.test</artifactId>
  <version>1.3.0-SNAPSHOT</version>
  <name>Online Manipulator Test</name>
  <packaging>jar</packaging>
    <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>

		  <!--
		  <plugin>
				<groupId>org.ops4j.pax.exam</groupId>
				<artifactId>maven-paxexam-plugin</artifactId>
				<executions>
					<execution>
					<id>generate-paxexam-config</id>
					<goals>
						<goal>generate-paxexam-config</goal>
					</goals>
					</execution>
				</executions>
				<configuration>
				<settings>
					<platform>felix</platform>
				</settings>
				</configuration>
			</plugin> -->
		</plugins>
	</build>

	<dependencies>
	<dependency>
 	 	<groupId>org.apache.felix</groupId>
 	 	<artifactId>org.osgi.core</artifactId>
 	 	<version>1.2.0</version>
 	 </dependency>

	<!--
		Pax Exam API:
	-->
	<dependency>
		<groupId>org.ops4j.pax.exam</groupId>
		<artifactId>pax-exam</artifactId>
		<version>0.4.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.4.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.4.0</version>
	</dependency>
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.5</version>
		<type>jar</type>
		<scope>test</scope>
	</dependency>


	<!-- TinyBundle -->
	<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.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.ipojo</artifactId>
 	 	<version>${pom.version}</version>
 	 </dependency>
 	  <dependency>
 	 	<groupId>org.apache.felix</groupId>
 	 	<artifactId>org.apache.felix.ipojo.online.manipulator</artifactId>
 	 	<version>${pom.version}</version>
 	 </dependency>

	</dependencies>
</project>
