<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.apache.abdera</groupId>
    <artifactId>abdera</artifactId>
    <version>1.1.2</version>  
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>abdera-spring</artifactId>
  <packaging>bundle</packaging>
  <name>Abdera Spring Integration</name>  
  <version>1.1.2</version>  
  <description>Spring Integration Code for Abdera</description>  

  <properties>
    <topDir>${basedir}/..</topDir>
    <abdera.osgi.default.imports>
      org.springframework*;version="[2,4]",
      *
    </abdera.osgi.default.imports>
    <abdera.osgi.default.exports>
      org.apache.abdera.spring.*
    </abdera.osgi.default.exports>
  </properties>
  
  <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
      </dependency>
    <dependency>
      <groupId>org.apache.abdera</groupId>
      <artifactId>abdera-server</artifactId>
      <version>1.1.2</version>  
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>2.0.6</version>  
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-mock</artifactId>
      <version>2.0.6</version>  
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
