From 1bff31ca61c88343ba66592675b8b4d93fd7680a Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Tue, 06 Feb 2007 19:22:18 +0000
Subject: [PATCH] Update the InternalClientConnection object to make the default constructor private so that all attempts to get a root-authenticated connection should use the InternalClientConnection.getRootConnection() method, which will be more efficient.
---
opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/jmx/JmxConnectTest.java | 97 ++++++++++++++++----------------
opends/src/server/org/opends/server/synchronization/plugin/SynchronizationDomain.java | 3
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/ProtocolWindowTest.java | 2
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/protocol/SynchronizationMsgTest.java | 14 +++-
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/plugin/ModifyConflictTest.java | 7 +-
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/StressTest.java | 6 +-
opends/src/server/org/opends/server/synchronization/plugin/PersistentServerState.java | 2
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/changelog/UpdateComparatorTest.java | 5 +
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/UpdateOperationTest.java | 2
opends/src/server/org/opends/server/synchronization/plugin/ChangelogBroker.java | 3
opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/internal/InternalClientConnectionTestCase.java | 3
opends/src/server/org/opends/server/protocols/internal/InternalClientConnection.java | 2
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/SynchronizationTestCase.java | 2
13 files changed, 78 insertions(+), 70 deletions(-)
diff --git a/opends/src/server/org/opends/server/protocols/internal/InternalClientConnection.java b/opends/src/server/org/opends/server/protocols/internal/InternalClientConnection.java
index d75b1d9..8508a8e 100644
--- a/opends/src/server/org/opends/server/protocols/internal/InternalClientConnection.java
+++ b/opends/src/server/org/opends/server/protocols/internal/InternalClientConnection.java
@@ -144,7 +144,7 @@
* authenticated as a root user for which access control will not be
* enforced.
*/
- public InternalClientConnection()
+ private InternalClientConnection()
{
super();
diff --git a/opends/src/server/org/opends/server/synchronization/plugin/ChangelogBroker.java b/opends/src/server/org/opends/server/synchronization/plugin/ChangelogBroker.java
index 5239d75..d545a51 100644
--- a/opends/src/server/org/opends/server/synchronization/plugin/ChangelogBroker.java
+++ b/opends/src/server/org/opends/server/synchronization/plugin/ChangelogBroker.java
@@ -276,7 +276,8 @@
* Get all the changes that have not been seen by this changelog
* server and update it
*/
- InternalClientConnection conn = new InternalClientConnection();
+ InternalClientConnection conn =
+ InternalClientConnection.getRootConnection();
LDAPFilter filter = LDAPFilter.decode(
"("+ Historical.HISTORICALATTRIBUTENAME +
">=dummy:" + changelogMaxChangeNumber + ")");
diff --git a/opends/src/server/org/opends/server/synchronization/plugin/PersistentServerState.java b/opends/src/server/org/opends/server/synchronization/plugin/PersistentServerState.java
index 539cb65..b2c5c7d 100644
--- a/opends/src/server/org/opends/server/synchronization/plugin/PersistentServerState.java
+++ b/opends/src/server/org/opends/server/synchronization/plugin/PersistentServerState.java
@@ -71,7 +71,7 @@
private DN baseDn;
private boolean savedStatus = true;
private InternalClientConnection conn =
- new InternalClientConnection();
+ InternalClientConnection.getRootConnection();
private ASN1OctetString serverStateAsn1Dn;
private DN serverStateDn;
diff --git a/opends/src/server/org/opends/server/synchronization/plugin/SynchronizationDomain.java b/opends/src/server/org/opends/server/synchronization/plugin/SynchronizationDomain.java
index 1369bed..42c03eb 100644
--- a/opends/src/server/org/opends/server/synchronization/plugin/SynchronizationDomain.java
+++ b/opends/src/server/org/opends/server/synchronization/plugin/SynchronizationDomain.java
@@ -154,7 +154,8 @@
private DN configDn;
- private InternalClientConnection conn = new InternalClientConnection();
+ private InternalClientConnection conn =
+ InternalClientConnection.getRootConnection();
static String CHANGELOG_SERVER_ATTR = "ds-cfg-changelog-server";
static String BASE_DN_ATTR = "ds-cfg-synchronization-dn";
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/internal/InternalClientConnectionTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/internal/InternalClientConnectionTestCase.java
index 3bb47c9..9d6a9fb 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/internal/InternalClientConnectionTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/internal/InternalClientConnectionTestCase.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2006 Sun Microsystems, Inc.
+ * Portions Copyright 2006-2007 Sun Microsystems, Inc.
*/
package org.opends.server.protocols.internal;
@@ -110,7 +110,6 @@
{
return new Object[][]
{
- new Object[] { new InternalClientConnection() },
new Object[] { InternalClientConnection.getRootConnection() },
new Object[] { new InternalClientConnection(new AuthenticationInfo()) },
new Object[] { new InternalClientConnection(
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 a0707a0..7005fb3 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
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2006 Sun Microsystems, Inc.
+ * Portions Copyright 2006-2007 Sun Microsystems, Inc.
*/
package org.opends.server.protocols.jmx;
@@ -88,7 +88,7 @@
/**
* Build data for the simpleConnect test.
- *
+ *
* @return the data.
*/
@DataProvider(name="simpleConnect")
@@ -137,7 +137,7 @@
"objectclass", null},
{"cn=JMX Connection Handler,cn=Connection Handlers,cn=config",
"ds-cfg-ssl-cert-nickname", "adm-server-cert"},
- // not working at the moment see issue 655
+ // not working at the moment see issue 655
// {"cn=JE Database,ds-cfg-backend-id=userRoot,cn=Backends,cn=config",
// "ds-cfg-database-cache-percent", 10},
};
@@ -151,14 +151,14 @@
public void simpleGet(String dn, String attributeName, Object value)
throws Exception
{
-
+
OpendsJmxConnector connector = connect("cn=directory manager",
"password", TestCaseUtils.getServerJmxPort());
MBeanServerConnection jmxc = connector.getMBeanServerConnection();
assertNotNull(jmxc);
Object val = jmxGet(dn, attributeName, jmxc);
-
+
if (value != null)
{
assertEquals(val, value);
@@ -183,20 +183,20 @@
Set names = jmxc.queryNames(null, null);
names.clear();
-
+
final String dn = "cn=config";
final String attribute = "ds-cfg-size-limit";
-
+
Long val = (Long) jmxGet(dn, attribute, jmxc);
-
+
jmxSet(dn, attribute, val + 1, jmxc);
-
+
Long newVal = (Long) jmxGet(dn, attribute, jmxc);
-
+
assertEquals((long)newVal, (long)val+1);
-
+
jmxSet(dn, attribute, val + 1, jmxc);
-
+
connector.close();
}
@@ -211,7 +211,7 @@
@Test(enabled = true)
public void disable() throws Exception
{
-
+
// Create a new JMX connector for this test.
// This will allow to use the old one if this test fails.
//
@@ -232,7 +232,8 @@
"ds-cfg-listen-port: " + serverJmxPort,
"cn: JMX Connection Handler"
);
- InternalClientConnection connection = new InternalClientConnection();
+ InternalClientConnection connection =
+ InternalClientConnection.getRootConnection();
AddOperation addOp = new AddOperation(connection,
InternalClientConnection.nextOperationID(), InternalClientConnection
.nextMessageID(), null, newJmxConnectionJmx.getDN(),
@@ -245,7 +246,7 @@
"password", serverJmxPort);
assertNotNull(newJmxConnector);
newJmxConnector.close() ;
-
+
// Get the "old" connector
OpendsJmxConnector connector = connect("cn=directory manager",
"password", TestCaseUtils.getServerJmxPort());
@@ -258,7 +259,7 @@
OpendsJmxConnector jmxcDisabled = connect("cn=directory manager",
"password", serverJmxPort);
assertNull(jmxcDisabled);
-
+
toggleEnableJmxConnector(connector, newJmxConnectionJmx.getDN(), true);
Thread.sleep(100) ;
jmxcDisabled = connect("cn=directory manager","password", serverJmxPort);
@@ -272,7 +273,7 @@
.nextMessageID(), null, newJmxConnectionJmx.getDN());
delOp.run();
}
-
+
/**
* Test changing JMX port through LDAP
* @throws Exception
@@ -284,22 +285,22 @@
final String dn =
"cn=JMX Connection Handler,cn=Connection Handlers,cn=config";
final String attribute = "ds-cfg-listen-port";
-
+
OpendsJmxConnector connector = connect("cn=directory manager", "password",
TestCaseUtils.getServerJmxPort());
MBeanServerConnection jmxc = connector.getMBeanServerConnection();
assertNotNull(jmxc);
-
+
// use JMX to get the current value of the JMX port number
Long initJmxPort = (Long) jmxGet(dn, attribute, jmxc);
connector.close();
assertNotNull(initJmxPort);
-
- // change the configuration of the connection handler to use
+
+ // change the configuration of the connection handler to use
// a free port
ServerSocket serverJmxSocket = TestCaseUtils.bindFreePort();
int serverJmxPort = serverJmxSocket.getLocalPort();
-
+
ConfigEntry config = new ConfigEntry(TestCaseUtils.makeEntry(
"dn: cn=JMX Connection Handler,cn=Connection Handlers,cn=config",
"objectClass: top",
@@ -314,7 +315,7 @@
), null);
serverJmxSocket.close();
configureJmx(config);
-
+
// connect the the JMX service using the new port
connector = connect("cn=directory manager", "password",serverJmxPort) ;
jmxc = connector.getMBeanServerConnection();
@@ -322,8 +323,8 @@
Long val = (Long) jmxGet(dn, attribute, jmxc);
assertEquals((long) val, (long) serverJmxPort);
connector.close();
-
- // re-establish the initial configuration of the JMX service
+
+ // re-establish the initial configuration of the JMX service
config = new ConfigEntry(TestCaseUtils.makeEntry(
"dn: cn=JMX Connection Handler,cn=Connection Handlers,cn=config",
"objectClass: top",
@@ -336,9 +337,9 @@
"ds-cfg-listen-port: " + initJmxPort,
"cn: JMX Connection Handler"
), null);
-
+
configureJmx(config);
-
+
// Check that the old port is ok
connector = connect("cn=directory manager", "password",
TestCaseUtils.getServerJmxPort());
@@ -367,15 +368,15 @@
"ds-cfg-key-store-type: JKS",
"ds-cfg-key-store-pin: password"
), null);
-
+
JmxConnectionHandler jmxConnectionHandler = getJmxConnectionHandler();
assertNotNull(jmxConnectionHandler);
StringBuilder reason = new StringBuilder();
- assertTrue(jmxConnectionHandler.configAddIsAcceptable(config, reason));
+ assertTrue(jmxConnectionHandler.configAddIsAcceptable(config, reason));
ConfigChangeResult result =
jmxConnectionHandler.applyConfigurationAdd(config);
assertEquals(ResultCode.SUCCESS, result.getResultCode());
-
+
// Enable SSL by setting ds-cfg-use-ssl boolean and the
// certificate alias using ds-cfg-ssl-cert-nickname attribute.
int initJmxPort = (int) TestCaseUtils.getServerJmxPort();
@@ -391,16 +392,16 @@
"ds-cfg-listen-port: " + initJmxPort ,
"cn: JMX Connection Handler"
), null);
-
+
configureJmx(config);
-
+
OpendsJmxConnector jmxc = sslConnect("cn=directory manager", "password",
initJmxPort);
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
jmxc.close();
-
- // Before returning the result,
+
+ // Before returning the result,
// disable SSL by setting ds-cfg-use-ssl boolean
config = new ConfigEntry(TestCaseUtils.makeEntry(
"dn: cn=JMX Connection Handler,cn=Connection Handlers,cn=config",
@@ -423,8 +424,8 @@
// TODO Auto-generated catch block
e.printStackTrace();
}
-
- jmxc = connect("cn=directory manager", "password", initJmxPort);
+
+ jmxc = connect("cn=directory manager", "password", initJmxPort);
jmxc.close();
assertNotNull(jmxc);
}
@@ -435,7 +436,7 @@
private void configureJmx(ConfigEntry config)
{
ArrayList<String> reasons = new ArrayList<String>();
-
+
// Get the Jmx connection handler from the core server
JmxConnectionHandler jmxConnectionHandler = getJmxConnectionHandler();
assertNotNull(jmxConnectionHandler);
@@ -447,7 +448,7 @@
}
/**
- * Get a reference to the JMX connection handler.
+ * Get a reference to the JMX connection handler.
*/
private JmxConnectionHandler getJmxConnectionHandler()
{
@@ -464,8 +465,8 @@
}
return jmxConnectionHandler;
}
-
-
+
+
/**
* Connect to the JMX service.
*/
@@ -474,7 +475,7 @@
throws MalformedURLException, IOException
{
HashMap<String, Object> env = new HashMap<String, Object>();
-
+
// Provide the credentials required by the server to successfully
// perform user authentication
//
@@ -486,9 +487,9 @@
else
credentials = new String[] { user , password };
env.put("jmx.remote.credentials", credentials);
-
+
env.put("jmx.remote.x.client.connection.check.period",0);
-
+
// Create an RMI connector client and
// connect it to the RMI connector server
//
@@ -527,7 +528,7 @@
else
credentials = new String[] { user , password };
env.put("jmx.remote.credentials", credentials);
-
+
// Provide the Trust manager.
KeyStore ks = null ;
ks = KeyStore.getInstance("JKS");
@@ -551,10 +552,10 @@
return opendsConnector ;
} catch (Exception e)
{
-
+
return null;
}
-
+
}
/**
@@ -570,7 +571,7 @@
/**
* Set the enabled config attribute for a JMX connector thorugh JMX
* operation.
- *
+ *
* @param jmxc
* connector to use for the interaction
* @param testedConnector
@@ -626,7 +627,7 @@
String jmxName = JMXMBean.getJmxName(DN.decode(dn));
ObjectName name = ObjectName.getInstance(jmxName);
Attribute attr = new Attribute(attributeName, value);
-
+
mbsc.setAttribute(name, attr);
}
}
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/ProtocolWindowTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/ProtocolWindowTest.java
index 03eb48d..5c399b6 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/ProtocolWindowTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/ProtocolWindowTest.java
@@ -245,7 +245,7 @@
DirectoryServer.setCheckSchema(false);
// Create an internal connection
- connection = new InternalClientConnection();
+ connection = InternalClientConnection.getRootConnection();
// Create backend top level entries
String[] topEntries = new String[2];
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/StressTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/StressTest.java
index c3731db..65f3eaf 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/StressTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/StressTest.java
@@ -198,7 +198,7 @@
TestCaseUtils.startServer();
// Create an internal connection
- connection = new InternalClientConnection();
+ connection = InternalClientConnection.getRootConnection();
// Disable schema check
schemaCheck = DirectoryServer.checkSchema();
@@ -365,7 +365,7 @@
}
} catch (Exception e)
{}
- finally
+ finally
{
synchronized (this)
{
@@ -383,7 +383,7 @@
{
synchronized (this)
{
- int i = 20;
+ int i = 20;
while ((finished != true) && (i-- >0))
{
try
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/SynchronizationTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/SynchronizationTestCase.java
index 69c8323..180dfdb 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/SynchronizationTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/SynchronizationTestCase.java
@@ -104,7 +104,7 @@
schemaCheck = DirectoryServer.checkSchema();
// Create an internal connection
- connection = new InternalClientConnection();
+ connection = InternalClientConnection.getRootConnection();
}
/**
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/UpdateOperationTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/UpdateOperationTest.java
index 6da10d0..5f6bf3f 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/UpdateOperationTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/UpdateOperationTest.java
@@ -107,7 +107,7 @@
DirectoryServer.setCheckSchema(false);
// Create an internal connection
- connection = new InternalClientConnection();
+ connection = InternalClientConnection.getRootConnection();
// Create backend top level entries
String[] topEntries = new String[2];
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/changelog/UpdateComparatorTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/changelog/UpdateComparatorTest.java
index 1faa317..b30a574 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/changelog/UpdateComparatorTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/changelog/UpdateComparatorTest.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2006 Sun Microsystems, Inc.
+ * Portions Copyright 2006-2007 Sun Microsystems, Inc.
*/
package org.opends.server.synchronization.changelog;
@@ -65,7 +65,8 @@
//
// Create the update messgae
- InternalClientConnection connection = new InternalClientConnection();
+ InternalClientConnection connection =
+ InternalClientConnection.getRootConnection();
DeleteOperation op = null;
try
{
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/plugin/ModifyConflictTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/plugin/ModifyConflictTest.java
index ae1c874..14fb6d3 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/plugin/ModifyConflictTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/plugin/ModifyConflictTest.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2006 Sun Microsystems, Inc.
+ * Portions Copyright 2006-2007 Sun Microsystems, Inc.
*/
package org.opends.server.synchronization.plugin;
@@ -343,7 +343,7 @@
.getOperationalAttributes();
operationalAttributes.put(Historical.entryuuidAttrType, uuidList);
-
+
// load historical from the entry
Historical hist = Historical.load(entry);
@@ -383,7 +383,8 @@
ModificationType modType, String value,
int date, boolean keepChangeResult)
{
- InternalClientConnection connection = new InternalClientConnection();
+ InternalClientConnection connection =
+ InternalClientConnection.getRootConnection();
ChangeNumber t = new ChangeNumber(date, (short) 0, (short) 0);
/* create AttributeType description that will be usedfor this test */
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/protocol/SynchronizationMsgTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/protocol/SynchronizationMsgTest.java
index 68ea221..766355f 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/protocol/SynchronizationMsgTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/protocol/SynchronizationMsgTest.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2006 Sun Microsystems, Inc.
+ * Portions Copyright 2006-2007 Sun Microsystems, Inc.
*/
package org.opends.server.synchronization.protocol;
@@ -135,7 +135,8 @@
throws Exception
{
DN dn = DN.decode(rawdn);
- InternalClientConnection connection = new InternalClientConnection();
+ InternalClientConnection connection =
+ InternalClientConnection.getRootConnection();
ModifyMsg msg = new ModifyMsg(changeNumber, dn, mods, "fakeuniqueid");
ModifyMsg generatedMsg = (ModifyMsg) SynchronizationMessage
.generateMsg(msg.getBytes());
@@ -228,7 +229,8 @@
public void deleteEncodeDecode(String rawDN)
throws Exception
{
- InternalClientConnection connection = new InternalClientConnection();
+ InternalClientConnection connection =
+ InternalClientConnection.getRootConnection();
DeleteOperation op = new DeleteOperation(connection, 1, 1,null,
DN.decode(rawDN));
ChangeNumber cn = new ChangeNumber(TimeThread.getTime(),
@@ -273,7 +275,8 @@
boolean deleteOldRdn, String newSuperior)
throws Exception
{
- InternalClientConnection connection = new InternalClientConnection();
+ InternalClientConnection connection =
+ InternalClientConnection.getRootConnection();
ModifyDNOperation op =
new ModifyDNOperation(connection, 1, 1, null,
DN.decode(rawDN), RDN.decode(newRdn), deleteOldRdn,
@@ -358,7 +361,8 @@
// TODO : should test that generated attributes match original attributes.
// Create an new Add Operation from the current addMsg
- InternalClientConnection connection = new InternalClientConnection();
+ InternalClientConnection connection =
+ InternalClientConnection.getRootConnection();
AddOperation addOp = msg.createOperation(connection, rawDN) ;
// TODO : should test that generated attributes match original attributes.
// List<LDAPAttribute> rawAtt = addOp.getRawAttributes();
--
Gitblit v1.10.0