[jboss-cvs] JBoss Messaging SVN: r1557 - in branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms: client/container client/state server/endpoint

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 10 17:34:58 EST 2006


Author: clebert.suconic at jboss.com
Date: 2006-11-10 17:34:54 -0500 (Fri, 10 Nov 2006)
New Revision: 1557

Modified:
   branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/client/container/ConnectionAspect.java
   branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/client/container/StateCreationAspect.java
   branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/client/state/BrowserState.java
   branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
Log:
Adding BrowserSupport

Modified: branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/client/container/ConnectionAspect.java
===================================================================
--- branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/client/container/ConnectionAspect.java	2006-11-09 22:57:01 UTC (rev 1556)
+++ branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/client/container/ConnectionAspect.java	2006-11-10 22:34:54 UTC (rev 1557)
@@ -21,28 +21,25 @@
   */
 package org.jboss.jms.client.container;
 
-import javax.jms.*;
-import javax.jms.IllegalStateException;
-
 import org.jboss.aop.joinpoint.Invocation;
 import org.jboss.aop.joinpoint.MethodInvocation;
 import org.jboss.jms.client.JBossConnectionMetaData;
+import org.jboss.jms.client.delegate.*;
 import org.jboss.jms.client.remoting.CallbackManager;
 import org.jboss.jms.client.remoting.MessageCallbackHandler;
-import org.jboss.jms.client.delegate.ClientConnectionDelegate;
-import org.jboss.jms.client.delegate.ClientSessionDelegate;
-import org.jboss.jms.client.delegate.ClientProducerDelegate;
-import org.jboss.jms.client.delegate.ClientConsumerDelegate;
 import org.jboss.jms.client.state.*;
+import org.jboss.jms.destination.JBossDestination;
 import org.jboss.jms.message.MessageIdGeneratorFactory;
 import org.jboss.jms.tx.ResourceManagerFactory;
-import org.jboss.jms.destination.JBossDestination;
 import org.jboss.logging.Logger;
 import org.jboss.remoting.Client;
 import org.jboss.remoting.ConnectionListener;
 
+import javax.jms.ExceptionListener;
+import javax.jms.IllegalStateException;
+import javax.jms.JMSException;
+import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -276,7 +273,8 @@
             }
             else if (sessionChild instanceof BrowserState)
             {
-                log.warn("The failover is not ready for BrowserState yet!");
+
+
             }
          }
       }
@@ -400,5 +398,21 @@
       if (trace) { log.trace("handling fail over on producerDelegate " + failedProducerDelegate + " destination=" + failedProducerState.getDestination()); }
    }
 
+   private void handleFailoverOnBrowser(BrowserState failedBrowserState,
+                                         ClientSessionDelegate failedSessionDelegate)
+      throws JMSException
+   {
+      ClientBrowserDelegate newBrowserDelegate = (ClientBrowserDelegate)failedSessionDelegate.
+          createBrowserDelegate(failedBrowserState.getJmsDestination(),failedBrowserState.getMessageSelector());
+
+      ClientBrowserDelegate failedBrowserDelegate =
+         (ClientBrowserDelegate)failedBrowserState.getDelegate();
+
+      failedBrowserDelegate.copyState(newBrowserDelegate);
+
+      if (trace) { log.trace("handling fail over on browserDelegate " + failedBrowserDelegate + " destination=" + failedBrowserState.getJmsDestination() + " selector=" + failedBrowserState.getMessageSelector()); }
+
+   }
+
    // Inner classes -------------------------------------------------
 }

Modified: branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/client/container/StateCreationAspect.java
===================================================================
--- branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/client/container/StateCreationAspect.java	2006-11-09 22:57:01 UTC (rev 1556)
+++ branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/client/container/StateCreationAspect.java	2006-11-10 22:34:54 UTC (rev 1557)
@@ -21,8 +21,6 @@
   */
 package org.jboss.jms.client.container;
 
-import javax.jms.Destination;
-
 import org.jboss.aop.Advised;
 import org.jboss.aop.joinpoint.Invocation;
 import org.jboss.aop.joinpoint.MethodInvocation;
@@ -31,22 +29,20 @@
 import org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate;
 import org.jboss.jms.client.delegate.ClientProducerDelegate;
 import org.jboss.jms.client.delegate.DelegateSupport;
