From efb16591105f4251138eeef7afd4aa6c99acd666 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Sun, 19 Aug 2007 00:07:10 +0000
Subject: [PATCH] Fix for issue 2112.

---
 opendj-sdk/opends/src/build-tools/org/opends/build/tools/GenerateMessageFile.java |   35 ++++++++++++++++++++++++++++++-----
 1 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/opendj-sdk/opends/src/build-tools/org/opends/build/tools/GenerateMessageFile.java b/opendj-sdk/opends/src/build-tools/org/opends/build/tools/GenerateMessageFile.java
index d5a889b..24af718 100644
--- a/opendj-sdk/opends/src/build-tools/org/opends/build/tools/GenerateMessageFile.java
+++ b/opendj-sdk/opends/src/build-tools/org/opends/build/tools/GenerateMessageFile.java
@@ -77,6 +77,13 @@
    */
   static private final String GLOBAL_ORDINAL = "global.ordinal";
 
+  /**
+   * When true and if the Java Web Start property is set use the class loader of
+   * the jar where the MessageDescriptor is contained to retrieve the
+   * ResourceBundle.
+   */
+  static private final String GLOBAL_USE_MESSAGE_JAR_IF_WEBSTART =
+    "global.use.message.jar.if.webstart";
 
   static private final Set<String> DIRECTIVE_PROPERTIES = new HashSet<String>();
   static {
@@ -84,6 +91,7 @@
     DIRECTIVE_PROPERTIES.add(GLOBAL_CATEGORY_MASK);
     DIRECTIVE_PROPERTIES.add(GLOBAL_SEVERITY);
     DIRECTIVE_PROPERTIES.add(GLOBAL_ORDINAL);
+    DIRECTIVE_PROPERTIES.add(GLOBAL_USE_MESSAGE_JAR_IF_WEBSTART);
   }
 
   static private final String SPECIFIER_REGEX =
@@ -319,7 +327,9 @@
             sb.append(",");
           }
         }
+        sb.append(", ");
       }
+      sb.append("getClassLoader()");
       sb.append(");");
       return sb.toString();
     }
@@ -430,7 +440,7 @@
   @Override
   public void execute() throws BuildException {
     BufferedReader stubReader = null;
-    PrintWriter destWriter = null;    
+    PrintWriter destWriter = null;
     try {
 
       // Decide whether to generate messages based on modification
@@ -459,11 +469,10 @@
       destWriter = new PrintWriter(new FileOutputStream(dest));
 
       String stubLine;
+      Properties properties = new Properties();
+      properties.load(new FileInputStream(source));
       while (null != (stubLine = stubReader.readLine())) {
         if (stubLine.contains("${MESSAGES}")) {
-          Properties properties = new Properties();
-          properties.load(new FileInputStream(source));
-
           Integer globalOrdinal = null;
           String go = properties.getProperty(GLOBAL_ORDINAL);
           if (go != null) {
@@ -510,7 +519,7 @@
             } catch (IllegalArgumentException iae) {
               throw new BuildException(
                       "ERROR: invalid property key " + propKey +
-                      ": " + iae.getMessage() + 
+                      ": " + iae.getMessage() +
                       KEY_FORM_MSG);
             }
           }
@@ -601,6 +610,22 @@
                   dest.getName().substring(0, dest.getName().length() -
                           ".java".length()));
           stubLine = stubLine.replace("${BASE}", getBase());
+
+          String useMessageJarIfWebstart =
+            properties.getProperty(GLOBAL_USE_MESSAGE_JAR_IF_WEBSTART);
+          if ((useMessageJarIfWebstart != null) &&
+              ("true".equalsIgnoreCase(useMessageJarIfWebstart) ||
+              "on".equalsIgnoreCase(useMessageJarIfWebstart) ||
+              "true".equalsIgnoreCase(useMessageJarIfWebstart)))
+          {
+            useMessageJarIfWebstart = "true";
+          }
+          else
+          {
+            useMessageJarIfWebstart = "false";
+          }
+          stubLine = stubLine.replace("${USE_MESSAGE_JAR_IF_WEBSTART}",
+              useMessageJarIfWebstart);
           destWriter.println(stubLine);
         }
       }

--
Gitblit v1.10.0