<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.lenya</groupId>
    <artifactId>lenya-parent</artifactId>
    <version>2.2.0-SNAPSHOT</version>
    <relativePath>../org.apache.lenya.parent/pom.xml</relativePath>
  </parent>
  
  <groupId>org.apache.lenya</groupId>
  <artifactId>lenya-core-publication-impl</artifactId>
  <packaging>jar</packaging>
  <name>Apache Lenya Publication</name>
  <description>This module implements the publication concept</description>
  
  <dependencies>
  <dependency>
      <groupId>org.apache.lenya</groupId>
      <artifactId>lenya-core-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.lenya</groupId>
      <artifactId>lenya-core-impl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.lenya</groupId>
      <artifactId>lenya-core-publication-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.lenya</groupId>
      <artifactId>lenya-core-document-api</artifactId>
    </dependency>
    <!-- This dependencie is just cause by call to static DocumentLocator.getLocator
      in DefaultDocumentBuilder -->
    <dependency>
      <groupId>org.apache.lenya</groupId>
      <artifactId>lenya-core-document-impl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.lenya</groupId>
      <artifactId>lenya-core-repository-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.lenya</groupId>
      <artifactId>lenya-core-repository-impl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.lenya</groupId>
      <artifactId>lenya-core-utils</artifactId>
    </dependency>
     <dependency>
      <groupId>org.apache.lenya</groupId>
      <artifactId>lenya-core-proxy</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.lenya</groupId>
      <artifactId>lenya-core-identity</artifactId>
    </dependency>
<!--    <dependency>-->
<!--      <groupId>org.apache.lenya</groupId>-->
<!--      <artifactId>lenya-core-metadata</artifactId>-->
<!--    </dependency>-->
<!--    <dependency>-->
<!--      <groupId>org.apache.lenya</groupId>-->
<!--      <artifactId>lenya-core-sitemanagement</artifactId>-->
<!--    </dependency>-->
  <!-- TODO : see if all theses dependencies are required -->
    <dependency>
      <groupId>org.apache.cocoon</groupId>
      <artifactId>cocoon-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cocoon</groupId>
      <artifactId>cocoon-servlet-service-components</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cocoon</groupId>
      <artifactId>cocoon-template-impl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.cocoon</groupId>
      <artifactId>cocoon-flowscript-impl</artifactId>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.4</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
</project>
