From c3c61f8a3b4ba1e737253efce1699d0daece0273 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 20 May 2015 11:53:36 +0000
Subject: [PATCH] OPENDJ-1936 - don't allow users to configure a JE backend if it is unsupported

---
 opendj-server-legacy/src/main/java/org/opends/server/tools/BackendTypeHelper.java       |   20 +++++++++++++-------
 opendj-server-legacy/src/main/java/org/opends/server/tools/InstallDSArgumentParser.java |    5 ++---
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendTypeHelper.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendTypeHelper.java
index 9fcd48c..f4c215f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendTypeHelper.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendTypeHelper.java
@@ -139,20 +139,26 @@
     }
   }
 
-  private List<ManagedObjectDefinition<? extends BackendCfgClient, ? extends BackendCfg>> backends;
+  private final List<ManagedObjectDefinition<? extends BackendCfgClient, ? extends BackendCfg>> backends;
 
   /** Creates a new backend type helper. */
+  @SuppressWarnings("unchecked")
   public BackendTypeHelper()
   {
     Utilities.initializeConfigurationFramework();
-    createAvailableBackendsList();
-  }
 
-  @SuppressWarnings("unchecked")
-  private void createAvailableBackendsList()
-  {
     backends = new LinkedList<>();
-    backends.add(LocalDBBackendCfgDefn.getInstance());
+
+    // Add the JE backend if it is supported in this release.
+    try
+    {
+      Class.forName("org.opends.server.backends.jeb.BackendImpl");
+      backends.add(LocalDBBackendCfgDefn.getInstance());
+    }
+    catch (ClassNotFoundException ignored)
+    {
+      // Ignore: JE backend not supported.
+    }
 
     for (AbstractManagedObjectDefinition<?, ?> backendType : PluggableBackendCfgDefn.getInstance().getAllChildren())
     {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/InstallDSArgumentParser.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/InstallDSArgumentParser.java
index 9623526..4fc4a1e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/InstallDSArgumentParser.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/InstallDSArgumentParser.java
@@ -39,7 +39,6 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageDescriptor.Arg1;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
-import org.forgerock.opendj.server.config.meta.LocalDBBackendCfgDefn;
 import org.opends.quicksetup.Constants;
 import org.opends.quicksetup.Installation;
 import org.opends.quicksetup.UserData;
@@ -399,12 +398,12 @@
         OPTION_LONG_BACKEND_TYPE.toLowerCase(),
         OPTION_SHORT_BACKEND_TYPE, OPTION_LONG_BACKEND_TYPE,
         false, false, true, INFO_INSTALLDS_BACKEND_TYPE_PLACEHOLDER.get(),
-        BackendTypeHelper.filterSchemaBackendName(LocalDBBackendCfgDefn.getInstance().getName()),
+        BackendTypeHelper.filterSchemaBackendName(
+            new BackendTypeHelper().getBackendTypes().get(0).getName()),
         OPTION_LONG_BACKEND_TYPE,
         INFO_INSTALLDS_DESCRIPTION_BACKEND_TYPE.get()
     );
     addArgument(backendTypeArg);
-
   }
 
   /**

--
Gitblit v1.10.0