You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Peter Donald <do...@apache.org> on 2001/03/16 03:37:59 UTC

Re: cvs commit: jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/sch eduler TimeTrigger.java PeriodicTimeTrigger.java CronTimeTrigger.java

Hi,

Just regarding these changes - I am not sure why you added in m_triggerTime
or made it clonable. 

BTW I just renamed the passed in variable startTime to offset in CVS as
that is what it was meant to be ;)

As far as I can see m_triggerTime is the same as m_startTime except that
m_startTime is passed on to "cloned" objects. However in the old code when
offset was passed in constructor as -1, m_startTime would be set to the
current time. However the way you changed it now new "cloned" objects are
passed the original offset (-1 in this case) which will mean that the
trigger will be reset everytime it is cloned.

At 05:10  15/3/01 -0000, ramc@apache.org wrote:
>ramc        01/03/15 09:10:49
>
>  Modified:    src/java/org/apache/cornerstone/services/scheduler
>                        TimeTrigger.java PeriodicTimeTrigger.java
>                        CronTimeTrigger.java
>  Log:
>  Patch for TimeScheduler block. This should fix the problem with timeout
when the trigger is rescheduled.
>  
>  Revision  Changes    Path
>  1.2       +11 -1
jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/schedule
r/TimeTrigger.java
>  
>  Index: TimeTrigger.java
>  ===================================================================
>  RCS file:
/home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/service
s/scheduler/TimeTrigger.java,v
>  retrieving revision 1.1
>  retrieving revision 1.2
>  diff -u -r1.1 -r1.2
>  --- TimeTrigger.java	2001/02/22 07:51:35	1.1
>  +++ TimeTrigger.java	2001/03/15 17:10:42	1.2
>  @@ -12,9 +12,10 @@
>    * Triggers can be time-based, event-based or other.
>    *
>    * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
>  + * @author <a href="mailto:ram.chidambaram@telus.com">Ram Chidambaram</a>
>    */
>   public interface TimeTrigger
>  -    extends Trigger
>  +    extends Trigger, Cloneable
>   {
>       /**
>        * Retrieve the next time at trigger activates relative to another
time.
>  @@ -22,4 +23,13 @@
>        * @return the time at which the trigger activates
>        */
>       long getTimeAfter( long time );
>  +
>  +    /**
>  +     * Get a clone of the original TimeTrigger with adjusted time
sensitive info.
>  +     *
>  +     * @return a new copy of the TimeTrigger
>  +     * @exception CloneNotSupportedException if trigger cannot be cloned
>  +     */
>  +    TimeTrigger getClone()
>  +        throws CloneNotSupportedException;
>   }
>  
>  
>  
>  1.2       +17 -4
jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/schedule
r/PeriodicTimeTrigger.java
>  
>  Index: PeriodicTimeTrigger.java
>  ===================================================================
>  RCS file:
/home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/service
s/scheduler/PeriodicTimeTrigger.java,v
>  retrieving revision 1.1
>  retrieving revision 1.2
>  diff -u -r1.1 -r1.2
>  --- PeriodicTimeTrigger.java	2001/02/22 07:51:35	1.1
>  +++ PeriodicTimeTrigger.java	2001/03/15 17:10:44	1.2
>  @@ -11,12 +11,14 @@
>    * This is the triggers based on a start time and period.
>    *
>    * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
>  + * @author <a href="mailto:ram.chidambaram@telus.com">Ram Chidambaram</a>
>    */
>   public class PeriodicTimeTrigger
>       implements TimeTrigger
>   {
>       protected final long    m_startTime;
>       protected final long    m_period;
>  +    private   final long    m_triggerTime;
>       
>       public PeriodicTimeTrigger( final int startTime, final int period )
>       {
>  @@ -24,13 +26,14 @@
>   
>           if( -1 == startTime )
>           {
>  -            m_startTime = current;
>  +            m_triggerTime = current;
>           }
>           else
>           {
>  -            m_startTime = current + startTime;
>  +            m_triggerTime = current + startTime;
>           }
>   
>  +        m_startTime = startTime;
>           m_period = period;
>       }
>   
>  @@ -41,16 +44,26 @@
>        */
>       public long getTimeAfter( final long time )
>       {
>  -        if( time <= m_startTime ) return m_startTime;
>  +        if( time <= m_triggerTime ) return m_triggerTime;
>           else
>           {
>               if( -1 == m_period ) return -1;
>   
>  -            final long over = time - m_startTime;
>  +            final long over = time - m_triggerTime;
>               final long remainder = over % m_period;
>   
>               return time + ( m_period - remainder );
>           }
>  +    }
>  +
>  +    /**
>  +     * Get a clone of the original TimeTrigger with adjusted time
sensitive info.
>  +     *
>  +     * @return a new copy of this TimeTrigger
>  +     */
>  +    public TimeTrigger getClone()
>  +    {
>  +        return new PeriodicTimeTrigger( (int) m_startTime, (int)
m_period );
>       }
>   
>       public String toString()
>  
>  
>  
>  1.2       +12 -0
jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/schedule
r/CronTimeTrigger.java
>  
>  Index: CronTimeTrigger.java
>  ===================================================================
>  RCS file:
/home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/service
s/scheduler/CronTimeTrigger.java,v
>  retrieving revision 1.1
>  retrieving revision 1.2
>  diff -u -r1.1 -r1.2
>  --- CronTimeTrigger.java	2001/02/22 07:51:35	1.1
>  +++ CronTimeTrigger.java	2001/03/15 17:10:45	1.2
>  @@ -15,6 +15,7 @@
>    * This is the holder triggers based on standard crontabs format.
>    *
>    * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
>  + * @author <a href="mailto:ram.chidambaram@telus.com">Ram Chidambaram</a>
>    */
>   public class CronTimeTrigger
>       implements TimeTrigger
>  @@ -223,6 +224,17 @@
>           
>           //return time in millis
>           return next.getTime().getTime();  
>  +    }
>  +
>  +    /**
>  +     * Get a clone of the original TimeTrigger.
>  +     *
>  +     * @return a new copy of this TimeTrigger
>  +     */
>  +    public TimeTrigger getClone()
>  +        throws CloneNotSupportedException
>  +    {
>  +        return (TimeTrigger) this.clone();
>       }
>   
>       public String toString()
>  
>  
>  
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: avalon-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: avalon-dev-help@jakarta.apache.org
>
>
Cheers,

Pete

*-----------------------------------------------------*
| "Faced with the choice between changing one's mind, |
| and proving that there is no need to do so - almost |
| everyone gets busy on the proof."                   |
|              - John Kenneth Galbraith               |
*-----------------------------------------------------*


---------------------------------------------------------------------
To unsubscribe, e-mail: avalon-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: avalon-dev-help@jakarta.apache.org