[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openejb-cvs
Subject:    [openejb-scm] openejb/modules/core/src/java/org/openejb/entity/cmp CMPEJBContainer.java
From:       gdamour () codehaus ! org
Date:       2005-12-21 14:21:53
Message-ID: 20051221142153.17268.qmail () codehaus ! org
[Download RAW message or body]

gdamour     2005/12/21 09:21:53

  Modified:    modules/core/src/java/org/openejb/entity/cmp
                        CMPEJBContainer.java
  Log:

  GERONIMO-1397 Clustering of SFSB
  
  First step of many others to add the clustering of SFSB.
  
  This check-in adds the following features:
  * definition of an EJBClusterManager, which abstracts an EJB Cluster node;
  * this EJB cluster node is a standard GBean (the default or
  WADI implementation is DefaultEJBClusterManager);
  * in an openejb-jar.xml DD, a SFSB can declare a reference to this node via
  the ejb-cluster-reference element;
  * when the SFSB container is started, the EJB cluster node notifies
  the cluster that it is running a specific SFSB container;
  * when a clustered SFSB InstanceContext is created, an array of nodes running
  the container of this SFSB is associated to the InstanceContext. Note that
  this array of nodes is updated upon start-up of a clustered SFSB container or
  upon node failure;
  * this array of nodes capable of running the created SFSB is propagated to
  clients. Actually, this array is propagated at each EJB invocation.
  
  Revision  Changes    Path
  1.4       +42 -8     \
openejb/modules/core/src/java/org/openejb/entity/cmp/CMPEJBContainer.java  
  Index: CMPEJBContainer.java
  ===================================================================
  RCS file: /home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/entity/cmp/CMPEJBContainer.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CMPEJBContainer.java	1 Dec 2005 08:34:51 -0000	1.3
  +++ CMPEJBContainer.java	21 Dec 2005 14:21:53 -0000	1.4
  @@ -68,7 +68,9 @@
   import org.openejb.GenericEJBContainer;
   import org.openejb.InstanceContextFactory;
   import org.openejb.InterceptorBuilder;
  +import org.openejb.cache.InstanceCache;
   import org.openejb.cache.InstancePool;
  +import org.openejb.cluster.server.EJBClusterManager;
   import org.openejb.corba.TSSBean;
   import org.openejb.dispatch.InterfaceMethodSignature;
   import org.openejb.proxy.ProxyInfo;
  @@ -89,12 +91,39 @@
       private final FrontEndCacheDelegate delegate;
       private final CacheFactory factory;
       
  -    public CMPEJBContainer(Object containerId, String ejbName, ProxyInfo \
proxyInfo, InterfaceMethodSignature[] signatures, InstanceContextFactory \
contextFactory, InterceptorBuilder interceptorBuilder, InstancePool pool, Map \
componentContext, UserTransactionImpl userTransaction, String[] jndiNames, String[] \
localJndiNames, TransactionContextManager transactionContextManager, \
TrackedConnectionAssociator trackedConnectionAssociator, ThreadPooledTimer timer, \
String objectName, Kernel kernel, DefaultPrincipal defaultPrincipal, Subject \
runAsSubject, TSSBean tssBean, Serializable homeTxPolicyConfig, Serializable \
remoteTxPolicyConfig, ClassLoader classLoader, FrontEndCacheDelegate delegate, \
                CacheFactory factory) throws Exception {
  -        super(containerId, ejbName, proxyInfo, signatures, contextFactory,
  -                interceptorBuilder, pool, componentContext, userTransaction, \
                jndiNames,
  -                localJndiNames, transactionContextManager, \
                trackedConnectionAssociator,
  -                timer, objectName, kernel, defaultPrincipal, runAsSubject, \
                tssBean,
  -                homeTxPolicyConfig, remoteTxPolicyConfig, classLoader);
  +    public CMPEJBContainer(Object containerId,
  +            String ejbName,
  +            ProxyInfo proxyInfo,
  +            InterfaceMethodSignature[] signatures,
  +            InstanceCache instanceCache, 
  +            InstanceContextFactory contextFactory,
  +            InterceptorBuilder interceptorBuilder,
  +            InstancePool pool,
  +            Map componentContext,
  +            UserTransactionImpl userTransaction,
  +            String[] jndiNames,
  +            String[] localJndiNames,
  +            TransactionContextManager transactionContextManager,
  +            TrackedConnectionAssociator trackedConnectionAssociator,
  +            ThreadPooledTimer timer,
  +            String objectName,
  +            Kernel kernel,
  +            DefaultPrincipal defaultPrincipal,
  +            Subject runAsSubject,
  +            TSSBean tssBean,
  +            Serializable homeTxPolicyConfig,
  +            Serializable remoteTxPolicyConfig,
  +            ClassLoader classLoader,
  +            EJBClusterManager clusterManager,
  +            FrontEndCacheDelegate delegate,
  +            CacheFactory factory) throws Exception {
  +        super(containerId, ejbName, proxyInfo, signatures, instanceCache,
  +                contextFactory, interceptorBuilder, pool, componentContext,
  +                userTransaction, jndiNames, localJndiNames,
  +                transactionContextManager, trackedConnectionAssociator, timer,
  +                objectName, kernel, defaultPrincipal, runAsSubject, tssBean,
  +                homeTxPolicyConfig, remoteTxPolicyConfig, classLoader,
  +                clusterManager);
           this.transactionContextManager = transactionContextManager;
           this.delegate = delegate;
           this.factory = factory;
  @@ -131,6 +160,7 @@
           infoFactory.addAttribute("ejbName", String.class, true);
           infoFactory.addAttribute("proxyInfo", ProxyInfo.class, true);
           infoFactory.addAttribute("signatures", InterfaceMethodSignature[].class, \
true);  +        infoFactory.addAttribute("instanceCache", InstanceCache.class, \
                true);
           infoFactory.addAttribute("contextFactory", InstanceContextFactory.class, \
                true);
           infoFactory.addAttribute("interceptorBuilder", InterceptorBuilder.class, \
true);  infoFactory.addAttribute("pool", InstancePool.class, true);
  @@ -150,6 +180,8 @@
   
           infoFactory.addReference("TSSBean", TSSBean.class);
   
  +        infoFactory.addReference("EJBClusterManager", EJBClusterManager.class);
  +
           infoFactory.addAttribute("objectName", String.class, false);
           infoFactory.addInterface(J2EEManagedObject.class);
           infoFactory.addAttribute("kernel", Kernel.class, false);
  @@ -179,6 +211,7 @@
               "ejbName",
               "proxyInfo",
               "signatures",
  +            "instanceCache",
               "contextFactory",
               "interceptorBuilder",
               "pool",
  @@ -197,6 +230,7 @@
               "homeTxPolicyConfig",
               "remoteTxPolicyConfig",
               "classLoader",
  +            "EJBClusterManager",
               "frontEndCacheDelegate",
               "cacheFactory"});
   
  
  
  


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic