From 4f77e7229244f6231b3ca3931053a513ef47c1ef Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Thu, 27 May 2010 09:41:54 +0000
Subject: [PATCH] Several minor fixes in command line utilities and with the Monitoring backend

---
 opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java       |    2 
 opendj-sdk/opends/src/messages/messages/tools.properties                                    |    2 
 opendj-sdk/opends/src/server/org/opends/server/backends/MonitorBackend.java                 |   22 ++++++++++-
 opendj-sdk/opends/src/server/org/opends/server/util/cli/ConsoleApplication.java             |    4 +-
 opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java |    4 +-
 opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java                 |   11 ++---
 opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java      |   38 +++++++++++++++++-
 7 files changed, 66 insertions(+), 17 deletions(-)

diff --git a/opendj-sdk/opends/src/messages/messages/tools.properties b/opendj-sdk/opends/src/messages/messages/tools.properties
index 7c894af..9123d5c 100644
--- a/opendj-sdk/opends/src/messages/messages/tools.properties
+++ b/opendj-sdk/opends/src/messages/messages/tools.properties
@@ -2227,7 +2227,7 @@
 SEVERE_ERR_JAVAPROPERTIES_WITH_PROPERTIES_FILE_1491=The file properties "%s" \
  cannot be read.  Check that it exists and that you have read rights to it
 SEVERE_ERR_JAVAPROPERTIES_WITH_DESTINATION_FILE_1492=The destination file "%s" \
- cannot be written.  Check that you have right reads to it
+ cannot be written.  Check that you have write rights to it
 SEVERE_ERR_JAVAPROPERTIES_WRITING_DESTINATION_FILE_1493=The destination file \
  "%s" cannot be written.  Check that you have right reads to it
 INFO_JAVAPROPERTIES_SUCCESSFUL_NON_DEFAULT_1494=The script file %s was \
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java
index 532f7d8..3102027 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/InstallerHelper.java
@@ -993,7 +993,7 @@
 
     if (!fileProperties.containsKey("default.java-home"))
     {
-      otherProperties.put("default.java-home=", javaHome);
+      otherProperties.put("default.java-home", javaHome);
     }
 
     writeSetOpenDSJavaHome(installPath, javaHome, args, otherProperties);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/MonitorBackend.java b/opendj-sdk/opends/src/server/org/opends/server/backends/MonitorBackend.java
index 2e9bd01..9fd6d86 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/MonitorBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/MonitorBackend.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2009 Sun Microsystems, Inc.
+ *      Copyright 2006-2010 Sun Microsystems, Inc.
  */
 package org.opends.server.backends;
 
@@ -674,8 +674,26 @@
                                                            true);
     monitorClasses.put(monitorOC, OC_MONITOR_BRANCH);
 
+    HashMap<AttributeType,List<Attribute>> monitorUserAttrs =
+      new LinkedHashMap<AttributeType,List<Attribute>>();
+
+    RDN rdn = dn.getRDN();
+    if (rdn != null)
+    {
+      // Add the RDN values
+      for (int i=0; i<rdn.getNumValues(); i++)
+      {
+        AttributeType attributeType = rdn.getAttributeType(i);
+        AttributeValue value = rdn.getAttributeValue(attributeType);
+        Attribute attr = Attributes.create(attributeType, value);
+        List<Attribute> attrList = new ArrayList<Attribute>(1);
+        attrList.add(attr);
+        monitorUserAttrs.put(attributeType, attrList);
+      }
+    }
+
     // Construct and return the entry.
-    Entry  e = new Entry(dn, monitorClasses, null, null);
+    Entry  e = new Entry(dn, monitorClasses, monitorUserAttrs, null);
     e.processVirtualAttributes();
     return e;
   }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java b/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java
index 94367cf..6193922 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2007-2009 Sun Microsystems, Inc.
+ *      Copyright 2007-2010 Sun Microsystems, Inc.
  */
 package org.opends.server.tools.dsconfig;
 
@@ -185,11 +185,11 @@
       Message ufn = rd.getUserFriendlyName();
 
       Message ufpn = null;
