From 786cb5065fbd109b3dce35358977eb3dadbdc707 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Fri, 27 Aug 2010 16:55:38 +0000
Subject: [PATCH] Fix experimental/build.xml to work with xalan and match the top build.xml file. This now allow to build the example-plugin with the following sequence: "cd experimental, unzip example-plugin.zip, cd example-plugin/, ant"
---
opends/experimental/build.xml | 445 +++++++++++++++++++++++++++++++------------------------
1 files changed, 249 insertions(+), 196 deletions(-)
diff --git a/opends/experimental/build.xml b/opends/experimental/build.xml
index 5d7e36f..283de7f 100644
--- a/opends/experimental/build.xml
+++ b/opends/experimental/build.xml
@@ -26,71 +26,113 @@
! -->
<project name="extension" basedir="." default="package">
- <description>
+ <description>
This Ant build file contains common targets for extensions. It
should not be invoked directly.
- </description>
+ </description>
<!-- OpenDS base directory -->
- <dirname property="extension.basedir" file="${ant.file.extension}" />
- <property name="base.dir" location="${extension.basedir}/.." />
- <property name="opends.install.dir"
+ <dirname property="extension.basedir" file="${ant.file.extension}" />
+ <property name="base.dir" location="${extension.basedir}/.." />
+ <property name="opends.install.dir"
location="${base.dir}/build/package/OpenDS-2.3.0" />
<!-- Source paths relative to extension -->
- <property name="src.dir" location="src" />
- <property name="src.gen.dir" location="src-generated" />
- <property name="lib.dir" location="lib" />
- <property name="config.dir" location="config" />
- <property name="schema.dir" location="schema" />
+ <property name="src.dir" location="src" />
+ <property name="src.gen.dir" location="src-generated" />
+ <property name="lib.dir" location="lib" />
+ <property name="config.dir" location="config" />
+ <property name="schema.dir" location="schema" />
+
+ <!-- CONFIGURE: The path of Xalan-Java distribution. -->
+ <property name="xalan.directory" location="${base.dir}/ext/xalan-j" />
<!-- Build paths relative to extension -->
- <property name="build.dir" location="build" />
- <property name="classes.dir" location="${build.dir}/classes" />
- <property name="javadoc.dir" location="${build.dir}/javadoc" />
- <property name="package.dir" location="${build.dir}/package" />
- <property name="message.dir" location="${build.dir}/message" />
+ <property name="build.dir" location="build" />
+ <property name="classes.dir" location="${build.dir}/classes" />
+ <property name="javadoc.dir" location="${build.dir}/javadoc" />
+ <property name="package.dir" location="${build.dir}/package" />
+ <property name="message.dir" location="${build.dir}/message" />
<!-- Files based on extension name -->
- <property name="jar.file" value="${extension.name}.jar" />
- <property name="properties.file" value="${extension.name}.properties" />
+ <property name="jar.file" value="${extension.name}.jar" />
+ <property name="properties.file" value="${extension.name}.properties" />
<!-- Paths relative to OpenDS source tree -->
- <property name="resource.dir" location="${base.dir}/resource" />
- <property name="admin.dir" location="${resource.dir}/admin" />
+ <property name="resource.dir" location="${base.dir}/resource" />
+ <property name="admin.dir" location="${resource.dir}/admin" />
<!-- Build class path -->
- <path id="build.classpath">
- <fileset dir="${lib.dir}">
- <include name="*.jar" />
- </fileset>
- <pathelement path="${base.dir}/build/classes" />
- </path>
+ <path id="build.classpath">
+ <fileset dir="${lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+ <pathelement path="${base.dir}/build/classes" />
+ </path>
<!-- Condition variable used for deciding if messages need generating -->
- <available property="hasmessages" file="${properties.file}" type="file">
- <filepath>
- <dirset dir="${src.dir}" />
- </filepath>
- </available>
+ <available property="hasmessages" file="${properties.file}" type="file">
+ <filepath>
+ <dirset dir="${src.dir}" />
+ </filepath>
+ </available>
<!-- Clean up any files generated during the build process. -->
- <target name="clean"
+ <target name="clean"
description="Clean up any files generated during the build process.">
- <delete includeemptydirs="true">
- <fileset dir="${src.gen.dir}" includes="**/*" />
- </delete>
- <delete includeemptydirs="true">
- <fileset dir="${build.dir}" includes="**/*" />
- </delete>
- </target>
+ <delete includeemptydirs="true">
+ <fileset dir="${src.gen.dir}" includes="**/*" />
+ </delete>
+ <delete includeemptydirs="true">
+ <fileset dir="${build.dir}" includes="**/*" />
+ </delete>
+ </target>
+
+ <!-- Perform verification for Xalan dependency -->
+ <target name="ensurexalan" description="Verify that the Xalan-Java jar files are accessibles.">
+ <fail message="Please use -Dxalan.directory to reference the directory that contains Xalan-Java">
+ <condition>
+ <not>
+ <available property="xalan.directory.exists" file="${xalan.directory}" />
+ </not>
+ <!-- >
+ <then>
+ <echo message="Please use -Dxalan.directory to point to a directory " />
+ <echo message="that contains an unzipped delivery of Xalan-Java." />
+ <echo message="You can download Xalan-Java from the Apache website :" />
+ <echo message=" http://xml.apache.org/xalan-j/" />
+ <echo message="" />
+ < -->
+ </condition>
+ </fail>
+
+ <!-- Xalan-J Class Path : refer to it explicitly from each XSLT task. -->
+ <path id="xalan.class.path">
+ <fileset dir="${xalan.directory}">
+ <include name="*.jar" />
+ </fileset>
+ </path>
+
+ <!-- Verify that all required Xalan jars are present -->
+ <property name="xalan.jar.files" value="serializer.jar,xalan.jar,xercesImpl.jar,xml-apis.jar" />
+ <fail message="Missing at least one Xalan-Java jar files in directory ${xalan.directory} (expecting : ${xalan.jar.files}).">
+ <condition>
+ <not>
+ <resourcecount count="4">
+ <fileset dir="${xalan.directory}" includes="${xalan.jar.files}" />
+ </resourcecount>
+ </not>
+ </condition>
+ </fail>
+
+ </target>
<!-- Compile the Directory Server extension source files. -->
- <target name="compile"
+ <target name="compile"
depends="init,compileadmin,generate-messages"
description="Compile the Directory Server extension source files.">
- <mkdir dir="${classes.dir}" />
- <javac srcdir="${src.dir}:${src.gen.dir}"
+ <mkdir dir="${classes.dir}" />
+ <javac srcdir="${src.dir}:${src.gen.dir}"
destdir="${classes.dir}"
optimize="true"
excludes="**/package-info.java"
@@ -102,260 +144,271 @@
fork="true"
memoryInitialSize="${MEM}"
memoryMaximumSize="${MEM}">
- <compilerarg value="-Xlint:all" />
- <classpath refid="build.classpath" />
- </javac>
- </target>
+ <compilerarg value="-Xlint:all" />
+ <classpath refid="build.classpath" />
+ </javac>
+ </target>
<!-- Generate JavaDoc documentation from the source files. -->
- <target name="javadoc"
+ <target name="javadoc"
depends="init,compile"
description="Generate JavaDoc documentation.">
- <mkdir dir="${javadoc.dir}" />
- <javadoc destdir="${javadoc.dir}"
+ <mkdir dir="${javadoc.dir}" />
+ <javadoc destdir="${javadoc.dir}"
source="1.5"
additionalparam="-quiet"
linksource="yes"
windowtitle="${extension.description} API Documentation"
maxmemory="${MEM}">
- <classpath refid="build.classpath" />
- <packageset dir="${src.dir}" />
- <packageset dir="${src.gen.dir}" />
- </javadoc>
- </target>
+ <classpath refid="build.classpath" />
+ <packageset dir="${src.dir}" />
+ <packageset dir="${src.gen.dir}" />
+ </javadoc>
+ </target>
<!-- Package the Directory Server extension for distribution. -->
- <target name="package"
+ <target name="package"
depends="clean,compile"
description="Package the Directory Server extension for distribution.">
- <mkdir dir="${package.dir}" />
- <jar jarfile="${package.dir}/${jar.file}"
+ <mkdir dir="${package.dir}" />
+ <jar jarfile="${package.dir}/${jar.file}"
basedir="${classes.dir}"
compress="true"
index="true" />
- </target>
+ </target>
<!-- Install the Directory Server extension in an existing OpenDS installation. -->
- <target name="install"
+ <target name="install"
depends="package"
description="Install the Directory Server extension in an existing OpenDS installation.">
- <echo message="Use the following Ant option to change the install location:" />
- <echo message="" />
- <echo message=" -Dopends.install.dir=path" />
- <echo message=" The path of an OpenDS installation where the extension will be installed." />
- <echo message=" Used by the install target [default: ${opends.install.dir}]." />
- <echo message="" />
+ <echo message="Use the following Ant option to change the install location:" />
+ <echo message="" />
+ <echo message=" -Dopends.install.dir=path" />
+ <echo message=" The path of an OpenDS installation where the extension will be installed." />
+ <echo message=" Used by the install target [default: ${opends.install.dir}]." />
+ <echo message="" />
- <mkdir dir="${opends.install.dir}/lib" />
- <copy todir="${opends.install.dir}/lib">
- <fileset file="${lib.dir}/*.jar" />
- </copy>
- <mkdir dir="${opends.install.dir}/lib/extensions" />
- <copy todir="${opends.install.dir}/lib/extensions">
- <fileset file="${package.dir}/*.jar" />
- </copy>
- <copy todir="${opends.install.dir}/config">
- <fileset file="${config.dir}/*.ldif" />
- </copy>
- <copy todir="${opends.install.dir}/config/schema">
- <fileset file="${schema.dir}/*.ldif" />
- </copy>
- </target>
+ <mkdir dir="${opends.install.dir}/lib" />
+ <copy todir="${opends.install.dir}/lib">
+ <fileset file="${lib.dir}/*.jar" />
+ </copy>
+ <mkdir dir="${opends.install.dir}/lib/extensions" />
+ <copy todir="${opends.install.dir}/lib/extensions">
+ <fileset file="${package.dir}/*.jar" />
+ </copy>
+ <copy todir="${opends.install.dir}/config">
+ <fileset file="${config.dir}/*.ldif" />
+ </copy>
+ <copy todir="${opends.install.dir}/config/schema">
+ <fileset file="${schema.dir}/*.ldif" />
+ </copy>
+ </target>
<!-- Perform common initialization common to several targets. -->
- <target name="init">
- <tstamp>
- <format property="timestamp" pattern="yyyyMMddHHmmss" />
- </tstamp>
- <condition property="DEBUG_BUILD" value="false">
- <not>
- <isset property="DEBUG_BUILD" />
- </not>
- </condition>
- <condition property="MEM" value="128M">
- <not>
- <isset property="MEM" />
- </not>
- </condition>
- </target>
+ <target name="init">
+ <tstamp>
+ <format property="timestamp" pattern="yyyyMMddHHmmss" />
+ </tstamp>
+ <condition property="DEBUG_BUILD" value="false">
+ <not>
+ <isset property="DEBUG_BUILD" />
+ </not>
+ </condition>
+ <condition property="MEM" value="128M">
+ <not>
+ <isset property="MEM" />
+ </not>
+ </condition>
+ </target>
<!-- Compile the Directory Server extension configuration definition files. -->
- <target name="compileadmin" depends="validateadmin">
- <!-- Copy XML definitions for this extension and core server into the same location -->
- <tempfile property="admin.temp.dir" destDir="${classes.dir}" />
- <mkdir dir="${admin.temp.dir}" />
+ <target name="compileadmin" depends="ensurexalan,validateadmin">
- <copy todir="${admin.temp.dir}">
- <fileset dir="${src.dir}" includes="**/*.xml" />
- <fileset dir="${base.dir}/src/admin/defn" includes="**/*.xml" />
- </copy>
+ <echo message="classpath = ${xalan.class.path}" />
+ <!-- Copy XML definitions for this extension and core server into the same location -->
+ <tempfile property="admin.temp.dir" destDir="${classes.dir}" />
+ <mkdir dir="${admin.temp.dir}" />
+
+ <copy todir="${admin.temp.dir}">
+ <fileset dir="${src.dir}" includes="**/*.xml" />
+ <fileset dir="${base.dir}/src/admin/defn" includes="**/*.xml" />
+ </copy>
<!-- Compile the Directory Server extension configuration meta classes. -->
- <xslt basedir="${admin.temp.dir}"
+ <xslt basedir="${admin.temp.dir}"
destdir="${src.gen.dir}"
style="${admin.dir}/metaMO.xsl">
- <include name="**/*Configuration.xml" />
- <exclude name="org/opends/server/admin/std/*.xml" />
- <regexpmapper handledirsep="true"
+ <include name="**/*Configuration.xml" />
+ <exclude name="org/opends/server/admin/std/*.xml" />
+ <regexpmapper handledirsep="true"
from="^(.*)/([^/]+)Configuration\.xml$$"
to="\1/meta/\2CfgDefn.java" />
- <param name="base-dir" expression="${admin.temp.dir}" />
- </xslt>
+ <param name="base-dir" expression="${admin.temp.dir}" />
+ <classpath refid="xalan.class.path" />
+ </xslt>
- <xslt basedir="${admin.temp.dir}"
+ <xslt basedir="${admin.temp.dir}"
destdir="${src.gen.dir}"
style="${admin.dir}/package-info.xsl">
- <include name="**/Package.xml" />
- <exclude name="org/opends/server/admin/std/*.xml" />
- <regexpmapper handledirsep="true"
+ <include name="**/Package.xml" />
+ <exclude name="org/opends/server/admin/std/*.xml" />
+ <regexpmapper handledirsep="true"
from="^(.*)/([^/]+)\.xml$$"
to="\1/meta/package-info.java" />
- <param name="type" expression="meta" />
- </xslt>
+ <param name="type" expression="meta" />
+ <classpath refid="xalan.class.path" />
+ </xslt>
<!-- Compile the Directory Server extension configuration client classes. -->
- <xslt basedir="${admin.temp.dir}"
+ <xslt basedir="${admin.temp.dir}"
destdir="${src.gen.dir}"
style="${admin.dir}/clientMO.xsl">
- <include name="**/*Configuration.xml" />
- <exclude name="org/opends/server/admin/std/*.xml" />
- <regexpmapper handledirsep="true"
+ <include name="**/*Configuration.xml" />
+ <exclude name="org/opends/server/admin/std/*.xml" />
+ <regexpmapper handledirsep="true"
from="^(.*)/([^/]+)Configuration\.xml$$"
to="\1/client/\2CfgClient.java" />
- <param name="base-dir" expression="${admin.temp.dir}" />
- </xslt>
+ <param name="base-dir" expression="${admin.temp.dir}" />
+ <classpath refid="xalan.class.path" />
+ </xslt>
- <xslt basedir="${admin.temp.dir}"
+ <xslt basedir="${admin.temp.dir}"
destdir="${src.gen.dir}"
style="${admin.dir}/package-info.xsl">
- <include name="**/Package.xml" />
- <exclude name="org/opends/server/admin/std/*.xml" />
- <regexpmapper handledirsep="true"
+ <include name="**/Package.xml" />
+ <exclude name="org/opends/server/admin/std/*.xml" />
+ <regexpmapper handledirsep="true"
from="^(.*)/([^/]+)\.xml$$"
to="\1/client/package-info.java" />
- <param name="type" expression="client" />
- </xslt>
+ <param name="type" expression="client" />
+ <classpath refid="xalan.class.path" />
+ </xslt>
<!-- Compile the Directory Server extension configuration server classes. -->
- <xslt basedir="${admin.temp.dir}"
+ <xslt basedir="${admin.temp.dir}"
destdir="${src.gen.dir}"
style="${admin.dir}/serverMO.xsl">
- <include name="**/*Configuration.xml" />
- <exclude name="org/opends/server/admin/std/*.xml" />
- <regexpmapper handledirsep="true"
+ <include name="**/*Configuration.xml" />
+ <exclude name="org/opends/server/admin/std/*.xml" />
+ <regexpmapper handledirsep="true"
from="^(.*)/([^/]+)Configuration\.xml$$"
to="\1/server/\2Cfg.java" />
- <param name="base-dir" expression="${admin.temp.dir}" />
- </xslt>
+ <param name="base-dir" expression="${admin.temp.dir}" />
+ <classpath refid="xalan.class.path" />
+ </xslt>
- <xslt basedir="${admin.temp.dir}"
+ <xslt basedir="${admin.temp.dir}"
destdir="${src.gen.dir}"
style="${admin.dir}/package-info.xsl">
- <include name="**/Package.xml" />
- <exclude name="org/opends/server/admin/std/*.xml" />
- <regexpmapper handledirsep="true"
+ <include name="**/Package.xml" />
+ <exclude name="org/opends/server/admin/std/*.xml" />
+ <regexpmapper handledirsep="true"
from="^(.*)/([^/]+)\.xml$$"
to="\1/server/package-info.java" />
- <param name="type" expression="server" />
- </xslt>
+ <param name="type" expression="server" />
+ </xslt>
<!-- Compile the Directory Server extension configuration ldap profile property files. -->
- <xslt basedir="${admin.temp.dir}"
+ <xslt basedir="${admin.temp.dir}"
destdir="${classes.dir}/admin/profiles/ldap"
style="${admin.dir}/ldapMOProfile.xsl">
- <include name="**/*Configuration.xml" />
- <exclude name="org/opends/server/admin/std/*.xml" />
- <regexpmapper handledirsep="true"
+ <include name="**/*Configuration.xml" />
+ <exclude name="org/opends/server/admin/std/*.xml" />
+ <regexpmapper handledirsep="true"
from="^(.*)/([^/]+)Configuration\.xml$$"
to="\1/meta/\2CfgDefn.properties" />
- <param name="base-dir" expression="${admin.temp.dir}" />
- </xslt>
+ <param name="base-dir" expression="${admin.temp.dir}" />
+ <classpath refid="xalan.class.path" />
+ </xslt>
<!-- Compile the Directory Server extension configuration cli profile property files. -->
- <xslt basedir="${admin.temp.dir}"
+ <xslt basedir="${admin.temp.dir}"
destdir="${classes.dir}/admin/profiles/cli"
style="${admin.dir}/cliMOProfile.xsl">
- <include name="**/*Configuration.xml" />
- <exclude name="org/opends/server/admin/std/*.xml" />
- <regexpmapper handledirsep="true"
+ <include name="**/*Configuration.xml" />
+ <exclude name="org/opends/server/admin/std/*.xml" />
+ <regexpmapper handledirsep="true"
from="^(.*)/([^/]+)Configuration\.xml$$"
to="\1/meta/\2CfgDefn.properties" />
- <param name="base-dir" expression="${admin.temp.dir}" />
- </xslt>
+ <param name="base-dir" expression="${admin.temp.dir}" />
+ <classpath refid="xalan.class.path" />
+ </xslt>
<!-- Compile the Directory Server extension configuration I18N message files. -->
- <xslt basedir="${admin.temp.dir}"
+ <xslt basedir="${admin.temp.dir}"
destdir="${classes.dir}/admin/messages"
style="${admin.dir}/messagesMO.xsl">
- <include name="**/*Configuration.xml" />
- <exclude name="org/opends/server/admin/std/*.xml" />
- <regexpmapper handledirsep="true"
+ <include name="**/*Configuration.xml" />
+ <exclude name="org/opends/server/admin/std/*.xml" />
+ <regexpmapper handledirsep="true"
from="^(.*)/([^/]+)Configuration\.xml$$"
to="\1/meta/\2CfgDefn.properties" />
- <param name="base-dir" expression="${admin.temp.dir}" />
- </xslt>
+ <param name="base-dir" expression="${admin.temp.dir}" />
+ <classpath refid="xalan.class.path" />
+ </xslt>
<!-- Compile the Directory Server extension configuration manifest file. -->
- <xslt basedir="${admin.temp.dir}"
+ <xslt basedir="${admin.temp.dir}"
destdir="${admin.temp.dir}"
extension=".manifest"
style="${admin.dir}/manifestMO.xsl">
- <include name="**/*Configuration.xml" />
- <exclude name="org/opends/server/admin/std/*.xml" />
- </xslt>
- <concat destfile="${classes.dir}/admin/extension.manifest">
- <fileset dir="${admin.temp.dir}" includes="**/*.manifest" />
- </concat>
+ <include name="**/*Configuration.xml" />
+ <exclude name="org/opends/server/admin/std/*.xml" />
+ <classpath refid="xalan.class.path" />
+ </xslt>
+ <concat destfile="${classes.dir}/admin/extension.manifest">
+ <fileset dir="${admin.temp.dir}" includes="**/*.manifest" />
+ </concat>
<!-- Clean up -->
- <delete dir="${admin.temp.dir}" />
- </target>
+ <delete dir="${admin.temp.dir}" />
+ </target>
<!-- Validate the Directory Server extension configuration definitions. -->
- <target name="validateadmin">
- <schemavalidate>
- <fileset dir="${src.dir}" includes="**/*.xml" />
- <schema namespace="http://www.opends.org/admin"
+ <target name="validateadmin">
+ <schemavalidate>
+ <fileset dir="${src.dir}" includes="**/*.xml" />
+ <schema namespace="http://www.opends.org/admin"
file="${admin.dir}/admin.xsd" />
- <schema namespace="http://www.opends.org/admin-ldap"
+ <schema namespace="http://www.opends.org/admin-ldap"
file="${admin.dir}/admin-ldap.xsd" />
- <schema namespace="http://www.opends.org/admin-cli"
+ <schema namespace="http://www.opends.org/admin-cli"
file="${admin.dir}/admin-cli.xsd" />
- </schemavalidate>
- </target>
+ </schemavalidate>
+ </target>
<!-- Generate messages from messages.properties file
located in the message directory and declared in a package
-->
- <target name="generate-messages" if="hasmessages">
- <typedef name="genmsg"
+ <target name="generate-messages" if="hasmessages">
+ <typedef name="genmsg"
classname="org.opends.build.tools.GenerateMessageFile">
- <classpath>
- <fileset dir="${base.dir}/build/build-tools">
- <include name="*.jar" />
- </fileset>
- </classpath>
- </typedef>
+ <classpath>
+ <fileset dir="${base.dir}/build/build-tools">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </typedef>
- <path id="messages.src.path">
- <fileset dir="${src.dir}">
- <include name="**/${properties.file}" />
- </fileset>
- </path>
- <property name="messages.src.file" refid="messages.src.path" />
+ <path id="messages.src.path">
+ <fileset dir="${src.dir}">
+ <include name="**/${properties.file}" />
+ </fileset>
+ </path>
+ <property name="messages.src.file" refid="messages.src.path" />
- <pathconvert property="messages.dst.file" refid="messages.src.path">
- <map from="${src.dir}" to="${src.gen.dir}" />
- </pathconvert>
- <dirname property="messages.dst.dir" file="${messages.dst.file}" />
+ <pathconvert property="messages.dst.file" refid="messages.src.path">
+ <map from="${src.dir}" to="${src.gen.dir}" />
+ </pathconvert>
+ <dirname property="messages.dst.dir" file="${messages.dst.file}" />
<!-- Needed by genmsg task -->
- <property name="msg.dir" location="${src.dir}" />
- <property name="msg.javagen.dir" location="${src.gen.dir}" />
+ <property name="msg.dir" location="${src.dir}" />
+ <property name="msg.javagen.dir" location="${src.gen.dir}" />
- <genmsg sourceProps="${messages.src.file}" />
- <copy file="${messages.src.file}" todir="${classes.dir}/messages" />
- </target>
+ <genmsg sourceProps="${messages.src.file}" />
+ <copy file="${messages.src.file}" todir="${classes.dir}/messages" />
+ </target>
</project>
--
Gitblit v1.10.0