[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