-      if (rd instanceof InstantiableRelationDefinition) {
+      if (rd instanceof InstantiableRelationDefinition<?,?>) {
         InstantiableRelationDefinition<?, ?> ir =
           (InstantiableRelationDefinition<?, ?>) rd;
         ufpn = ir.getUserFriendlyPluralName();
-      } else if (rd instanceof SetRelationDefinition) {
+      } else if (rd instanceof SetRelationDefinition<?,?>) {
         SetRelationDefinition<?, ?> sr =
           (SetRelationDefinition<?, ?>) rd;
         ufpn = sr.getUserFriendlyPluralName();
@@ -1124,9 +1124,8 @@
   /**
    * Prints the contents of a command builder.  This method has been created
    * since SetPropSubCommandHandler calls it.  All the logic of DSConfig is on
-   * this method.  Currently it simply writes the content of the CommandBuilder
-   * to the standard output, but if we provide an option to write the content
-   * to a file only the implementation of this method must be changed.
+   * this method.  It writes the content of the CommandBuilder to the standard
+   * output, or to a file depending on the options provided by the user.
    * @param commandBuilder the command builder to be printed.
    */
   void printCommandBuilder(CommandBuilder commandBuilder)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java b/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java
index 592707c..587769a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2008-2009 Sun Microsystems, Inc.
+ *      Copyright 2008-2010 Sun Microsystems, Inc.
  */
 package org.opends.server.tools.dsconfig;
 
@@ -2401,16 +2401,48 @@
     {
       if (newValues.containsAll(previousValues))
       {
-        registerAddModification(pd, newValues, previousValues);
+        if (newValues.size() <= 1)
+        {
+          registerSetModification(pd, newValues, previousValues);
+        }
+        else
+        {
+          registerAddModification(pd, newValues, previousValues);
+        }
       }
       else if (previousValues.containsAll(newValues))
       {
         registerRemoveModification(pd, newValues, previousValues);
       }
-      else
+      else if (newValues.size() <= 1)
       {
         registerSetModification(pd, newValues, previousValues);
       }
+      else
+      {
+        // Split into two operations: remove and add
+        SortedSet<T> removedValues = new TreeSet<T>();
+        removedValues.addAll(previousValues);
+        removedValues.removeAll(newValues);
+
+        PropertyEditorModification<T> removeMod =
+          PropertyEditorModification.createRemoveModification(pd,
+            removedValues, previousValues);
+        addModification(removeMod);
+
+        SortedSet<T> retainedValues = new TreeSet<T>();
+        retainedValues.addAll(previousValues);
+        retainedValues.retainAll(newValues);
+
+        SortedSet<T> addedValues = new TreeSet<T>();
+        addedValues.addAll(newValues);
+        addedValues.removeAll(retainedValues);
+
+        PropertyEditorModification<T> addMod =
+          PropertyEditorModification.createAddModification(pd,
+              addedValues, retainedValues);
+        addModification(addMod);
+      }
     }
   }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java b/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
index b3572d9..e990cb5 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2007-2009 Sun Microsystems, Inc.
+ *      Copyright 2007-2010 Sun Microsystems, Inc.
  */
 package org.opends.server.tools.dsconfig;
 
@@ -388,7 +388,7 @@
 
     try {
       for (PropertyDefinition<?> pd : d.getAllPropertyDefinitions()) {
-        if (pd instanceof AggregationPropertyDefinition) {
+        if (pd instanceof AggregationPropertyDefinition<?,?>) {
           // Runtime cast is required to workaround a
           // bug in JDK versions prior to 1.5.0_08.
           AggregationPropertyDefinition<?, ?> apd =
diff --git a/opendj-sdk/opends/src/server/org/opends/server/util/cli/ConsoleApplication.java b/opendj-sdk/opends/src/server/org/opends/server/util/cli/ConsoleApplication.java
index 9d94b46..8971d24 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/util/cli/ConsoleApplication.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/util/cli/ConsoleApplication.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2008-2009 Sun Microsystems, Inc.
+ *      Copyright 2008-2010 Sun Microsystems, Inc.
  */
 package org.opends.server.util.cli;
 
@@ -645,7 +645,7 @@
           String.valueOf(defaultValue));
     }
 
-    return readValidatedInput(prompt, callback);
+    return readValidatedInput(prompt, callback, CONFIRMATION_MAX_TRIES);
   }
 
   /**

--
Gitblit v1.10.0