User: norbert
Date: 00/07/07 15:37:22
Modified: src/java/org/spydermq SpyConnection.java SpyMessage.java
SpySession.java SpyTopicSession.java
Log:
First shot for persistence :
Use an fs based persistence system
Revision Changes Path
1.12 +1 -7 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.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SpyConnection.java 2000/07/07 21:37:31 1.11
+++ SpyConnection.java 2000/07/07 22:37:21 1.12
@@ -31,7 +31,7 @@
*
* @author Norbert Lataille ([EMAIL PROTECTED])
*
- * @version $Revision: 1.11 $
+ * @version $Revision: 1.12 $
*/
public class SpyConnection
implements Connection, Serializable
@@ -268,12 +268,6 @@
}
}*/
-
- //Handle persistence
- for(int i=0;i<mes.length;i++) {
- if ((new
File(mes[i].getJMSMessageID())).delete()==false)
- Log.log("Error: cannot delete file
"+mes[i].getJMSMessageID());
- }
provider.newMessage(mes,clientID);
1.5 +2 -1 spyderMQ/src/java/org/spydermq/SpyMessage.java
Index: SpyMessage.java
===================================================================
RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spydermq/SpyMessage.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SpyMessage.java 2000/07/07 21:37:31 1.4
+++ SpyMessage.java 2000/07/07 22:37:21 1.5
@@ -21,7 +21,7 @@
*
* @author Norbert Lataille ([EMAIL PROTECTED])
*
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
public class SpyMessage
implements Serializable, Cloneable, Message
@@ -36,6 +36,7 @@
// Attributes ----------------------------------------------------
public boolean persistent=false;
+ public transient boolean removed=false;
//Those attributes are not transient ---------------
1.8 +18 -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.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SpySession.java 2000/06/15 23:21:40 1.7
+++ SpySession.java 2000/07/07 22:37:21 1.8
@@ -17,6 +17,7 @@
import javax.jms.StreamMessage;
import javax.jms.TextMessage;
import java.io.Serializable;
+import java.io.File;
import java.util.LinkedList;
import java.util.HashMap;
import java.util.HashSet;
@@ -28,7 +29,7 @@
*
* @author Norbert Lataille ([EMAIL PROTECTED])
*
- * @version $Revision: 1.7 $
+ * @version $Revision: 1.8 $
*/
public class SpySession
implements Runnable, Session
@@ -205,8 +206,22 @@
}
if (outgoingJob!=null) {
- try {
- //Check for outdated messages !
+ try {
+
+ //Check for outdated messages !
+ for(int i=0;i<outgoingJob.length;i++) {
+ SpyMessage m=outgoingJob[i];
+ if (m.persistent) {
+ if (m.removed) {
+ //Log.log("DELETE file
"+outgoingJob[i].getJMSMessageID());
+ //persitenceList.add();
+ if ((new
File(m.getJMSMessageID())).delete()==false)
+
Log.error("Cannot delete file "+m.getJMSMessageID());
+ } else m.removed=true;
+ }
+ }
+
+ //Send to the server
connection.sendToServer(outgoingJob);
doneJob=true;
} catch (JMSException e) {
1.5 +8 -4 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.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SpyTopicSession.java 2000/07/07 21:37:31 1.4
+++ SpyTopicSession.java 2000/07/07 22:37:21 1.5
@@ -28,7 +28,7 @@
*
* @author Norbert Lataille ([EMAIL PROTECTED])
*
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
public class SpyTopicSession
extends SpySession
@@ -173,9 +173,13 @@
//First shot : use a fs based persistence system
try {
if (m.persistent) {
- ObjectOutputStream output=new ObjectOutputStream(new
FileOutputStream(m.getJMSMessageID()));
- output.writeObject(m);
- output.close();
+ //Log.log("ADD file "+m.getJMSMessageID());
+ if (m.removed==false) {
+ ObjectOutputStream output=new
ObjectOutputStream(new FileOutputStream(m.getJMSMessageID()));
+ output.writeObject(m);
+ output.close();
+ m.removed=true;
+ }
}
} catch (IOException e) {
Log.log(e);