Author: shawkins
Date: 2009-07-21 22:48:37 -0400 (Tue, 21 Jul 2009)
New Revision: 1166
Added:
trunk/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestLDAPConnection.java
Modified:
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPConnection.java
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPConnector.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ExecutionContextImpl.java
Log:
TEIID-731 fixing the ldapconnection initialization logic
Modified:
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPConnection.java
===================================================================
---
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPConnection.java 2009-07-22
01:23:58 UTC (rev 1165)
+++
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPConnection.java 2009-07-22
02:48:37 UTC (rev 1166)
@@ -59,6 +59,7 @@
private String ldapAdminUserDN;
private String ldapAdminUserPass;
private String ldapTxnTimeoutInMillis;
+ private String jndiLdapCtxFactory;
/**
* Constructor.
@@ -67,11 +68,16 @@
* @param logger
*/
public LDAPConnection(ExecutionContext ctx, Properties props, ConnectorLogger logger)
throws ConnectorException {
+ this(ctx, props, logger, LDAPConnectorConstants.JNDI_LDAP_CTX_FACTORY);
+ }
+
+ public LDAPConnection(ExecutionContext ctx, Properties props, ConnectorLogger logger,
String jndiLdapCtxFactory) throws ConnectorException {
this.logger = logger;
this.props = props;
+ this.jndiLdapCtxFactory = jndiLdapCtxFactory;
-
-
+ parseProperties(props);
+
// Create initial LDAP connection.
try {
this.initCtx = initializeLDAPContext();
@@ -79,11 +85,14 @@
final String msg =
LDAPPlugin.Util.getString("LDAPConnection.contextInitFailed"); //$NON-NLS-1$
throw new ConnectorException(ce, msg);
}
+
logger.logDetail("LDAP Connection has been newly created."); //$NON-NLS-1$
-
- parseProperties(props);
}
+ public void setJndiLdapCtxFactory(String jndiLdapCtxFactory) {
+ this.jndiLdapCtxFactory = jndiLdapCtxFactory;
+ }
+
/**
* Helper method to retrieve the LDAP Connector properties. If any properties are in
error,
* a ConnectorException is thrown.
@@ -122,7 +131,7 @@
InitialLdapContext initContext;
Hashtable connenv = new Hashtable();
- connenv.put(Context.INITIAL_CONTEXT_FACTORY,
LDAPConnectorConstants.JNDI_LDAP_CTX_FACTORY);
+ connenv.put(Context.INITIAL_CONTEXT_FACTORY, jndiLdapCtxFactory);
connenv.put(Context.PROVIDER_URL, this.ldapURL);
connenv.put(Context.REFERRAL, LDAP_REFERRAL_MODE);
// If username is blank, we will perform an anonymous bind.
Modified:
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPConnector.java
===================================================================
---
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPConnector.java 2009-07-22
01:23:58 UTC (rev 1165)
+++
trunk/connectors/connector-ldap/src/main/java/com/metamatrix/connector/ldap/LDAPConnector.java 2009-07-22
02:48:37 UTC (rev 1166)
@@ -41,9 +41,7 @@
private ConnectorLogger logger;
private Properties props;
private LDAPConnectorCapabilities myCaps;
- private int ldapMaxCriteria;
-
@Override
public ConnectorCapabilities getCapabilities() {
return myCaps;
Added:
trunk/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestLDAPConnection.java
===================================================================
---
trunk/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestLDAPConnection.java
(rev 0)
+++
trunk/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestLDAPConnection.java 2009-07-22
02:48:37 UTC (rev 1166)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package com.metamatrix.connector.ldap;
+
+import java.util.Hashtable;
+import java.util.Properties;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.spi.InitialContextFactory;
+
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import com.metamatrix.cdk.api.EnvironmentUtility;
+import com.metamatrix.cdk.api.SysLogger;
+
+public class TestLDAPConnection {
+
+ public static class FakeFactory implements InitialContextFactory {
+ @Override
+ public Context getInitialContext(Hashtable<?, ?> environment)
+ throws NamingException {
+ return Mockito.mock(Context.class);
+ }
+ }
+
+ @Test public void testInitialization() throws Exception {
+ Properties p = new Properties();
+ p.setProperty(LDAPConnectorPropertyNames.LDAP_URL, "ldap://foo");
//$NON-NLS-1$
+ p.setProperty(LDAPConnectorPropertyNames.LDAP_ADMIN_USER_DN, "admin");
//$NON-NLS-1$
+ p.setProperty(LDAPConnectorPropertyNames.LDAP_ADMIN_USER_PASSWORD,
"password"); //$NON-NLS-1$
+ new LDAPConnection(EnvironmentUtility.createExecutionContext("1",
"1"), p, EnvironmentUtility.createStdoutLogger(SysLogger.ERROR),
FakeFactory.class.getName()); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+}
Property changes on:
trunk/connectors/connector-ldap/src/test/java/com/metamatrix/connector/ldap/TestLDAPConnection.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ExecutionContextImpl.java
===================================================================
---
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ExecutionContextImpl.java 2009-07-22
01:23:58 UTC (rev 1165)
+++
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ExecutionContextImpl.java 2009-07-22
02:48:37 UTC (rev 1166)
@@ -27,16 +27,13 @@
import java.util.LinkedList;
import java.util.List;
-import org.teiid.connector.api.CacheScope;
import org.teiid.connector.api.ConnectorIdentity;
import org.teiid.connector.api.ExecutionContext;
import org.teiid.dqp.internal.cache.DQPContextCache;
-import org.teiid.dqp.internal.process.DQPWorkContext;
import com.metamatrix.cache.Cache;
import com.metamatrix.common.buffer.impl.BufferConfig;
import com.metamatrix.core.util.HashCodeUtil;
-import com.metamatrix.dqp.service.BufferService;
/**
*/