-import org.jboss.jms.client.state.BrowserState;
-import org.jboss.jms.client.state.ConnectionState;
-import org.jboss.jms.client.state.ConsumerState;
-import org.jboss.jms.client.state.HierarchicalState;
-import org.jboss.jms.client.state.ProducerState;
-import org.jboss.jms.client.state.SessionState;
+import org.jboss.jms.client.state.*;
 import org.jboss.jms.delegate.BrowserDelegate;
 import org.jboss.jms.delegate.ConsumerDelegate;
 import org.jboss.jms.delegate.ProducerDelegate;
 import org.jboss.jms.delegate.SessionDelegate;
+import org.jboss.jms.destination.JBossDestination;
 import org.jboss.jms.message.MessageIdGenerator;
 import org.jboss.jms.message.MessageIdGeneratorFactory;
 import org.jboss.jms.server.remoting.MetaDataConstants;
 import org.jboss.jms.tx.ResourceManager;
 import org.jboss.jms.tx.ResourceManagerFactory;
 
+import javax.jms.Destination;
+
 /**
  * Maintains the hierarchy of parent and child state objects. For each delegate, this interceptor
  * maintains a state object and it's children/parent. The state object is then made accessible to
@@ -58,6 +54,7 @@
  * 
  * @author <a href="mailto:tim.fox at jboss.com>Tim Fox</a>
  * @author <a href="mailto:ovidiu at jboss.org>Ovidiu Feodorov</a>
+ * @author <a href="mailto:clebert.suconic at jboss.org>Clebert Suconic</a>
  *
  * $Id$
  */
@@ -176,15 +173,20 @@
    
    public Object handleCreateBrowserDelegate(Invocation invocation) throws Throwable
    {
+      MethodInvocation mi = (MethodInvocation)invocation;
+
       BrowserDelegate browserDelegate = (BrowserDelegate)invocation.invokeNext();
       DelegateSupport delegate = (DelegateSupport)browserDelegate;
       
       delegate.init();
       
       SessionState sessionState = (SessionState)getState(invocation);
+
+      JBossDestination destination = (JBossDestination)mi.getArguments()[0];
+      String selector = (String)mi.getArguments()[1];
+
+      BrowserState state = new BrowserState(sessionState, browserDelegate, destination, selector);
       
-      BrowserState state = new BrowserState(sessionState, browserDelegate);
-      
       delegate.setState(state);
       return browserDelegate;
    }

Modified: branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/client/state/BrowserState.java
===================================================================
--- branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/client/state/BrowserState.java	2006-11-09 22:57:01 UTC (rev 1556)
+++ branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/client/state/BrowserState.java	2006-11-10 22:34:54 UTC (rev 1557)
@@ -21,9 +21,10 @@
   */
 package org.jboss.jms.client.state;
 
+import org.jboss.jms.client.delegate.DelegateSupport;
 import org.jboss.jms.delegate.BrowserDelegate;
+import org.jboss.jms.destination.JBossDestination;
 import org.jboss.jms.server.Version;
-import org.jboss.jms.client.delegate.DelegateSupport;
 
 /**
  * State corresponding to a browser
@@ -41,9 +42,15 @@
    private SessionState parent;
    private BrowserDelegate delegate;
 
-   public BrowserState(SessionState parent, BrowserDelegate delegate)
+   // Data used to recreate the Browser in case of failover
+   private JBossDestination jmsDestination;
+   private String messageSelector;
+
+   public BrowserState(SessionState parent, BrowserDelegate delegate, JBossDestination jmsDestination, String selector)
    {
       super(parent, (DelegateSupport)delegate);
+      this.jmsDestination=jmsDestination;
+      this.messageSelector=selector;
    }
 
    public DelegateSupport getDelegate()
@@ -60,6 +67,17 @@
       return parent.getVersionToUse();
    }
 
+
+   public org.jboss.jms.destination.JBossDestination getJmsDestination()
+   {
+      return jmsDestination;
+   }
+
+   public String getMessageSelector()
+   {
+      return messageSelector;
+   }
+
    public void setParent(HierarchicalState parent)
    {
       this.parent=(SessionState)parent;

Modified: branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
===================================================================
--- branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java	2006-11-09 22:57:01 UTC (rev 1556)
+++ branches/Branch_Client_Failover_Experiment/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java	2006-11-10 22:34:54 UTC (rev 1557)
@@ -67,6 +67,7 @@
  * 
  * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @author <a href="mailto:clebert.suconic at jboss.com">Clebert Suconic</a>
  * @version <tt>$Revision$</tt>
  *
  * $Id$




More information about the jboss-cvs-commits mailing list