Repository: camel Updated Branches: refs/heads/master d57437c66 -> 9dd120a53
Component docs Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/c3990f51 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c3990f51 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c3990f51 Branch: refs/heads/master Commit: c3990f5184af3d69df71dcdbc9e95ad4f401a14b Parents: d57437c Author: Claus Ibsen <davscl...@apache.org> Authored: Tue Apr 28 07:30:01 2015 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Apr 28 07:30:01 2015 +0200 ---------------------------------------------------------------------- .../component/springldap/LdapOperation.java | 1 - .../springldap/SpringLdapEndpoint.java | 131 ++++++------------- .../springldap/SpringLdapProducer.java | 2 +- .../springldap/SpringLdapEndpointTest.java | 101 -------------- .../springldap/SpringLdapProducerTest.java | 2 +- 5 files changed, 40 insertions(+), 197 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/c3990f51/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/LdapOperation.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/LdapOperation.java b/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/LdapOperation.java index dd0acc5..2710acc 100644 --- a/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/LdapOperation.java +++ b/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/LdapOperation.java @@ -20,7 +20,6 @@ package org.apache.camel.component.springldap; * The list of supported LDAP operations. Currently supported operations are * search, bind, and unbind. Modify is currently not supported. */ - public enum LdapOperation { SEARCH, BIND, UNBIND } http://git-wip-us.apache.org/repos/asf/camel/blob/c3990f51/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapEndpoint.java b/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapEndpoint.java index fe63ad5..3e54c27 100644 --- a/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapEndpoint.java +++ b/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapEndpoint.java @@ -16,9 +16,6 @@ */ package org.apache.camel.component.springldap; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; import javax.naming.directory.SearchControls; import org.apache.camel.Consumer; @@ -38,141 +35,89 @@ public class SpringLdapEndpoint extends DefaultEndpoint { private static final String ONELEVEL_SCOPE_NAME = "onelevel"; private static final String SUBTREE_SCOPE_NAME = "subtree"; - private static Map<String, LdapOperation> operationMap; - private static Map<String, Integer> scopeMap; - private LdapTemplate ldapTemplate; @UriPath @Metadata(required = "true") private String templateName; - @UriParam + @UriParam @Metadata(required = "true") private LdapOperation operation; - @UriParam(defaultValue = "2") - private int scope = SearchControls.SUBTREE_SCOPE; + @UriParam(defaultValue = "subtree", enums = "object,onelevel,subtree") + private String scope = SUBTREE_SCOPE_NAME; /** * Initializes the SpringLdapEndpoint using the provided template + * * @param templateName name of the LDAP template * @param ldapTemplate LDAP template, see org.springframework.ldap.core.LdapTemplate */ public SpringLdapEndpoint(String templateName, LdapTemplate ldapTemplate) { this.templateName = templateName; this.ldapTemplate = ldapTemplate; - if (null == operationMap) { - initializeOperationMap(); - } - - if (null == scopeMap) { - initializeScopeMap(); - } - } - - private static void initializeScopeMap() { - scopeMap = new HashMap<String, Integer>(); - - scopeMap.put(OBJECT_SCOPE_NAME, SearchControls.OBJECT_SCOPE); - scopeMap.put(ONELEVEL_SCOPE_NAME, SearchControls.ONELEVEL_SCOPE); - scopeMap.put(SUBTREE_SCOPE_NAME, SearchControls.SUBTREE_SCOPE); - } - - private static void initializeOperationMap() { - operationMap = new HashMap<String, LdapOperation>(); - - operationMap.put(LdapOperation.SEARCH.name(), LdapOperation.SEARCH); - operationMap.put(LdapOperation.BIND.name(), LdapOperation.BIND); - operationMap.put(LdapOperation.UNBIND.name(), LdapOperation.UNBIND); } - /** - * Creates a Producer using this SpringLdapEndpoint - */ @Override public Producer createProducer() throws Exception { return new SpringLdapProducer(this); } - /** - * Consumer endpoints are not supported. - * @throw UnsupportedOperationException - */ - @Override public Consumer createConsumer(Processor processor) throws Exception { - throw new UnsupportedOperationException( - "spring-ldap endpoint supports producer enrpoint only."); + throw new UnsupportedOperationException("spring-ldap endpoint supports producer enrpoint only."); } - /** - * returns false (constant) - */ @Override public boolean isSingleton() { return false; } - int getScope() { - return scope; + @Override + public String createEndpointUri() { + return "spring-ldap://" + templateName + "?operation=" + operation.name() + "&scope=" + getScope(); } - /** - * sets the scope of the LDAP operation. The scope string must be one of "object = 0", "onelevel = 1", or "subtree = 2" - */ - public void setScope(String scope) { - for (Entry<String, Integer> allowedScope : scopeMap.entrySet()) { - if (allowedScope.getKey().equals(scope)) { - this.scope = allowedScope.getValue(); - return; - } - } - throw new UnsupportedOperationException( - "Search scope '" - + scope - + "' is not supported. The supported scopes are 'object', 'onelevel', and 'subtree'."); + public LdapTemplate getLdapTemplate() { + return ldapTemplate; } - LdapTemplate getLdapTemplate() { - return ldapTemplate; + public String getTemplateName() { + return templateName; } /** - * @return URI used to create this endpoint + * Name of the Spring LDAP Template bean */ - @Override - public String createEndpointUri() { - return "spring-ldap://" + templateName + "?operation=" + operation.name() + "&scope=" + getScopeName(); + public void setTemplateName(String templateName) { + this.templateName = templateName; } - private String getScopeName() { - for (String key : scopeMap.keySet()) { - if (scope == scopeMap.get(key)) { - return key; - } - } - - throw new UnsupportedOperationException( - "Search scope '" - + scope - + "' is not supported. The supported scopes are 'object', 'onelevel', and 'subtree'."); - + public LdapOperation getOperation() { + return operation; } - LdapOperation getOperation() { - return operation; + /** + * The LDAP operation to be performed. + */ + public void setOperation(LdapOperation operation) { + this.operation = operation; + } + + public String getScope() { + return scope; } /** - * Sets the LDAP operation to be performed. The supported operations are defined in org.apache.camel.component.springldap.LdapOperation. + * The scope of the search operation. */ - public void setOperation(String operation) { - for (Entry<String, LdapOperation> allowedOperation : operationMap - .entrySet()) { - if (allowedOperation.getKey().equalsIgnoreCase(operation)) { - this.operation = allowedOperation.getValue(); - return; - } + public void setScope(String scope) { + this.scope = scope; + } + + public int scopeValue() { + if (scope.equals(OBJECT_SCOPE_NAME)) { + return SearchControls.OBJECT_SCOPE; + } else if (scope.equals(ONELEVEL_SCOPE_NAME)) { + return SearchControls.ONELEVEL_SCOPE; + } else { + return SearchControls.SUBTREE_SCOPE; } - throw new UnsupportedOperationException( - "LDAP operation '" - + operation - + "' is not supported. The supported operations are 'search', 'bind', and 'unbind'."); } } http://git-wip-us.apache.org/repos/asf/camel/blob/c3990f51/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapProducer.java b/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapProducer.java index a8ea9a6..2649427 100644 --- a/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapProducer.java +++ b/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapProducer.java @@ -84,7 +84,7 @@ public class SpringLdapProducer extends DefaultProducer { switch (operation) { case SEARCH: String filter = (String) body.get(FILTER); - exchange.getIn().setBody(ldapTemplate.search(dn, filter, endpoint.getScope(), mapper)); + exchange.getIn().setBody(ldapTemplate.search(dn, filter, endpoint.scopeValue(), mapper)); break; case BIND: Attributes attributes = (Attributes) body.get(ATTRIBUTES); http://git-wip-us.apache.org/repos/asf/camel/blob/c3990f51/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapEndpointTest.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapEndpointTest.java b/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapEndpointTest.java deleted file mode 100644 index 58b01bd..0000000 --- a/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapEndpointTest.java +++ /dev/null @@ -1,101 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.component.springldap; - -import javax.naming.directory.SearchControls; - -import org.apache.camel.Processor; - -import org.junit.Test; - -import org.mockito.Mockito; - -import org.springframework.ldap.core.LdapTemplate; - -import static org.junit.Assert.assertEquals; - -public class SpringLdapEndpointTest { - private LdapTemplate ldapTemplate = Mockito.mock(LdapTemplate.class); - - @Test(expected = UnsupportedOperationException.class) - public void testCreateConsumer() throws Exception { - SpringLdapEndpoint endpoint = new SpringLdapEndpoint("some name", ldapTemplate); - endpoint.createConsumer(Mockito.mock(Processor.class)); - } - - @Test - public void testOneLevelScope() { - SpringLdapEndpoint endpoint = new SpringLdapEndpoint("some name", ldapTemplate); - - endpoint.setScope("onelevel"); - assertEquals(SearchControls.ONELEVEL_SCOPE, endpoint.getScope()); - } - - @Test - public void testObjectScope() { - SpringLdapEndpoint endpoint = new SpringLdapEndpoint("some name", ldapTemplate); - - endpoint.setScope("object"); - assertEquals(SearchControls.OBJECT_SCOPE, endpoint.getScope()); - } - - @Test - public void testSubtreeScope() { - SpringLdapEndpoint endpoint = new SpringLdapEndpoint("some name", ldapTemplate); - - endpoint.setScope("subtree"); - assertEquals(SearchControls.SUBTREE_SCOPE, endpoint.getScope()); - } - - @Test(expected = UnsupportedOperationException.class) - public void testUnsupportedScope() { - SpringLdapEndpoint endpoint = new SpringLdapEndpoint("some name", ldapTemplate); - - endpoint.setScope("some other scope"); - } - - @Test - public void testBindOperation() { - SpringLdapEndpoint endpoint = new SpringLdapEndpoint("some name", ldapTemplate); - - endpoint.setOperation("BinD"); - assertEquals(LdapOperation.BIND, endpoint.getOperation()); - } - - @Test - public void testSearchOperation() { - SpringLdapEndpoint endpoint = new SpringLdapEndpoint("some name", ldapTemplate); - - endpoint.setOperation("SeaRCH"); - assertEquals(LdapOperation.SEARCH, endpoint.getOperation()); - } - - @Test - public void testUnbindOperation() { - SpringLdapEndpoint endpoint = new SpringLdapEndpoint("some name", ldapTemplate); - - endpoint.setOperation("UnBinD"); - assertEquals(LdapOperation.UNBIND, endpoint.getOperation()); - } - - @Test(expected = UnsupportedOperationException.class) - public void testUnsupportedOperation() { - SpringLdapEndpoint endpoint = new SpringLdapEndpoint("some name", ldapTemplate); - - endpoint.setOperation("BinDD"); - } -} http://git-wip-us.apache.org/repos/asf/camel/blob/c3990f51/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java b/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java index de9557a..ea014ed 100644 --- a/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java +++ b/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java @@ -137,7 +137,7 @@ public class SpringLdapProducerTest extends CamelTestSupport { body.put(SpringLdapProducer.FILTER, filter); when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.SEARCH); - when(ldapEndpoint.getScope()).thenReturn(scope); + when(ldapEndpoint.scopeValue()).thenReturn(scope); processBody(exchange, in, body); verify(ldapTemplate).search(eq(dn), eq(filter), eq(scope),