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