pom.xml revision 28acaa0ac7a1342cc63dc24498497fa9668df25e
<?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</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-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>
<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>
<plugin>
<!-- Ensure that our usage of the jaxb2-maven-plugin is JDK 8 compatible -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<configuration>
<properties>
<property>
<name>javax.xml.accessExternalSchema</name>
<value>all</value>
</property>
</properties>
</configuration>
<executions>
<execution>
<id>set-additional-system-properties</id>
<goals>
<goal>set-system-properties</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 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>
<execution>
<id>copy-guitools-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/org/opends/guitools</outputDirectory>
<resources>
<resource>
<directory>src/main/java/org/opends/guitools</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-quicksetup-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/org/opends/quicksetup</outputDirectory>
<resources>
<resource>
<directory>src/main/java/org/opends/quicksetup</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.forgerock.opendj</groupId>
<artifactId>opendj-maven-plugin</artifactId>
<version>${project.version}</version>
<executions>
<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>
<additionalJars>
<additionalJar>opendj-slf4j-adapter.jar</additionalJar>
</additionalJars>
</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>
</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 log references 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>
<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>
<!-- Package OpenDJ SL4J Logger Adapter jar -->
<execution>
<id>build-opendj-slf4j-adapter-jar</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<outputDirectory>${jars.dir}</outputDirectory>
<finalName>opendj-slf4j-adapter</finalName>
<includes>
<include>**/org/slf4j/**</include>
<include>**/org/opends/server/loggers/OpenDJLogger*</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>
<exclude>org/slf4j/**</exclude>
<exclude>org/opends/server/loggers/OpenDJLogger*</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>
<execution>
<!-- Copy config.ldif in build dir (needed if snmp config merge is needed) -->
<id>copy-config-ldif</id>
<phase>generate-resources</phase>
<configuration>
<target>
<copy todir="${project.build.directory}/template/config" file="${basedir}/resource/config/config.ldif"/>
</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>generated/org/opends/server/snmp/**,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>
<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.dir>${basedir}/src/snmp</snmp.dir>
<snmp.gen.dir>${snmp.dir}/generated</snmp.gen.dir>
<snmp.mib.dir>${snmp.dir}/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</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>
<execution>
<!-- Append snmp config to the config.ldif -->
<id>generate-config-ldif</id>
<phase>prepare-package</phase>
<configuration>
<target>
<concat destfile="${project.build.directory}/template/config/config.ldif" append="true">
<filelist dir="${snmp.dir}/resource/config" files="config.snmp.ldif"/>
</concat>
</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>