User: norbert 
  Date: 00/06/09 13:03:59

  Modified:    src/java/org/spydermq SpyDestination.java SpyMessage.java
                        SpyMessageConsumer.java SpyQueue.java
                        SpyQueueReceiver.java SpyQueueSender.java
                        SpyTopic.java SpyTopicPublisher.java
                        SpyTopicSubscriber.java
  Log:
  Performance :
  - Cache the hashCode() value
  - improve the equals() method
  - no more Date objects ( short lived objects for timestamps )
  
  Revision  Changes    Path
  1.2       +14 -2     spyderMQ/src/java/org/spydermq/SpyDestination.java
  
  Index: SpyDestination.java
  ===================================================================
  RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spydermq/SpyDestination.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SpyDestination.java       2000/05/31 18:06:43     1.1
  +++ SpyDestination.java       2000/06/09 20:03:57     1.2
  @@ -15,7 +15,7 @@
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class SpyDestination 
        implements Destination, Serializable
  @@ -23,5 +23,17 @@
        // Attributes ----------------------------------------------------
   
        protected String name;
  -                     
  +     protected int hash;
  +     
  +     SpyDestination(String name)
  +     {
  +             this.name=name;
  +             hash=name.hashCode();
  +     }
  +     
  +     public int hashCode()
  +     {
  +             return hash;
  +     }
  +     
   }
  
  
  
  1.2       +2 -3      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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SpyMessage.java   2000/05/31 18:06:44     1.1
  +++ SpyMessage.java   2000/06/09 20:03:57     1.2
  @@ -14,7 +14,6 @@
   import javax.jms.Destination;
   import java.util.Enumeration;
   import java.util.Hashtable;
  -import java.util.Date;
   import java.io.Serializable;
   
   /**
  @@ -22,7 +21,7 @@
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class SpyMessage 
        implements Serializable, Cloneable, Message
  @@ -436,7 +435,7 @@
        boolean isOutdated()
        {
                if (jmsExpiration==0) return false;
  -             long ts=(new Date()).getTime();
  +             long ts=System.currentTimeMillis();
                return jmsExpiration<ts;
        }
                        
  
  
  
  1.3       +1 -2      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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SpyMessageConsumer.java   2000/06/01 01:14:29     1.2
  +++ SpyMessageConsumer.java   2000/06/09 20:03:58     1.3
  @@ -12,7 +12,6 @@
   import javax.jms.Message;
   import javax.jms.Session;
   import java.util.LinkedList;
  -import java.util.Date;
   import org.spydermq.selectors.Selector;
   
   /**
  @@ -20,7 +19,7 @@
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.2 $
  + *   @version $Revision: 1.3 $
    */
   public class SpyMessageConsumer 
        implements MessageConsumer
  
  
  
  1.2       +6 -10     spyderMQ/src/java/org/spydermq/SpyQueue.java
  
  Index: SpyQueue.java
  ===================================================================
  RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spydermq/SpyQueue.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SpyQueue.java     2000/05/31 18:06:44     1.1
  +++ SpyQueue.java     2000/06/09 20:03:58     1.2
  @@ -15,7 +15,7 @@
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class SpyQueue
        extends SpyDestination 
  @@ -26,8 +26,8 @@
           
        SpyQueue(String queueName)
        {
  -             super();
  -             name=queueName;
  +             super(queueName);
  +             hash++;
        }
   
        // Public --------------------------------------------------------
  @@ -47,13 +47,9 @@
        //A topic is identified by its name
        public boolean equals(Object obj)
        {
  -             if (obj instanceof SpyQueue)
  -                     return ((SpyDestination)obj).name.equals(name);
  -             return false;
  +             if (obj.getClass()!=SpyQueue.class) return false;               
  +             if (obj.hashCode()!=hash) return false;
  +             return ((SpyQueue)obj).name.equals(name);
        }
   
  -     public int hashCode()
  -     {
  -             return name.hashCode()+1;
  -     }
   }
  
  
  
  1.4       +3 -4      spyderMQ/src/java/org/spydermq/SpyQueueReceiver.java
  
  Index: SpyQueueReceiver.java
  ===================================================================
  RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spydermq/SpyQueueReceiver.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SpyQueueReceiver.java     2000/06/05 03:19:23     1.3
  +++ SpyQueueReceiver.java     2000/06/09 20:03:58     1.4
  @@ -11,14 +11,13 @@
   import javax.jms.Queue;
   import javax.jms.Message;
   import javax.jms.MessageListener;
  -import java.util.Date;
   
   /**
    *   This class implements javax.jms.QueueReceiver
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.3 $
  + *   @version $Revision: 1.4 $
    */
   public class SpyQueueReceiver 
        extends SpyMessageConsumer 
  @@ -107,7 +106,7 @@
                super.receive(timeOut);
                
                if (timeOut==0) return receive();               
  -             long endTime=(new Date()).getTime()+timeOut;
  +             long endTime=System.currentTimeMillis()+timeOut;
                
                setListening(true);
   
  @@ -132,7 +131,7 @@
                                        }
                                } else Log.log("the connection is stopped !");
                                
  -                             long att=endTime-((new Date()).getTime());
  +                             long att=endTime-System.currentTimeMillis();
                                if (att<=0) {
                                        setListening(false);
                                        return null;
  
  
  
  1.2       +4 -5      spyderMQ/src/java/org/spydermq/SpyQueueSender.java
  
  Index: SpyQueueSender.java
  ===================================================================
  RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spydermq/SpyQueueSender.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SpyQueueSender.java       2000/05/31 18:06:45     1.1
  +++ SpyQueueSender.java       2000/06/09 20:03:58     1.2
  @@ -11,14 +11,13 @@
   import javax.jms.Message;
   import javax.jms.Queue;
   import javax.jms.InvalidDestinationException;
  -import java.util.Date;
   
   /**
    *   This class implements javax.jms.QueueSender
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class SpyQueueSender 
        extends SpyMessageProducer 
  @@ -74,12 +73,12 @@
                //Set the header fields
                message.jmsDestination=queue;
                message.setJMSDeliveryMode(deliveryMode);
  -             Date ts=new Date();
  -             message.setJMSTimestamp(ts.getTime());
  +             long ts=System.currentTimeMillis();
  +             message.setJMSTimestamp(ts);
                if (timeToLive==0) {
                        message.setJMSExpiration(0);
                } else {
  -                     message.setJMSExpiration(timeToLive+ts.getTime());
  +                     message.setJMSExpiration(timeToLive+ts);
                }
                message.setJMSPriority(priority);
                message.setJMSMessageID(session.getNewMessageID());
  
  
  
  1.2       +5 -11     spyderMQ/src/java/org/spydermq/SpyTopic.java
  
  Index: SpyTopic.java
  ===================================================================
  RCS file: /products/cvs/ejboss/spyderMQ/src/java/org/spydermq/SpyTopic.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SpyTopic.java     2000/05/31 18:06:46     1.1
  +++ SpyTopic.java     2000/06/09 20:03:58     1.2
  @@ -15,7 +15,7 @@
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class SpyTopic 
        extends SpyDestination 
  @@ -26,8 +26,7 @@
           
        SpyTopic(String topicName)
        {
  -             super();
  -             name=topicName;
  +             super(topicName);
        }
   
        // Public --------------------------------------------------------
  @@ -44,16 +43,11 @@
        
        // Object override -----------------------------------------------
   
  -     //A topic is identified by its name
        public boolean equals(Object obj)
        {
  -             if (obj instanceof SpyTopic)
  -                     return ((SpyDestination)obj).name.equals(name);
  -             return false;
  +             if (obj.getClass()!=SpyTopic.class) return false;               
  +             if (obj.hashCode()!=hash) return false;
  +             return ((SpyDestination)obj).name.equals(name);
        }
   
  -     public int hashCode()
  -     {
  -             return name.hashCode();
  -     }
   }
  
  
  
  1.2       +4 -5      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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SpyTopicPublisher.java    2000/05/31 18:06:46     1.1
  +++ SpyTopicPublisher.java    2000/06/09 20:03:58     1.2
  @@ -11,14 +11,13 @@
   import javax.jms.Message;
   import javax.jms.Topic;
   import javax.jms.InvalidDestinationException;
  -import java.util.Date;
   
   /**
    *   This class implements javax.jms.TopicPublisher
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class SpyTopicPublisher 
        extends SpyMessageProducer 
  @@ -74,12 +73,12 @@
                //Set the header fields
                message.jmsDestination=topic;
                message.setJMSDeliveryMode(deliveryMode);
  -             Date ts=new Date();
  -             message.setJMSTimestamp(ts.getTime());
  +             long ts=System.currentTimeMillis();
  +             message.setJMSTimestamp(ts);
                if (timeToLive==0) {
                        message.setJMSExpiration(0);
                } else {
  -                     message.setJMSExpiration(timeToLive+ts.getTime());
  +                     message.setJMSExpiration(timeToLive+ts);
                }
                message.setJMSPriority(priority);
                message.setJMSMessageID(mySession.getNewMessageID());
  
  
  
  1.3       +3 -4      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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SpyTopicSubscriber.java   2000/06/01 01:14:29     1.2
  +++ SpyTopicSubscriber.java   2000/06/09 20:03:58     1.3
  @@ -11,7 +11,6 @@
   import javax.jms.Topic;
   import javax.jms.Message;
   import javax.jms.MessageListener;
  -import java.util.Date;
   
   import org.spydermq.selectors.Selector;
   
  @@ -20,7 +19,7 @@
    *      
    *   @author Norbert Lataille ([EMAIL PROTECTED])
    * 
  - *   @version $Revision: 1.2 $
  + *   @version $Revision: 1.3 $
    */
   public class SpyTopicSubscriber 
        extends SpyMessageConsumer 
  @@ -112,7 +111,7 @@
                
                if (timeOut==0) return receive();
                
  -             long endTime=(new Date()).getTime()+timeOut;
  +             long endTime=System.currentTimeMillis()+timeOut;
                
                synchronized (messages) {
                        
  @@ -129,7 +128,7 @@
                                        if (mes!=null) return mes;
                                } else Log.notice("the connection is stopped !");
                                
  -                             long att=endTime-((new Date()).getTime());
  +                             long att=endTime-System.currentTimeMillis();
                                if (att<=0) return null;
                                
                                try {                                   
  
  
  

Reply via email to