| opendj-sdk/opendj-admin/pom.xml | ●●●●● patch | view | raw | blame | history | |
| opendj-sdk/opendj-config-maven-plugin/pom.xml | ●●●●● patch | view | raw | blame | history | |
| opendj-sdk/opendj-config-maven-plugin/src/main/java/org/forgerock/opendj/maven/AbstractBuildMojo.java | ●●●●● patch | view | raw | blame | history | |
| opendj-sdk/opendj-config-maven-plugin/src/main/java/org/forgerock/opendj/maven/OpendjConfigMojo.java | ●●●●● patch | view | raw | blame | history | |
| opendj-sdk/opendj-config-maven-plugin/src/main/java/org/forgerock/opendj/maven/package-info.java | ●●●●● patch | view | raw | blame | history | |
| opendj-sdk/pom.xml | ●●●●● patch | view | raw | blame | history |
opendj-sdk/opendj-admin/pom.xml
@@ -64,12 +64,6 @@ com.sun.security.auth*;resolution:=optional, * </opendj.osgi.import> <mainResourcesDir>${basedir}/src/main/resources</mainResourcesDir> <xmlDefinitionsBaseDir>${mainResourcesDir}/definitions</xmlDefinitionsBaseDir> <xmlDefinitionsDir>${xmlDefinitionsBaseDir}/org/forgerock/opendj/admin</xmlDefinitionsDir> <adminPackage>org/forgerock/opendj/admin</adminPackage> <generatedSourcesDir>${project.build.directory}/generated-sources/admin/${adminPackage}</generatedSourcesDir> <xslDir>${mainResourcesDir}/stylesheets</xslDir> <!-- properties used to generate DynamicConstant class --> <serverProductName>OpenDJ</serverProductName> @@ -183,273 +177,22 @@ </execution> </executions> </plugin> <!-- Validate core components XML definition files and generate the components. --> <!-- Validate core components XML definition files and generate the components. --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>xml-maven-plugin</artifactId> <version>1.0</version> <groupId>org.forgerock.opendj</groupId> <artifactId>opendj-config-maven-plugin</artifactId> <version>3.0.0-SNAPSHOT</version> <executions> <!-- Validate core components XML definition files --> <execution> <id>validate-core-components</id> <id>generate-config</id> <phase>generate-sources</phase> <goals> <goal>validate</goal> <goal>generate</goal> </goals> <configuration> <validationSets> <validationSet> <dir>${xmlDefinitionsDir}</dir> <systemId>${xslDir}/admin.xsd</systemId> </validationSet> </validationSets> <catalogs> <catalog>${xslDir}/catalog.xml</catalog> </catalogs> </configuration> </execution> <execution> <id>generate-core-components</id> <phase>generate-sources</phase> <goals> <goal>transform</goal> </goals> <configuration> <transformationSets> <!-- Generate introspection API for core administration components. --> <transformationSet> <dir>${xmlDefinitionsDir}</dir> <outputDir>${generatedSourcesDir}/meta</outputDir> <stylesheet>${xslDir}/metaMO.xsl</stylesheet> <excludes> <exclude>Package.xml</exclude> </excludes> <fileMappers> <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper"> <pattern>^([^/]+)Configuration\.xml$</pattern> <replacement>$1CfgDefn.java</replacement> </fileMapper> </fileMappers> <parameters> <parameter> <name>base-dir</name> <value>${xmlDefinitionsBaseDir}</value> </parameter> </parameters> </transformationSet> <transformationSet> <dir>${xmlDefinitionsDir}</dir> <outputDir>${generatedSourcesDir}/meta</outputDir> <stylesheet>${xslDir}/package-info.xsl</stylesheet> <includes> <include>Package.xml</include> </includes> <fileMappers> <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper"> <pattern>^Package\.xml$</pattern> <replacement>package-info.java</replacement> </fileMapper> </fileMappers> <parameters> <parameter> <name>type</name> <value>meta</value> </parameter> </parameters> </transformationSet> <!-- Generate server API for core administration components. --> <transformationSet> <dir>${xmlDefinitionsDir}</dir> <outputDir>${generatedSourcesDir}/server</outputDir> <stylesheet>${xslDir}/serverMO.xsl</stylesheet> <excludes> <exclude>Package.xml</exclude> </excludes> <fileMappers> <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper"> <pattern>^([^/]+)Configuration\.xml$</pattern> <replacement>$1Cfg.java</replacement> </fileMapper> </fileMappers> <parameters> <parameter> <name>base-dir</name> <value>${xmlDefinitionsBaseDir}</value> </parameter> </parameters> </transformationSet> <transformationSet> <dir>${xmlDefinitionsDir}</dir> <outputDir>${generatedSourcesDir}/server</outputDir> <stylesheet>${xslDir}/package-info.xsl</stylesheet> <includes> <include>Package.xml</include> </includes> <fileMappers> <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper"> <pattern>^Package\.xml$</pattern> <replacement>package-info.java</replacement> </fileMapper> </fileMappers> <parameters> <parameter> <name>type</name> <value>server</value> </parameter> </parameters> </transformationSet> <!-- Generate client API for core administration components. --> <transformationSet> <dir>${xmlDefinitionsDir}</dir> <outputDir>${generatedSourcesDir}/client</outputDir> <stylesheet>${xslDir}/clientMO.xsl</stylesheet> <excludes> <exclude>Package.xml</exclude> </excludes> <fileMappers> <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper"> <pattern>^([^/]+)Configuration\.xml$</pattern> <replacement>$1CfgClient.java</replacement> </fileMapper> </fileMappers> <parameters> <parameter> <name>base-dir</name> <value>${xmlDefinitionsBaseDir}</value> </parameter> </parameters> </transformationSet> <transformationSet> <dir>${xmlDefinitionsDir}</dir> <outputDir>${generatedSourcesDir}/client</outputDir> <stylesheet>${xslDir}/package-info.xsl</stylesheet> <includes> <include>Package.xml</include> </includes> <fileMappers> <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper"> <pattern>^Package\.xml$</pattern> <replacement>package-info.java</replacement> </fileMapper> </fileMappers> <parameters> <parameter> <name>type</name> <value>client</value> </parameter> </parameters> </transformationSet> <!-- Generate manifest file for core administration components. --> <transformationSet> <dir>${xmlDefinitionsDir}</dir> <outputDir>${project.build.directory}/tmp</outputDir> <stylesheet>${xslDir}/manifestMO.xsl</stylesheet> <excludes> <exclude>Package.xml</exclude> </excludes> <fileMappers> <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper"> <targetExtension>.manifest</targetExtension> </fileMapper> </fileMappers> </transformationSet> </transformationSets> </configuration> </execution> <execution> <id>generate-core-properties</id> <phase>generate-resources</phase> <goals> <goal>transform</goal> </goals> <configuration> <transformationSets> <!-- Generate I18N messages for core administration components. --> <transformationSet> <dir>${xmlDefinitionsDir}</dir> <outputDir>${mainResourcesDir}/admin/messages/${adminPackage}/meta</outputDir> <stylesheet>${xslDir}/messagesMO.xsl</stylesheet> <excludes> <exclude>Package.xml</exclude> </excludes> <fileMappers> <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper"> <pattern>^([^/]+)Configuration\.xml$</pattern> <replacement>$1CfgDefn.properties</replacement> </fileMapper> </fileMappers> <parameters> <parameter> <name>base-dir</name> <value>${xmlDefinitionsBaseDir}</value> </parameter> </parameters> </transformationSet> <!-- Generate LDAP profile for core administration components. --> <transformationSet> <dir>${xmlDefinitionsDir}</dir> <outputDir>${project.build.outputDirectory}/admin/profiles/ldap/${adminPackage}/meta</outputDir> <stylesheet>${xslDir}/ldapMOProfile.xsl</stylesheet> <excludes> <exclude>Package.xml</exclude> </excludes> <fileMappers> <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper"> <pattern>^([^/]+)Configuration\.xml$</pattern> <replacement>$1CfgDefn.properties</replacement> </fileMapper> </fileMappers> <parameters> <parameter> <name>base-dir</name> <value>${xmlDefinitionsBaseDir}</value> </parameter> </parameters> </transformationSet> <!-- Generate CLI profile for core administration components. --> <transformationSet> <dir>${xmlDefinitionsDir}</dir> <outputDir>${project.build.outputDirectory}/admin/profiles/cli/${adminPackage}/meta</outputDir> <stylesheet>${xslDir}/cliMOProfile.xsl</stylesheet> <excludes> <exclude>Package.xml</exclude> </excludes> <fileMappers> <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper"> <pattern>^([^/]+)Configuration\.xml$</pattern> <replacement>$1CfgDefn.properties</replacement> </fileMapper> </fileMappers> <parameters> <parameter> <name>base-dir</name> <value>${xmlDefinitionsBaseDir}</value> </parameter> </parameters> </transformationSet> </transformationSets> </configuration> </execution> </executions> <dependencies> <dependency> <!-- no lib => fail, xalan 2.7 => fail, saxon 6.5.3 => ok --> <groupId>saxon</groupId> <artifactId>saxon</artifactId> <version>6.5.3</version> </dependency> </dependencies> </plugin> <!-- Concatenate all single manifest files to a single manifest for core administration components. --> opendj-sdk/opendj-config-maven-plugin/pom.xml
New file @@ -0,0 +1,57 @@ <?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.forgerock.opendj</groupId> <artifactId>opendj-project</artifactId> <version>3.0.0-SNAPSHOT</version> </parent> <artifactId>opendj-config-maven-plugin</artifactId> <name>OpenDJ Config Maven Plugin</name> <description> Generation of configuration classes, messages and profiles from xml definition files for opendj server. </description> <packaging>maven-plugin</packaging> <properties> <mavenVersion>3.0.4</mavenVersion> </properties> <dependencies> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> <version>3.0.4</version> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <version>${mavenVersion}</version> </dependency> <dependency> <groupId>org.apache.maven.plugin-tools</groupId> <artifactId>maven-plugin-annotations</artifactId> <version>3.2</version> <scope>provided</scope> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>org.twdata.maven</groupId> <artifactId>mojo-executor</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> </dependency> </dependencies> </project> opendj-sdk/opendj-config-maven-plugin/src/main/java/org/forgerock/opendj/maven/AbstractBuildMojo.java
New file @@ -0,0 +1,91 @@ /* * 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 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 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 2013 ForgeRock AS. */ package org.forgerock.opendj.maven; import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.BuildPluginManager; import org.apache.maven.project.MavenProject; /** * AbstractMojo implementation for generation of opendj server configuration * classes. */ abstract class AbstractBuildMojo extends AbstractMojo { /** * The Maven Project. * * @parameter property="project" * @required * @readonly */ private MavenProject project; /** * The Maven Session. * * @parameter property="session" * @required * @readonly */ private MavenSession session; /** * The Maven PluginManager. * * @component * @required */ private BuildPluginManager pluginManager; /** * The Maven Project. * * @return the project */ public MavenProject getProject() { return project; } /** * The Maven Session. * * @return the session */ public MavenSession getSession() { return session; } /** * The Maven PluginManager. * * @return the plugin manager */ public BuildPluginManager getPluginManager() { return pluginManager; } } opendj-sdk/opendj-config-maven-plugin/src/main/java/org/forgerock/opendj/maven/OpendjConfigMojo.java
New file @@ -0,0 +1,432 @@ /* * 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 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 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 2013 ForgeRock AS. */ package org.forgerock.opendj.maven; import java.io.File; import java.util.ArrayList; import java.util.List; import org.apache.commons.io.FilenameUtils; import org.apache.maven.model.Dependency; import org.apache.maven.model.Plugin; import org.apache.maven.plugin.MojoExecutionException; import org.twdata.maven.mojoexecutor.MojoExecutor; // @Checkstyle:off /** * Generate configuration classes from XML definition files for OpenDJ server. * <p> * There is a single goal that generate java sources, manifest files, I18N messages * and cli/ldap profiles. * * @goal generate * @phase generate-sources * @requiresDependencyResolution compile+runtime */ // @Checkstyle:on public class OpendjConfigMojo extends AbstractBuildMojo { /** * Package path in which artefacts are generated. * <p> * This relative path is used to locate xml definition files and to locate * generated artefacts. * * @parameter default-value="org/forgerock/opendj/admin" * @required */ private String packagePath; /** * Root directory where definitions of configuration as xml files are * located. * * @parameter default-value="${basedir}/src/main/resources/definitions" * @required */ private String xmlDefinitionsRootDir; /** * Directory containing stylesheets (xsl files) to generate code and other * artefacts. * * @parameter default-value="${basedir}/src/main/resources/stylesheets" * @required */ private String xslDir; /** * Root directory containing generated sources for configuration. * * @parameter default-value="${project.build.directory}/generated-sources/admin" * @required */ private String generatedSourcesRootDir; /** * Temporary directory containing generated manifests. * <p> * There is one manifest file generated by component. It is the * responsability of project that use this plugin to concatenate all * generated files into a single file. * * @parameter default-value="${project.build.directory}/tmp" * @required */ private String generatedManifestsTempDir; /** * Root directory containing generated messages for configuration. * * @parameter default-value="${basedir}/src/main/resources/admin/messages" * @required */ private String generatedMessagesRootDir; /** * Root directory containing generated profiles for configuration. * * @parameter default-value="${project.build.outputDirectory}/admin/profiles" * @required */ private String generatedProfilesRootDir; /** * Returns the package path in which artefacts are generated. * <p> * The package path is a relative path. * * @return the package path */ public final String getPackagePath() { return packagePath; } /** * Returns the root directory for xml configuration files. * * @return {@code xmlDefinitionsRootDir} */ public final File getXmlDefinitionsRootDirectory() { return new File(xmlDefinitionsRootDir); } /** * Returns the directory containing xml configuration files. * * @return the directory containing xml configuration files */ public final File getXmlDefinitionsDirectory() { return new File(getXmlDefinitionsRootDirectory(), packagePath); } /** * Returns the directory containing xsl files to generate code. * * @return {@code xslDir} */ public final File getXslDirectory() { return new File(xslDir); } /** * Returns the temporary directory containing generated manifests. * * @return {@code manifestsTempDir} */ public final String getGeneratedManifestsTempDirectory() { return generatedManifestsTempDir; } /** * Returns the directory containing generated sources for configuration. * * @return {@code generatedSourcesDir} */ public final File getGeneratedSourcesDirectory() { return new File(generatedSourcesRootDir, getPackagePath()); } /** * Returns the directory containing generated messages for configuration. * * @return the directory containing generated messages */ public final File getGeneratedMessagesDirectory() { return new File(generatedMessagesRootDir, getPackagePath() + "/" + "meta"); } /** * Returns the directory containing generated profile for configuration. * * @param profileType * The type of profile (ldap or cli) * * @return the directory containing generated profiles for configuration */ public final File getGeneratedProfilesDirectory(String profileType) { return new File(generatedProfilesRootDir, profileType + "/" + getPackagePath() + "/" + "meta"); } /** * Version of xml-maven-plugin to use. * * @parameter default-value="1.0" * @required */ private String xmlMavenPluginVersion; /** * Returns the version of xml-maven-plugin. * * @return {@code xmlMavenPluginVersion} */ public final String getXmlMavenPluginVersion() { return xmlMavenPluginVersion; } /** * {@inheritDoc} */ @Override public final void execute() throws MojoExecutionException { //checkDirectories(); Executor exec = new Executor(); getLog().info("Validate XML definition files"); exec.validateXmlDefinitionsFiles(); getLog().info("Generate meta, server and client APIs for components..."); exec.generateSourcesAndManifests(); getLog().info("Generate I18N messages and profiles..."); exec.generateMessagesAndProfiles(); } void checkDirectories() throws MojoExecutionException { if (getPackagePath() == null) { throw new MojoExecutionException("<packagePath> must be set."); } if (getXmlDefinitionsDirectory() == null || !getXmlDefinitionsDirectory().exists()) { throw new MojoExecutionException("<xmlDefinitionsRootDir> and <packagePath> must be set and concatenation" + "of the two (with / separator) must correspond to an existing directory."); } if (getXslDirectory() == null || !getXslDirectory().exists()) { throw new MojoExecutionException("<xslDir> must be set and must correspond to an existing directory."); } } /** * Execute xml maven plugin with several executions and configurations. */ private class Executor extends MojoExecutor { private static final String SAXON_LIBRARY_VERSION = "6.5.3"; private static final String FILE_EXTENSION_MAPPER = "org.codehaus.plexus.components.io.filemappers.FileExtensionMapper"; private static final String REGEXP_FILE_MAPPER = "org.codehaus.plexus.components.io.filemappers.RegExpFileMapper"; private static final String CLIENT = "client"; private static final String SERVER = "server"; private static final String META = "meta"; private static final String PROPERTIES_FILE_REPLACEMENT_PATTERN = "$1CfgDefn.properties"; /** Pattern to identify a xml definition file for java package. */ private static final String XML_CONFIG_PACKAGE_FILE_PATTERN = "^Package\\.xml$"; /** Pattern to identify a xml definition file for java class. */ private static final String XML_CONFIG_FILE_PATTERN = "^([^/]+)Configuration\\.xml$"; /** * Generate sources for configuration. */ void generateSourcesAndManifests() throws MojoExecutionException { executeMojo( xmlPlugin(), goal("transform"), configuration( element(name("transformationSets"), transformationSetForClasses(META, "$1CfgDefn.java"), transformationSetForPackage(META), transformationSetForClasses(SERVER, "$1Cfg.java"), transformationSetForPackage(SERVER), transformationSetForClasses(CLIENT, "$1CfgClient.java"), transformationSetForPackage(CLIENT), transformationSetForManifests() )), executionEnvironment(getProject(), getSession(), getPluginManager())); } /** * Validate xml configuration files. */ void validateXmlDefinitionsFiles() throws MojoExecutionException { executeMojo( xmlPlugin(), goal("validate"), configuration( element(name("validationSets"), element(name("validationSet"), directoryElement(), element(name("systemId"), filePath(getXslDirectory()) + "/" + "admin.xsd"))), element(name("catalogs"), element(name("catalog"), filePath(getXslDirectory()) + "/" + "catalog.xml"))), executionEnvironment(getProject(), getSession(), getPluginManager())); } /** * Generate I18N messages and LDAP/CLI profiles for configuration. */ void generateMessagesAndProfiles() throws MojoExecutionException { executeMojo(xmlPlugin(), goal("transform"), configuration( element(name("transformationSets"), transformationSetForResource(filePath(getGeneratedMessagesDirectory()), "messagesMO.xsl"), transformationSetForResource(filePath(getGeneratedProfilesDirectory("ldap")), "ldapMOProfile.xsl"), transformationSetForResource(filePath(getGeneratedProfilesDirectory("cli")), "cliMOProfile.xsl") )), executionEnvironment(getProject(), getSession(), getPluginManager())); } private Plugin xmlPlugin() { Dependency xsltLibrary = new Dependency(); xsltLibrary.setGroupId("saxon"); xsltLibrary.setArtifactId("saxon"); xsltLibrary.setVersion(SAXON_LIBRARY_VERSION); List<Dependency> deps = new ArrayList<Dependency>(); deps.add(xsltLibrary); return plugin(groupId("org.codehaus.mojo"), artifactId("xml-maven-plugin"), version(getXmlMavenPluginVersion()), deps); } private MojoExecutor.Element transformationSetForClasses(String type, String patternReplacement) { String xslFileName = type + "MO.xsl"; return transformationSetForSource(type, xslFileName, packageElement(false), XML_CONFIG_FILE_PATTERN, patternReplacement, baseDirParameter()); } private MojoExecutor.Element transformationSetForPackage(String type) { return transformationSetForSource(type, "package-info.xsl", packageElement(true), XML_CONFIG_PACKAGE_FILE_PATTERN, "package-info.java", typeParameter(type)); } /** * Returns a transformation set element for source code. */ private MojoExecutor.Element transformationSetForSource(String finalOutputDir, String xslName, MojoExecutor.Element packageElement, String pattern, String patternReplacement, MojoExecutor.Element parameter) { return element(name("transformationSet"), directoryElement(), outputDirElement(filePath(getGeneratedSourcesDirectory()) + "/" + finalOutputDir), styleSheetElement(xslName), packageElement, element(name("fileMappers"), element(name("fileMapper"), attribute("implementation", REGEXP_FILE_MAPPER), element(name("pattern"), pattern), element(name("replacement"), patternReplacement))), element(name("parameters"), parameter)); } /** * Returns a transformation set element for manifests. */ private MojoExecutor.Element transformationSetForManifests() { return element(name("transformationSet"), directoryElement(), outputDirElement(getGeneratedManifestsTempDirectory()), styleSheetElement("manifestMO.xsl"), packageElement(false), element(name("fileMappers"), element(name("fileMapper"), attribute("implementation", FILE_EXTENSION_MAPPER), element(name("targetExtension"), ".manifest")))); } /** * Returns a transformation set element for source code. */ private MojoExecutor.Element transformationSetForResource(String outputDir, String xslName) { return element(name("transformationSet"), directoryElement(), outputDirElement(outputDir), styleSheetElement(xslName), packageElement(false), element(name("fileMappers"), element(name("fileMapper"), attribute("implementation", REGEXP_FILE_MAPPER), element(name("pattern"), XML_CONFIG_FILE_PATTERN), element(name("replacement"), PROPERTIES_FILE_REPLACEMENT_PATTERN))), element(name("parameters"), baseDirParameter())); } private Element outputDirElement(String outputDir) { return element(name("outputDir"), outputDir); } private Element styleSheetElement(String xslName) { return element(name("stylesheet"), filePath(getXslDirectory()) + "/" + xslName); } private Element directoryElement() { return element(name("dir"), filePath(getXmlDefinitionsDirectory())); } private MojoExecutor.Element baseDirParameter() { return element(name("parameter"), element(name("name"), "base-dir"), element(name("value"), filePath(getXmlDefinitionsRootDirectory()))); } private MojoExecutor.Element typeParameter(String value) { return element(name("parameter"), element(name("name"), "type"), element(name("value"), value)); } /** Package element either include "package.xml" file or exclude it. */ private MojoExecutor.Element packageElement(boolean include) { String tag = include ? "include" : "exclude"; String pluralTag = tag + "s"; return element(name(pluralTag), element(name(tag), "Package.xml")); } /** Returns the string path from the provided file. */ private String filePath(File file) { return FilenameUtils.separatorsToUnix(file.getPath()); } } } opendj-sdk/opendj-config-maven-plugin/src/main/java/org/forgerock/opendj/maven/package-info.java
New file @@ -0,0 +1,31 @@ /* * 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 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 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 2013 ForgeRock AS. */ /** * Classes implementing the maven plugin for generation of configuration classes based on XML definition files. */ package org.forgerock.opendj.maven; opendj-sdk/pom.xml
@@ -89,10 +89,10 @@ </site> </distributionManagement> <modules> <!--module>opendj-admin</module--> <module>opendj-config-maven-plugin</module> <module>opendj-core</module> <module>opendj-grizzly</module> <!-- <module>opendj-admin</module> --> <!--module>opendj-admin</module--> <module>opendj-ldap-sdk</module> <module>opendj-ldap-toolkit</module> <module>opendj-ldap-sdk-examples</module>