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;
}
}