From b5ef07bab99de60b48a159bbb79157933b6ee5a5 Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Fri, 12 Apr 2013 01:03:22 +1200 Subject: [PATCH] Remove LDAP and Validation objects --- .../deploy/parse/ValidatorFactoryManager.java | 50 ------- .../server/ldap/DefaultLdapPersister.java | 141 ------------------ .../server/ldap/LdapBeanBuilder.java | 81 ---------- .../server/ldap/LdapOrmQueryExecute.java | 129 ---------------- 4 files changed, 401 deletions(-) delete mode 100644 src/main/java/com/avaje/ebeaninternal/server/deploy/parse/ValidatorFactoryManager.java delete mode 100644 src/main/java/com/avaje/ebeaninternal/server/ldap/DefaultLdapPersister.java delete mode 100644 src/main/java/com/avaje/ebeaninternal/server/ldap/LdapBeanBuilder.java delete mode 100644 src/main/java/com/avaje/ebeaninternal/server/ldap/LdapOrmQueryExecute.java diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/ValidatorFactoryManager.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/ValidatorFactoryManager.java deleted file mode 100644 index eec1cfccf..000000000 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/ValidatorFactoryManager.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.avaje.ebeaninternal.server.deploy.parse; - -import java.lang.annotation.Annotation; -import java.util.HashMap; -import java.util.Map; - -import com.avaje.ebean.validation.ValidatorMeta; -import com.avaje.ebean.validation.factory.Validator; -import com.avaje.ebean.validation.factory.ValidatorFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ValidatorFactoryManager { - - private static final Logger logger = LoggerFactory.getLogger(ValidatorFactoryManager.class); - - Map, ValidatorFactory> factoryMap; - - public ValidatorFactoryManager() { - factoryMap = new HashMap, ValidatorFactory>(); - } - - public Validator create(Annotation ann, Class type) { - synchronized (this) { - ValidatorMeta meta = ann.annotationType().getAnnotation(ValidatorMeta.class); - if (meta == null) { - return null; - } - Class factoryClass = meta.factory(); - ValidatorFactory factory = getFactory(factoryClass); - return factory.create(ann, type); - } - } - - private ValidatorFactory getFactory(Class factoryClass) { - try { - ValidatorFactory factory = factoryMap.get(factoryClass); - if (factory == null) { - factory = (ValidatorFactory) factoryClass.newInstance(); - factoryMap.put(factoryClass, factory); - } - return factory; - - } catch (Exception e) { - String msg = "Error creating ValidatorFactory " + factoryClass.getName(); - logger.error(msg, e); - return null; - } - } -} diff --git a/src/main/java/com/avaje/ebeaninternal/server/ldap/DefaultLdapPersister.java b/src/main/java/com/avaje/ebeaninternal/server/ldap/DefaultLdapPersister.java deleted file mode 100644 index 322fa5d68..000000000 --- a/src/main/java/com/avaje/ebeaninternal/server/ldap/DefaultLdapPersister.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.avaje.ebeaninternal.server.ldap; - -import java.util.Iterator; -import java.util.Set; - -import javax.naming.Name; -import javax.naming.NamingException; -import javax.naming.directory.Attribute; -import javax.naming.directory.Attributes; -import javax.naming.directory.BasicAttributes; -import javax.naming.directory.DirContext; - -import com.avaje.ebean.config.ldap.LdapContextFactory; -import com.avaje.ebeaninternal.server.deploy.BeanDescriptor; -import com.avaje.ebeaninternal.server.deploy.BeanProperty; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class DefaultLdapPersister { - - private static final Logger logger = LoggerFactory.getLogger(DefaultLdapPersister.class); - - private final LdapContextFactory contextFactory; - - public DefaultLdapPersister(LdapContextFactory dirContextFactory) { - this.contextFactory = dirContextFactory; - } - - public int persist(LdapPersistBeanRequest request) { - - switch (request.getType()) { - case INSERT: - return insert(request); - case UPDATE: - return update(request); - case DELETE: - return delete(request); - - default: - throw new LdapPersistenceException("Invalid type " + request.getType()); - } - } - - private int insert(LdapPersistBeanRequest request) { - - DirContext dc = contextFactory.createContext(); - - Name name = request.createLdapName(); - Attributes attrs = createAttributes(request, false, request.getLoadedProperties()); - - if (logger.isDebugEnabled()) { - logger.debug("Ldap Insert Name:" + name + " Attrs:" + attrs); - } - try { - dc.bind(name, null, attrs); - return 1; - - } catch (NamingException e) { - throw new LdapPersistenceException(e); - } - } - - private int delete(LdapPersistBeanRequest request) { - - DirContext dc = contextFactory.createContext(); - Name name = request.createLdapName(); - - if (logger.isDebugEnabled()) { - logger.debug("Ldap Delete Name:" + name); - } - - try { - dc.unbind(name); - return 1; - - } catch (NamingException e) { - throw new LdapPersistenceException(e); - } - } - - private int update(LdapPersistBeanRequest request) { - - Name name = request.createLdapName(); - - Set updatedProperties = request.getUpdatedProperties(); - if (updatedProperties == null || updatedProperties.isEmpty()) { - logger.info("Ldap Update has no changed properties? Name:" + name); - return 0; - } - - DirContext dc = contextFactory.createContext(); - Attributes attrs = createAttributes(request, true, updatedProperties); - - if (logger.isDebugEnabled()) { - logger.debug("Ldap Update Name:" + name + " Attrs:" + attrs); - } - - try { - dc.modifyAttributes(name, DirContext.REPLACE_ATTRIBUTE, attrs); - return 1; - - } catch (NamingException e) { - throw new LdapPersistenceException(e); - } - } - - private Attributes createAttributes(LdapPersistBeanRequest request, boolean update, Set props) { - - BeanDescriptor desc = request.getBeanDescriptor(); - - Attributes attrs = desc.createAttributes(); - if (update) { - attrs = new BasicAttributes(true); - } else { - attrs = desc.createAttributes(); - } - - Object bean = request.getBean(); - - if (props != null) { - for (String propName : props) { - BeanProperty p = desc.getBeanPropertyFromPath(propName); - Attribute attr = p.createAttribute(bean); - if (attr != null) { - attrs.put(attr); - } - } - } else { - Iterator it = desc.propertiesAll(); - while (it.hasNext()) { - BeanProperty p = it.next(); - Attribute attr = p.createAttribute(bean); - if (attr != null) { - attrs.put(attr); - } - } - } - - return attrs; - } -} diff --git a/src/main/java/com/avaje/ebeaninternal/server/ldap/LdapBeanBuilder.java b/src/main/java/com/avaje/ebeaninternal/server/ldap/LdapBeanBuilder.java deleted file mode 100644 index cc2176dd8..000000000 --- a/src/main/java/com/avaje/ebeaninternal/server/ldap/LdapBeanBuilder.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.avaje.ebeaninternal.server.ldap; - -import java.util.LinkedHashSet; -import java.util.Set; - -import javax.naming.NamingEnumeration; -import javax.naming.NamingException; -import javax.naming.directory.Attribute; -import javax.naming.directory.Attributes; - -import com.avaje.ebean.bean.EntityBean; -import com.avaje.ebean.bean.EntityBeanIntercept; -import com.avaje.ebean.event.BeanPersistController; -import com.avaje.ebeaninternal.server.deploy.BeanDescriptor; -import com.avaje.ebeaninternal.server.deploy.BeanProperty; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class LdapBeanBuilder { - - private static final Logger logger = LoggerFactory.getLogger(LdapBeanBuilder.class); - - private final BeanDescriptor beanDescriptor; - - private final boolean vanillaMode; - - private Set loadedProps; - - public LdapBeanBuilder(BeanDescriptor beanDescriptor, boolean vanillaMode) { - this.beanDescriptor = beanDescriptor; - this.vanillaMode = vanillaMode; - } - - @SuppressWarnings("unchecked") - public T readAttributes(Attributes attributes) throws NamingException { - - Object bean = beanDescriptor.createBean(vanillaMode); - - NamingEnumeration all = attributes.getAll(); - - boolean setLoadedProps = false; - if (loadedProps == null) { - setLoadedProps = true; - loadedProps = new LinkedHashSet(); - } - - while (all.hasMoreElements()) { - Attribute attr = all.nextElement(); - String attrName = attr.getID(); - - BeanProperty prop = beanDescriptor.getBeanPropertyFromDbColumn(attrName); - if (prop == null) { - if ("objectclass".equalsIgnoreCase(attrName)) { - // this is expected - } else { - logger.info("... hmm, no property to map to attribute[" + attrName + "] value["+attr.get()+"]"); - } - - } else { - prop.setAttributeValue(bean, attr); - if (setLoadedProps) { - loadedProps.add(prop.getName()); - } - } - } - - if (bean instanceof EntityBean) { - EntityBeanIntercept ebi = ((EntityBean) bean)._ebean_getIntercept(); - ebi.setLoadedProps(loadedProps); - ebi.setLoaded(); - } - - BeanPersistController persistController = beanDescriptor.getPersistController(); - if (persistController != null) { - persistController.postLoad(bean, loadedProps); - } - - return (T)bean; - } - -} diff --git a/src/main/java/com/avaje/ebeaninternal/server/ldap/LdapOrmQueryExecute.java b/src/main/java/com/avaje/ebeaninternal/server/ldap/LdapOrmQueryExecute.java deleted file mode 100644 index 2fd9e0e4d..000000000 --- a/src/main/java/com/avaje/ebeaninternal/server/ldap/LdapOrmQueryExecute.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.avaje.ebeaninternal.server.ldap; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import javax.naming.NamingEnumeration; -import javax.naming.NamingException; -import javax.naming.directory.Attributes; -import javax.naming.directory.DirContext; -import javax.naming.directory.SearchControls; -import javax.naming.directory.SearchResult; -import javax.naming.ldap.LdapName; - -import com.avaje.ebeaninternal.api.SpiQuery; -import com.avaje.ebeaninternal.server.deploy.BeanDescriptor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class LdapOrmQueryExecute { - - private static final Logger logger = LoggerFactory.getLogger(LdapOrmQueryExecute.class); - - private final SpiQuery query; - - private final BeanDescriptor beanDescriptor; - - private final DirContext dc; - - private final LdapBeanBuilder beanBuilder; - - private final String filterExpr; - - private final Object[] filterValues; - - private final String[] selectProps; - - public LdapOrmQueryExecute(LdapOrmQueryRequest request, boolean defaultVanillaMode, DirContext dc) { - - this.query = request.getQuery(); - this.beanDescriptor = request.getBeanDescriptor(); - this.dc = dc; - - boolean vanillaMode = query.isVanillaMode(defaultVanillaMode); - this.beanBuilder = new LdapBeanBuilder(beanDescriptor, vanillaMode); - - LdapQueryDeployHelper deployHelper = new LdapQueryDeployHelper(request); - this.selectProps = deployHelper.getSelectedProperties(); - this.filterExpr = deployHelper.getFilterExpr(); - this.filterValues = deployHelper.getFilterValues(); - } - - public T findId() { - - Object id = query.getId(); - - try { - LdapName dn = beanDescriptor.createLdapNameById(id); - - String[] findAttrs = selectProps; - if (findAttrs == null){ - findAttrs = beanDescriptor.getDefaultSelectDbArray(); - } - - // build a string describing the query - String debugQuery = "Name:"+dn+" attrs:"+Arrays.toString(findAttrs); - - Attributes attrs = dc.getAttributes(dn, findAttrs); - - T bean = beanBuilder.readAttributes(attrs); - - query.setGeneratedSql(debugQuery); - return bean; - - } catch (NamingException e) { - throw new LdapPersistenceException(e); - } - } - - public List findList() { - - SearchControls sc = new SearchControls(); - sc.setSearchScope(SearchControls.ONELEVEL_SCOPE); - - List list = new ArrayList(); - - try { - LdapName dn = beanDescriptor.createLdapName(null); - - // build a string describing the query - String debugQuery = "Name:"+dn; - - if (selectProps != null) { - sc.setReturningAttributes(selectProps); - debugQuery += " select:"+Arrays.toString(selectProps); - } - - if (logger.isInfoEnabled()){ - logger.info("Ldap Query Name:"+dn+" filterExpr:"+filterExpr); - } - - debugQuery += " filterExpr:"+filterExpr; - - NamingEnumeration result; - if (filterValues == null || filterValues.length == 0) { - result = dc.search(dn, filterExpr, sc); - } else { - debugQuery += " filterValues:"+Arrays.toString(filterValues); - result = dc.search(dn, filterExpr, filterValues, sc); - } - - query.setGeneratedSql(debugQuery); - - if (result != null){ - while (result.hasMoreElements()) { - SearchResult row = result.nextElement(); - T bean = beanBuilder.readAttributes(row.getAttributes()); - list.add(bean); - } - } - - return list; - - } catch (NamingException e) { - throw new LdapPersistenceException(e); - } - } - -}