From 547fa342c40c72e24abcdac1a5ee959b25750287 Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Fri, 21 Aug 2015 18:28:10 +1200 Subject: [PATCH] Internal change only - just reuse class name as bean descriptor key --- .../ebeaninternal/api/SpiEbeanServer.java | 2 +- .../server/core/DefaultServer.java | 6 ++--- .../server/deploy/BeanDescriptor.java | 18 +++++-------- .../server/deploy/BeanDescriptorManager.java | 26 +++---------------- .../ebeaninternal/api/TDSpiEbeanServer.java | 7 +++-- 5 files changed, 19 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/avaje/ebeaninternal/api/SpiEbeanServer.java b/src/main/java/com/avaje/ebeaninternal/api/SpiEbeanServer.java index ca2be019e..290a6e4fa 100644 --- a/src/main/java/com/avaje/ebeaninternal/api/SpiEbeanServer.java +++ b/src/main/java/com/avaje/ebeaninternal/api/SpiEbeanServer.java @@ -93,7 +93,7 @@ public interface SpiEbeanServer extends EbeanServer, BeanLoader, BeanCollectionL /** * Return BeanDescriptor using it's unique id. */ - BeanDescriptor getBeanDescriptorById(String descriptorId); + BeanDescriptor getBeanDescriptorById(String className); /** * Return BeanDescriptors mapped to this table. diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java index fd0c3e4e6..e37b51334 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java +++ b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java @@ -1967,10 +1967,10 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { } /** - * Return the BeanDescriptor using its unique id. + * Return the BeanDescriptor using its class name. */ - public BeanDescriptor getBeanDescriptorById(String descriptorId) { - return beanDescriptorManager.getBeanDescriptorById(descriptorId); + public BeanDescriptor getBeanDescriptorById(String beanClassName) { + return beanDescriptorManager.getBeanDescriptorByClassName(beanClassName); } /** diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptor.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptor.java index 17661dc76..779fc4b34 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptor.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptor.java @@ -317,14 +317,12 @@ public class BeanDescriptor implements MetaBeanInfo, SpiBeanType { private final String defaultSelectClause; private final Set defaultSelectClauseSet; - private final String descriptorId; - private SpiEbeanServer ebeanServer; /** * Construct the BeanDescriptor. */ - public BeanDescriptor(BeanDescriptorMap owner, DeployBeanDescriptor deploy, String descriptorId) { + public BeanDescriptor(BeanDescriptorMap owner, DeployBeanDescriptor deploy) { this.owner = owner; this.serverName = owner.getServerName(); @@ -334,7 +332,6 @@ public class BeanDescriptor implements MetaBeanInfo, SpiBeanType { this.name = InternString.intern(deploy.getName()); this.baseTableAlias = "t0"; this.fullName = InternString.intern(deploy.getFullName()); - this.descriptorId = descriptorId; this.beanType = deploy.getBeanType(); this.prototypeEntityBean = createPrototypeEntityBean(beanType); @@ -854,7 +851,7 @@ public class BeanDescriptor implements MetaBeanInfo, SpiBeanType { } public void cacheManyPropClear(String propertyName) { - cacheHelp.manyPropClear(propertyName); + cacheHelp.manyPropClear(propertyName); } public void cacheBeanPut(T bean) { @@ -874,7 +871,7 @@ public class BeanDescriptor implements MetaBeanInfo, SpiBeanType { public void cacheBeanLoadData(EntityBean bean, CachedBeanData data) { cacheHelp.beanLoadData(bean, data); } - + /** * Put a bean into the bean cache. */ @@ -902,7 +899,7 @@ public class BeanDescriptor implements MetaBeanInfo, SpiBeanType { public boolean cacheBeanLoad(EntityBean bean, EntityBeanIntercept ebi, Object id) { return cacheHelp.beanCacheLoad(bean, ebi, id); } - + /** * Returns true if it managed to populate/load the bean from the cache. */ @@ -923,7 +920,7 @@ public class BeanDescriptor implements MetaBeanInfo, SpiBeanType { * Invalidate parts of cache due to SqlUpdate or external modification etc. */ public void cacheHandleBulkUpdate(TableIUD tableIUD) { - cacheHelp.handleBulkUpdate(tableIUD); + cacheHelp.handleBulkUpdate(tableIUD); } /** @@ -1305,11 +1302,10 @@ public class BeanDescriptor implements MetaBeanInfo, SpiBeanType { } /** - * Return the alternate "Id" that identifies this BeanDescriptor. This is an - * alternative to using the bean class name. + * Return bean class name. */ public String getDescriptorId() { - return descriptorId; + return fullName; } /** diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java index 076a39fd6..5b5536cc9 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java @@ -129,7 +129,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap { private final Map, BeanTable> beanTableMap = new HashMap, BeanTable>(); private final Map> descMap = new HashMap>(); - private final Map> idDescMap = new HashMap>(); private final Map> beanManagerMap = new HashMap>(); @@ -235,17 +234,13 @@ public class BeanDescriptorManager implements BeanDescriptorMap { return (historySupport == null ) ? serverConfig.getAsOfViewSuffix() : historySupport.getVersionsBetweenSuffix(serverConfig.getAsOfViewSuffix()); } - public BeanDescriptor getBeanDescriptorById(String descriptorId) { - return idDescMap.get(descriptorId); - } - @SuppressWarnings("unchecked") public BeanDescriptor getBeanDescriptor(Class entityType) { return (BeanDescriptor) descMap.get(entityType.getName()); } @SuppressWarnings("unchecked") - public BeanDescriptor getBeanDescriptor(String entityClassName) { + public BeanDescriptor getBeanDescriptorByClassName(String entityClassName) { return (BeanDescriptor) descMap.get(entityClassName); } @@ -295,11 +290,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap { Collections.sort(list, beanDescComparator); immutableDescriptorList = Collections.unmodifiableList(list); - // put into map using the "desriptorId" (alternative to class name) - for (BeanDescriptor d : list) { - idDescMap.put(d.getDescriptorId(), d); - } - initialiseAll(); readForeignKeys(); @@ -504,10 +494,7 @@ public class BeanDescriptorManager implements BeanDescriptorMap { DeployBeanInfo info = createDeployBeanInfo(beanClass); readDeployAssociations(info); - - Integer key = getUniqueHash(info.getDescriptor()); - - return new BeanDescriptor(this, info.getDescriptor(), key.toString()); + return new BeanDescriptor(this, info.getDescriptor()); } private void registerBeanDescriptor(BeanDescriptor desc) { @@ -639,9 +626,7 @@ public class BeanDescriptorManager implements BeanDescriptorMap { } for (DeployBeanInfo info : deplyInfoMap.values()) { - DeployBeanDescriptor deployBeanDescriptor = info.getDescriptor(); - Integer key = getUniqueHash(deployBeanDescriptor); - registerBeanDescriptor(new BeanDescriptor(this, info.getDescriptor(), key.toString())); + registerBeanDescriptor(new BeanDescriptor(this, info.getDescriptor())); } } @@ -670,11 +655,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap { } } } - - private Integer getUniqueHash(DeployBeanDescriptor deployBeanDescriptor) { - - return deployBeanDescriptor.getFullName().hashCode(); - } private void secondaryPropsJoins(DeployBeanInfo info) { diff --git a/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java b/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java index 8f3be7f19..65d3ebdbe 100644 --- a/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java +++ b/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java @@ -8,13 +8,13 @@ import com.avaje.ebean.bean.ObjectGraphNode; import com.avaje.ebean.cache.ServerCacheManager; import com.avaje.ebean.config.ServerConfig; import com.avaje.ebean.config.dbplatform.DatabasePlatform; +import com.avaje.ebean.dbmigration.DdlGenerator; import com.avaje.ebean.meta.MetaInfoManager; import com.avaje.ebean.plugin.SpiServer; import com.avaje.ebean.text.csv.CsvReader; import com.avaje.ebean.text.json.JsonContext; import com.avaje.ebeaninternal.server.autofetch.AutoFetchManager; import com.avaje.ebeaninternal.server.core.SpiOrmQueryRequest; -import com.avaje.ebean.dbmigration.DdlGenerator; import com.avaje.ebeaninternal.server.deploy.BeanDescriptor; import com.avaje.ebeaninternal.server.query.CQuery; import com.avaje.ebeaninternal.server.query.CQueryEngine; @@ -23,7 +23,10 @@ import com.avaje.ebeaninternal.server.transaction.RemoteTransactionEvent; import javax.persistence.OptimisticLockException; import javax.persistence.PersistenceException; import java.lang.reflect.Type; -import java.util.*; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; /**