<?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.
-->
<!--
  @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
-->

<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.studio</groupId>
    <artifactId>parent</artifactId>
    <version>1.1.0.v20080331</version>
  </parent>

  <artifactId>repository</artifactId>
  <version>${repository.version}</version>
  <name>Apache Directory Studio Repository</name>
  <packaging>pom</packaging>

  <organization>
    <name>Apache Software Foundation</name>
    <url>http://www.apache.org</url>
  </organization>

  <dependencies>
    <!-- Apache Directory Studio launchers binaries -->
    <dependency>
      <groupId>org.apache.directory.studio</groupId>
      <artifactId>launcher-linux-x86</artifactId>
      <type>tar.gz</type>
    </dependency>
    <dependency>
      <groupId>org.apache.directory.studio</groupId>
      <artifactId>launcher-linux-x86_64</artifactId>
      <type>tar.gz</type>
    </dependency>
    <dependency>
      <groupId>org.apache.directory.studio</groupId>
      <artifactId>launcher-linux-ppc</artifactId>
      <type>tar.gz</type>
    </dependency>
    <dependency>
      <groupId>org.apache.directory.studio</groupId>
      <artifactId>launcher-macosx</artifactId>
      <type>tar.gz</type>
    </dependency>
    <dependency>
      <groupId>org.apache.directory.studio</groupId>
      <artifactId>launcher-win32</artifactId>
      <type>tar.gz</type>
    </dependency>

    <!-- Eclipse RCP artifacts -->
    <dependency>
      <groupId>com.ibm</groupId>
      <artifactId>icu</artifactId>
    </dependency>
    <dependency>
      <groupId>javax</groupId>
      <artifactId>servlet</artifactId>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jsp</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>el</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>logging</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core</groupId>
      <artifactId>jobs</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core</groupId>
      <artifactId>filesystem</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core.filesystem.linux</groupId>
      <artifactId>ppc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core.filesystem.linux</groupId>
      <artifactId>x86</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core.filesystem.linux</groupId>
      <artifactId>x86_64</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core.filesystem.win32</groupId>
      <artifactId>x86</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core.filesystem</groupId>
      <artifactId>macosx</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core</groupId>
      <artifactId>resources</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse</groupId>
      <artifactId>rcp</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox</groupId>
      <artifactId>app</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox</groupId>
      <artifactId>common</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox</groupId>
      <artifactId>launcher</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse</groupId>
      <artifactId>osgi</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.swt.gtk.linux</groupId>
      <artifactId>x86</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.swt.gtk.linux</groupId>
      <artifactId>x86_64</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.swt.gtk.linux</groupId>
      <artifactId>ppc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.swt.win32.win32</groupId>
      <artifactId>x86</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.swt.carbon</groupId>
      <artifactId>macosx</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox.launcher.gtk.linux</groupId>
      <artifactId>x86</artifactId>
      <type>tar.gz</type>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox.launcher.gtk.linux</groupId>
      <artifactId>x86_64</artifactId>
      <type>tar.gz</type>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox.launcher.gtk.linux</groupId>
      <artifactId>ppc</artifactId>
      <type>tar.gz</type>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox.launcher.win32.win32</groupId>
      <artifactId>x86</artifactId>
      <type>tar.gz</type>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox.launcher.carbon</groupId>
      <artifactId>macosx</artifactId>
      <type>tar.gz</type>
    </dependency>
    <dependency>
      <groupId>org.apache</groupId>
      <artifactId>jasper</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.lucene</groupId>
      <artifactId>analysis</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core.resources</groupId>
      <artifactId>compatibility</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox.http</groupId>
      <artifactId>jetty</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox.http</groupId>
      <artifactId>registry</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox.http</groupId>
      <artifactId>servlet</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox.jsp</groupId>
      <artifactId>jasper</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox.jsp.jasper</groupId>
      <artifactId>registry</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.osgi</groupId>
      <artifactId>services</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.osgi</groupId>
      <artifactId>util</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui.ide</groupId>
      <artifactId>application</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui.workbench</groupId>
      <artifactId>compatibility</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.update</groupId>
      <artifactId>scheduler</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mortbay</groupId>
      <artifactId>jetty</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse</groupId>
      <artifactId>jface</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.eclipse</groupId>
          <artifactId>swt</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.eclipse</groupId>
      <artifactId>ui</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core</groupId>
      <artifactId>runtime</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox</groupId>
      <artifactId>preferences</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox</groupId>
      <artifactId>registry</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui</groupId>
      <artifactId>workbench</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core</groupId>
      <artifactId>commands</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core</groupId>
      <artifactId>contenttype</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core</groupId>
      <artifactId>databinding</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core</groupId>
      <artifactId>expressions</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core</groupId>
      <artifactId>net</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core.runtime.compatibility</groupId>
      <artifactId>auth</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse</groupId>
      <artifactId>help</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jface</groupId>
      <artifactId>databinding</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse</groupId>
      <artifactId>swt</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.update</groupId>
      <artifactId>configurator</artifactId>
    </dependency>

    <!-- Eclipse SDK dependencies -->
    <dependency>
      <groupId>org.eclipse</groupId>
      <artifactId>search</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui</groupId>
      <artifactId>navigator</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui.views.properties</groupId>
      <artifactId>tabbed</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui.navigator</groupId>
      <artifactId>resources</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui</groupId>
      <artifactId>cheatsheets</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core</groupId>
      <artifactId>filebuffers</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jface</groupId>
      <artifactId>text</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui</groupId>
      <artifactId>editors</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui.workbench</groupId>
      <artifactId>texteditor</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse</groupId>
      <artifactId>text</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui</groupId>
      <artifactId>forms</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.update</groupId>
      <artifactId>ui</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.update</groupId>
      <artifactId>core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui</groupId>
      <artifactId>views</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui</groupId>
      <artifactId>intro</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.ui</groupId>
      <artifactId>ide</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.help</groupId>
      <artifactId>ui</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.help</groupId>
      <artifactId>base</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.help</groupId>
      <artifactId>appserver</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core.runtime</groupId>
      <artifactId>compatibility</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache</groupId>
      <artifactId>lucene</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core.runtime.compatibility</groupId>
      <artifactId>registry</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.help</groupId>
      <artifactId>webapp</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse</groupId>
      <artifactId>sdk</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse</groupId>
      <artifactId>tomcat</artifactId>
    </dependency>

    <!-- Other dependencies -->
    <dependency>
      <groupId>docbook</groupId>
      <artifactId>docbook-xml</artifactId>
      <type>zip</type>
    </dependency>
    <dependency>
      <groupId>docbook</groupId>
      <artifactId>docbook-xsl</artifactId>
      <type>zip</type>
    </dependency>
  </dependencies>

  <repositories>
    <repository>
      <id>studio.repository</id>
      <name>Studio Provided Repository</name>
      <url>file://${pom.basedir}</url>
    </repository>
  </repositories>

</project>
