<!--
|
The contents of this file are subject to the terms of the Common Development and
|
Distribution License (the License). You may not use this file except in compliance with the
|
License.
|
|
You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
|
specific language governing permission and limitations under the License.
|
|
When distributing Covered Software, include this CDDL Header Notice in each file and include
|
the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
|
Header, with the fields enclosed by brackets [] replaced by your own identifying
|
information: "Portions Copyright [year] [name of copyright owner]".
|
|
Copyright 2006-2010 Sun Microsystems, Inc.
|
Portions Copyright 2011-2015 ForgeRock AS.
|
Portions Copyright 2012 Delta Victor Consultants
|
! -->
|
|
<project name="Config framework generation" basedir=".">
|
<description>
|
This is the build legacy OpenDJ configuration framework.
|
This file and the ext/ directory would be able to remove once the migration
|
to the new configuration framework (see opendj-config) will be done.
|
</description>
|
|
<!-- Build JVM properties -->
|
<property name="MEM" value="512M"/>
|
|
<!-- General server-wide properties -->
|
<property name="build.dir" location="target"/>
|
<property name="classes.dir" location="${build.dir}/classes" />
|
<property name="ext.dir" location="ext" />
|
|
<!-- Properties for the ANT build tool. -->
|
<property name="ant.dir" location="${ext.dir}/ant" />
|
|
<!-- Properties for administration framework code generation. -->
|
<property name="admin.defn.dir" location="${build.dir}/config/admin/defn" />
|
<property name="admin.src.dir" location="src/admin/generated" />
|
<property name="admin.rules.dir" location="resource/admin" />
|
|
<!-- Validate core administration component XML definition files. -->
|
<target name="validateadmin" description="Validate core administration component XML definition files.">
|
<schemavalidate>
|
<fileset dir="${admin.defn.dir}" includes="**/*.xml" />
|
<schema namespace="http://www.opends.org/admin" file="${admin.rules.dir}/admin.xsd"/>
|
<schema namespace="http://www.opends.org/admin-ldap" file="${admin.rules.dir}/admin-ldap.xsd"/>
|
<schema namespace="http://www.opends.org/admin-cli" file="${admin.rules.dir}/admin-cli.xsd"/>
|
</schemavalidate>
|
</target>
|
|
<!-- Code generation for core administration components. -->
|
<target name="generateadmin" depends="validateadmin" description="Code generation for configuration Object.">
|
<!-- The XSLT task creates a lot of noise.
|
I can't find any other way to shut it up. -->
|
<condition property="antcmd" value="ant.bat">
|
<os family="windows" />
|
</condition>
|
|
<condition property="antcmd" value="ant">
|
<not>
|
<isset property="antcmd" />
|
</not>
|
</condition>
|
|
<exec executable="${ant.dir}/bin/${antcmd}" failonerror="true">
|
<arg value="-buildfile" />
|
<arg value="${ant.file}" />
|
<arg value="-Dbuild.dir=${build.dir}" />
|
<arg value="-Dadmin.src.dir=${admin.src.dir}" />
|
<arg value="-quiet" />
|
<arg value="generateadminsubtask" />
|
<env key="ANT_OPTS" value="-Xmx${MEM}" />
|
<!-- Set classpath to workaround Apple JDK Xalan conflict -->
|
<env key="CLASSPATH" value="${ext.dir}/xalan-j/xalan.jar" />
|
</exec>
|
</target>
|
|
<target name="generateadminsubtask">
|
<!-- Xalan-J Class Path : refer to it explicitly from each XSLT task. -->
|
<path id="xalan.class.path">
|
<fileset dir="${ext.dir}/xalan-j">
|
<include name="*.jar" />
|
</fileset>
|
</path>
|
|
<!-- Generate introspection API for core administration components. -->
|
<xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/*Configuration.xml"
|
style="${admin.rules.dir}/metaMO.xsl">
|
<regexpmapper handledirsep="true" from="^(.*)/([^/]+)Configuration\.xml$$" to="\1/meta/\2CfgDefn.java" />
|
<param name="base-dir" expression="${admin.defn.dir}" />
|
<classpath refid="xalan.class.path" />
|
</xslt>
|
|
<xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/Package.xml" style="${admin.rules.dir}/package-info.xsl">
|
<regexpmapper handledirsep="true" from="^(.*)/([^/]+)\.xml$$" to="\1/meta/package-info.java" />
|
<param name="type" expression="meta" />
|
<classpath refid="xalan.class.path" />
|
</xslt>
|
|
<!-- Generate client API for core administration components. -->
|
<xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/*Configuration.xml"
|
style="${admin.rules.dir}/clientMO.xsl">
|
<regexpmapper handledirsep="true" from="^(.*)/([^/]+)Configuration\.xml$$" to="\1/client/\2CfgClient.java" />
|
<param name="base-dir" expression="${admin.defn.dir}" />
|
<classpath refid="xalan.class.path" />
|
</xslt>
|
|
<xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/Package.xml" style="${admin.rules.dir}/package-info.xsl">
|
<regexpmapper handledirsep="true" from="^(.*)/([^/]+)\.xml$$" to="\1/client/package-info.java" />
|
<param name="type" expression="client" />
|
<classpath refid="xalan.class.path" />
|
</xslt>
|
|
<!-- Generate server API for core administration components. -->
|
<xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/*Configuration.xml"
|
style="${admin.rules.dir}/serverMO.xsl">
|
<regexpmapper handledirsep="true" from="^(.*)/([^/]+)Configuration\.xml$$" to="\1/server/\2Cfg.java" />
|
<param name="base-dir" expression="${admin.defn.dir}" />
|
<classpath refid="xalan.class.path" />
|
</xslt>
|
|
<xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/Package.xml" style="${admin.rules.dir}/package-info.xsl">
|
<regexpmapper handledirsep="true" from="^(.*)/([^/]+)\.xml$$" to="\1/server/package-info.java" />
|
<param name="type" expression="server" />
|
<classpath refid="xalan.class.path" />
|
</xslt>
|
|
<!-- Generate LDAP profile for core administration components. -->
|
<mkdir dir="${classes.dir}" />
|
<xslt basedir="${admin.defn.dir}" destdir="${classes.dir}/admin/profiles/ldap" includes="**/*Configuration.xml"
|
style="${admin.rules.dir}/ldapMOProfile.xsl">
|
<regexpmapper handledirsep="true" from="^(.*)/([^/]+)Configuration\.xml$$" to="\1/meta/\2CfgDefn.properties" />
|
<param name="base-dir" expression="${admin.defn.dir}" />
|
<classpath refid="xalan.class.path" />
|
</xslt>
|
|
<!-- Generate CLI profile for core administration components. -->
|
<xslt basedir="${admin.defn.dir}" destdir="${classes.dir}/admin/profiles/cli" includes="**/*Configuration.xml"
|
style="${admin.rules.dir}/cliMOProfile.xsl">
|
<regexpmapper handledirsep="true" from="^(.*)/([^/]+)Configuration\.xml$$" to="\1/meta/\2CfgDefn.properties" />
|
<param name="base-dir" expression="${admin.defn.dir}" />
|
<classpath refid="xalan.class.path" />
|
</xslt>
|
|
<!-- Generate I18N messages for core administration components. -->
|
<xslt basedir="${admin.defn.dir}" destdir="${classes.dir}/admin/messages" includes="**/*Configuration.xml"
|
style="${admin.rules.dir}/messagesMO.xsl">
|
<regexpmapper handledirsep="true" from="^(.*)/([^/]+)Configuration\.xml$$" to="\1/meta/\2CfgDefn.properties" />
|
<param name="base-dir" expression="${admin.defn.dir}" />
|
<classpath refid="xalan.class.path" />
|
</xslt>
|
|
<!-- Generate manifest file for core administration components. -->
|
<tempfile property="admin.temp.dir" destDir="${build.dir}" prefix="tmp" />
|
<mkdir dir="${admin.temp.dir}" />
|
<xslt basedir="${admin.defn.dir}" destdir="${admin.temp.dir}" extension=".manifest" includes="**/*Configuration.xml"
|
style="${admin.rules.dir}/manifestMO.xsl">
|
<classpath refid="xalan.class.path" />
|
</xslt>
|
<concat destfile="${classes.dir}/admin/core.manifest">
|
<fileset dir="${admin.temp.dir}" includes="**/*.manifest" />
|
</concat>
|
<delete dir="${admin.temp.dir}" />
|
</target>
|
</project>
|