From 2a55846c7fd94f20d41062cc786a6288dfec76a4 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Thu, 07 Jun 2007 17:19:20 +0000
Subject: [PATCH] Fix for issue 1633 (JMX port should be disabled by default)
---
opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxConnectTest.java | 49 +++++++++++++++++++++++-
opends/src/server/org/opends/server/tools/InstallDS.java | 11 ++++-
opends/src/server/org/opends/server/messages/ProtocolMessages.java | 10 +++++
opends/resource/config/config.ldif | 4 +-
opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java | 8 +++-
opends/src/server/org/opends/server/tools/ConfigureDS.java | 5 ++
6 files changed, 78 insertions(+), 9 deletions(-)
diff --git a/opends/resource/config/config.ldif b/opends/resource/config/config.ldif
index 71861f9..1301166 100644
--- a/opends/resource/config/config.ldif
+++ b/opends/resource/config/config.ldif
@@ -95,7 +95,7 @@
objectClass: ds-cfg-alert-handler
cn: JMX Alert Handler
ds-cfg-alert-handler-class: org.opends.server.extensions.JMXAlertHandler
-ds-cfg-alert-handler-enabled: true
+ds-cfg-alert-handler-enabled: false
dn: cn=Backends,cn=config
objectClass: top
@@ -372,7 +372,7 @@
objectClass: ds-cfg-jmx-connection-handler
cn: JMX Connection Handler
ds-cfg-connection-handler-class: org.opends.server.protocols.jmx.JmxConnectionHandler
-ds-cfg-connection-handler-enabled: true
+ds-cfg-connection-handler-enabled: false
ds-cfg-use-ssl: false
ds-cfg-listen-port: 1689
ds-cfg-ssl-cert-nickname: server-cert
diff --git a/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java b/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
index e367004..0ec86d3 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
@@ -694,9 +694,11 @@
sec.getCertificateType());
}
+ // For the moment do not enable JMX
+ /*
argList.add("-x");
argList.add(String.valueOf(getUserData().getServerJMXPort()));
-
+ */
argList.add("-D");
argList.add(getUserData().getDirectoryManagerDn());
@@ -1688,11 +1690,13 @@
qs.displayFieldInvalid(FieldName.DIRECTORY_MANAGER_PWD_CONFIRM, false);
}
+ // For the moment do not enable JMX
int defaultJMXPort =
UserData.getDefaultJMXPort(new int[] {port, securePort});
if (defaultJMXPort != -1)
{
- getUserData().setServerJMXPort(defaultJMXPort);
+ //getUserData().setServerJMXPort(defaultJMXPort);
+ getUserData().setServerJMXPort(-1);
}
if (errorMsgs.size() > 0)
diff --git a/opends/src/server/org/opends/server/messages/ProtocolMessages.java b/opends/src/server/org/opends/server/messages/ProtocolMessages.java
index 6049cf7..a305e3c 100644
--- a/opends/src/server/org/opends/server/messages/ProtocolMessages.java
+++ b/opends/src/server/org/opends/server/messages/ProtocolMessages.java
@@ -4617,6 +4617,13 @@
public static final int MSGID_LDAP_FILTER_ENCLOSED_IN_APOSTROPHES =
CATEGORY_MASK_PROTOCOL | SEVERITY_MASK_MILD_ERROR | 427;
+ /**
+ * The message ID for the message that will be used as the description of the
+ * configuration attribute specifying whether to enable the LDAPS
+ * connection handler.
+ */
+ public static final int MSGID_JMX_CONNHANDLER_DESCRIPTION_ENABLE =
+ CATEGORY_MASK_PROTOCOL | SEVERITY_MASK_INFORMATIONAL | 428;
/**
* Associates a set of generic messages with the message IDs defined in this
@@ -6371,6 +6378,9 @@
"configuration attribute will not take effect until the " +
"connection handler is disabled and re-enabled, or until " +
"the Directory Server is restarted");
+ registerMessage(MSGID_JMX_CONNHANDLER_DESCRIPTION_ENABLE,
+ "Specifies whether to enable the JMX connection " +
+ "handler");
registerMessage(MSGID_JMX_CONNHANDLER_NO_LISTEN_PORT,
"No listen port was defined using configuration " +
ATTR_LISTEN_PORT + " in configuration entry %s. This is " +
diff --git a/opends/src/server/org/opends/server/tools/ConfigureDS.java b/opends/src/server/org/opends/server/tools/ConfigureDS.java
index 01ab56a..3d50ecb 100644
--- a/opends/src/server/org/opends/server/tools/ConfigureDS.java
+++ b/opends/src/server/org/opends/server/tools/ConfigureDS.java
@@ -638,6 +638,11 @@
true, false, true, true, 1, true,
65535, jmxPort.getIntValue());
configEntry.putConfigAttribute(portAttr);
+ msgID = MSGID_JMX_CONNHANDLER_DESCRIPTION_ENABLE;
+ BooleanConfigAttribute enablePortAttr =
+ new BooleanConfigAttribute(ATTR_CONNECTION_HANDLER_ENABLED,
+ getMessage(msgID), true, true, true);
+ configEntry.putConfigAttribute(enablePortAttr);
}
catch (Exception e)
{
diff --git a/opends/src/server/org/opends/server/tools/InstallDS.java b/opends/src/server/org/opends/server/tools/InstallDS.java
index 814411f..822b0c8 100644
--- a/opends/src/server/org/opends/server/tools/InstallDS.java
+++ b/opends/src/server/org/opends/server/tools/InstallDS.java
@@ -559,6 +559,9 @@
}
else
{
+ /* Do not ask for the JMX port if the user did not provide it.*/
+ jmxPortNumber = -1;
+ /*
while (true)
{
int msgID = MSGID_INSTALLDS_PROMPT_JMXPORT;
@@ -594,6 +597,7 @@
}
}
}
+ */
}
@@ -841,8 +845,11 @@
argList.add(configFileName);
argList.add("-p");
argList.add(String.valueOf(ldapPortNumber));
- argList.add("-x");
- argList.add(String.valueOf(jmxPortNumber));
+ if (jmxPortNumber != -1)
+ {
+ argList.add("-x");
+ argList.add(String.valueOf(jmxPortNumber));
+ }
for (DN dn : baseDNs)
{
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxConnectTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxConnectTest.java
index 6b58c56..8d042e4 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxConnectTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxConnectTest.java
@@ -57,14 +57,21 @@
import org.opends.server.core.AddOperation;
import org.opends.server.core.DeleteOperation;
import org.opends.server.core.DirectoryServer;
+import org.opends.server.core.ModifyOperation;
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.types.ConfigChangeResult;
+import org.opends.server.types.Control;
+import org.opends.server.types.Control;
import org.opends.server.types.DN;
import org.opends.server.types.Entry;
+import org.opends.server.types.Modification;
+import org.opends.server.types.ModificationType;
import org.opends.server.types.ResultCode;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
+
+import static org.opends.server.config.ConfigConstants.ATTR_LISTEN_PORT;
import static org.testng.Assert.*;
@@ -420,9 +427,9 @@
/**
* @param config
- * @throws ConfigException
+ * @throws Exception
*/
- private void configureJmx(Entry entry) throws ConfigException {
+ private void configureJmx(Entry entry) throws Exception {
ArrayList<String> reasons = new ArrayList<String>();
// Get the Jmx connection handler from the core server
@@ -448,8 +455,9 @@
/**
* Get a reference to the JMX connection handler.
+ * @throws an Exception is something went wrong.
*/
- private JmxConnectionHandler getJmxConnectionHandler() {
+ private JmxConnectionHandler getJmxConnectionHandler() throws Exception {
List<ConnectionHandler> handlers = DirectoryServer
.getConnectionHandlers();
assertNotNull(handlers);
@@ -460,6 +468,20 @@
break;
}
}
+ if (jmxConnectionHandler == null)
+ {
+ enableJmx();
+ synchronized (this) {
+ this.wait(500);
+ }
+ for (ConnectionHandler handler : handlers) {
+ if (handler instanceof JmxConnectionHandler) {
+ jmxConnectionHandler = (JmxConnectionHandler) handler;
+ break;
+ }
+ }
+ }
+
return jmxConnectionHandler;
}
@@ -627,4 +649,25 @@
mbsc.setAttribute(name, attr);
}
+
+ /**
+ * Enable JMX with the port chosen in TestCaseUtils.
+ * @throws Exception if the handler cannot be enabled.
+ */
+ private void enableJmx() throws Exception
+ {
+ ArrayList<Modification> mods = new ArrayList<Modification>();
+
+ InternalClientConnection conn =
+ InternalClientConnection.getRootConnection();
+ mods.add(new Modification(ModificationType.REPLACE,
+ new org.opends.server.types.Attribute("ds-cfg-connection-handler-enabled",
+ "true")));
+ ModifyOperation op = new ModifyOperation(conn, conn.nextOperationID(),
+ conn.nextMessageID(), new ArrayList<Control>(),
+ DN.decode(
+ "cn=JMX Connection Handler,cn=Connection Handlers,cn=config"),
+ mods);
+ op.run();
+ }
}
--
Gitblit v1.10.0