[jboss-cvs] jboss-jms/src/main/org/jboss/jms/client/state ...

Timothy Fox tim.fox at jboss.com
Mon Jul 17 13:14:45 EDT 2006


  User: timfox  
  Date: 06/07/17 13:14:45

  Modified:    src/main/org/jboss/jms/client/state   ConsumerState.java
                        SessionState.java
  Log:
  Many changes including implementation of prefetch, SEDAisation of server, changing of recovery
  
  Revision  Changes    Path
  1.9       +12 -3     jboss-jms/src/main/org/jboss/jms/client/state/ConsumerState.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ConsumerState.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-jms/src/main/org/jboss/jms/client/state/ConsumerState.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -b -r1.8 -r1.9
  --- ConsumerState.java	10 Mar 2006 19:46:38 -0000	1.8
  +++ ConsumerState.java	17 Jul 2006 17:14:45 -0000	1.9
  @@ -33,9 +33,9 @@
    * State corresponding to a Consumer. This state is acessible inside aspects/interceptors.
    * 
    * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  - * @version <tt>$Revision: 1.8 $</tt>
  + * @version <tt>$Revision: 1.9 $</tt>
    *
  - * $Id: ConsumerState.java,v 1.8 2006/03/10 19:46:38 timfox Exp $
  + * $Id: ConsumerState.java,v 1.9 2006/07/17 17:14:45 timfox Exp $
    */
   public class ConsumerState extends HierarchicalStateSupport
   {
  @@ -51,8 +51,11 @@
      
      private MessageCallbackHandler messageCallbackHandler;
       
  +   private int prefetchSize;
  +    
      public ConsumerState(SessionState parent, ConsumerDelegate delegate, Destination dest,
  -                        String selector, boolean noLocal, int consumerID, boolean isCC)
  +                        String selector, boolean noLocal, int consumerID, boolean isCC,
  +                        int prefetchSize)
      {
         super(parent, delegate);
         children = Collections.EMPTY_SET;
  @@ -61,6 +64,7 @@
         this.noLocal = noLocal;      
         this.consumerID = consumerID;
         this.isConnectionConsumer = isCC;
  +      this.prefetchSize = prefetchSize;
      }
       
      public Destination getDestination()
  @@ -103,6 +107,11 @@
         return parent.getVersionToUse();
      }
      
  +   public int getPrefetchSize()
  +   {
  +      return prefetchSize;
  +   }
  +   
   }
   
   
  
  
  
  1.12      +60 -2     jboss-jms/src/main/org/jboss/jms/client/state/SessionState.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: SessionState.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-jms/src/main/org/jboss/jms/client/state/SessionState.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -b -r1.11 -r1.12
  --- SessionState.java	21 Apr 2006 12:41:12 -0000	1.11
  +++ SessionState.java	17 Jul 2006 17:14:45 -0000	1.12
  @@ -21,8 +21,15 @@
     */
   package org.jboss.jms.client.state;
   
  +import java.util.ArrayList;
  +import java.util.HashMap;
   import java.util.HashSet;
  +import java.util.List;
  +import java.util.Map;
   
  +import javax.jms.Session;
  +
  +import org.jboss.jms.client.remoting.MessageCallbackHandler;
   import org.jboss.jms.delegate.SessionDelegate;
   import org.jboss.jms.server.Version;
   import org.jboss.jms.tx.MessagingXAResource;
  @@ -34,9 +41,9 @@
    * State corresponding to a session. This state is acessible inside aspects/interceptors.
    * 
    * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  - * @version <tt>$Revision: 1.11 $</tt>
  + * @version <tt>$Revision: 1.12 $</tt>
    *
  - * $Id: SessionState.java,v 1.11 2006/04/21 12:41:12 timfox Exp $
  + * $Id: SessionState.java,v 1.12 2006/07/17 17:14:45 timfox Exp $
    */
   public class SessionState extends HierarchicalStateSupport
   {
  @@ -53,6 +60,12 @@
      //Executor used for executing onMessage methods
      private QueuedExecutor executor;
      
  +   private boolean recoverCalled;
  +   
  +   private List toAck;
  +   
  +   private Map callbackHandlers;
  +   
      public SessionState(ConnectionState parent, SessionDelegate delegate,
                          boolean transacted, int ackMode, boolean xa)
      {
  @@ -72,6 +85,21 @@
            currentTxId = parent.getResourceManager().createLocalTx();        
         }
         executor = new QueuedExecutor(new LinkedQueue());
  +      
  +      if (ackMode == Session.CLIENT_ACKNOWLEDGE || ackMode == Session.AUTO_ACKNOWLEDGE ||
  +          ackMode == Session.DUPS_OK_ACKNOWLEDGE)
  +      {
  +         toAck = new ArrayList();
  +      }
  +      
  +      //TODO could optimise this to use the same map of callbackmanagers (which holds refs
  +      //to callbackhandlers) in the connection, instead of maintaining another map
  +      callbackHandlers = new HashMap();
  +   }
  +   
  +   public List getToAck()
  +   {
  +      return toAck;
      }
       
      public int getAcknowledgeMode()
  @@ -104,6 +132,11 @@
         return currentTxId;
      }
      
  +   public boolean isRecoverCalled()
  +   {
  +      return recoverCalled;
  +   }
  +   
      public void setCurrentTxId(Object id)
      {
         this.currentTxId = id;
  @@ -114,5 +147,30 @@
         return parent.getVersionToUse();
      }
   
  +   public void setRecoverCalled(boolean recoverCalled)
  +   {
  +      this.recoverCalled = recoverCalled;
  +   }
  +   
  +   public MessageCallbackHandler getCallbackHandler(int consumerID)
  +   {
  +      return (MessageCallbackHandler)callbackHandlers.get(new Integer(consumerID));
  +   }
  +   
  +   public void addCallbackHandler(MessageCallbackHandler handler)
  +   {
  +      callbackHandlers.put(new Integer(handler.getConsumerId()), handler);
  +   }
  +   
  +   public void removeCallbackHandler(MessageCallbackHandler handler)
  +   {
  +      callbackHandlers.remove(new Integer(handler.getConsumerId()));
  +   }
  +   
  +   public List getCallbackHandlers()
  +   {
  +      return new ArrayList(callbackHandlers.values());
  +   }
  +
   }
   
  
  
  



More information about the jboss-cvs-commits mailing list