<?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.project</groupId>
    <artifactId>project</artifactId>
    <version>30</version>
    <relativePath>../project</relativePath>
  </parent>

  <groupId>org.apache.directory.api</groupId>
  <artifactId>api-parent</artifactId>
  <name>Apache Directory LDAP API</name>
  <packaging>pom</packaging>
  <version>1.0.0-M18</version>

  <properties>
    <projectName>ApacheDS-LDAP-API</projectName>
    <distMgmtSiteUrl>scpexe://people.apache.org/www/directory.apache.org/api/gen-docs/${project.version}/</distMgmtSiteUrl>
    
    <!-- Set versions for depending projects -->
    <skin.version>1.0.2</skin.version>
    <org.apache.directory.junit.junit-addons.version>0.1</org.apache.directory.junit.junit-addons.version>
    <org.apache.directory.checkstyle-configuration.version>0.1</org.apache.directory.checkstyle-configuration.version>
    
    <!-- Set versions for depending jars -->
    <antlr.version>2.7.7</antlr.version>
    <commons.collections.version>3.2.1</commons.collections.version>
    <commons.io.version>2.4</commons.io.version>
    <commons.lang.version>2.6</commons.lang.version>
    <commons.pool.version>1.6</commons.pool.version>
    <dom4j.version>1.6.1</dom4j.version>
    <junit.version>4.11</junit.version>
    <log4j.version>1.2.17</log4j.version>
    <mina.core.version>2.0.7</mina.core.version>
    <org.osgi.version>3.0.0</org.osgi.version>
    <org.osgi.core.version>5.0.0</org.osgi.core.version>
    <org.apache.felix.version>4.2.1</org.apache.felix.version>
    <slf4j.api.version>1.7.5</slf4j.api.version>
    <slf4j.log4j12.version>1.7.5</slf4j.log4j12.version>
    <xml.apis.version>2.0.2</xml.apis.version>
    <xpp3.version>1.1.4c</xpp3.version>
    <pax-exam.version>3.1.0</pax-exam.version>
    <pax-exam-container-default.version>1.2.4</pax-exam-container-default.version>
    <pax-exam-junit.version>1.2.4</pax-exam-junit.version>
    <findbugs.annotations.version>1.0.0</findbugs.annotations.version>
  </properties>
  
  <distributionManagement>
    <site>
      <id>apache.directory.shared</id>
      <url>${distMgmtSiteUrl}</url>
    </site>
  </distributionManagement>

  <issueManagement>
    <system>JIRA</system>
    <url>http://issues.apache.org/jira/browse/DIRAPI</url>
  </issueManagement>

  <modules>
    <module>i18n</module>
    <module>util</module>
    <module>asn1</module>
    <module>all</module>
    <module>ldap</module>
    <module>dsml</module>
    <module>integ</module>
    <module>distribution</module>
  </modules>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <tagNameFormat>@{project.version}</tagNameFormat>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <configuration>
            <excludeSubProjects>false</excludeSubProjects>
            <excludes>
              <!-- MAVEN_DEFAULT_EXCLUDES -->
              <exclude>**/target/**/*</exclude>
              <exclude>**/cobertura.ser</exclude>
              <!-- ECLIPSE_DEFAULT_EXCLUDES -->
              <exclude>**/.classpath</exclude>
              <exclude>**/.project</exclude>
              <exclude>**/.settings/**/*</exclude>
              <!-- IDEA_DEFAULT_EXCLUDES -->
              <exclude>**/*.iml</exclude>
              <exclude>**/*.ipr</exclude>
              <exclude>**/*.iws</exclude>
              <!-- MANIFEST_MF_EXCLUDES -->
              <exclude>**/MANIFEST.MF</exclude>
              <!-- 3RD_PARTY_LICENSES -->
              <exclude>distribution/src/main/release/licenses/*</exclude>
              <exclude>src/main/release/licenses/*</exclude>
              <!-- Missing license header in dependency reduced pom, see http://jira.codehaus.org/browse/MSHADE-48 -->
              <exclude>**/dependency-reduced-pom.xml</exclude>
              <!-- Generated ldif files -->
              <exclude>ldap/schema/data/src/main/resources/schema/**</exclude>
              <exclude>ldap/schema/data/src/main/resources/schema-all.ldif</exclude>
              <exclude>schema/data/src/main/resources/schema/**</exclude>
              <exclude>schema/data/src/main/resources/schema-all.ldif</exclude>
              <exclude>data/src/main/resources/schema/**</exclude>
              <exclude>data/src/main/resources/schema-all.ldif</exclude>
              <exclude>src/main/resources/schema/**</exclude>
              <exclude>src/main/resources/schema-all.ldif</exclude>
            </excludes>
          </configuration>
        </plugin>

        <!--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.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <versionRange>[1.7,)</versionRange>
                    <goals>
                      <goal>run</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <versionRange>[2.2,)</versionRange>
                    <goals>
                      <goal>copy</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>        

      <!-- plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <configLocation>directory-checks.xml</configLocation>
          <suppressionsLocation>${basedir}/src/checkstyle/suppressions.xml</suppressionsLocation>
          <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.apache.directory.buildtools</groupId>
            <artifactId>checkstyle-configuration</artifactId>
            <version>${org.apache.directory.checkstyle-configuration.version}</version>
          </dependency>
        </dependencies>
      </plugin -->

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <dependencies>
          <!-- Add support for 'scp'/'sftp' -->
          <dependency>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh</artifactId>
            <version>2.1</version>
          </dependency>
          <!-- Add support for 'scpexe' -->
          <dependency>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh-external</artifactId>
            <version>2.1</version>
          </dependency>
        </dependencies>
        <configuration>
          <reportPlugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-jxr-plugin</artifactId>
              <configuration>
                  <aggregate>true</aggregate>
              </configuration>
            </plugin>
       
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-surefire-report-plugin</artifactId>
              <configuration>
                <aggregate>true</aggregate>
              </configuration>
            </plugin>
      
            <!-- plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-pmd-plugin</artifactId>
              <configuration>
                <linkXref>true</linkXref>
                <sourceEncoding>utf-8</sourceEncoding>
                <minimumTokens>100</minimumTokens>
                <targetJdk>1.6</targetJdk>
                <aggregate>true</aggregate>
              </configuration>
            </plugin -->
      
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-project-info-reports-plugin</artifactId>
            </plugin>
      
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>taglist-maven-plugin</artifactId>
              <configuration>
                <tags>
                  <tag>TODO</tag>
                  <tag>@todo</tag>
                  <tag>@deprecated</tag>
                  <tag>FIXME</tag>
                </tags>
              </configuration>
            </plugin>
      
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <configuration>
                <minmemory>512m</minmemory>
                <maxmemory>1g</maxmemory>
                <linksource>true</linksource>
                <tags>
                  <tag>
                    <name>todo</name>
                    <!-- todo tag for all places -->
                    <placement>a</placement>
                    <head>To do:</head>
                  </tag>
                </tags>
                <source>1.6</source>
              </configuration>
              <reportSets>
                <reportSet>
                  <reports>
                    <report>aggregate</report>
                    <report>test-aggregate</report>
                  </reports>
                </reportSet>
              </reportSets>
            </plugin>
      
<!-- Disabled because of Hudson problems, see http://jira.codehaus.org/browse/MFINDBUGS-126
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>findbugs-maven-plugin</artifactId>
              <configuration>
                <xrefLocation>${project.reporting.outputDirectory}/../xref</xrefLocation>
                <xrefTestLocation>${project.reporting.outputDirectory}/../xref-test</xrefTestLocation>
                <! - - required by dashboard plugin and hudson - - >
                <xmlOutput>true</xmlOutput>
                <effort>Max</effort>
                <findbugsXmlOutput>true</findbugsXmlOutput>
                <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
              </configuration>
            </plugin>
-->
      
<!-- Disabled because of Hudson problems
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>cobertura-maven-plugin</artifactId>
              <configuration>
                <instrumentation>
                  <excludes>
                    <exclude>org/apache/directory/api/**/*Constants.class</exclude>
                  </excludes>
                </instrumentation>
              </configuration>
            </plugin>
