User: norbert
Date: 00/05/19 12:28:49
Modified: src/java/org/spyderMQ JMSServer.java JMSServerQueue.java
SpyConnection.java SpySession.java
Log:
Here we are... There's a parser for selctors.
Revision Changes Path
1.30 +12 -1 spyderMQ/src/java/org/spyderMQ/JMSServer.java
Index: JMSServer.java
===================================================================
RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spyderMQ/JMSServer.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- JMSServer.java 2000/05/18 20:20:56 1.29
+++ JMSServer.java 2000/05/19 19:28:49 1.30
@@ -11,6 +11,7 @@
import javax.jms.TemporaryTopic;
import javax.jms.TemporaryQueue;
import javax.jms.Topic;
+import javax.jms.Queue;
import java.util.LinkedList;
import java.util.HashMap;
import java.util.Iterator;
@@ -20,7 +21,7 @@
*
* @author Norbert Lataille ([EMAIL PROTECTED])
*
- * @version $Revision: 1.29 $
+ * @version $Revision: 1.30 $
*/
public class JMSServer
implements Runnable
@@ -299,5 +300,15 @@
public void checkID(String ID) throws JMSException
{
securityManager.addClientID(ID);
+ }
+
+ public SpyMessage queueReceiveNoWait(Queue queue) throws JMSException
+ {
+ Log.log("JMSserver: queueReceiveNoWait(queue="+queue+")");
+
+ JMSServerQueue serverQueue=(JMSServerQueue)messageQueue.get(queue);
+ if (serverQueue==null) throw new JMSException("This destination does
not exist !");
+
+ return serverQueue.queueReceiveNoWait();
}
}
1.27 +11 -9 spyderMQ/src/java/org/spyderMQ/JMSServerQueue.java
Index: JMSServerQueue.java
===================================================================
RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spyderMQ/JMSServerQueue.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- JMSServerQueue.java 2000/05/18 20:20:56 1.26
+++ JMSServerQueue.java 2000/05/19 19:28:49 1.27
@@ -18,7 +18,7 @@
*
* @author Norbert Lataille ([EMAIL PROTECTED])
*
- * @version $Revision: 1.26 $
+ * @version $Revision: 1.27 $
*/
public class JMSServerQueue
{
@@ -55,14 +55,8 @@
alreadyInTaskQueue=false;
temporaryDestination=temporary;
this.server=server;
-
- if (dest instanceof SpyTopic) {
- isTopic=true;
- messagesWaitingForAck=null;
- } else {
- isTopic=false;
- messagesWaitingForAck=new LinkedList();
- }
+ messagesWaitingForAck=new LinkedList();
+ isTopic=dest instanceof SpyTopic;
}
// Package protected ---------------------------------------------
@@ -248,6 +242,14 @@
Log.log("Queue :)");
+ }
+ }
+
+ SpyMessage queueReceiveNoWait()
+ {
+ synchronized (messages) {
+ if (messages.size()==0) return null;
+ return (SpyMessage)messages.removeFirst();
}
}
1.29 +11 -1 spyderMQ/src/java/org/spyderMQ/SpyConnection.java
Index: SpyConnection.java
===================================================================
RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spyderMQ/SpyConnection.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- SpyConnection.java 2000/05/18 02:10:04 1.28
+++ SpyConnection.java 2000/05/19 19:28:49 1.29
@@ -29,7 +29,7 @@
*
* @author Norbert Lataille ([EMAIL PROTECTED])
*
- * @version $Revision: 1.28 $
+ * @version $Revision: 1.29 $
*/
public class SpyConnection
implements Connection, Serializable
@@ -335,6 +335,16 @@
//This session should not be in the subscribers object anymore.
//We could check this, though
+ }
+
+ SpyMessage queueReceiveNoWait(Queue queue) throws JMSException
+ {
+ try {
+ return provider.queueReceiveNoWait(queue);
+ } catch (Exception e) {
+ failureHandler(e,"Cannot create a ConnectionReceiver");
+ return null;
+ }
}
// Protected -------------------------------------------------------
1.14 +4 -3 spyderMQ/src/java/org/spyderMQ/SpySession.java
Index: SpySession.java
===================================================================
RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spyderMQ/SpySession.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- SpySession.java 2000/05/18 20:20:57 1.13
+++ SpySession.java 2000/05/19 19:28:49 1.14
@@ -28,7 +28,7 @@
*
* @author Norbert Lataille ([EMAIL PROTECTED])
*
- * @version $Revision: 1.13 $
+ * @version $Revision: 1.14 $
*/
public class SpySession
implements Runnable, Session
@@ -243,7 +243,8 @@
}
}
- public synchronized void close() throws JMSException
+ //CHECK for queues !
+ public synchronized void close() throws JMSException
{
if (closed) return;
closed=true;
@@ -263,7 +264,7 @@
Iterator i2=set.iterator();
while (i2.hasNext()) {
SessionQueue sessionQueue=(SessionQueue)i2.next();
- //close() each SessionQueue ( MessageConsumer )
linked to this Session
+ //close() each SessionQueue (MessageConsumer) linked
to this Session
sessionQueue.destination.close();
}
}