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 9dc3d8491..48e2ad87a 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanDescriptorManager.java @@ -17,13 +17,28 @@ import com.avaje.ebean.config.dbplatform.IdGenerator; import com.avaje.ebean.config.dbplatform.IdType; import com.avaje.ebeaninternal.api.SpiEbeanServer; import com.avaje.ebeaninternal.api.TransactionEventTable; -import com.avaje.ebeaninternal.server.core.*; +import com.avaje.ebeaninternal.server.core.BootupClasses; +import com.avaje.ebeaninternal.server.core.InternString; +import com.avaje.ebeaninternal.server.core.InternalConfiguration; +import com.avaje.ebeaninternal.server.core.Message; +import com.avaje.ebeaninternal.server.core.XmlConfig; import com.avaje.ebeaninternal.server.deploy.BeanDescriptor.EntityType; import com.avaje.ebeaninternal.server.deploy.id.IdBinder; import com.avaje.ebeaninternal.server.deploy.id.IdBinderEmbedded; import com.avaje.ebeaninternal.server.deploy.id.IdBinderFactory; -import com.avaje.ebeaninternal.server.deploy.meta.*; -import com.avaje.ebeaninternal.server.deploy.parse.*; +import com.avaje.ebeaninternal.server.deploy.meta.DeployBeanDescriptor; +import com.avaje.ebeaninternal.server.deploy.meta.DeployBeanProperty; +import com.avaje.ebeaninternal.server.deploy.meta.DeployBeanPropertyAssoc; +import com.avaje.ebeaninternal.server.deploy.meta.DeployBeanPropertyAssocMany; +import com.avaje.ebeaninternal.server.deploy.meta.DeployBeanPropertyAssocOne; +import com.avaje.ebeaninternal.server.deploy.meta.DeployBeanTable; +import com.avaje.ebeaninternal.server.deploy.meta.DeployTableJoin; +import com.avaje.ebeaninternal.server.deploy.parse.DeployBeanInfo; +import com.avaje.ebeaninternal.server.deploy.parse.DeployCreateProperties; +import com.avaje.ebeaninternal.server.deploy.parse.DeployInherit; +import com.avaje.ebeaninternal.server.deploy.parse.DeployUtil; +import com.avaje.ebeaninternal.server.deploy.parse.ReadAnnotations; +import com.avaje.ebeaninternal.server.deploy.parse.TransientProperties; import com.avaje.ebeaninternal.server.idgen.UuidIdGenerator; import com.avaje.ebeaninternal.server.lib.util.Dnode; import com.avaje.ebeaninternal.server.properties.BeanPropertiesReader; @@ -31,7 +46,6 @@ import com.avaje.ebeaninternal.server.properties.BeanPropertyInfo; import com.avaje.ebeaninternal.server.properties.BeanPropertyInfoFactory; import com.avaje.ebeaninternal.server.properties.EnhanceBeanPropertyInfoFactory; import com.avaje.ebeaninternal.server.type.TypeManager; -import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,7 +56,14 @@ import javax.sql.DataSource; import java.io.Serializable; import java.lang.reflect.Field; import java.lang.reflect.Modifier; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; /** * Creates BeanDescriptors. diff --git a/src/main/java/com/avaje/ebeaninternal/server/transaction/BeanPathUpdate.java b/src/main/java/com/avaje/ebeaninternal/server/transaction/BeanPathUpdate.java deleted file mode 100644 index 519ddb8ed..000000000 --- a/src/main/java/com/avaje/ebeaninternal/server/transaction/BeanPathUpdate.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.avaje.ebeaninternal.server.transaction; - -import java.io.Serializable; -import java.util.LinkedHashMap; -import java.util.Map; - -import com.avaje.ebeaninternal.server.deploy.BeanDescriptor; - -public class BeanPathUpdate { - - private final Map map = new LinkedHashMap(); - - public void add(BeanDescriptor desc, String path, Object id) { - - String key = desc.getFullName()+":"+path; - BeanPathUpdateIds pathIds = map.get(key); - if (pathIds == null){ - pathIds = new BeanPathUpdateIds(desc, path); - map.put(key, pathIds); - } - pathIds.addId((Serializable)id); - - } -} diff --git a/src/main/java/com/avaje/ebeaninternal/server/transaction/BeanPathUpdateIds.java b/src/main/java/com/avaje/ebeaninternal/server/transaction/BeanPathUpdateIds.java deleted file mode 100644 index bbebbabff..000000000 --- a/src/main/java/com/avaje/ebeaninternal/server/transaction/BeanPathUpdateIds.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.avaje.ebeaninternal.server.transaction; - -import java.io.DataInput; -import java.io.DataOutputStream; -import java.io.IOException; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import com.avaje.ebeaninternal.api.SpiEbeanServer; -import com.avaje.ebeaninternal.server.cluster.BinaryMessage; -import com.avaje.ebeaninternal.server.cluster.BinaryMessageList; -import com.avaje.ebeaninternal.server.deploy.BeanDescriptor; -import com.avaje.ebeaninternal.server.deploy.id.IdBinder; - -public class BeanPathUpdateIds { - - private final transient BeanDescriptor beanDescriptor; - - private final String descriptorId; - - private final String path; - - private ArrayList ids; - - /** - * Create the payload. - */ - public BeanPathUpdateIds(BeanDescriptor desc, String path) { - this.beanDescriptor = desc; - this.descriptorId = desc.getDescriptorId(); - this.path = path; - } - - public String toString() { - StringBuilder sb = new StringBuilder(); - if (beanDescriptor != null) { - sb.append(beanDescriptor.getFullName()); - } else { - sb.append("descId:").append(descriptorId); - } - sb.append(" path:").append(path); - sb.append(" ids:").append(ids); - return sb.toString(); - } - - public static BeanPathUpdateIds readBinaryMessage(SpiEbeanServer server, DataInput dataInput) throws IOException { - - String descriptorId = dataInput.readUTF(); - String path = dataInput.readUTF(); - BeanDescriptor desc = server.getBeanDescriptorById(descriptorId); - BeanPathUpdateIds bp = new BeanPathUpdateIds(desc, path); - bp.read(dataInput); - return bp; - } - - private void read(DataInput dataInput) throws IOException { - - IdBinder idBinder = beanDescriptor.getIdBinder(); - ids = readIdList(dataInput, idBinder); - } - - - private ArrayList readIdList(DataInput dataInput, IdBinder idBinder) throws IOException { - - int count = dataInput.readInt(); - if (count < 1) { - return null; - } - ArrayList idList = new ArrayList(count); - for (int i = 0; i < count; i++) { - Object id = idBinder.readData(dataInput); - idList.add((Serializable) id); - } - return idList; - } - - /** - * Write the contents into a BinaryMessage form. - *

- * For a RemoteBeanPersist with a large number of id's note that this is - * broken up into many BinaryMessages each with a maximum of 100 ids. This - * enables the contents of a large RemoteTransactionEvent to be split up - * across multiple Packets. - *

- */ - public void writeBinaryMessage(BinaryMessageList msgList) throws IOException { - - IdBinder idBinder = beanDescriptor.getIdBinder(); - - int count = ids == null ? 0 : ids.size(); - if (count > 0) { - int loop = 0; - int i = 0; - int eof = ids.size(); - do { - ++loop; - int endOfLoop = Math.min(eof, loop * 100); - - BinaryMessage m = new BinaryMessage(endOfLoop * 4 + 20); - - DataOutputStream os = m.getOs(); - os.writeInt(BinaryMessage.TYPE_BEANPATHUPDATE); - os.writeUTF(descriptorId); - os.writeUTF(path); - os.writeInt(count); - - for (; i < endOfLoop; i++) { - Serializable idValue = ids.get(i); - idBinder.writeData(os, idValue); - } - - os.flush(); - msgList.add(m); - - } while (i < eof); - } - } - - public void addId(Serializable id) { - ids.add(id); - } - - - public BeanDescriptor getBeanDescriptor() { - return beanDescriptor; - } - - /** - * Return the Descriptor Id. A more compact alternative to using the - * beanType. - */ - public String getDescriptorId() { - return descriptorId; - } - - public String getPath() { - return path; - } - - public List getIds() { - return ids; - } -}