Author: sebb
Date: Wed Jan 20 23:49:12 2010
New Revision: 901444

URL: http://svn.apache.org/viewvc?rev=901444&view=rev
Log:
Bug 48573 - LDAPExtSampler directory context handling

Modified:
    
jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LDAPExtSampler.java
    
jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LdapExtClient.java
    jakarta/jmeter/trunk/xdocs/changes.xml

Modified: 
jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LDAPExtSampler.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LDAPExtSampler.java?rev=901444&r1=901443&r2=901444&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LDAPExtSampler.java
 (original)
+++ 
jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LDAPExtSampler.java
 Wed Jan 20 23:49:12 2010
@@ -33,7 +33,6 @@
 import javax.naming.directory.BasicAttribute;
 import javax.naming.directory.BasicAttributes;
 import javax.naming.directory.DirContext;
-import javax.naming.directory.InitialDirContext;
 import javax.naming.directory.ModificationItem;
 import javax.naming.directory.SearchResult;
 
@@ -139,9 +138,6 @@
     private static final String SEMI_COLON = ";"; // $NON-NLS-1$
 
 
-    private static final Hashtable<String, LdapExtClient> ldapConnections =
-        new Hashtable<String, LdapExtClient>();
-
     private static final Hashtable<String, DirContext> ldapContexts =
         new Hashtable<String, DirContext>();
 
@@ -603,10 +599,10 @@
      * This will do the add test for the User defined TestCase
      *
      
