User: norbert 
  Date: 00/05/19 19:34:01

  Modified:    src/java/org/spyderMQ SpyMessageConsumer.java
                        SpyTopicSession.java SpyTopicSubscriber.java
  Log:
  Implementation for the "selected" TopicSubscribers
  
  Revision  Changes    Path
  1.11      +6 -4      spyderMQ/src/java/org/spyderMQ/SpyMessageConsumer.java
  
  Index: SpyMessageConsumer.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/spyderMQ/src/java/org/spyderMQ/SpyMessageConsumer.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SpyMessageConsumer.java   2000/05/18 20:20:57     1.10
  +++ SpyMessageConsumer.java   2000/05/20 02:34:00     1.11
  @@ -19,7 +19,7 @@
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.10 $
  + *   @version $Revision: 1.11 $
    */
   public class SpyMessageConsumer 
        implements MessageConsumer
  @@ -34,6 +34,8 @@
        protected boolean closed;
        //Do I have a selector
        public Selector selector;
  +     //The message selector
  +     public String messageSelector;
        
        // Constructor ---------------------------------------------------
           
  @@ -43,6 +45,7 @@
                messageListener=null;
                closed=false;
                selector=null;
  +             messageSelector=null;
        }
        
        // Public --------------------------------------------------------
  @@ -50,9 +53,8 @@
       public String getMessageSelector() throws JMSException
        {
                if (closed) throw new IllegalStateException("The MessageConsumer is 
closed");   
  -             
  -             //Not implemented yet
  -             return null;
  +                             
  +             return messageSelector;
        }
   
       public MessageListener getMessageListener() throws JMSException
  
  
  
  1.22      +15 -9     spyderMQ/src/java/org/spyderMQ/SpyTopicSession.java
  
  Index: SpyTopicSession.java
  ===================================================================
  RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spyderMQ/SpyTopicSession.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- SpyTopicSession.java      2000/05/18 20:20:57     1.21
  +++ SpyTopicSession.java      2000/05/20 02:34:00     1.22
  @@ -17,13 +17,14 @@
   import java.util.HashSet;
   import java.util.HashMap;
   import java.util.Iterator;
  +import org.spydermq.selectors.Selector; 
   
   /**
    *   This class implements javax.jms.TopicSession
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.21 $
  + *   @version $Revision: 1.22 $
    */
   public class SpyTopicSession 
        extends SpySession 
  @@ -50,19 +51,24 @@
        {
                if (closed) throw new IllegalStateException("The session is closed");  
         
                                                                                
  -             SessionQueue sessionQueue=new SessionQueue(transacted,acknowledgeMode);
  -             SpyTopicSubscriber sub=new SpyTopicSubscriber(this,sessionQueue,topic);
  -             sessionQueue.setConsumer(sub);
  -             addConsumer(topic,sessionQueue);
  -             return sub;
  +             return createSubscriber(topic,null,false);
        }
   
       public TopicSubscriber createSubscriber(Topic topic, String messageSelector, 
boolean noLocal) throws JMSException
        {
                if (closed) throw new IllegalStateException("The session is closed");  
         
  -                                                                             
  -             //Not implemented yet
  -             return createSubscriber(topic);
  +                             
  +             SessionQueue sessionQueue=new SessionQueue(transacted,acknowledgeMode);
  +             SpyTopicSubscriber sub=new 
SpyTopicSubscriber(this,sessionQueue,topic,noLocal);
  +             sessionQueue.setConsumer(sub);
  +             addConsumer(topic,sessionQueue);
  +             
  +             if (messageSelector!=null) {
  +                     Selector selector=new Selector(messageSelector);        
  +                     sub.setSelector(selector,messageSelector);
  +             }
  +
  +             return sub;
        }
   
       public TopicSubscriber createDurableSubscriber(Topic topic, String name) throws 
JMSException
  
  
  
  1.9       +9 -6      spyderMQ/src/java/org/spyderMQ/SpyTopicSubscriber.java
  
  Index: SpyTopicSubscriber.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/spyderMQ/src/java/org/spyderMQ/SpyTopicSubscriber.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SpyTopicSubscriber.java   2000/05/18 20:20:57     1.8
  +++ SpyTopicSubscriber.java   2000/05/20 02:34:00     1.9
  @@ -20,7 +20,7 @@
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.8 $
  + *   @version $Revision: 1.9 $
    */
   public class SpyTopicSubscriber 
        extends SpyMessageConsumer 
  @@ -32,14 +32,17 @@
        private Topic topic;
        //A link to my session queue (in my session)
        private SessionQueue mySessionQueue;
  +     //Am I in local mode ?
  +     boolean local;
   
        // Constructor ---------------------------------------------------
           
  -    SpyTopicSubscriber(SpyTopicSession s,SessionQueue sq,Topic t) 
  +    SpyTopicSubscriber(SpyTopicSession s,SessionQueue sq,Topic t,boolean local) 
        {
                super(s);
                topic=t;
                mySessionQueue=sq;
  +             this.local=local;
        }
   
        // Public --------------------------------------------------------
  @@ -55,8 +58,7 @@
        {
                if (closed) throw new IllegalStateException("The MessageConsumer is 
closed");   
                
  -             //Not implemented yet
  -             return false;
  +             return local;
        }
        
        public void close() throws JMSException
  @@ -173,11 +175,12 @@
                }
        }
        
  -     // ----- Debug only ----- [not part of the spec]
  +     // ----- Debug only ----- [not public part of the spec]
        
  -     public void setSelector(Selector selector)
  +     public void setSelector(Selector selector,String messageSelector)
        {
                this.selector=selector;
  +             this.messageSelector=messageSelector;
        }
   
   }
  
  
  

Reply via email to