From 1cf071eb96addc1e01f4b2c4f107c5e8d591d43b Mon Sep 17 00:00:00 2001 From: Mattias Hellborg Arthursson Date: Wed, 14 Aug 2013 16:10:11 +0200 Subject: [PATCH] LDAP-245: Added new constructor for OdmManager and setter for LdapOperations in FactoryBean. --- .../ldap/odm/core/impl/OdmManagerImpl.java | 24 ++++++++++------- .../core/impl/OdmManagerImplFactoryBean.java | 27 +++++++++++++------ 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/odm/src/main/java/org/springframework/ldap/odm/core/impl/OdmManagerImpl.java b/odm/src/main/java/org/springframework/ldap/odm/core/impl/OdmManagerImpl.java index 3cc75ec4..5fbcfeba 100755 --- a/odm/src/main/java/org/springframework/ldap/odm/core/impl/OdmManagerImpl.java +++ b/odm/src/main/java/org/springframework/ldap/odm/core/impl/OdmManagerImpl.java @@ -62,19 +62,23 @@ public final class OdmManagerImpl implements OdmManager { // A map of managed classes to to meta data about those classes private final Map, EntityData> metaDataMap=new HashMap, EntityData>(); - + + public OdmManagerImpl(ConverterManager converterManager, + LdapOperations ldapOperations, + Set> managedClasses) { + this.converterManager=converterManager; + this.ldapTemplate = ldapOperations; + if (managedClasses!=null) { + for (Class managedClass: managedClasses) { + addManagedClass(managedClass); + } + } + } + public OdmManagerImpl(ConverterManager converterManager, ContextSource contextSource, Set> managedClasses) { - - this.converterManager=converterManager; - this.ldapTemplate=new LdapTemplate(contextSource); - - if (managedClasses!=null) { - for (Class managedClass: managedClasses) { - addManagedClass(managedClass); - } - } + this(converterManager, new LdapTemplate(contextSource), managedClasses); } public OdmManagerImpl(ConverterManager converterManager, diff --git a/odm/src/main/java/org/springframework/ldap/odm/core/impl/OdmManagerImplFactoryBean.java b/odm/src/main/java/org/springframework/ldap/odm/core/impl/OdmManagerImplFactoryBean.java index 808978da..553629be 100755 --- a/odm/src/main/java/org/springframework/ldap/odm/core/impl/OdmManagerImplFactoryBean.java +++ b/odm/src/main/java/org/springframework/ldap/odm/core/impl/OdmManagerImplFactoryBean.java @@ -1,12 +1,14 @@ package org.springframework.ldap.odm.core.impl; -import java.util.Set; - import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.FactoryBeanNotInitializedException; import org.springframework.ldap.core.ContextSource; +import org.springframework.ldap.core.LdapOperations; +import org.springframework.ldap.core.LdapTemplate; import org.springframework.ldap.odm.typeconversion.ConverterManager; +import java.util.Set; + /** * A Spring Factory bean which creates {@link OdmManagerImpl} instances. *

@@ -27,16 +29,25 @@ import org.springframework.ldap.odm.typeconversion.ConverterManager; * @author Paul Harvey <paul.at.pauls-place.me.uk> */ public final class OdmManagerImplFactoryBean implements FactoryBean { - private ContextSource contextSource=null; + private LdapOperations ldapOperations = null; private Set> managedClasses=null; private ConverterManager converterManager=null; - + + /** + * Set the LdapOperations instance to use to interact with the LDAP directory. + * + * @param ldapOperations the LdapOperations instance to use. + */ + public void setLdapOperations(LdapOperations ldapOperations) { + this.ldapOperations = ldapOperations; + } + /** * Set the ContextSource to use to interact with the LDAP directory. * @param contextSource The ContextSource to use. */ public void setContextSource(ContextSource contextSource) { - this.contextSource=contextSource; + this.ldapOperations = new LdapTemplate(contextSource); } /** @@ -61,8 +72,8 @@ public final class OdmManagerImplFactoryBean implements FactoryBean { * @see org.springframework.beans.factory.FactoryBean#getObject() */ public Object getObject() throws Exception { - if (contextSource==null) { - throw new FactoryBeanNotInitializedException("contextSource property has not been set"); + if (ldapOperations==null) { + throw new FactoryBeanNotInitializedException("contextSource ldapOperations property has not been set"); } if (managedClasses==null) { throw new FactoryBeanNotInitializedException("managedClasses property has not been set"); @@ -71,7 +82,7 @@ public final class OdmManagerImplFactoryBean implements FactoryBean { throw new FactoryBeanNotInitializedException("converterManager property has not been set"); } - return new OdmManagerImpl(converterManager, contextSource, managedClasses); + return new OdmManagerImpl(converterManager, ldapOperations, managedClasses); } /* (non-Javadoc)