<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>