**************************************************************************/
-    private void addTest(LdapExtClient ldap, DirContext dirContext, 
SampleResult res) throws NamingException {
+    private void addTest(DirContext dirContext, SampleResult res) throws 
NamingException {
         try {
             res.sampleStart();
-            DirContext ctx = ldap.createTest(dirContext, getUserAttributes(), 
getBaseEntryDN());
+            DirContext ctx = LdapExtClient.createTest(dirContext, 
getUserAttributes(), getBaseEntryDN());
             ctx.close(); // the createTest() method creates an extra context 
which needs to be closed
         } finally {
             res.sampleEnd();
@@ -617,10 +613,10 @@
      * This will do the delete test for the User defined TestCase
      *
      
**************************************************************************/
-    private void deleteTest(LdapExtClient ldap, DirContext dirContext, 
SampleResult res) throws NamingException {
+    private void deleteTest(DirContext dirContext, SampleResult res) throws 
NamingException {
         try {
             res.sampleStart();
-            ldap.deleteTest(dirContext, getPropertyAsString(DELETE));
+            LdapExtClient.deleteTest(dirContext, getPropertyAsString(DELETE));
         } finally {
             res.sampleEnd();
         }
@@ -630,10 +626,10 @@
      * This will do the modify test for the User defined TestCase
      *
      
**************************************************************************/
-    private void modifyTest(LdapExtClient ldap, DirContext dirContext, 
SampleResult res) throws NamingException {
+    private void modifyTest(DirContext dirContext, SampleResult res) throws 
NamingException {
         try {
             res.sampleStart();
-            ldap.modifyTest(dirContext, getUserModAttributes(), 
getBaseEntryDN());
+            LdapExtClient.modifyTest(dirContext, getUserModAttributes(), 
getBaseEntryDN());
         } finally {
             res.sampleEnd();
         }
@@ -644,7 +640,7 @@
      * the whole context
      *
      
**************************************************************************/
-    private void bindOp(LdapExtClient ldap, DirContext dirContext, 
SampleResult res) throws NamingException {
+    private void bindOp(DirContext dirContext, SampleResult res) throws 
NamingException {
         DirContext ctx = ldapContexts.remove(getThreadName());
         if (ctx != null) {
             log.warn("Closing previous context for thread: " + 
getThreadName());
@@ -652,7 +648,7 @@
         }
         try {
             res.sampleStart();
-            ctx = ldap.connect(getServername(), getPort(), getRootdn(), 
getUserDN(), getUserPw(),getConnTimeOut(),isSecure());
+            ctx = LdapExtClient.connect(getServername(), getPort(), 
getRootdn(), getUserDN(), getUserPw(),getConnTimeOut(),isSecure());
         } finally {
             res.sampleEnd();
         }
@@ -664,12 +660,10 @@
      *
      
**************************************************************************/
     private void singleBindOp(SampleResult res) throws NamingException {
-        LdapExtClient ldap_temp;
-        ldap_temp = new LdapExtClient();
         try {
             res.sampleStart();
-            DirContext ctx = ldap_temp.connect(getServername(), getPort(), 
getRootdn(), getUserDN(), getUserPw(),getConnTimeOut(),isSecure());
-            ldap_temp.disconnect(ctx);
+            DirContext ctx = LdapExtClient.connect(getServername(), getPort(), 
getRootdn(), getUserDN(), getUserPw(),getConnTimeOut(),isSecure());
+            LdapExtClient.disconnect(ctx);
         } finally {
             res.sampleEnd();
         }
@@ -679,10 +673,10 @@
      * This will do a moddn Opp for the User new DN defined
      *
      
**************************************************************************/
-    private void renameTest(LdapExtClient ldap, DirContext dirContext, 
SampleResult res) throws NamingException {
+    private void renameTest(DirContext dirContext, SampleResult res) throws 
NamingException {
         try {
             res.sampleStart();
-            ldap.moddnOp(dirContext, getPropertyAsString(MODDDN), 
getPropertyAsString(NEWDN));
+            LdapExtClient.moddnOp(dirContext, getPropertyAsString(MODDDN), 
getPropertyAsString(NEWDN));
         } finally {
             res.sampleEnd();
         }
@@ -693,14 +687,13 @@
      * test case
      *
      
**************************************************************************/
-    private void unbindOp(LdapExtClient ldap, DirContext dirContext, 
SampleResult res) {
+    private void unbindOp(DirContext dirContext, SampleResult res) {
         try {
             res.sampleStart();
-            ldap.disconnect(dirContext);
+            LdapExtClient.disconnect(dirContext);
         } finally {
             res.sampleEnd();
         }
-        ldapConnections.remove(getThreadName());
         ldapContexts.remove(getThreadName());
         log.info("context and LdapExtClients removed");
     }
@@ -722,17 +715,7 @@
         res.setContentType("text/xml");// $NON-NLS-1$
         boolean isSuccessful = true;
         res.setSampleLabel(getName());
-        LdapExtClient temp_client = ldapConnections.get(getThreadName());
         DirContext dirContext = ldapContexts.get(getThreadName());
-        if (temp_client == null) {
-            temp_client = new LdapExtClient();
-            try {
-                dirContext = new InitialDirContext();
-            } catch (NamingException err) {
-                log.error("Ldap client context creation - ", err);
-            }
-            ldapConnections.put(getThreadName(), temp_client);
-        }
 
         try {
             xmlBuffer.openTag("operation"); // $NON-NLS-1$
@@ -743,13 +726,13 @@
                 res.setSamplerData("Unbind");
                 xmlBuffer.tag("baseobj",getRootdn()); // $NON-NLS-1$
                 xmlBuffer.tag("binddn",getUserDN()); // $NON-NLS-1$
-                unbindOp(temp_client, dirContext, res);
+                unbindOp(dirContext, res);
             } else if (testType.equals(BIND)) {
                 res.setSamplerData("Bind as "+getUserDN());
                 xmlBuffer.tag("baseobj",getRootdn()); // $NON-NLS-1$
                 xmlBuffer.tag("binddn",getUserDN()); // $NON-NLS-1$
                 xmlBuffer.tag("connectionTO",getConnTimeOut()); // $NON-NLS-1$
-                bindOp(temp_client, dirContext, res);
+                bindOp(dirContext, res);
             } else if (testType.equals(SBIND)) {
                 res.setSamplerData("SingleBind as "+getUserDN());
                 xmlBuffer.tag("baseobj",getRootdn()); // $NON-NLS-1$
@@ -764,7 +747,7 @@
                 NamingEnumeration<SearchResult> cmp=null;
                 try {
                     res.sampleStart();
-                    cmp = temp_client.compare(dirContext, 
getPropertyAsString(COMPAREFILT),
+                    cmp = LdapExtClient.compare(dirContext, 
getPropertyAsString(COMPAREFILT),
                             getPropertyAsString(COMPAREDN));
                     if (!cmp.hasMore()) {
                         res.setResponseCode("5"); // $NON-NLS-1$
@@ -781,21 +764,21 @@
                 res.setSamplerData("Add object " + getBaseEntryDN());
                 xmlBuffer.tag("attributes",getArguments().toString()); // 
$NON-NLS-1$
                 xmlBuffer.tag("dn",getBaseEntryDN()); // $NON-NLS-1$
-                addTest(temp_client, dirContext, res);
+                addTest(dirContext, res);
             } else if (testType.equals(DELETE)) {
                 res.setSamplerData("Delete object " + getBaseEntryDN());
                 xmlBuffer.tag("dn",getBaseEntryDN()); // $NON-NLS-1$
-                deleteTest(temp_client, dirContext, res);
+                deleteTest(dirContext, res);
             } else if (testType.equals(MODIFY)) {
                 res.setSamplerData("Modify object " + getBaseEntryDN());
                 xmlBuffer.tag("dn",getBaseEntryDN()); // $NON-NLS-1$
                 xmlBuffer.tag("attributes",getLDAPArguments().toString()); // 
$NON-NLS-1$
-                modifyTest(temp_client, dirContext, res);
+                modifyTest(dirContext, res);
             } else if (testType.equals(RENAME)) {
                 res.setSamplerData("ModDN object " + 
getPropertyAsString(MODDDN) + " to " + getPropertyAsString(NEWDN));
                 xmlBuffer.tag("dn",getPropertyAsString(MODDDN)); // $NON-NLS-1$
                 xmlBuffer.tag("newdn",getPropertyAsString(NEWDN)); // 
$NON-NLS-1$
-                renameTest(temp_client, dirContext, res);
+                renameTest(dirContext, res);
             } else if (testType.equals(SEARCH)) {
                 final String            scopeStr = getScope();
                 final int               scope = getScopeAsInt();
@@ -815,7 +798,7 @@
                 NamingEnumeration<SearchResult> srch=null;
                 try {
                     res.sampleStart();
-                    srch = temp_client.searchTest(
+                    srch = LdapExtClient.searchTest(
                             dirContext, searchBase, searchFilter,
                             scope, getCountlimAsLong(),
                             getTimelimAsInt(),

Modified: 
jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LdapExtClient.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LdapExtClient.java?rev=901444&r1=901443&r2=901444&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LdapExtClient.java
 (original)
+++ 
jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/sampler/LdapExtClient.java
 Wed Jan 20 23:49:12 2010
@@ -71,7 +71,7 @@
      * @exception NamingException
      *                Description of Exception
      */
-    public DirContext connect(String host, String port, String rootdn, String 
username, String password, String connTimeOut, boolean secure)
+    public static DirContext connect(String host, String port, String rootdn, 
String username, String password, String connTimeOut, boolean secure)
             throws NamingException {
         DirContext dirContext;
         Hashtable<String, String> env = new Hashtable<String, String>();
@@ -105,7 +105,7 @@
     /**
      * disconnect from the server
      */
-    public void disconnect(DirContext dirContext) {
+    public static void disconnect(DirContext dirContext) {
         if (dirContext == null) {
             log.info("Cannot disconnect null context");
             return;
@@ -126,7 +126,7 @@
      * @param searchFilter
      *            filter filter this value from the base
      
**************************************************************************/
-    public NamingEnumeration<SearchResult> searchTest(DirContext dirContext, 
String searchBase, String searchFilter, int scope, long countlim,
+    public static NamingEnumeration<SearchResult> searchTest(DirContext 
dirContext, String searchBase, String searchFilter, int scope, long countlim,
             int timelim, String[] attrs, boolean retobj, boolean deref) throws 
NamingException {
         if (dirContext == null) {
             throw new NamingException(CONTEXT_IS_NULL);
@@ -154,7 +154,7 @@
      * @param filter
      *            filter this value from the base
      
**************************************************************************/
-    public NamingEnumeration<SearchResult> compare(DirContext dirContext, 
String filter, String entrydn) throws NamingException {
+    public static NamingEnumeration<SearchResult> compare(DirContext 
dirContext, String filter, String entrydn) throws NamingException {
         if (dirContext == null) {
             throw new NamingException(CONTEXT_IS_NULL);
         }
@@ -166,7 +166,7 @@
      * ModDN the data in the ldap directory for the given search base
      *
      
**************************************************************************/
-    public void moddnOp(DirContext dirContext, String ddn, String newdn) 
throws NamingException {
+    public static void moddnOp(DirContext dirContext, String ddn, String 
newdn) throws NamingException {
         log.debug("ddn and newDn= " + ddn + "@@@@" + newdn);
         if (dirContext == null) {
             throw new NamingException(CONTEXT_IS_NULL);
@@ -182,7 +182,7 @@
      * @param string
      *            The string (dn) value
      
**************************************************************************/
-    public void modifyTest(DirContext dirContext, ModificationItem[] mods, 
String string) throws NamingException {
+    public static void modifyTest(DirContext dirContext, ModificationItem[] 
mods, String string) throws NamingException {
         if (dirContext == null) {
             throw new NamingException(CONTEXT_IS_NULL);
         }
@@ -198,7 +198,7 @@
      * @param string
      *            The string (dn) value
      
**************************************************************************/
-    public DirContext createTest(DirContext dirContext, Attributes attributes, 
String string)
+    public static DirContext createTest(DirContext dirContext, Attributes 
attributes, String string)
             throws NamingException {
         if (dirContext == null) {
             throw new NamingException(CONTEXT_IS_NULL);
@@ -212,10 +212,10 @@
      * @param string
      *            The string (dn) value
      
**************************************************************************/
-    public void deleteTest(DirContext dirContext, String string) throws 
NamingException {
+    public static void deleteTest(DirContext dirContext, String string) throws 
NamingException {
         if (dirContext == null) {
             throw new NamingException(CONTEXT_IS_NULL);
         }
         dirContext.destroySubcontext(string);
     }
-}
\ No newline at end of file
+}

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=901444&r1=901443&r2=901444&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Wed Jan 20 23:49:12 2010
@@ -85,6 +85,7 @@
 <li>Bug 47899 - NullPointerExceptions in ReceiveSubscriber constructor</li>
 <li>Bug 48144 - NPE in OnMessageSubscriber</li>
 <li>Bug 47992 - JMS Point-to-Point Request - Response option doesn't work</li>
+<li>Bug 48573 - LDAPExtSampler directory context handling</li>
 </ul>
 
 <h3>Controllers</h3>



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org

Reply via email to