<?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>org.apache.directory.studio.setup-parent</artifactId>
    <version>2.0.0.v20210213-M16</version>
    <relativePath>../pom-first.xml</relativePath>
  </parent>

  <artifactId>org.apache.directory.studio.eclipse-trgt-platform</artifactId>
  <name>Apache Directory Studio Target Platform for Eclipse</name>
  <packaging>eclipse-target-definition</packaging>

  <!-- Step 1: Define the Maven artifacts, that should be added to a P2 repository. -->
  <dependencies>

    <!-- Exclude slf4j, reuse org.slf4j.api provided by Eclipse, see DIRSTUDIO-1068 -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${org.slf4j.version}</version>
      <scope>provided</scope>
    </dependency>

    <!-- Commons jars -->
    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>${org.apache.commons.codec.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-collections4</artifactId>
      <version>${org.apache.commons.collections4.version}</version>
    </dependency>

    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>${org.apache.commons.io.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>${org.apache.commons.lang3.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-pool2</artifactId>
      <version>${org.apache.commons.pool.version}</version>
    </dependency>


    <!-- Mina modules -->
    <dependency>
      <groupId>org.apache.mina</groupId>
      <artifactId>mina-core</artifactId>
      <version>${org.apache.mina.version}</version>
    </dependency>

    <!-- Caffeine module -->
    <dependency>
      <groupId>com.github.ben-manes.caffeine</groupId>
      <artifactId>caffeine</artifactId>
      <version>${com.github.ben-manes.caffeine.version}</version>
    </dependency>

    <!-- HTTP client module -->
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient-osgi</artifactId>
      <version>${org.apache.httpcomponents.httpclient.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpcore-osgi</artifactId>
      <version>${org.apache.httpcomponents.httpcore.version}</version>
    </dependency>

    <!-- LDAP API modules -->
    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-asn1-api</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-asn1-ber</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-dsml-parser</artifactId>
      <version>${org.apache.directory.api.version}</version>
      <exclusions>
        <exclusion>
          <groupId>xml-apis</groupId>
          <artifactId>xml-apis</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-dsml-engine</artifactId>
      <version>${org.apache.directory.api.version}</version>
      <exclusions>
        <exclusion>
          <groupId>xml-apis</groupId>
          <artifactId>xml-apis</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-i18n</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-ldap-client-api</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-ldap-codec-core</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-ldap-extras-aci</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-ldap-extras-codec</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-ldap-extras-codec-api</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-ldap-extras-sp</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-ldap-extras-trigger</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-ldap-extras-util</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-ldap-model</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-ldap-net-mina</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-ldap-schema-converter</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-ldap-schema-data</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-util</artifactId>
      <version>${org.apache.directory.api.version}</version>
    </dependency>

    <!-- ApacheDS modules -->
    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-i18n</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

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

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core-api</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core-annotations</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core-avl</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core-constants</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core-jndi</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core-shared</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-http-directory-bridge</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-http-integration</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-admin</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-authn</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-authz</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-changelog</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-collective</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-event</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-exception</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-hash</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-journal</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-logger</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-normalization</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-number</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-operational</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-referral</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-schema</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-subtree</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptors-trigger</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-xdbm-partition</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-jdbm-partition</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-mavibot-partition</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-ldif-partition</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-ldap</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-kerberos</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-dhcp</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-dns</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-ntp</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-shared</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

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

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

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

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-service-builder</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-test-framework</artifactId>
      <version>${org.apache.directory.server.version}</version>
    </dependency>

  </dependencies>

  <build>
    <plugins>

      <!-- Step 2: Copy all Maven dependencies to the location ${project.basedir}/target/source/plugins, 
        this is the default source location for the feature and bundle publisher. -->
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-bundles-for-publishing</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.basedir}/target/source/plugins</outputDirectory>
              <excludeScope>provided</excludeScope>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- Step 3: Generate the P2 repository. Target directory is ${project.basedir}/target/repository -->
      <plugin>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-p2-extras-plugin</artifactId>
        <version>${tycho.version}</version>
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <goals>
              <goal>publish-features-and-bundles</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <compress>false</compress>
          <append>true</append>
          <publishArtifacts>true</publishArtifacts>
        </configuration>
      </plugin>

      <!--Step 4: Add categories to the p2 metadata, so that you can see 
        your P2 repository in Eclipse Target Platform Wizard -->
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-plugin</artifactId>
        <version>${tycho.version}</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>category-p2-metadata</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <target>${basedir}/target/repository</target>
          <categoryDefinition>${project.basedir}/category.xml</categoryDefinition>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.gmaven</groupId>
        <artifactId>groovy-maven-plugin</artifactId>
        <version>2.1.1</version>
        <executions>
          <execution>
            <id>set-basedir-uri</id>
            <phase>validate</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
              <source>
project.properties['basedirUri']=project.basedir.toURI().toString();
              </source>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <inherited>false</inherited>
            <configuration>
              <outputDirectory>${basedir}</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/template</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>rename-resources</id>
            <phase>generate-resources</phase>
            <configuration>
              <target>
                <move file="${basedir}/org.apache.directory.studio.eclipse-trgt-platform.template"
                  tofile="${basedir}/org.apache.directory.studio.eclipse-trgt-platform.target" />
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <configuration>
          <filesets>
            <fileset>
              <directory>${basedir}</directory>
              <includes>
                <include>org.apache.directory.studio.eclipse-trgt-platform.target</include>
              </includes>
            </fileset>
          </filesets>
        </configuration>
      </plugin>

    </plugins>

    <pluginManagement>
      <plugins>
        <!--This plugin's configuration is used to store Eclipse m2e settings 
          only. It has no influence on the Maven build itself. -->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.reficio</groupId>
                    <artifactId>p2-maven-plugin</artifactId>
                    <versionRange>[1.1.0,)</versionRange>
                    <goals>
                      <goal>site</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

</project>
