From 5352fc24d9fc50336119d2c199b489f074f5948f Mon Sep 17 00:00:00 2001
From: abobrov <abobrov@localhost>
Date: Fri, 13 Feb 2009 17:03:19 +0000
Subject: [PATCH] - land NDB Backend implementation.
---
opendj-sdk/opends/build.xml | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 104 insertions(+), 13 deletions(-)
diff --git a/opendj-sdk/opends/build.xml b/opendj-sdk/opends/build.xml
index 0b72255..078072e 100644
--- a/opendj-sdk/opends/build.xml
+++ b/opendj-sdk/opends/build.xml
@@ -22,7 +22,7 @@
! CDDL HEADER END
!
!
- ! Copyright 2006-2008 Sun Microsystems, Inc.
+ ! Copyright 2006-2009 Sun Microsystems, Inc.
! -->
<project name="Directory Server" basedir="." default="package">
@@ -41,6 +41,7 @@
<property name="src.dir" location="src/server" />
<property name="build.dir" location="build" />
<property name="classes.dir" location="${build.dir}/classes" />
+ <property name="build.lib.dir" location="${build.dir}/lib" />
<property name="lib.dir" location="lib" />
<property name="ext.dir" location="ext" />
<property name="package.dir" location="${build.dir}/package" />
@@ -161,6 +162,23 @@
<property name="snmp.classes.dir"
location="${classes.dir}/org/opends/server/snmp" />
+ <!-- Condition properties for NDB Backend build. -->
+ <condition property="ismysqldirpresent">
+ <available file="${mysql.lib.dir}" type="dir" />
+ </condition>
+ <condition property="exclude.ndb.xml" value=""
+ else="**/Ndb*">
+ <available file="${mysql.lib.dir}" type="dir" />
+ </condition>
+ <condition property="exclude.ndb.src" value=""
+ else="org/opends/server/backends/ndb/**,
+ org/opends/server/workflowelement/ndb/**">
+ <available file="${mysql.lib.dir}" type="dir" />
+ </condition>
+
+ <!-- Property for excluding NDB Backend config. -->
+ <property name="exclude.ndb.config" value="ndbconfig.ldif" />
+
<!-- Create a package bundle containing the DSML library. -->
<target name="dsml" depends="predsml,package"
description="Build a Directory Server package bundle with DSML.">
@@ -288,8 +306,25 @@
<genmsg sourceProps="${msg.prop.dir}/servicetag.properties"
destJava="${msg.javagen.dir}/org/opends/messages/ServiceTagMessages.java">
</genmsg>
+
+ <antcall target="generatendbmessages" />
+
</target>
+ <!-- Generate NDB Backend messages if needed -->
+ <target name="generatendbmessages" if="ismysqldirpresent">
+ <typedef name="genmsg"
+ classname="org.opends.build.tools.GenerateMessageFile" >
+ <classpath>
+ <fileset dir="${build.dir}/build-tools">
+ <include name="*.jar" />
+ </fileset>
+ </classpath>
+ </typedef>
+ <genmsg sourceProps="${msg.prop.dir}/ndb.properties"
+ destJava="${msg.javagen.dir}/org/opends/messages/NdbMessages.java">
+ </genmsg>
+ </target>
<!-- Remove all dynamically-generated build files. -->
<target name="clean" depends="init,cleanadmin,cleanmessages,cleansnmp"
@@ -575,9 +610,13 @@
depends="init,checkjavaversion,dynamicconstants,generatemessages,compileadmin"
description="Compile the Directory Server source files.">
<mkdir dir="${classes.dir}" />
+ <mkdir dir="${build.lib.dir}" />
+ <!-- Copy NDB Backend dependencies if necessary -->
+ <antcall target="copyndbdeps" />
+
<javac srcdir="${src.dir}:${admin.src.dir}:${msg.src.dir}:${msg.javagen.dir}:${ads.src.dir}:${quicksetup.src.dir}:${guitools.src.dir}"
- destdir="${classes.dir}" debug="on" debuglevel="${build.debuglevel}"
+ destdir="${classes.dir}" excludes="${exclude.ndb.src}" debug="on" debuglevel="${build.debuglevel}"
source="1.5" target="1.5" deprecation="true" fork="true"
memoryInitialSize="${MEM}" memoryMaximumSize="${MEM}">
<compilerarg value="-Xlint:all" />
@@ -589,6 +628,9 @@
<fileset dir="${build.dir}/build-tools">
<include name="build-tools.jar" />
</fileset>
+ <fileset dir="${build.lib.dir}">
+ <include name="*.jar" />
+ </fileset>
</classpath>
</javac>
@@ -743,10 +785,13 @@
<!-- Regenerate configuration files if necessary -->
<antcall target="compileadmin" />
+ <!-- Copy NDB Backend dependencies if necessary -->
+ <antcall target="copyndbdeps" />
+
<!-- Recreate the classes directory and recompile into it. -->
<mkdir dir="${classes.dir}" />
<javac srcdir="${src.dir}:${msg.src.dir}:${msg.javagen.dir}:${admin.src.dir}:${ads.src.dir}:${quicksetup.src.dir}:${guitools.src.dir}"
- destdir="${classes.dir}"
+ destdir="${classes.dir}" excludes="${exclude.ndb.src}"
debug="on" debuglevel="${build.debuglevel}" source="1.5" target="1.5"
deprecation="true" fork="true" memoryInitialSize="${MEM}"
memoryMaximumSize="${MEM}">
@@ -759,6 +804,9 @@
<fileset dir="${build.dir}/build-tools">
<include name="build-tools.jar" />
</fileset>
+ <fileset dir="${build.lib.dir}">
+ <include name="*.jar" />
+ </fileset>
</classpath>
</javac>
@@ -830,6 +878,11 @@
<jar jarfile="${pdir}/lib/quicksetup.jar"
basedir="${quicksetup.classes.dir}" compress="true" index="true" />
+ <!-- Copy over external dependencies. -->
+ <copy todir="${pdir}/lib">
+ <fileset file="${build.lib.dir}/*.jar" />
+ </copy>
+
<!-- Regenerate example plugin. -->
<antcall target="example-plugin" />
</target>
@@ -965,11 +1018,13 @@
<fixcrlf srcDir="${scripts.dir}" destDir="${pdir}/lib" includes="_client-script.bat,_server-script.bat,_mixed-script.bat,_script-util.bat,setcp.bat" eol="crlf" />
<copy todir="${pdir}/config">
- <fileset file="${config.dir}/*" />
+ <fileset file="${config.dir}/*" excludes="${exclude.ndb.config}" />
</copy>
<antcall target="package-snmp" />
+ <antcall target="packagendb" />
+
<copy file="${pdir}/config/config.ldif"
tofile="${pdir}/config/upgrade/config.ldif.${REVISION_NUMBER}" />
@@ -1272,7 +1327,7 @@
<dirset dir="${quicksetup.classes.dir}" />
</classpath>
- <packageset dir="${src.dir}" />
+ <packageset dir="${src.dir}" excludes="${exclude.ndb.src}" />
<packageset dir="${admin.src.dir}" />
<packageset dir="${ads.src.dir}" />
<packageset dir="${dsml.src.dir}" />
@@ -1433,8 +1488,11 @@
<echo message="Performing partial rebuild (OpenDS zip package found)"/>
<mkdir dir="${classes.dir}" />
+ <!-- Copy NDB Backend dependencies if necessary -->
+ <antcall target="copyndbdeps" />
+
<javac srcdir="${src.dir}:${admin.src.dir}:${msg.src.dir}:${msg.javagen.dir}:${ads.src.dir}:${quicksetup.src.dir}:${guitools.src.dir}"
- destdir="${classes.dir}" debug="on" debuglevel="${build.debuglevel}"
+ destdir="${classes.dir}" excludes="${exclude.ndb.src}" debug="on" debuglevel="${build.debuglevel}"
source="1.5" target="1.5" deprecation="true" fork="true"
memoryInitialSize="${MEM}" memoryMaximumSize="${MEM}">
<compilerarg value="-Xlint:all" />
@@ -1446,6 +1504,9 @@
<fileset dir="${build.dir}/build-tools">
<include name="build-tools.jar" />
</fileset>
+ <fileset dir="${build.lib.dir}">
+ <include name="*.jar" />
+ </fileset>
</classpath>
</javac>
@@ -2146,6 +2207,7 @@
<arg value="-buildfile" />
<arg value="${ant.file}" />
<arg value="-quiet" />
+ <arg value="-Dexclude.ndb.xml=${exclude.ndb.xml}" />
<arg value="compileadminsubtask" />
<env key="ANT_OPTS" value="-Xmx${MEM}" />
</exec>
@@ -2155,7 +2217,8 @@
<target name="compileadminsubtask">
<!-- 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">
+ <xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/*Configuration.xml"
+ excludes="${exclude.ndb.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}" />
</xslt>
@@ -2166,7 +2229,8 @@
</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">
+ <xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/*Configuration.xml"
+ excludes="${exclude.ndb.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}" />
</xslt>
@@ -2177,7 +2241,8 @@
</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">
+ <xslt basedir="${admin.defn.dir}" destdir="${admin.src.dir}" includes="**/*Configuration.xml"
+ excludes="${exclude.ndb.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}" />
</xslt>
@@ -2189,19 +2254,22 @@
<!-- 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">
+ <xslt basedir="${admin.defn.dir}" destdir="${classes.dir}/admin/profiles/ldap" includes="**/*Configuration.xml"
+ excludes="${exclude.ndb.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}" />
</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">
+ <xslt basedir="${admin.defn.dir}" destdir="${classes.dir}/admin/profiles/cli" includes="**/*Configuration.xml"
+ excludes="${exclude.ndb.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}" />
</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">
+ <xslt basedir="${admin.defn.dir}" destdir="${classes.dir}/admin/messages" includes="**/*Configuration.xml"
+ excludes="${exclude.ndb.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}" />
</xslt>
@@ -2209,7 +2277,8 @@
<!-- 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"/>
+ <xslt basedir="${admin.defn.dir}" destdir="${admin.temp.dir}" extension=".manifest" includes="**/*Configuration.xml"
+ excludes="${exclude.ndb.xml}" style="${admin.rules.dir}/manifestMO.xsl"/>
<concat destfile="${classes.dir}/admin/core.manifest">
<fileset dir="${admin.temp.dir}" includes="**/*.manifest" />
</concat>
@@ -2437,4 +2506,26 @@
<import file="build-svr4.xml"/>
+ <!-- Copy NDB Backend dependencies to build lib directory -->
+ <target name="copyndbdeps" if="ismysqldirpresent"
+ description="Internal target to copy NDB Backend dependencies">
+ <!-- Blanket copy of all jars found at mysql.lib location -->
+ <copy todir="${build.lib.dir}">
+ <fileset file="${mysql.lib.dir}/*.jar" />
+ </copy>
+ </target>
+
+ <!-- Package NDB Backend with Directory Server distribution -->
+ <target name="packagendb" if="ismysqldirpresent"
+ description="Internal target to package NDB Backend dependencies">
+ <echo message="Packaging with NDB Backend dependencies"/>
+ <copy todir="${pdir}/lib">
+ <fileset file="${mysql.lib.dir}/*.jar" />
+ </copy>
+ <!-- Concat NDB Backend config entry to default config -->
+ <concat destfile="${pdir}/config/config.ldif" append="true">
+ <filelist dir="${config.dir}" files="ndbconfig.ldif"/>
+ </concat>
+ </target>
+
</project>
--
Gitblit v1.10.0