dain 2004/04/15 22:34:06
Modified: modules/core/src/java/org/openejb/entity/bmp
BMPContainerBuilder.java
BMPInstanceContextFactory.java
Log:
Changed container id to a String
Simplified requirements to create an EJBProxyFactory
EJBProxyFactory is now constructed in the GenericEJBContainer constructor
Change ProxyRefAddress to store the class names instead of a proxy info
object; this allows the construction of an ejb-ref without knowing the
container type
Merged stateless and stateful object base classes into a single class,
which simplifies proxy construction
Revision Changes Path
1.4 +4 -7
openejb/modules/core/src/java/org/openejb/entity/bmp/BMPContainerBuilder.java
Index: BMPContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/entity/bmp/BMPContainerBuilder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BMPContainerBuilder.java 6 Apr 2004 18:41:46 -0000 1.3
+++ BMPContainerBuilder.java 16 Apr 2004 02:34:06 -0000 1.4
@@ -63,7 +63,6 @@
import org.openejb.entity.EntityInstanceFactory;
import org.openejb.entity.EntityInterceptorBuilder;
import org.openejb.entity.HomeMethod;
-import org.openejb.proxy.EJBProxyFactory;
/**
*
@@ -84,22 +83,20 @@
InterfaceMethodSignature[] signatures = (InterfaceMethodSignature[])
vopMap.keySet().toArray(new InterfaceMethodSignature[vopMap.size()]);
VirtualOperation[] vtable = (VirtualOperation[])vopMap.values().toArray(new
VirtualOperation[vopMap.size()]);
- EJBProxyFactory proxyFactory = createProxyFactory(signatures);
-
// create and intitalize the interceptor builder
InterceptorBuilder interceptorBuilder = initializeInterceptorBuilder(new
EntityInterceptorBuilder(), signatures, vtable);
// build the context factory
- InstanceContextFactory contextFactory = new
BMPInstanceContextFactory(getContainerId(), proxyFactory, beanClass);
+ InstanceContextFactory contextFactory = new
BMPInstanceContextFactory(getContainerId(), beanClass);
EntityInstanceFactory instanceFactory = new
EntityInstanceFactory(getComponentContext(), contextFactory);
// build the pool
InstancePool pool = createInstancePool(instanceFactory);
if (buildContainer) {
- return createContainer(proxyFactory, signatures, interceptorBuilder,
pool);
+ return createContainer(signatures, contextFactory, interceptorBuilder,
pool);
} else {
- return createConfiguration(proxyFactory, signatures,
interceptorBuilder, pool);
+ return createConfiguration(signatures, contextFactory,
interceptorBuilder, pool);
}
}
1.4 +10 -4
openejb/modules/core/src/java/org/openejb/entity/bmp/BMPInstanceContextFactory.java
Index: BMPInstanceContextFactory.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/entity/bmp/BMPInstanceContextFactory.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BMPInstanceContextFactory.java 4 Apr 2004 01:49:10 -0000 1.3
+++ BMPInstanceContextFactory.java 16 Apr 2004 02:34:06 -0000 1.4
@@ -64,16 +64,22 @@
*/
public class BMPInstanceContextFactory implements InstanceContextFactory,
Serializable {
private final Object containerId;
- private final EJBProxyFactory proxyFactory;
private final EJBInstanceFactory factory;
+ private transient EJBProxyFactory proxyFactory;
- public BMPInstanceContextFactory(Object containerId, EJBProxyFactory
proxyFactory, Class beanClass) {
+ public BMPInstanceContextFactory(Object containerId, Class beanClass) {
this.containerId = containerId;
- this.proxyFactory = proxyFactory;
this.factory = new EJBInstanceFactoryImpl(beanClass);
}
+ public void setProxyFactory(EJBProxyFactory proxyFactory) {
+ this.proxyFactory = proxyFactory;
+ }
+
public InstanceContext newInstance() throws Exception {
+ if (proxyFactory == null) {
+ throw new IllegalStateException("ProxyFacory has not been set");
+ }
return new BMPInstanceContext(containerId, proxyFactory, (EntityBean)
factory.newInstance());
}
}