-->
      
            <!-- plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-checkstyle-plugin</artifactId>
              <configuration>
                <configLocation>directory-checks.xml</configLocation>
                <suppressionsLocation>${basedir}/src/checkstyle/suppressions.xml</suppressionsLocation>
                <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
                <xrefLocation>${project.reporting.outputDirectory}/../xref</xrefLocation>
              </configuration>
            </plugin -->
      
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>versions-maven-plugin</artifactId>
              <reportSets>
                <reportSet>
                  <reports>
                    <report>dependency-updates-report</report>
                    <report>plugin-updates-report</report>
                    <report>property-updates-report</report>
                  </reports>
                </reportSet>
              </reportSets>
            </plugin>
      
            <plugin>
              <groupId>org.apache.rat</groupId>
              <artifactId>apache-rat-plugin</artifactId>
              <!-- must add configuration here too, it isn't inherited from <pluginConfiguration> :-( -->
              <configuration>
                <excludeSubProjects>false</excludeSubProjects>
                <excludes>
                  <!-- MAVEN_DEFAULT_EXCLUDES -->
                  <exclude>**/target/**/*</exclude>
                  <exclude>**/cobertura.ser</exclude>
                  <!-- ECLIPSE_DEFAULT_EXCLUDES -->
                  <exclude>**/.classpath</exclude>
                  <exclude>**/.project</exclude>
                  <exclude>**/.settings/**/*</exclude>
                  <!-- IDEA_DEFAULT_EXCLUDES -->
                  <exclude>**/*.iml</exclude>
                  <exclude>**/*.ipr</exclude>
                  <exclude>**/*.iws</exclude>
                  <!-- MANIFEST_MF_EXCLUDES -->
                  <exclude>**/MANIFEST.MF</exclude>
                  <!-- 3RD_PARTY_LICENSES -->
                  <exclude>distribution/src/main/release/licenses/*</exclude>
                  <exclude>src/main/release/licenses/*</exclude>
                  <!-- Missing license header in dependency reduced pom, see http://jira.codehaus.org/browse/MSHADE-48 -->
                  <exclude>**/dependency-reduced-pom.xml</exclude>
                  <!-- Generated ldif files -->
                  <exclude>**/src/main/resources/schema/**/*.ldif</exclude>
                  <exclude>**/src/main/resources/schema-all.ldif</exclude>
                  <exclude>**/src/main/resources/schema/**/*.ldif</exclude>
                  <exclude>**/src/main/resources/schema-all.ldif</exclude>
                  <!-- Files having a Bouncy Castle license -->
                  <exclude>ldap/src/main/java/org/apache/directory/api/asn1/der/*.java</exclude>
                  <exclude>src/main/java/org/apache/directory/api/asn1/der/*.java</exclude>
                </excludes>
              </configuration>
            </plugin>
      
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>javancss-maven-plugin</artifactId>
            </plugin>
      
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>jdepend-maven-plugin</artifactId>
            </plugin>
      
<!--
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-changes-plugin</artifactId>
              <configuration>
                <onlyCurrentVersion>true</onlyCurrentVersion>
                <resolutionIds>Fixed</resolutionIds>
                <statusIds>Resolved,Closed</statusIds>
                <columnNames>Type,Key,Summary,Status,Resolution,Fix Version</columnNames>
              </configuration>
              <reportSets>
                <reportSet>
                  <reports>
                    <report>jira-report</report>
                  </reports>
                </reportSet>
              </reportSets>
            </plugin>
-->
          </reportPlugins>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencyManagement>
    <dependencies>
      <!-- Project sub-modules dependencies -->
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-all</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-asn1-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-asn1-ber</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-dsml-engine</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-dsml-parser</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-i18n</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-client-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-codec-core</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-codec-standalone</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-extras-aci</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-extras-codec</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-extras-codec-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-extras-sp</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-extras-trigger</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-extras-util</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-model</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-net-mina</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-schema-converter</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-ldap-schema-data</artifactId>
        <version>${project.version}</version>
      </dependency>
      
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>api-util</artifactId>
        <version>${project.version}</version>
      </dependency>

      <!-- Mina dependencies -->

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

      <!-- Commons dependencies -->

      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>${commons.collections.version}</version>
      </dependency>

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

      <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>${commons.lang.version}</version>
      </dependency>

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

      <!-- OSGi and Felix Dependencies -->

      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi</artifactId>
        <version>${org.osgi.version}</version>
      </dependency>

      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.core</artifactId>
        <version>${org.osgi.core.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.framework</artifactId>
        <version>${org.apache.felix.version}</version>
      </dependency>

      <!-- Test dependencies -->

      <dependency>
        <groupId>org.apache.directory.junit</groupId>
        <artifactId>junit-addons</artifactId>
        <version>${org.apache.directory.junit.junit-addons.version}</version>
      </dependency>

      <dependency>
        <groupId>org.ops4j.pax.exam</groupId>
        <artifactId>pax-exam</artifactId>
        <version>${pax-exam.version}</version>
        <scope>test</scope>
      </dependency>
      
      <dependency>
        <groupId>org.ops4j.pax.exam</groupId>
        <artifactId>pax-exam-junit</artifactId>
        <version>${pax-exam-junit.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.ops4j.pax.exam</groupId>
        <artifactId>pax-exam-container-default</artifactId>
        <version>${pax-exam-container-default.version}</version>
        <scope>test</scope>
      </dependency>

      <!-- Logging dependencies -->

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.api.version}</version>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.log4j12.version}</version>
      </dependency>

      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>
      
      <!-- Other dependencies -->

      <dependency>
        <groupId>antlr</groupId>
        <artifactId>antlr</artifactId>
        <version>${antlr.version}</version>
      </dependency>
      
      <dependency>
        <groupId>dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>${dom4j.version}</version>
      </dependency>

      <dependency>
        <groupId>findbugs</groupId>
        <artifactId>annotations</artifactId>
        <version>${findbugs.annotations.version}</version>
      </dependency>

      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
      </dependency>
      
      <dependency>
        <groupId>xml-apis</groupId>
        <artifactId>xml-apis</artifactId>
        <version>${xml.apis.version}</version>
      </dependency>
      
      <dependency>
        <groupId>xpp3</groupId>
        <artifactId>xpp3</artifactId>
        <version>${xpp3.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <!-- for Java5 findbugs annotations are required in each module at compile time -->
    <dependency>
      <groupId>findbugs</groupId>
      <artifactId>annotations</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- common logging interface -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>

    <!-- logging implementation used for unit tests -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/directory/shared/tags/1.0.0-M18</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/directory/shared/tags/1.0.0-M18</developerConnection>
    <url>http://svn.apache.org/viewvc/directory/shared/tags/1.0.0-M18</url>
  </scm>

  <profiles>
    <profile>
      <id>apache-release</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <id>source-release-assembly</id>
                <configuration>
                  <!-- we have a dedicated distribution module -->
                  <skipAssembly>true</skipAssembly>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.rat</groupId>
            <artifactId>apache-rat-plugin</artifactId>
            <executions>
              <execution>
                <phase>verify</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
         </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
