You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/04/17 05:50:27 UTC
svn commit: r529479 - in
/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb:
./ core/cmp/ core/entity/ core/ivm/ core/stateful/ core/stateless/
Author: dblevins
Date: Mon Apr 16 20:50:26 2007
New Revision: 529479
URL: http://svn.apache.org/viewvc?view=rev&rev=529479
Log:
Cleaned up construction of ProxyInfo in containers and elsewhere. Containers now do not detail the aspects of the interfaces and only note the deployment info and the primary key.
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/ProxyInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/ProxyInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/ProxyInfo.java?view=diff&rev=529479&r1=529478&r2=529479
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/ProxyInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/ProxyInfo.java Mon Apr 16 20:50:26 2007
@@ -23,45 +23,32 @@
protected DeploymentInfo deploymentInfo;
protected Object primaryKey;
- protected List<Class> proxyInterface;
+ protected List<Class> proxyInterfaces;
protected RpcContainer beanContainer;
protected InterfaceType interfaceType;
protected ProxyInfo() {
}
- public ProxyInfo(DeploymentInfo depInfo, Object pk, RpcContainer container) {
- this(depInfo, pk, container, InterfaceType.UNKNOWN);
- }
-
- public ProxyInfo(DeploymentInfo depInfo, Object pk, Class intrfc, RpcContainer container, InterfaceType proxyType) {
- this(depInfo, pk, asList(intrfc), container, proxyType);
- }
-
- public ProxyInfo(DeploymentInfo depInfo, Object pk, RpcContainer container, InterfaceType proxyType) {
- this(depInfo, pk, new ArrayList<Class>(), container, proxyType);
- }
-
- public ProxyInfo(DeploymentInfo depInfo, Object pk, List<Class> intrfc, RpcContainer container, InterfaceType proxyType) {
- this.deploymentInfo = depInfo;
- this.primaryKey = pk;
- this.proxyInterface = intrfc;
+ public ProxyInfo(DeploymentInfo deploymentInfo, Object primaryKey, List<Class> interfaces, InterfaceType proxyType) {
+ this.deploymentInfo = deploymentInfo;
+ this.primaryKey = primaryKey;
+ this.proxyInterfaces = interfaces;
this.interfaceType = proxyType;
- this.beanContainer = container;
- }
-
- public ProxyInfo(DeploymentInfo depInfo, Object pk, List<Class> intrfc, RpcContainer container) {
- this(depInfo, pk, intrfc, container, InterfaceType.UNKNOWN);
- }
-
- public ProxyInfo(DeploymentInfo depInfo, Object pk, Class intrfc, RpcContainer container) {
- this(depInfo, pk, asList(intrfc), container);
+ this.beanContainer = (RpcContainer) deploymentInfo.getContainer();
}
- private static List asList(Object object){
- List list = new ArrayList();
- list.add(object);
- return list;
+ /**
+ * This is the constructor that containers should call.
+ * Containers do not know the list of interfaces that should
+ * be applied nor do they need to tell the proxy handling
+ * code what kind of proxy it should create.
+ *
+ * @param depInfo
+ * @param pk
+ */
+ public ProxyInfo(DeploymentInfo depInfo, Object pk) {
+ this(depInfo, pk, new ArrayList<Class>(), InterfaceType.UNKNOWN);
}
public InterfaceType getInterfaceType() {
@@ -77,11 +64,11 @@
}
public Class getInterface() {
- return proxyInterface.get(0);
+ return proxyInterfaces.get(0);
}
public List<Class> getInterfaces() {
- return proxyInterface;
+ return proxyInterfaces;
}
public RpcContainer getBeanContainer() {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java?view=diff&rev=529479&r1=529478&r2=529479
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java Mon Apr 16 20:50:26 2007
@@ -673,7 +673,7 @@
txPolicy.afterInvoke(bean, txContext);
}
- return new ProxyInfo(deploymentInfo, primaryKey, this);
+ return new ProxyInfo(deploymentInfo, primaryKey);
}
private Object findByPrimaryKey(Method callMethod, Object[] args, ThreadContext callContext) throws OpenEJBException {
@@ -695,12 +695,8 @@
KeyGenerator kg = deploymentInfo.getKeyGenerator();
Object primaryKey = kg.getPrimaryKey(bean);
- // Determine the proxy type
- Class<?> callingClass = callMethod.getDeclaringClass();
- List<Class> objectInterface = deploymentInfo.getObjectInterface(callingClass);
-
// create a new ProxyInfo based on the deployment info and primary key
- return new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this);
+ return new ProxyInfo(deploymentInfo, primaryKey);
} catch (javax.ejb.FinderException fe) {
txPolicy.handleApplicationException(fe, false, txContext);
} catch (Throwable e) {// handle reflection exception
@@ -725,9 +721,6 @@
KeyGenerator kg = deploymentInfo.getKeyGenerator();
- Class<?> callingClass = callMethod.getDeclaringClass();
- List<Class> objectInterface = deploymentInfo.getObjectInterface(callingClass);
-
// The following block of code is responsible for returning ProxyInfo object(s) for each
// matching entity bean found by the query. If its a multi-value find operation a Vector
// of ProxyInfo objects will be returned. If its a single-value find operation then a
@@ -744,7 +737,7 @@
Object primaryKey = kg.getPrimaryKey(bean);
// create a new ProxyInfo based on the deployment info and primary key and add it to the vector
- proxies.add(new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this));
+ proxies.add(new ProxyInfo(deploymentInfo, primaryKey));
}
}
if (callMethod.getReturnType() == Enumeration.class) {
@@ -763,7 +756,7 @@
return null;
} else {
Object primaryKey = kg.getPrimaryKey(bean);
- return new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this);
+ return new ProxyInfo(deploymentInfo, primaryKey);
}
}
} catch (javax.ejb.FinderException fe) {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java?view=diff&rev=529479&r1=529478&r2=529479
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java Mon Apr 16 20:50:26 2007
@@ -412,10 +412,7 @@
txPolicy.afterInvoke(bean, txContext);
}
- // return a proxy to the bean
- Class callingClass = callMethod.getDeclaringClass();
- List<Class> objectInterface = deploymentInfo.getObjectInterface(callingClass);
- return new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this);
+ return new ProxyInfo(deploymentInfo, primaryKey);
}
@@ -426,9 +423,6 @@
Method runMethod = deploymentInfo.getMatchingBeanMethod(callMethod);
Object returnValue = invoke(callMethod, runMethod, args, callContext);
- Class callingClass = callMethod.getDeclaringClass();
- List<Class> objectInterface = deploymentInfo.getObjectInterface(callingClass);
-
/*
* Find operations return either a single primary key or a collection of primary keys.
* The primary keys are converted to ProxyInfo objects.
@@ -438,7 +432,7 @@
Vector<ProxyInfo> proxies = new Vector<ProxyInfo>();
while (keys.hasNext()) {
Object primaryKey = keys.next();
- proxies.addElement(new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this));
+ proxies.addElement(new ProxyInfo(deploymentInfo, primaryKey));
}
returnValue = proxies;
} else if (returnValue instanceof java.util.Enumeration) {
@@ -446,11 +440,11 @@
Vector<ProxyInfo> proxies = new Vector<ProxyInfo>();
while (keys.hasMoreElements()) {
Object primaryKey = keys.nextElement();
- proxies.addElement(new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this));
+ proxies.addElement(new ProxyInfo(deploymentInfo, primaryKey));
}
returnValue = new org.apache.openejb.util.ArrayEnumeration(proxies);
} else
- returnValue = new ProxyInfo(deploymentInfo, returnValue, objectInterface, this);
+ returnValue = new ProxyInfo(deploymentInfo, returnValue);
return returnValue;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java?view=diff&rev=529479&r1=529478&r2=529479
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java Mon Apr 16 20:50:26 2007
@@ -286,7 +286,7 @@
}
public org.apache.openejb.ProxyInfo getProxyInfo() {
- return new org.apache.openejb.ProxyInfo(getDeploymentInfo(), null, getDeploymentInfo().getHomeInterface(), container, interfaceType);
+ return new org.apache.openejb.ProxyInfo(getDeploymentInfo(), null, getDeploymentInfo().getInterfaces(interfaceType), interfaceType);
}
protected Object _writeReplace(Object proxy) throws ObjectStreamException {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java?view=diff&rev=529479&r1=529478&r2=529479
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java Mon Apr 16 20:50:26 2007
@@ -164,7 +164,7 @@
}
public org.apache.openejb.ProxyInfo getProxyInfo() {
- return new org.apache.openejb.ProxyInfo(getDeploymentInfo(), primaryKey, getDeploymentInfo().getInterfaces(interfaceType), container, interfaceType);
+ return new org.apache.openejb.ProxyInfo(getDeploymentInfo(), primaryKey, interfaces, interfaceType);
}
protected Object _writeReplace(Object proxy) throws ObjectStreamException {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java?view=diff&rev=529479&r1=529478&r2=529479
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java Mon Apr 16 20:50:26 2007
@@ -294,9 +294,7 @@
instanceManager.poolInstance(primaryKey, instance);
- Class callingClass = callMethod.getDeclaringClass();
- List<Class> objectInterface = deploymentInfo.getObjectInterface(callingClass);
- return new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this);
+ return new ProxyInfo(deploymentInfo, primaryKey);
} finally {
ThreadContext.exit(oldCallContext);
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java?view=diff&rev=529479&r1=529478&r2=529479
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java Mon Apr 16 20:50:26 2007
@@ -270,9 +270,7 @@
}
protected ProxyInfo createEJBObject(org.apache.openejb.core.CoreDeploymentInfo deploymentInfo, Method callMethod) {
- Class callingClass = callMethod.getDeclaringClass();
- List<Class> objectInterface = deploymentInfo.getObjectInterface(callingClass);
- return new ProxyInfo(deploymentInfo, null, objectInterface, this);
+ return new ProxyInfo(deploymentInfo, null);
}
public void discardInstance(Object instance, ThreadContext context) {