Package org.jboss.jms.client.container

Source Code of org.jboss.jms.client.container.StateCreationAspect

/*     */ package org.jboss.jms.client.container;
/*     */
/*     */ import javax.jms.Destination;
/*     */ import org.jboss.aop.joinpoint.Invocation;
/*     */ import org.jboss.aop.joinpoint.MethodInvocation;
/*     */ import org.jboss.jms.client.delegate.ClientBrowserDelegate;
/*     */ import org.jboss.jms.client.delegate.ClientConnectionDelegate;
/*     */ import org.jboss.jms.client.delegate.ClientConsumerDelegate;
/*     */ import org.jboss.jms.client.delegate.ClientProducerDelegate;
/*     */ import org.jboss.jms.client.delegate.ClientSessionDelegate;
/*     */ import org.jboss.jms.client.delegate.DelegateSupport;
/*     */ import org.jboss.jms.client.remoting.ConsolidatedRemotingConnectionListener;
/*     */ import org.jboss.jms.client.remoting.JMSRemotingConnection;
/*     */ 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.delegate.CreateConnectionResult;
/*     */ import org.jboss.jms.delegate.ProducerDelegate;
/*     */ import org.jboss.jms.destination.JBossDestination;
/*     */ import org.jboss.jms.message.MessageIdGenerator;
/*     */ import org.jboss.jms.message.MessageIdGeneratorFactory;
/*     */ import org.jboss.logging.Logger;
/*     */ import org.jboss.messaging.util.Version;
/*     */
/*     */ public class StateCreationAspect
/*     */ {
/*  69 */   private static final Logger log = Logger.getLogger(StateCreationAspect.class);
/*     */
/*  73 */   private boolean trace = log.isTraceEnabled();
/*     */
/*     */   public Object handleCreateConnectionDelegate(Invocation inv)
/*     */     throws Throwable
/*     */   {
/*  83 */     CreateConnectionResult res = (CreateConnectionResult)inv.invokeNext();
/*     */
/*  85 */     ClientConnectionDelegate connectionDelegate = res.getDelegate();
/*     */
/*  87 */     if ((connectionDelegate != null) && (connectionDelegate.getState() == null))
/*     */     {
/*  91 */       if (this.trace) log.trace(connectionDelegate + " not configured, configuring ...");
/*     */
/*  93 */       int serverID = connectionDelegate.getServerID();
/*  94 */       Version versionToUse = connectionDelegate.getVersionToUse();
/*  95 */       JMSRemotingConnection remotingConnection = connectionDelegate.getRemotingConnection();
/*     */
/* 100 */       ConsolidatedRemotingConnectionListener listener = new ConsolidatedRemotingConnectionListener();
/*     */
/* 103 */       remotingConnection.addConnectionListener(listener);
/*     */
/* 105 */       if (versionToUse == null)
/*     */       {
/* 107 */         throw new IllegalStateException("Connection version is null");
/*     */       }
/*     */
/* 111 */       MessageIdGenerator idGenerator = MessageIdGeneratorFactory.instance.checkOutGenerator(serverID);
/*     */
/* 114 */       ConnectionState connectionState = new ConnectionState(serverID, connectionDelegate, remotingConnection, versionToUse, idGenerator);
/*     */
/* 118 */       listener.setConnectionState(connectionState);
/*     */
/* 120 */       connectionDelegate.setState(connectionState);
/*     */     }
/*     */
/* 123 */     return res;
/*     */   }
/*     */
/*     */   public Object handleCreateSessionDelegate(Invocation invocation) throws Throwable
/*     */   {
/* 128 */     ClientSessionDelegate sessionDelegate = (ClientSessionDelegate)invocation.invokeNext();
/* 129 */     DelegateSupport delegate = sessionDelegate;
/*     */
/* 131 */     ConnectionState connectionState = (ConnectionState)getState(invocation);
/*     */
/* 133 */     MethodInvocation mi = (MethodInvocation)invocation;
/* 134 */     boolean transacted = ((Boolean)mi.getArguments()[0]).booleanValue();
/* 135 */     int ackMode = ((Integer)mi.getArguments()[1]).intValue();
/* 136 */     boolean xa = ((Boolean)mi.getArguments()[2]).booleanValue();
/*     */
/* 138 */     SessionState sessionState = new SessionState(connectionState, sessionDelegate, transacted, ackMode, xa, sessionDelegate.getDupsOKBatchSize());
/*     */
/* 142 */     delegate.setState(sessionState);
/* 143 */     return delegate;
/*     */   }
/*     */
/*     */   public Object handleCreateConsumerDelegate(Invocation invocation) throws Throwable
/*     */   {
/* 148 */     ClientConsumerDelegate consumerDelegate = (ClientConsumerDelegate)invocation.invokeNext();
/* 149 */     DelegateSupport delegate = consumerDelegate;
/*     */
/* 151 */     SessionState sessionState = (SessionState)getState(invocation);
/*     */
/* 153 */     MethodInvocation mi = (MethodInvocation)invocation;
/* 154 */     JBossDestination dest = (JBossDestination)mi.getArguments()[0];
/* 155 */     String selector = (String)mi.getArguments()[1];
/* 156 */     boolean noLocal = ((Boolean)mi.getArguments()[2]).booleanValue();
/* 157 */     String subscriptionName = (String)mi.getArguments()[3];
/* 158 */     boolean connectionConsumer = ((Boolean)mi.getArguments()[4]).booleanValue();
/*     */
/* 160 */     String consumerID = consumerDelegate.getID();
/* 161 */     int bufferSize = consumerDelegate.getBufferSize();
/* 162 */     int maxDeliveries = consumerDelegate.getMaxDeliveries();
/* 163 */     long redeliveryDelay = consumerDelegate.getRedeliveryDelay();
/*     */
/* 165 */     ConsumerState consumerState = new ConsumerState(sessionState, consumerDelegate, dest, selector, noLocal, subscriptionName, consumerID, connectionConsumer, bufferSize, maxDeliveries, redeliveryDelay);
/*     */
/* 170 */     delegate.setState(consumerState);
/* 171 */     return consumerDelegate;
/*     */   }
/*     */
/*     */   public Object handleCreateProducerDelegate(Invocation invocation)
/*     */     throws Throwable
/*     */   {
/* 178 */     ProducerDelegate producerDelegate = new ClientProducerDelegate();
/* 179 */     DelegateSupport delegate = (DelegateSupport)producerDelegate;
/*     */
/* 181 */     SessionState sessionState = (SessionState)getState(invocation);
/*     */
/* 183 */     MethodInvocation mi = (MethodInvocation)invocation;
/* 184 */     Destination dest = (Destination)mi.getArguments()[0];
/*     */
/* 186 */     ProducerState producerState = new ProducerState(sessionState, producerDelegate, dest);
/*     */
/* 188 */     delegate.setState(producerState);
/*     */
/* 193 */     producerDelegate.getDeliveryMode();
/*     */
/* 195 */     return producerDelegate;
/*     */   }
/*     */
/*     */   public Object handleCreateBrowserDelegate(Invocation invocation) throws Throwable
/*     */   {
/* 200 */     MethodInvocation mi = (MethodInvocation)invocation;
/*     */
/* 202 */     ClientBrowserDelegate browserDelegate = (ClientBrowserDelegate)invocation.invokeNext();
/* 203 */     DelegateSupport delegate = browserDelegate;
/*     */
/* 205 */     SessionState sessionState = (SessionState)getState(invocation);
/*     */
/* 207 */     JBossDestination destination = (JBossDestination)mi.getArguments()[0];
/* 208 */     String selector = (String)mi.getArguments()[1];
/*     */
/* 210 */     BrowserState state = new BrowserState(sessionState, browserDelegate, destination, selector);
/*     */
/* 213 */     delegate.setState(state);
/* 214 */     return browserDelegate;
/*     */   }
/*     */
/*     */   private HierarchicalState getState(Invocation inv)
/*     */   {
/* 225 */     return ((DelegateSupport)inv.getTargetObject()).getState();
/*     */   }
/*     */ }

/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/jboss-embedded-all.jar
* Qualified Name:     org.jboss.jms.client.container.StateCreationAspect
* JD-Core Version:    0.6.0
*/
TOP

Related Classes of org.jboss.jms.client.container.StateCreationAspect

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.