From aaca20f9c3a282fcb4c21742b5892e6e1430a187 Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Mon, 20 Jul 2015 11:34:05 +1200 Subject: [PATCH] #343 - Remove deprecated interface BeanFinder ... migrate to BeanFindController --- .../com/avaje/ebean/event/BeanFinder.java | 37 --------------- .../server/core/BootupClasses.java | 13 ------ .../server/deploy/BeanFinderAdapter.java | 45 ------------------- .../server/deploy/BeanFinderManager.java | 45 +------------------ 4 files changed, 1 insertion(+), 139 deletions(-) delete mode 100644 src/main/java/com/avaje/ebean/event/BeanFinder.java delete mode 100644 src/main/java/com/avaje/ebeaninternal/server/deploy/BeanFinderAdapter.java diff --git a/src/main/java/com/avaje/ebean/event/BeanFinder.java b/src/main/java/com/avaje/ebean/event/BeanFinder.java deleted file mode 100644 index 82fe98f63..000000000 --- a/src/main/java/com/avaje/ebean/event/BeanFinder.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.avaje.ebean.event; - -import com.avaje.ebean.bean.BeanCollection; - -/** - * Deprecated in favor of using BeanFindController. - * - * Used to override the finding implementation for a bean. - *

- * For beans that are not in a JDBC data source you can implement this handle - * bean finding. For example, read a log file building each entry as a bean and - * returning that. - *

- *

- * There are a number of internal BeanFinders in Ebean to return meta data from - * Ebean at runtime such as query execution statistics etc. See the beans in - * com.avaje.ebean.meta and finders in com.avaje.ebean.server.meta. - *

- * @deprecated - */ -public interface BeanFinder { - - /** - * Find a bean using its id or unique predicate. - */ - T find(BeanQueryRequest request); - - /** - * Return a List, Set or Map for the given find request. - *

- * Note the returning object is cast to a List Set or Map so you do need to - * get the return type right. - *

- */ - BeanCollection findMany(BeanQueryRequest request); - -} diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/BootupClasses.java b/src/main/java/com/avaje/ebeaninternal/server/core/BootupClasses.java index b9cc4f8b2..e4affca69 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/core/BootupClasses.java +++ b/src/main/java/com/avaje/ebeaninternal/server/core/BootupClasses.java @@ -41,7 +41,6 @@ public class BootupClasses implements ClassPathSearchMatcher { private ArrayList> transactionEventListenerList = new ArrayList>(); - private ArrayList> beanFinderList = new ArrayList>(); private ArrayList> beanFindControllerList = new ArrayList>(); private ArrayList> beanQueryAdapterList = new ArrayList>(); @@ -282,13 +281,6 @@ public class BootupClasses implements ClassPathSearchMatcher { return transactionEventListenerList; } - /** - * Return the list of BeanFinders found. - */ - public List> getBeanFinders() { - return beanFinderList; - } - /** * Return the list of BeanListeners found. */ @@ -351,11 +343,6 @@ public class BootupClasses implements ClassPathSearchMatcher { interesting = true; } - if (BeanFinder.class.isAssignableFrom(cls)) { - beanFinderList.add(cls); - interesting = true; - } - if (BeanFindController.class.isAssignableFrom(cls)) { beanFindControllerList.add(cls); interesting = true; diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanFinderAdapter.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanFinderAdapter.java deleted file mode 100644 index b8c343827..000000000 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanFinderAdapter.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.avaje.ebeaninternal.server.deploy; - -import com.avaje.ebean.bean.BeanCollection; -import com.avaje.ebean.event.BeanFindController; -import com.avaje.ebean.event.BeanFinder; -import com.avaje.ebean.event.BeanQueryRequest; - -/** - * Wraps the old BeanFinder to make it implement BeanFindController. - */ -public class BeanFinderAdapter implements BeanFindController { - - final BeanFinder beanFinder; - - public BeanFinderAdapter(BeanFinder beanFinder) { - this.beanFinder = beanFinder; - } - - @Override - public boolean isRegisterFor(Class cls) { - return false; - } - - @Override - public boolean isInterceptFind(BeanQueryRequest request) { - // always intercept to support old behavior - return true; - } - - @Override - public T find(BeanQueryRequest request) { - return (T)beanFinder.find(request); - } - - @Override - public BeanCollection findMany(BeanQueryRequest request) { - return beanFinder.findMany(request); - } - - @Override - public boolean isInterceptFindMany(BeanQueryRequest request) { - // always intercept to support old behavior - return true; - } -} diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanFinderManager.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanFinderManager.java index 0960483c3..44605d38a 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanFinderManager.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanFinderManager.java @@ -1,16 +1,12 @@ package com.avaje.ebeaninternal.server.deploy; import com.avaje.ebean.event.BeanFindController; -import com.avaje.ebean.event.BeanFinder; import com.avaje.ebeaninternal.server.core.BootupClasses; import com.avaje.ebeaninternal.server.deploy.meta.DeployBeanDescriptor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.persistence.PersistenceException; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * Default implementation for BeanFinderFactory. @@ -19,31 +15,14 @@ public class BeanFinderManager { final Logger logger = LoggerFactory.getLogger(BeanFinderManager.class); - /** - * Register of BeanFinder instances. - */ - final Map, BeanFinder> registerFor = new HashMap, BeanFinder>(); - private final List list; public BeanFinderManager(BootupClasses bootupClasses) { list = bootupClasses.getBeanFindControllers(); - - List> beanFinders = bootupClasses.getBeanFinders(); - for (Class cls : beanFinders) { - Class entityType = getEntityClass(cls); - try { - BeanFinder beanFinder = (BeanFinder) cls.newInstance(); - registerFor.put(entityType, beanFinder); - - } catch (Exception ex) { - throw new PersistenceException(ex); - } - } } public int getRegisterCount() { - return registerFor.size() + list.size(); + return list.size(); } /** @@ -58,28 +37,6 @@ public class BeanFinderManager { deployDesc.setBeanFinder(c); } } - // support the deprecated BeanFinder - BeanFinder beanFinder = registerFor.get(deployDesc.getBeanType()); - if (beanFinder != null) { - deployDesc.setBeanFinder(new BeanFinderAdapter(beanFinder)); - logger.debug("BeanFinder on[" + deployDesc.getFullName() + "] " + beanFinder.getClass().getName()); - } } - /** - * Find the entity class given the controller class. - *

- * This uses reflection to find the generics parameter type. - *

- */ - private Class getEntityClass(Class controller) { - - Class cls = ParamTypeUtil.findParamType(controller, BeanFinder.class); - - if (cls == null) { - String msg = "Could not determine the entity class (generics parameter type) from " + controller + " using reflection."; - throw new PersistenceException(msg); - } - return cls; - } }