pom.xml revision 47d2767b9dcbe773d73a6532269b7eb0856897d1
<?xml version="1.0" encoding="UTF-8"?>
<!--
! CDDL HEADER START
!
! The contents of this file are subject to the terms of the
! Common Development and Distribution License, Version 1.0 only
! (the "License"). You may not use this file except in compliance
! with the License.
!
! You can obtain a copy of the license at
! trunk/opendj3/legal-notices/CDDLv1_0.txt
! or http://forgerock.org/license/CDDLv1.0.html.
! See the License for the specific language governing permissions
! and limitations under the License.
!
! When distributing Covered Code, include this CDDL HEADER in each
! file and include the License file at
! trunk/opendj3/legal-notices/CDDLv1_0.txt. If applicable,
! add the following below this CDDL HEADER, with the fields enclosed
! by brackets "[]" replaced with your own identifying information:
! Portions Copyright [yyyy] [name of copyright owner]
!
! CDDL HEADER END
!
! Copyright 2011-2015 ForgeRock AS.
!
-->
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-project</artifactId>
<version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>opendj-server-legacy</artifactId>
<packaging>jar</packaging>
<name>OpenDJ Directory Server</name>
<description>
This module provides the OpenDJ server.
</description>
<inceptionYear>2006</inceptionYear>
<repositories>
<repository>
<id>oracle-repository</id>
<name>Oracle Maven Repository</name>
<url>http://download.oracle.com/maven</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<properties>
<!-- General server-wide properties -->
<docgen.dir>${project.build.directory}/docgen</docgen.dir>
<jars.dir>${project.build.directory}/jars</jars.dir>
<!-- Product information properties -->
<shortProductName>OpenDJ</shortProductName>
<lowerCaseProductName>opendj</lowerCaseProductName>
<patchFixIds></patchFixIds>
<isDebugBuild>false</isDebugBuild>
<docHomepageUrl>http://opendj.forgerock.org/</docHomepageUrl>
<docWikiUrl>http://opendj.forgerock.org/docs.html</docWikiUrl>
<docGuideRefUrl>http://opendj.forgerock.org/doc/admin-guide/index.html</docGuideRefUrl>
<docGuideAdminUrl>http://opendj.forgerock.org/doc/admin-guide/index.html</docGuideAdminUrl>
<locales>ca_ES,es,de,fr,ja,ko,pl,zh_CN,zh_TW</locales>
<!-- Dependencies version properties -->
<project.version>3.0.0-SNAPSHOT</project.version>
<i18n.version>1.4.2-SNAPSHOT</i18n.version>
<!-- Other properties -->
<checkstyleHeaderLocation>org/forgerock/checkstyle/opendj-java-header</checkstyleHeaderLocation>
</properties>
<dependencies>
<!-- ForgeRock libraries -->
<dependency>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-rest2ldap-servlet</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.forgerock.commons</groupId>
<artifactId>i18n-slf4j</artifactId>
</dependency>
<dependency>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-slf4j-adapter</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj3-server-dev</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-server3x-adapter</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-server</artifactId>
</exclusion>
<exclusion>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj3-server-dev</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-config</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-server</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-legacy</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-cli</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.forgerock</groupId>
<artifactId>forgerock-build-tools</artifactId>
<version>${forgerockBuildToolsVersion}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
</dependency>
<!-- servlet and mail -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1-b02</version>
</dependency>
<dependency>
<groupId>org.glassfish.grizzly</groupId>
<artifactId>grizzly-http-servlet</artifactId>
<version>2.3.16</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
<!-- Tests -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>1.7.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-core</artifactId>
<type>test-jar</type>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<!-- Databases -->
<dependency>
<groupId>com.sleepycat</groupId>
<artifactId>je</artifactId>
<version>5.0.104</version>
</dependency>
<dependency>
<groupId>org.codehaus.sonar</groupId>
<artifactId>sonar-persistit</artifactId>
<version>3.3.1</version>
</dependency>
</dependencies>
<build>
<directory>build</directory>
<resources>
<!-- Main resources -->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>java-stubs/</exclude>
</excludes>
</resource>
<!-- Property files used in test sources -->
<resource>
<directory>src/test/java</directory>
<filtering>false</filtering>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
<!-- Images for quicksetup must be explicitely copied from sources -->
<resource>
<directory>src/quicksetup</directory>
<filtering>false</filtering>
<includes>
<include>**/images/*.gif</include>
<include>**/images/*.png</include>
</includes>
</resource>
<!-- Images for guitools must be explicitely copied from sources -->
<resource>
<directory>src/guitools</directory>
<filtering>false</filtering>
<includes>
<include>**/images/*.gif</include>
<include>**/images/*.png</include>
</includes>
</resource>
<!-- .plist files for macos must be filtered to include build properties -->
<resource>
<directory>resource/mac</directory>
<filtering>true</filtering>
<includes>
<include>**/Info.plist</include>
</includes>
</resource>
<!-- Generation of DynamicConstants class from build properties -->
<resource>
<directory>src/main/resources/java-stubs</directory>
<filtering>true</filtering>
<targetPath>${project.build.directory}/java-stubs</targetPath>
</resource>
</resources>
<plugins>
<!-- Clean classes generated outside the build directory -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>${basedir}/src</directory>
<includes>
<include>admin/generated/**</include>
<include>messages/generated/**</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
<!-- Generate i18n messages -->
<plugin>
<groupId>org.forgerock.commons</groupId>
<artifactId>i18n-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate-messages</goal>
</goals>
<configuration>
<resourceDirectory>${basedir}/src/messages</resourceDirectory>
<targetDirectory>${basedir}/src/messages/generated/</targetDirectory>
<force>true</force>
<messageFiles>
<!-- Warning: messageFile must contains at least one "/" -->
<messageFile>org/opends/messages/access_control.properties</messageFile>
<messageFile>org/opends/messages/admin.properties</messageFile>
<messageFile>org/opends/messages/admin_tool.properties</messageFile>
<messageFile>org/opends/messages/backend.properties</messageFile>
<messageFile>org/opends/messages/config.properties</messageFile>
<messageFile>org/opends/messages/core.properties</messageFile>
<messageFile>org/opends/messages/dsconfig.properties</messageFile>
<messageFile>org/opends/messages/extension.properties</messageFile>
<messageFile>org/opends/messages/jeb.properties</messageFile>
<messageFile>org/opends/messages/logger.properties</messageFile>
<messageFile>org/opends/messages/plugin.properties</messageFile>
<messageFile>org/opends/messages/protocol.properties</messageFile>
<messageFile>org/opends/messages/quickSetup.properties</messageFile>
<messageFile>org/opends/messages/replication.properties</messageFile>
<messageFile>org/opends/messages/runtime.properties</messageFile>
<messageFile>org/opends/messages/schema.properties</messageFile>
<messageFile>org/opends/messages/task.properties</messageFile>
<messageFile>org/opends/messages/tool.properties</messageFile>
<messageFile>org/opends/messages/utility.properties</messageFile>
<messageFile>org/opends/messages/version.properties</messageFile>
</messageFiles>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<!-- Copy messages properties files for inclusion in main jar -->
<execution>
<id>copy-l10n-messages</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/org/opends/messages</outputDirectory>
<resources>
<resource>
<directory>src/messages/org/opends/messages</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-l10n-config-messages</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/admin/messages/org/opends/server/admin/std/meta</outputDirectory>
<resources>
<resource>
<directory>src/admin/messages</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- OpenDJ maven plugin executions -->
<plugin>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-maven-plugin</artifactId>
<version>${project.version}</version>
<executions>
<!-- Generates manifest classpath files -->
<execution>
<id>generate-bootstrap-manifest</id>
<goals>
<goal>generate-manifest</goal>
</goals>
<configuration>
<classPathProperty>classpath.bootstrap</classPathProperty>
<productJarName>${shortProductName}</productJarName>
<supportedLocales>${locales}</supportedLocales>
<excludes>
<exclude>org.slf4j:slf4j-jdk14</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>generate-bootstrap-client-manifest</id>
<goals>
<goal>generate-manifest</goal>
</goals>
<configuration>
<classPathProperty>classpath.bootstrap-client</classPathProperty>
<productJarName>${shortProductName}</productJarName>
<supportedLocales>${locales}</supportedLocales>
<excludes>
<exclude>org.forgerock.opendj:opendj-slf4j-adapter</exclude>
</excludes>
</configuration>
</execution>
<!-- Generate configuration classes from XML definitions -->
<!-- Leave default lifecycle phase once new config framework migration
is done -->
<execution>
<id>generate-config</id>
<phase>generate-sources</phase>
<goals>
<goal>generate-config</goal>
</goals>
<configuration>
<phase>none</phase>
<packageName>org.forgerock.opendj.server.config</packageName>
<isExtension>false</isExtension>
</configuration>
</execution>
<!-- Create consolidated schema file for use in upgrade -->
<execution>
<id>creates-base-schema-files</id>
<goals>
<goal>concat</goal>
</goals>
<configuration>
<schemaDirectory>${basedir}/resource/schema</schemaDirectory>
<outputDirectory>${project.build.directory}/upgrade</outputDirectory>
<outputFile>schema.ldif.${buildRevision}</outputFile>
</configuration>
</execution>
<!-- Generates references from messages for documentation -->
<execution>
<goals>
<goal>generate-xml-messages-doc</goal>
</goals>
<configuration>
<messagesDirectory>${basedir}/src/messages/org/opends/messages</messagesDirectory>
<outputDirectory>${project.build.directory}/docgen/logref</outputDirectory>
<logMessageReferenceFilePath>${basedir}/resource/log-message-reference.xml</logMessageReferenceFilePath>
<messageFileNames>
<!-- for xxx_yyy.properties generates a log-ref-xxx-yyy.xml
file -->
<messageFileName>admin</messageFileName>
<messageFileName>backend</messageFileName>
<messageFileName>config</messageFileName>
<messageFileName>core</messageFileName>
<messageFileName>dsconfig</messageFileName>
<messageFileName>extension</messageFileName>
<messageFileName>jeb</messageFileName>
<messageFileName>logger</messageFileName>
<messageFileName>plugin</messageFileName>
<messageFileName>protocol</messageFileName>
<messageFileName>replication</messageFileName>
<messageFileName>schema</messageFileName>
<messageFileName>task</messageFileName>
<messageFileName>tool</messageFileName>
<messageFileName>utility</messageFileName>
<!-- Ignore following message files as we document only serious
errors. -->
<!-- <messageFileName>access_control</messageFileName> -->
<!-- <messageFileName>admin_tool</messageFileName> -->
<!-- <messageFileName>quicksetup.properties</messageFileName> -->
<!-- <messageFileName>runtime_information.properties</messageFileName> -->
<!-- <messageFileName>version.properties</messageFileName> -->
</messageFileNames>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<!-- Take into account several sources directories for the build -->
<execution>
<id>main-java-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/messages/generated</source>
<source>src/messages/src</source>
<source>src/admin/generated</source>
<source>src/build-tools</source>
<source>src/dsml</source>
<source>${project.build.directory}/java-stubs</source>
</sources>
</configuration>
</execution>
<!-- Parse version to generate properties (major.version, minor.version,
...) -->
<execution>
<id>parse-version</id>
<goals>
<goal>parse-version</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Retrieve the SVN revision number and the build timestamp -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>generate-buildnumber</id>
<goals>
<goal>create</goal>
</goals>
<configuration>
<useLastCommittedRevision>true</useLastCommittedRevision>
<buildNumberPropertyName>buildRevision</buildNumberPropertyName>
<revisionOnScmFailure>-1</revisionOnScmFailure>
</configuration>
</execution>
<execution>
<id>generate-timestamp</id>
<goals>
<goal>create</goal>
</goals>
<configuration>
<format>{0,date,yyyyMMddHHmmss}</format>
<items>
<item>timestamp</item>
</items>
<buildNumberPropertyName>buildDateTime</buildNumberPropertyName>
</configuration>
</execution>
</executions>
</plugin>
<!-- Compile unit tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-testCompile</id>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<testSourceDirectory>src/test/java</testSourceDirectory>
<showDeprecation>false</showDeprecation>
<showWarnings>false</showWarnings>
<testCompilerArgument>-nowarn</testCompilerArgument>
<testExcludes>
<testExclude>**/org/opends/server/snmp/**</testExclude>
</testExcludes>
</configuration>
</execution>
</executions>
</plugin>
<!-- Disable surefire plugin because all tests are run with failsafe
plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>default-test</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<!-- Package boostrap jar - contains only a manifest with classpath
for the server -->
<execution>
<id>build-bootstrap-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>bootstrap</finalName>
<includes>
<include>nothing</include>
</includes>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<manifestFile>${project.build.outputDirectory}/bootstrap/manifest-bootstrap</manifestFile>
</archive>
</configuration>
</execution>
<!-- Package boostrap-client jar - contains only a manifest with
classpath for clients -->
<execution>
<id>build-bootstrap-client-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>bootstrap-client</finalName>
<includes>
<include>nothing</include>
</includes>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<manifestFile>${project.build.outputDirectory}/bootstrap/manifest-bootstrap-client</manifestFile>
</archive>
</configuration>
</execution>
<!-- Package build-tools jar -->
<execution>
<id>create-build-tools-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>build-tools</finalName>
<!-- TODO: Adds the resource/Messages.java.stub to build/build-tools/classes/org/opends/build/tools/resource -->
<includes>
<include>**/messages/Severity.class</include>
<include>**/messages/Category.class</include>
<include>**/messages/Message.class</include>
<include>**/messages/MessagePropertyKey.class</include>
<include>**/messages/MessageDescriptor.class</include>
<include>**/server/types/PublicAPI.class</include>
<include>**/server/types/StabilityLevel.class</include>
<include>**/javax/jnlp/*</include>
<include>**/netscape/ldap/*</include>
<include>**/build/tools/*</include>
</includes>
</configuration>
</execution>
<!-- Package quicksetup jar -->
<execution>
<id>build-quicksetup-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>quicksetup</finalName>
<includes>
<include>**/quicksetup/**</include>
<include>**/org/opends/admin/ads/*</include>
<include>**/org/opends/server/util/SetupUtils.class</include>
<include>**/org/opends/server/util/CertificateManager.class</include>
<include>**/org/opends/server/util/DynamicConstants.class</include>
<include>**/org/opends/server/types/OperatingSystem.class</include>
<include>**/org/opends/messages/Message.class</include>
<include>**/org/opends/messages/MessageBuilder.class</include>
<include>**/org/opends/messages/MessageDescriptor.class</include>
<include>**/org/opends/messages/Severity.class</include>
<include>**/org/opends/messages/Category.class</include>
<include>**/org/opends/messages/QuickSetupMessages.class</include>
<include>**/org/opends/server/types/OpenDsException.class</include>
</includes>
</configuration>
</execution>
<!-- Build localized jars (one per supported locale) -->
<!-- (is there a way to avoid all these repeated executions ?) -->
<execution>
<id>build-caES-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>${shortProductName}_ca_ES</finalName>
<includes>
<include>**/*_ca_ES.properties</include>
</includes>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<index>true</index>
</archive>
</configuration>
</execution>
<execution>
<id>build-de-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>${shortProductName}_de</finalName>
<includes>
<include>**/*_de.properties</include>
</includes>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<index>true</index>
</archive>
</configuration>
</execution>
<execution>
<id>build-es-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>${shortProductName}_es</finalName>
<includes>
<include>**/*_es.properties</include>
</includes>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<index>true</index>
</archive>
</configuration>
</execution>
<execution>
<id>build-fr-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>${shortProductName}_fr</finalName>
<includes>
<include>**/*_fr.properties</include>
</includes>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<index>true</index>
</archive>
</configuration>
</execution>
<execution>
<id>build-ja-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>${shortProductName}_ja</finalName>
<includes>
<include>**/*_ja.properties</include>
</includes>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<index>true</index>
</archive>
</configuration>
</execution>
<execution>
<id>build-ko-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>${shortProductName}_ko</finalName>
<includes>
<include>**/*_ko.properties</include>
</includes>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<index>true</index>
</archive>
</configuration>
</execution>
<execution>
<id>build-pl-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>${shortProductName}_pl</finalName>
<includes>
<include>**/*_pl.properties</include>
</includes>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<index>true</index>
</archive>
</configuration>
</execution>
<execution>
<id>build-zh-CN-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>${shortProductName}_zh_CN</finalName>
<includes>
<include>**/*_zh_CN.properties</include>
</includes>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<index>true</index>
</archive>
</configuration>
</execution>
<execution>
<id>build-zh-TW-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>${shortProductName}_zh_TW</finalName>
<includes>
<include>**/*_zh_TW.properties</include>
</includes>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<index>true</index>
</archive>
</configuration>
</execution>
<!-- Main jar -->
<execution>
<id>default-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>${shortProductName}</finalName>
<excludes>
<exclude>*.app/**</exclude>
<exclude>java-stubs/**</exclude>
<exclude>bootstrap/**</exclude>
<exclude>javax/jnlp/**</exclude>
<exclude>netscape/**</exclude>
<exclude>META-INF/**</exclude>
<exclude>org/opends/dsml/**</exclude>
<exclude>**/*_ca_ES.properties</exclude>
<exclude>**/*_de.properties</exclude>
<exclude>**/*_es.properties</exclude>
<exclude>**/*_fr.properties</exclude>
<exclude>**/*_ja.properties</exclude>
<exclude>**/*_ko.properties</exclude>
<exclude>**/*_pl.properties</exclude>
<exclude>**/*_zh_CN.properties</exclude>
<exclude>**/*_zh_TW.properties</exclude>
</excludes>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<index>true</index>
</archive>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<!-- Package the example plugin in a zip -->
<execution>
<id>build-example-package</id>
<phase>prepare-package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>example-plugin</finalName>
<addMavenDescriptor>false</addMavenDescriptor>
<appendAssemblyId>false</appendAssemblyId>
<attach>false</attach>
<descriptors>
<descriptor>src/main/assembly/example-plugin-assembly.xml</descriptor>
</descriptors>
<formats>
<format>zip</format>
</formats>
</configuration>
</execution>
<!-- Creates the archive folder -->
<execution>
<id>build-opendj-archive</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>${lowerCaseProductName}</finalName>
<outputDirectory>${project.build.directory}/package</outputDirectory>
<appendAssemblyId>false</appendAssemblyId>
<attach>false</attach>
<descriptors>
<descriptor>src/main/assembly/opendj-archive-assembly.xml</descriptor>
</descriptors>
<formats>
<format>dir</format>
</formats>
<archive>
<manifestFile>${project.build.outputDirectory}/bootstrap/manifest-bootstrap</manifestFile>
</archive>
</configuration>
</execution>
<!-- Package DSML war -->
<execution>
<id>build-dsml-war</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>${shortProductName}-${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}-DSML</finalName>
<outputDirectory>${project.build.directory}/package</outputDirectory>
<appendAssemblyId>false</appendAssemblyId>
<addMavenDescriptor>false</addMavenDescriptor>
<descriptors>
<descriptor>src/main/assembly/dsml-war-assembly.xml</descriptor>
</descriptors>
<formats>
<format>war</format>
</formats>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<!-- Temporary solution for configuration classes until migration
to new config framework -->
<id>generate-config</id>
<phase>generate-sources</phase>
<configuration>
<target>
<ant antfile="${basedir}/build.xml">
<target name="generateadmin" />
</ant>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<!-- Generate final zip and attach artefact -->
<execution>
<id>attach-artifact</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<zip
destfile="${project.build.directory}/package/${shortProductName}-${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.zip">
<zipfileset
dir="${project.build.directory}/package/${lowerCaseProductName}"
includes="**/*"
excludes="bin/*,template/**/*,lib/_client-script.sh,lib/_script-util.sh,lib/_server-script.sh,lib/_mixed-script.sh,setup,uninstall,upgrade,QuickSetup.app/Contents/MacOS/JavaApplicationStub,Uninstall.app/Contents/MacOS/JavaApplicationStub,bin/ControlPanel.app/Contents/MacOS/JavaApplicationStub"
filemode="644" dirmode="755" prefix="opendj" />
<zipfileset
dir="${project.build.directory}/package/${lowerCaseProductName}"
includes="lib/_client-script.sh,lib/_script-util.sh,lib/_server-script.sh,lib/_mixed-script.sh"
filemode="755" dirmode="755" prefix="opendj" />
<zipfileset
dir="${project.build.directory}/package/${lowerCaseProductName}"
includes="bin/*" filemode="755" dirmode="755"
prefix="opendj" />
<zipfileset
dir="${project.build.directory}/package/${lowerCaseProductName}"
includes="setup,uninstall,upgrade,QuickSetup.app/Contents/MacOS/JavaApplicationStub,Uninstall.app/Contents/MacOS/JavaApplicationStub,bin/ControlPanel.app/Contents/MacOS/JavaApplicationStub"
filemode="755" dirmode="755" prefix="opendj" />
<zipfileset
dir="${project.build.directory}/package/${lowerCaseProductName}"
includes="template/**/*" filemode="444" dirmode="744"
prefix="opendj" />
</zip>
<attachartifact
file="${project.build.directory}/package/${shortProductName}-${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.zip"
type="zip" />
</target>
</configuration>
</execution>
</executions>
</plugin>
<!-- Generate documentation (guide) -->
<plugin>
<groupId>org.forgerock.commons</groupId>
<artifactId>forgerock-doc-maven-plugin</artifactId>
<version>${frDocPluginVersion}</version>
<inherited>false</inherited>
<configuration>
<projectName>${shortProductName}</projectName>
<projectVersion>${docTargetVersion}</projectVersion>
<releaseVersion>${docTargetVersion}</releaseVersion>
<googleAnalyticsId>${gaId}</googleAnalyticsId>
</configuration>
<executions>
<execution>
<id>pre-process-doc</id>
<phase>pre-site</phase>
<goals>
<goal>process</goal>
</goals>
</execution>
<execution>
<id>build-doc</id>
<phase>pre-site</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
<execution>
<id>layout-doc</id>
<phase>site</phase>
<goals>
<goal>site</goal>
</goals>
</execution>
<execution>
<id>layout-release</id>
<phase>site</phase>
<goals>
<goal>release</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Build javadoc -->
<plugin>
<groupId>org.forgerock.maven.plugins</groupId>
<artifactId>javadoc-updater-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>site</phase>
<goals>
<goal>fixjavadoc</goal>
</goals>
<configuration>
<directory>${project.build.directory}/site/javadoc</directory>
</configuration>
</execution>
</executions>
</plugin>
<!-- Release project -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<!-- Required for release:perform: the parent pom specifies a value
for "arguments" in the plugin configuration. This prevents command line setting
of the option. -->
<arguments>-Penforce -Dopendmk.lib.dir=${opendmk.lib.dir}</arguments>
</configuration>
</plugin>
<!-- Generate DSML code from XML files -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>prepare-dsml-library</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/dsml/gen</outputDirectory>
<schemaDirectory>${basedir}/resource/dsml/schema</schemaDirectory>
<schemaFiles>DSMLv2.xsd</schemaFiles>
<packageName>org.opends.dsml.protocol</packageName>
<bindingDirectory>${basedir}/resource/dsml/schema</bindingDirectory>
<bindingFiles>bindings.xjb</bindingFiles>
<target>2.1</target>
<npa>true</npa>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<!-- No javadoc generation for the server -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</reporting>
<profiles>
<!--
Profile to run precommit tasks: checkstyle, copyright (TODO), SVN eol check (TODO),
unit-tests
Tests are not run by default due to running time (average of 8-10 minutes).
-->
<profile>
<id>precommit</id>
<build>
<plugins>
<!-- Check svn:eol-style property on modified files -->
<!-- TODO: Remove once Git migration over -->
<plugin>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-svn-property-check-maven-plugin</artifactId>
<version>1.0.0-SNAPSHOT</version>
<executions>
<execution>
<id>check-eol-property</id>
<goals>
<goal>check-svn-property</goal>
</goals>
<configuration>
<svnPropertyName>svn:eol-style</svnPropertyName>
<svnPropertyExpectedValue>native</svnPropertyExpectedValue>
</configuration>
</execution>
</executions>
</plugin>
<!-- Enforce Checkstyle -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.14</version>
<executions>
<!-- Disable default from parent -->
<execution>
<id>check-src-and-tests</id>
<phase>none</phase>
<goals>
<goal>checkstyle</goal>
</goals>
</execution>
<execution>
<id>check-src-and-tests-alternative</id>
<configuration>
<excludes>org/opends/messages/**,**/server/admin/std/**,**/config/meta/**,**/config/client/**,**/config/server/**,**/dsml/protocol/**,javax/jnlp/**,netscape/ldap/**</excludes>
<configLocation>${project.build.outputDirectory}/org/forgerock/checkstyle/opends-checkstyle.xml</configLocation>
<headerLocation>${project.build.outputDirectory}/org/forgerock/checkstyle/opendj.sourceheader</headerLocation>
<suppressionsLocation>${project.build.outputDirectory}/org/forgerock/checkstyle/unit-test-suppressions.xml</suppressionsLocation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<includeResources>false</includeResources>
<!-- Only output errors if we're not expecting any -->
<consoleOutput>${checkstyleFailOnError}</consoleOutput>
<failsOnError>${checkstyleFailOnError}</failsOnError>
</configuration>
<phase>process-test-classes</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<!--
Run unit/integration tests.
A lot of existing tests requires a running server, which is why the tests are
run using failsafe instead of surefire.
It should be possible in the future to separate tests into unit (no server) and
integration (with server), by using respectively surefire and failsafe plugin
to run them, but it will require identifying them.
We could use an "unit" marker in TestNG groups to do so.
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<testSourceDirectory>src/test/java</testSourceDirectory>
<excludes>
<exclude>org/opends/server/snmp/**</exclude>
<exclude>org/opends/quicksetup/**</exclude>
</excludes>
<includes>
<include>**/Test*.java</include>
<include>**/*Test.java</include>
<include>**/*Tests.java</include>
<include>**/*TestCase.java</include>
<include>**/*TestCases.java</include>
</includes>
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value>
</property>
<property>
<name>listener</name>
<value>org.opends.server.TestListener</value>
</property>
<property>
<name>excludegroups</name>
<value>slow</value>
</property>
<property>
<name>configfailurepolicy</name>
<value>skip</value>
</property>
</properties>
<systemPropertyVariables>
<org.opends.server.BuildRoot>${basedir}</org.opends.server.BuildRoot>
<org.opends.server.BuildDir>${project.build.directory}</org.opends.server.BuildDir>
<org.opends.test.replicationDbImpl>LOG</org.opends.test.replicationDbImpl>
<!-- <jvmarg value="-Dorg.opends.server.snmp.opendmk=${opendmk.lib.dir}"/> -->
<org.opends.server.CleanupDirectories>true</org.opends.server.CleanupDirectories>
<org.opends.test.suppressOutput>true</org.opends.test.suppressOutput>
<org.opends.test.pauseOnFailure>false</org.opends.test.pauseOnFailure>
<org.opends.test.copyClassesToTestPackage>false</org.opends.test.copyClassesToTestPackage>
</systemPropertyVariables>
<argLine>-server -Xms1024M -Xmx1024M</argLine>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!--
Profile to build SNMP extension.
This profile is only actived when command line contains the 'opendmk.lib.dir'
property that must point to the directory where OpenDMK jars are located.
Example: mvn install -Dopendmk.lib.dir=/path/to/opendmk/jars
-->
<profile>
<id>snmp</id>
<activation>
<property>
<name>opendmk.lib.dir</name>
</property>
</activation>
<properties>
<snmp.gen.dir>${basedir}/src/snmp/generated</snmp.gen.dir>
<snmp.mib.dir>${basedir}/src/snmp/resource/mib</snmp.mib.dir>
</properties>
<dependencies>
<dependency>
<groupId>opendmk</groupId>
<artifactId>jdmkrt</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${opendmk.lib.dir}/jdmkrt.jar</systemPath>
</dependency>
<dependency>
<groupId>opendmk</groupId>
<artifactId>jdmktk</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${opendmk.lib.dir}/jdmktk.jar</systemPath>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/snmp/resource</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<!-- Add snmp source directory and snmp generated directory
as sources -->
<execution>
<id>snmp-java-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/snmp/src</source>
<source>src/snmp/generated</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Cleans SNMP directory -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>createMibDir</id>
<phase>initialize</phase>
<configuration>
<target>
<delete dir="${snmp.gen.dir}/org/opends/server/snmp" />
<mkdir dir="${snmp.gen.dir}/org/opends/server/snmp" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- MIB generation -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<id>mib-generation</id>
<phase>generate-sources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>java</executable>
<classpathScope>compile</classpathScope>
<arguments>
<argument>-classpath</argument>
<classpath />
<argument>com.sun.jdmk.tools.MibGen</argument>
<argument>-X:use-display-hint</argument>
<argument>-d</argument>
<argument>${snmp.gen.dir}/org/opends/server/snmp</argument>
<argument>-mc</argument>
<argument>-desc</argument>
<argument>-tp</argument>
<argument>org.opends.server.snmp</argument>
<argument>${snmp.mib.dir}/rfc2605.txt</argument>
<argument>${snmp.mib.dir}/mib_core.txt</argument>
<argument>${snmp.mib.dir}/rfc2021.txt</argument>
<argument>${snmp.mib.dir}/rfc2788.txt</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<!-- Creates snmp-mib2605 jar file -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>create-snmp-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>snmp-mib2605</finalName>
<includes>
<include>org/opends/server/snmp/**</include>
<include>admin/extension.manifest</include>
</includes>
<archive>
<index>true</index>
<addMavenDescriptor>false</addMavenDescriptor>
<manifestEntries>
<Extension-Name>snmp-mib2605</Extension-Name>
<Implementation-Version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"</Implementation-Version>
<Revision-Number>${buildRevision}</Revision-Number>
</manifestEntries>
</archive>
</configuration>
</execution>
</executions>
</plugin>
<!-- Package the final zip -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>build-opendj-archive</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/package</outputDirectory>
<finalName>${lowerCaseProductName}</finalName>
<descriptors>
<descriptor>src/main/assembly/opendj-snmp-archive-assembly.xml</descriptor>
</descriptors>
<appendAssemblyId>false</appendAssemblyId>
<formats>
<format>dir</format>
</formats>
<archive>
<manifestFile>${project.build.outputDirectory}/bootstrap/manifest-bootstrap</manifestFile>
</archive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>