From 7ebdf3ce2a518582334a7a167a98555885bcc065 Mon Sep 17 00:00:00 2001
From: ctissot <ctissot@localhost>
Date: Mon, 26 May 2008 12:29:48 +0000
Subject: [PATCH] Fix for 3259: No messages support in example plugin
---
opendj-sdk/opends/resource/admin/example-plugin/build.xml | 62 ++++++++++++++++++++++++++++++
1 files changed, 61 insertions(+), 1 deletions(-)
diff --git a/opendj-sdk/opends/resource/admin/example-plugin/build.xml b/opendj-sdk/opends/resource/admin/example-plugin/build.xml
index 047acd9..3cd451a 100644
--- a/opendj-sdk/opends/resource/admin/example-plugin/build.xml
+++ b/opendj-sdk/opends/resource/admin/example-plugin/build.xml
@@ -30,6 +30,9 @@
This is the build script for an OpenDS Directory Server extension.
</description>
+ <!-- Import extra tasks from ant-contrib (for, if-then-else, ...) -->
+ <taskdef resource="net/sf/antcontrib/antlib.xml"/>
+
<!-- CONFIGURE: The name of the extension's Jar file. -->
<property name="pkg.name" value="example-plugin" />
@@ -43,15 +46,19 @@
<property name="build.dir" location="build" />
<property name="src.dir" location="src" />
<property name="src.gen.dir" location="src-generated" />
+ <!-- alias variable as needed by the ant task that generates messages -->
+ <property name="msg.javagen.dir" location="${src.gen.dir}" />
<property name="lib.dir" location="lib" />
<property name="ext.dir" location="ext" />
<property name="resource.dir" location="resource" />
<property name="admin.dir" location="${resource.dir}/admin" />
<property name="config.dir" location="${resource.dir}/config" />
<property name="schema.dir" location="${resource.dir}/schema" />
+ <property name="msg.dir" location="${resource.dir}/messages" />
<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="jar.file" value="${pkg.name}.jar" />
<!-- Location of OpenDS components - should not need changing. -->
@@ -84,7 +91,7 @@
</target>
<!-- Compile the Directory Server extension source files. -->
- <target name="compile" depends="init,compileadmin" description="Compile the Directory Server extension source files.">
+ <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}" destdir="${classes.dir}" optimize="true" excludes="**/package-info.java" debug="on" debuglevel="lines,source" source="1.5" target="1.5" deprecation="true" fork="true" memoryInitialSize="${MEM}" memoryMaximumSize="${MEM}">
<compilerarg value="-Xlint:all" />
@@ -251,4 +258,57 @@
<schema namespace="http://www.opends.org/admin-cli" file="${admin.dir}/admin-cli.xsd" />
</schemavalidate>
</target>
+
+ <!-- Generate messages from all .properties files located in the message directory and declared in a package-->
+ <target name="generate-messages" description="Generate messages for extension.">
+ <if>
+ <available file="${msg.dir}" type="dir" property="message.dir.is-present"/>
+ <then>
+ <!-- list of files properties -->
+ <path id="messages.properties">
+ <!-- Note: a package is required and properties file at the root of the
+ ! message directory will be ignored
+ ! -->
+ <fileset dir="${msg.dir}" includes="*/**/*.properties" />
+ </path>
+ <property name="msg.dir.list" refid="messages.properties" />
+
+ <!-- includes lib/*.jar into classpath (actually build-tools.jar) -->
+ <path id="msg.classpath">
+ <fileset dir="${lib.dir}">
+ <include name="*.jar" />
+ </fileset>
+ </path>
+ <property name="build-tools.jar" refid="msg.classpath" />
+
+ <typedef name="genmsg"
+ classname="org.opends.build.tools.GenerateMessageFile"
+ classpathref="msg.classpath">
+ </typedef>
+
+ <!-- set property if the list is not empty -->
+ <if>
+ <length string="${msg.dir.list}" when="greater" length="0" />
+ <then>
+ <!-- Generate the message catalogs for all messages located
+ ! in the messages directory
+ ! -->
+ <mkdir dir="${classes.dir}/messages" />
+ <for param="file" delimiter=":" list="${msg.dir.list}">
+ <sequential>
+ <genmsg sourceProps="@{file}" />
+ <copy file="@{file}" todir="${classes.dir}/messages"/>
+ </sequential>
+ </for>
+ </then>
+ <else>
+ <echo message="No messages found: ${message.dir} is empty" />
+ </else>
+ </if>
+ </then>
+ <else>
+ <echo message="No messages found: ${msg.dir} is missing" />
+ </else>
+ </if>
+ </target>
</project>
--
Gitblit v1.10.0