From e2309b903736fbb6df84a96c3dafb40caa5cf58e Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Tue, 09 Jun 2015 10:44:24 +0000
Subject: [PATCH] OPENDJ-1166-checkpoint Improve tools behavior

---
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/ExportLDIF.java     |    9 ++--
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/RebuildIndex.java   |    7 +--
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/tasks/TaskTool.java |   18 ++++++++-
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/BackUpDB.java       |    9 ++--
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java     |    9 ++--
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/RestoreDB.java      |   18 ++++++---
 opendj-sdk/opendj-server-legacy/src/messages/org/opends/messages/tool.properties          |    2 +
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/util/BuildVersion.java    |    5 ++
 8 files changed, 50 insertions(+), 27 deletions(-)

diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/BackUpDB.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/BackUpDB.java
index a172bb5..b5dcbc5 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/BackUpDB.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/BackUpDB.java
@@ -26,14 +26,14 @@
  */
 package org.opends.server.tools;
 
-import static com.forgerock.opendj.cli.ArgumentConstants.*;
-import static com.forgerock.opendj.cli.Utils.*;
-
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
+import static com.forgerock.opendj.cli.ArgumentConstants.*;
+import static com.forgerock.opendj.cli.Utils.*;
+
 import java.io.File;
 import java.io.OutputStream;
 import java.io.PrintStream;
@@ -72,7 +72,6 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.types.RawAttribute;
-import org.opends.server.util.BuildVersion;
 import org.opends.server.util.args.LDAPConnectionArgumentParser;
 
 import com.forgerock.opendj.cli.ArgumentException;
