User: norbert 
  Date: 00/07/07 14:37:32

  Modified:    src/java/org/spydermq SpyConnection.java SpyMessage.java
                        SpyTopicPublisher.java SpyTopicSession.java
  Log:
  First shot for persistence :
  Use an fs based persistence system
  
  Revision  Changes    Path
  1.11      +9 -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.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SpyConnection.java        2000/06/20 02:19:10     1.10
  +++ SpyConnection.java        2000/07/07 21:37:31     1.11
  @@ -20,6 +20,8 @@
   import java.util.Iterator;
   import java.io.Serializable;
   import java.io.FileInputStream;
  +import java.io.File;
  +import java.io.IOException;
   import org.spydermq.distributed.interfaces.DistributedJMSServer;
   import org.spydermq.distributed.interfaces.ConnectionReceiver;
   import org.spydermq.distributed.ConnectionReceiverFactory;
  @@ -29,7 +31,7 @@
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.10 $
  + *   @version $Revision: 1.11 $
    */
   public class SpyConnection 
        implements Connection, Serializable
  @@ -266,6 +268,12 @@
                                }
                                
                        }*/
  +                     
  +                     //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.4       +3 -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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SpyMessage.java   2000/06/20 02:19:10     1.3
  +++ SpyMessage.java   2000/07/07 21:37:31     1.4
  @@ -21,7 +21,7 @@
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.3 $
  + *   @version $Revision: 1.4 $
    */
   public class SpyMessage 
        implements Serializable, Cloneable, Message
  @@ -35,6 +35,8 @@
   
        // Attributes ----------------------------------------------------
   
  +     public boolean persistent=false;
  +     
        //Those attributes are not transient ---------------
        
        //Header fields 
  
  
  
  1.3       +6 -2      spyderMQ/src/java/org/spydermq/SpyTopicPublisher.java
  
  Index: SpyTopicPublisher.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/spyderMQ/src/java/org/spydermq/SpyTopicPublisher.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SpyTopicPublisher.java    2000/06/09 20:03:58     1.2
  +++ SpyTopicPublisher.java    2000/07/07 21:37:31     1.3
  @@ -11,13 +11,14 @@
   import javax.jms.Message;
   import javax.jms.Topic;
   import javax.jms.InvalidDestinationException;
  +import javax.jms.DeliveryMode;
   
   /**
    *   This class implements javax.jms.TopicPublisher
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.2 $
  + *   @version $Revision: 1.3 $
    */
   public class SpyTopicPublisher 
        extends SpyMessageProducer 
  @@ -88,7 +89,10 @@
                message.setReadOnlyMode();
                
                //This message is not redelivered
  -             message.setJMSRedelivered(false);               
  +             message.setJMSRedelivered(false);
  +             
  +             //Handle the persistence
  +             message.persistent=(deliveryMode==DeliveryMode.PERSISTENT);
   
                //We must put a 'new message' in the Session's outgoing queue [3.9]    
                         
                mySession.sendMessage(message.myClone());
  
  
  
  1.4       +18 -2     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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SpyTopicSession.java      2000/06/19 04:23:12     1.3
  +++ SpyTopicSession.java      2000/07/07 21:37:31     1.4
  @@ -17,14 +17,18 @@
   import java.util.HashSet;
   import java.util.HashMap;
   import java.util.Iterator;
  +import java.io.FileOutputStream;
  +import java.io.ObjectOutputStream;
  +import java.io.IOException;
   import org.spydermq.selectors.Selector; 
  +import org.spydermq.Log;
   
   /**
    *   This class implements javax.jms.TopicSession
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.3 $
  + *   @version $Revision: 1.4 $
    */
   public class SpyTopicSession 
        extends SpySession 
  @@ -161,9 +165,21 @@
                        }
                        
                }
  -
  +             
                //notify the thread that there is work to do
                mutex.notifyLock();
  +             
  +             //Handle persistence
  +             //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();
  +                     }
  +             } catch (IOException e) {
  +                     Log.log(e);
  +             }
                
                //DEBUG !
                if (outgoingQueue.size()>9000) 
  
  
  

Reply via email to