<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">


	<parent>
		<groupId>org.eclipse.gemini.naming</groupId>
		<artifactId>org.eclipse.gemini.naming.parent</artifactId>
		<version>1.1.0-SNAPSHOT</version>
	</parent>

	<modelVersion>4.0.0</modelVersion>
	<groupId>org.eclipse.gemini.naming</groupId>
	<artifactId>gemini-naming-integration-testing</artifactId>

	<packaging>jar</packaging>
	<name>Integration Tests for Gemini Naming</name>

	<dependencies>
		<dependency>     
			<groupId>org.eclipse</groupId>     
			<artifactId>osgi</artifactId>     
			<version>3.5.0.v20090520</version> 
		</dependency> 
            
		<dependency>
		    <groupId>org.slf4j</groupId>
		    <artifactId>com.springsource.slf4j.api</artifactId>
		    <version>1.5.0</version>
		</dependency>

		<dependency>
		    <groupId>org.slf4j</groupId>
		    <artifactId>com.springsource.slf4j.org.apache.commons.logging</artifactId>
		    <version>1.5.0</version>
		</dependency>

		            
           <dependency>
		    <groupId>org.slf4j</groupId>
		    <artifactId>com.springsource.slf4j.log4j</artifactId>
		    <version>1.5.0</version>
		</dependency>
      
	      <dependency>
			<groupId>org.osgi</groupId>
			<artifactId>osgi_R4_compendium</artifactId>
			<version>1.0</version>
			<type>jar</type>
			<scope>provided</scope>
		</dependency>

		<!-- Dependency on the Gemini Naming Bundle -->
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>org.eclipse.gemini.naming</artifactId>
			<version>${project.version}</version>
			<type>jar</type>
			<scope>provided</scope>
		</dependency>

		<!--
			dependency on the Spring OSGi Test Framework for integration testing
		-->
		
 		<dependency>     
			<groupId>org.springframework.osgi</groupId>     
			<artifactId>spring-osgi-test</artifactId>     
			<version>1.2.1</version>     
		</dependency>

		<!--
			The following dependencies seem to be required by the Spring OSGi
			Test Framework
		-->
		<dependency>
    		<groupId>org.apache.log4j</groupId>
    		<artifactId>com.springsource.org.apache.log4j</artifactId>
    		<version>1.2.15</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.osgi</groupId>
			<artifactId>spring-osgi-annotation</artifactId>
			<version>1.2.1</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.osgi</groupId>
			<artifactId>spring-osgi-extender</artifactId>
			<version>1.2.1</version>
		</dependency>

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>com.springsource.org.apache.commons.logging</artifactId>
			<version>1.1.1</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.objectweb.asm</groupId>
			<artifactId>com.springsource.org.objectweb.asm</artifactId>
			<version>2.2.3</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>
</project>

