<?xml version="1.0" encoding="UTF-8"?>

<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
  http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->

<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>
  <parent>
    <groupId>org.apache.directory.server</groupId>
    <artifactId>apacheds-parent</artifactId>
    <version>1.5.6-SNAPSHOT</version>
  </parent>
  <artifactId>apacheds-server-sar</artifactId>
  <name>ApacheDS Server Sar (JBoss 3.x)</name>

  <description>
    A server archive file for ApacheDS to run within a JBoss 3.x instance
  </description>

  <packaging>sar</packaging>  

  <dependencies>
    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-server-ssl</artifactId>
      <version>${pom.version}</version>
    </dependency>  

    <dependency>
      <groupId>org.apache.directory.daemon</groupId>
      <artifactId>daemon-bootstrappers</artifactId>
    </dependency>

    <dependency>
      <groupId>jboss</groupId>
      <artifactId>jboss-system</artifactId>
      <version>3.2.3</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>nlog4j</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
    </dependency>
  </dependencies>

  <repositories>
    <repository>
      <id>mojo.snapshots</id>
      <name>Codehaus Snapshot Repository</name>
      <url>http://snapshots.repository.codehaus.org/</url>
    </repository>
  </repositories>

  <build>
    <plugins>
      <plugin>
        <extensions>true</extensions>
        <groupId>org.apache.directory.server</groupId>
        <artifactId>apacheds-sar-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>
aopalliance:aopalliance
            </exclude>
            <exclude>
jasperreports:jasperreports
            </exclude>
            <exclude>
asm:asm-util
            </exclude>
            <exclude>
freemarker:freemarker
            </exclude>
            <exclude>
asm:asm
            </exclude>
            <exclude>
com.jamonapi:jamon
            </exclude>
            <exclude>
velocity:velocity-dep
            </exclude>
            <exclude>
commons-attributes:commons-attributes-compiler
            </exclude>
            <exclude>
commons-attributes:commons-attributes-api
            </exclude>
            <exclude>
cglib:cglib
            </exclude>
            <exclude>
qdox:qdox
            </exclude>
            <exclude>
oro:oro
            </exclude>
            <exclude>
org.springframework:spring-aop
            </exclude>
            <exclude>
velocity:velocity
            </exclude>
            <exclude>
aspectwerkz:aspectwerkz-core
            </exclude>
            <exclude>
xml-apis:xml-apis
            </exclude>
            <exclude>
commons-pool:commons-pool
            </exclude>
            <exclude>
xerces:xerces
            </exclude>
            <exclude>
ant:ant
            </exclude>
            <exclude>
jboss:jboss-system
            </exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
