dain        2004/04/15 22:34:05

  Modified:    modules/core/src/java/org/openejb
                        AbstractContainerBuilder.java ContainerBuilder.java
                        EJBContainer.java GenericEJBContainer.java
                        InstanceContextFactory.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.10      +12 -10    
openejb/modules/core/src/java/org/openejb/AbstractContainerBuilder.java
  
  Index: AbstractContainerBuilder.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/AbstractContainerBuilder.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- AbstractContainerBuilder.java     14 Apr 2004 04:49:43 -0000      1.9
  +++ AbstractContainerBuilder.java     16 Apr 2004 02:34:05 -0000      1.10
  @@ -76,7 +76,7 @@
    */
   public abstract class AbstractContainerBuilder implements ContainerBuilder {
       private ClassLoader classLoader;
  -    private Object containerId;
  +    private String containerId;
       private String ejbName;
       private String beanClassName;
       private String homeInterfaceName;
  @@ -102,11 +102,11 @@
           this.classLoader = classLoader;
       }
   
  -    public Object getContainerId() {
  +    public String getContainerId() {
           return containerId;
       }
   
  -    public void setContainerId(Object containerId) {
  +    public void setContainerId(String containerId) {
           this.containerId = containerId;
       }
   
  @@ -266,7 +266,7 @@
           return interceptorBuilder;
       }
   
  -    protected EJBProxyFactory createProxyFactory(InterfaceMethodSignature[] 
signatures) throws ClassNotFoundException {
  +    protected ProxyInfo createProxyInfo() throws ClassNotFoundException {
           ClassLoader classLoader = getClassLoader();
           Class homeInterface = loadOptionalClass(homeInterfaceName, classLoader);
           Class remoteInterface = loadOptionalClass(remoteInterfaceName, classLoader);
  @@ -281,7 +281,7 @@
                   localHomeInterface,
                   localInterface,
                   primaryKeyClass);
  -        return new EJBProxyFactory(proxyInfo);
  +        return proxyInfo;
       }
   
       protected SoftLimitedInstancePool createInstancePool(InstanceFactory 
instanceFactory) {
  @@ -296,16 +296,17 @@
       }
   
       protected EJBContainer createContainer(
  -            EJBProxyFactory proxyFactory,
               InterfaceMethodSignature[] signatures,
  +            InstanceContextFactory contextFactory,
               InterceptorBuilder interceptorBuilder,
               InstancePool pool) throws Exception {
   
           return new GenericEJBContainer(
                   getContainerId(),
                   getEJBName(),
  -                proxyFactory,
  +                createProxyInfo(),
                   signatures,
  +                contextFactory,
                   interceptorBuilder,
                   pool,
                   getUserTransaction(),
  @@ -316,16 +317,17 @@
       }
   
       protected GBeanMBean createConfiguration(
  -            EJBProxyFactory proxyFactory,
               InterfaceMethodSignature[] signatures,
  +            InstanceContextFactory contextFactory,
               InterceptorBuilder interceptorBuilder,
               InstancePool pool) throws Exception {
   
           GBeanMBean gbean = new GBeanMBean(GenericEJBContainer.GBEAN_INFO);
           gbean.setAttribute("ContainerID", getContainerId());
           gbean.setAttribute("EJBName", getEJBName());
  -        gbean.setAttribute("ProxyFactory", proxyFactory);
  +        gbean.setAttribute("ProxyInfo", createProxyInfo());
           gbean.setAttribute("Signatures", signatures);
  +        gbean.setAttribute("ContextFactory", contextFactory);
           gbean.setAttribute("InterceptorBuilder", interceptorBuilder);
           gbean.setAttribute("Pool", pool);
           gbean.setAttribute("UserTransaction", getUserTransaction());
  
  
  
  1.4       +3 -3      openejb/modules/core/src/java/org/openejb/ContainerBuilder.java
  
  Index: ContainerBuilder.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/ContainerBuilder.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ContainerBuilder.java     9 Apr 2004 19:04:00 -0000       1.3
  +++ ContainerBuilder.java     16 Apr 2004 02:34:05 -0000      1.4
  @@ -37,9 +37,9 @@
   
       void setClassLoader(ClassLoader classLoader);
   
  -    Object getContainerId();
  +    String getContainerId();
   
  -    void setContainerId(Object containerId);
  +    void setContainerId(String containerId);
   
       String getEJBName();
   
  
  
  
  1.6       +4 -1      openejb/modules/core/src/java/org/openejb/EJBContainer.java
  
  Index: EJBContainer.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/EJBContainer.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- EJBContainer.java 13 Apr 2004 20:18:49 -0000      1.5
  +++ EJBContainer.java 16 Apr 2004 02:34:05 -0000      1.6
  @@ -56,6 +56,7 @@
   import org.apache.geronimo.core.service.Interceptor;
   
   import org.openejb.proxy.EJBProxyFactory;
  +import org.openejb.proxy.ProxyInfo;
   import org.openejb.dispatch.InterfaceMethodSignature;
   
   /**
  @@ -134,4 +135,6 @@
   
       InterfaceMethodSignature[] getSignatures();
   
  +    ProxyInfo getProxyInfo();
  +
   }
  
  
  
  1.10      +20 -7     
openejb/modules/core/src/java/org/openejb/GenericEJBContainer.java
  
  Index: GenericEJBContainer.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/GenericEJBContainer.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- GenericEJBContainer.java  14 Apr 2004 03:27:22 -0000      1.9
  +++ GenericEJBContainer.java  16 Apr 2004 02:34:05 -0000      1.10
  @@ -69,6 +69,7 @@
   import org.openejb.client.EJBObjectProxy;
   import org.openejb.dispatch.InterfaceMethodSignature;
   import org.openejb.proxy.EJBProxyFactory;
  +import org.openejb.proxy.ProxyInfo;
   
   /**
    * @version $Revision$ $Date$
  @@ -79,6 +80,7 @@
       private final String ejbName;
   
       private final Interceptor interceptor;
  +    private final ProxyInfo proxyInfo;
       private final EJBProxyFactory proxyFactory;
       private final InterfaceMethodSignature[] signatures;
   
  @@ -88,8 +90,9 @@
       public GenericEJBContainer(
               Object containerId,
               String ejbName,
  -            EJBProxyFactory proxyFactory,
  +            ProxyInfo proxyInfo,
               InterfaceMethodSignature[] signatures,
  +            InstanceContextFactory contextFactory,
               InterceptorBuilder interceptorBuilder,
               InstancePool pool,
               UserTransactionImpl userTransaction,
  @@ -116,8 +119,12 @@
           this.signatures = signatures;
   
           // initialize the proxy factory
  -        proxyFactory.setContainer(this);
  -        this.proxyFactory = proxyFactory;
  +        this.proxyInfo = proxyInfo;
  +        this.proxyFactory = new EJBProxyFactory(this);
  +
  +        // give the contextFactory a reference to the proxyFactory
  +        // after this there is no reason to hold on to a reference to the 
contextFactory
  +        contextFactory.setProxyFactory(proxyFactory);
   
           // build the interceptor chain
           interceptorBuilder.setTransactionManager(transactionManager);
  @@ -222,6 +229,10 @@
           return proxyFactory.getEJBLocalObject(primaryKey);
       }
   
  +    public ProxyInfo getProxyInfo() {
  +        return proxyInfo;
  +    }
  +
       public EJBProxyFactory getProxyFactory() {
           return proxyFactory;
       }
  @@ -263,13 +274,14 @@
           GBeanInfoFactory infoFactory = new 
GBeanInfoFactory(GenericEJBContainer.class);
   
           infoFactory.setConstructor(
  -                new String[]{"ContainerID", "EJBName", "ProxyFactory", 
"Signatures", "InterceptorBuilder", "Pool", "UserTransaction", "JndiNames", 
"LocalJndiNames", "TransactionManager", "TrackedConnectionAssociator"},
  -                new Class[]{Object.class, String.class, EJBProxyFactory.class, 
InterfaceMethodSignature[].class, InterceptorBuilder.class, InstancePool.class, 
UserTransactionImpl.class, String[].class, String[].class, TransactionManager.class, 
TrackedConnectionAssociator.class});
  +                new String[]{"ContainerID", "EJBName", "ProxyInfo", "Signatures", 
"ContextFactory", "InterceptorBuilder", "Pool", "UserTransaction", "JndiNames", 
"LocalJndiNames", "TransactionManager", "TrackedConnectionAssociator"},
  +                new Class[]{Object.class, String.class, ProxyInfo.class, 
InterfaceMethodSignature[].class, InstanceContextFactory.class, 
InterceptorBuilder.class, InstancePool.class, UserTransactionImpl.class, 
String[].class, String[].class, TransactionManager.class, 
TrackedConnectionAssociator.class});
   
           infoFactory.addAttribute("ContainerID", true);
           infoFactory.addAttribute("EJBName", true);
  -        infoFactory.addAttribute("ProxyFactory", true);
  +        infoFactory.addAttribute("ProxyInfo", true);
           infoFactory.addAttribute("Signatures", true);
  +        infoFactory.addAttribute("ContextFactory", true);
           infoFactory.addAttribute("InterceptorBuilder", true);
           infoFactory.addAttribute("Pool", true);
           infoFactory.addAttribute("UserTransaction", true);
  @@ -278,6 +290,7 @@
           infoFactory.addReference("TransactionManager", TransactionManager.class);
           infoFactory.addReference("TrackedConnectionAssociator", 
TrackedConnectionAssociator.class);
   
  +        infoFactory.addAttribute("ProxyFactory", false);
           infoFactory.addAttribute("EJBHome", false);
           infoFactory.addAttribute("EJBLocalHome", false);
           infoFactory.addAttribute("UnmanagedReference", false);
  
  
  
  1.2       +5 -1      
openejb/modules/core/src/java/org/openejb/InstanceContextFactory.java
  
  Index: InstanceContextFactory.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/InstanceContextFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- InstanceContextFactory.java       21 Mar 2004 21:26:34 -0000      1.1
  +++ InstanceContextFactory.java       16 Apr 2004 02:34:05 -0000      1.2
  @@ -49,6 +49,8 @@
   
   import org.apache.geronimo.transaction.InstanceContext;
   
  +import org.openejb.proxy.EJBProxyFactory;
  +
   
   /**
    *
  @@ -57,4 +59,6 @@
    */
   public interface InstanceContextFactory {
       InstanceContext newInstance() throws Exception;
  +
  +    void setProxyFactory(EJBProxyFactory proxyFactory);
   }
  
  
  

Reply via email to