@@ -418,7 +417,7 @@
     // Checks the version - if upgrade required, the tool is unusable
     try
     {
-      BuildVersion.checkVersionMismatch();
+      checkVersion();
     }
     catch (InitializationException e)
     {
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/ExportLDIF.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/ExportLDIF.java
index 9df0e61..ce34cc5 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/ExportLDIF.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/ExportLDIF.java
@@ -26,13 +26,13 @@
  */
 package org.opends.server.tools;
 
-import static com.forgerock.opendj.cli.ArgumentConstants.*;
-import static com.forgerock.opendj.cli.Utils.*;
-
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
+import static com.forgerock.opendj.cli.ArgumentConstants.*;
+import static com.forgerock.opendj.cli.Utils.*;
+
 import java.io.OutputStream;
 import java.io.PrintStream;
 import java.util.ArrayList;
@@ -69,7 +69,6 @@
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.types.RawAttribute;
 import org.opends.server.types.SearchFilter;
-import org.opends.server.util.BuildVersion;
 import org.opends.server.util.args.LDAPConnectionArgumentParser;
 
 import com.forgerock.opendj.cli.Argument;
@@ -355,7 +354,7 @@
     // Checks the version - if upgrade required, the tool is unusable
     try
     {
-      BuildVersion.checkVersionMismatch();
+      checkVersion();
     }
     catch (InitializationException e)
     {
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java
index ed91c4e..6622f51 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java
@@ -26,13 +26,13 @@
  */
 package org.opends.server.tools;
 
-import static com.forgerock.opendj.cli.ArgumentConstants.*;
-import static com.forgerock.opendj.cli.Utils.*;
-
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
+import static com.forgerock.opendj.cli.ArgumentConstants.*;
+import static com.forgerock.opendj.cli.Utils.*;
+
 import java.io.File;
 import java.io.OutputStream;
 import java.io.PrintStream;
@@ -75,7 +75,6 @@
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.types.RawAttribute;
 import org.opends.server.types.SearchFilter;
-import org.opends.server.util.BuildVersion;
 import org.opends.server.util.args.LDAPConnectionArgumentParser;
 
 import com.forgerock.opendj.cli.Argument;
@@ -301,7 +300,7 @@
     // Checks the version - if upgrade required, the tool is unusable
     try
     {
-      BuildVersion.checkVersionMismatch();
+      checkVersion();
     }
     catch (InitializationException e)
     {
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/RebuildIndex.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/RebuildIndex.java
index feab8e2..c8a42ce 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/RebuildIndex.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/RebuildIndex.java
@@ -26,12 +26,12 @@
  */
 package org.opends.server.tools;
 
-import static com.forgerock.opendj.cli.Utils.*;
-
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
+import static com.forgerock.opendj.cli.Utils.*;
+
 import java.io.OutputStream;
 import java.io.PrintStream;
 import java.util.ArrayList;
@@ -65,7 +65,6 @@
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.types.RawAttribute;
-import org.opends.server.util.BuildVersion;
 import org.opends.server.util.StaticUtils;
 import org.opends.server.util.args.LDAPConnectionArgumentParser;
 
@@ -247,7 +246,7 @@
     // Checks the version - if upgrade required, the tool is unusable
     try
     {
-      BuildVersion.checkVersionMismatch();
+      checkVersion();
     }
     catch (InitializationException e)
     {
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/RestoreDB.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/RestoreDB.java
index e6481d7..5c67047 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/RestoreDB.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/RestoreDB.java
@@ -26,13 +26,13 @@
  */
 package org.opends.server.tools;
 
-import static com.forgerock.opendj.cli.ArgumentConstants.*;
-import static com.forgerock.opendj.cli.Utils.*;
-
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
+import static com.forgerock.opendj.cli.ArgumentConstants.*;
+import static com.forgerock.opendj.cli.Utils.*;
+
 import java.io.OutputStream;
 import java.io.PrintStream;
 import java.text.DateFormat;
@@ -62,8 +62,14 @@
 import org.opends.server.protocols.ldap.LDAPAttribute;
 import org.opends.server.tasks.RestoreTask;
 import org.opends.server.tools.tasks.TaskTool;
-import org.opends.server.types.*;
-import org.opends.server.util.BuildVersion;
+import org.opends.server.types.BackupDirectory;
+import org.opends.server.types.BackupInfo;
+import org.opends.server.types.DN;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.InitializationException;
+import org.opends.server.types.NullOutputStream;
+import org.opends.server.types.RawAttribute;
+import org.opends.server.types.RestoreConfig;
 import org.opends.server.util.args.LDAPConnectionArgumentParser;
 
 import com.forgerock.opendj.cli.Argument;
@@ -271,7 +277,7 @@
     // Checks the version - if upgrade required, the tool is unusable
     try
     {
-      BuildVersion.checkVersionMismatch();
+      checkVersion();
     }
     catch (InitializationException e)
     {
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/tasks/TaskTool.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/tasks/TaskTool.java
index a61cfc3..949678e 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/tasks/TaskTool.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/tasks/TaskTool.java
@@ -26,12 +26,12 @@
  */
 package org.opends.server.tools.tasks;
 
-import static com.forgerock.opendj.cli.Utils.*;
-
 import static org.opends.messages.TaskMessages.*;
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.util.StaticUtils.*;
 
+import static com.forgerock.opendj.cli.Utils.*;
+
 import java.io.IOException;
 import java.io.PrintStream;
 import java.util.Date;
@@ -49,8 +49,10 @@
 import org.opends.server.loggers.JDKLogging;
 import org.opends.server.tools.LDAPConnection;
 import org.opends.server.tools.LDAPConnectionException;
+import org.opends.server.types.InitializationException;
 import org.opends.server.types.LDAPException;
 import org.opends.server.types.OpenDsException;
+import org.opends.server.util.BuildVersion;
 import org.opends.server.util.args.LDAPConnectionArgumentParser;
 
 import com.forgerock.opendj.cli.Argument;
@@ -435,4 +437,16 @@
     }
     return returnValue;
   }
+
+  /**
+   * Checks that binary version and instance version are the same.
+   *
+   * @throws InitializationException
+   *           If versions mismatch
+   */
+  protected void checkVersion() throws InitializationException
+  {
+    // FIXME Do not perform this check if the tool is use in remote mode (see OPENDJ-1166)
+    BuildVersion.checkVersionMismatch();
+  }
 }
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/util/BuildVersion.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/util/BuildVersion.java
index 5045eb4..b83b7b6 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/util/BuildVersion.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/util/BuildVersion.java
@@ -30,6 +30,7 @@
 import static org.opends.server.config.ConfigConstants.*;
 
 import java.io.BufferedReader;
+import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
 import java.nio.file.Paths;
@@ -86,6 +87,10 @@
       }
       return valueOf(s);
     }
+    catch (FileNotFoundException e)
+    {
+      throw new InitializationException(ERR_INSTANCE_NOT_CONFIGURED.get(), e);
+    }
     catch (IOException e)
     {
       throw new InitializationException(ERR_BUILDVERSION_NOT_FOUND.get(buildInfo));
diff --git a/opendj-sdk/opendj-server-legacy/src/messages/org/opends/messages/tool.properties b/opendj-sdk/opendj-server-legacy/src/messages/org/opends/messages/tool.properties
index 4dc5b3a..468ed8d 100644
--- a/opendj-sdk/opendj-server-legacy/src/messages/org/opends/messages/tool.properties
+++ b/opendj-sdk/opendj-server-legacy/src/messages/org/opends/messages/tool.properties
@@ -2669,3 +2669,5 @@
  backend type %s. Error message: %s
 ERR_DBTEST_NOT_JE_BACKEND_20012=%s is not a JE backend. Only JE backends are supported \
  by this version of the tool
+ERR_INSTANCE_NOT_CONFIGURED_20013=The local instance is not configured or you do not \
+ have permissions to access it.

--
Gitblit v1.10.0