<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.tinybundles</groupId>
  		 <artifactId>pax-tinybundles-core</artifactId>
  		 <version>0.5.0-SNAPSHOT</version>
  	</dependency>
  	<dependency>
  		<groupId>org.apache.felix</groupId>
  		<artifactId>org.apache.felix.ipojo.pax.exam.target</artifactId>
  		<version>0.9.0-SNAPSHOT</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>1.2.0</version>
 	 </dependency>
  	 <dependency>
 	 	<groupId>org.apache.felix</groupId>
 	 	<artifactId>org.apache.felix.ipojo</artifactId>
 	 	<version>1.3.0-SNAPSHOT</version>
 	 </dependency>
 	 
	</dependencies>
</project>
