Author: nicolas
Date: Tue Apr 15 02:14:45 2008
New Revision: 648190

URL: http://svn.apache.org/viewvc?rev=648190&view=rev
Log:
PeriodicLogger can be started at a fixed Date

Modified:
    
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/listeners/HistorizedRepositoryDecorator.java
    
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractPeriodicLogger.java
    
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/SelectorPeriodicLogger.java
    
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/servlet/MonitoringListener.java

Modified: 
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/listeners/HistorizedRepositoryDecorator.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/listeners/HistorizedRepositoryDecorator.java?rev=648190&r1=648189&r2=648190&view=diff
==============================================================================
--- 
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/listeners/HistorizedRepositoryDecorator.java
 (original)
+++ 
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/listeners/HistorizedRepositoryDecorator.java
 Tue Apr 15 02:14:45 2008
@@ -44,7 +44,7 @@
 
     private int size;
 
-    public HistorizedRepositoryDecorator( long period, final int size, 
Observable repository )
+    public HistorizedRepositoryDecorator( int period, final int size, 
Observable repository )
     {
         super( period, repository );
         this.repository = repository;

Modified: 
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractPeriodicLogger.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractPeriodicLogger.java?rev=648190&r1=648189&r2=648190&view=diff
==============================================================================
--- 
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractPeriodicLogger.java
 (original)
+++ 
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractPeriodicLogger.java
 Tue Apr 15 02:14:45 2008
@@ -18,6 +18,8 @@
 package org.apache.commons.monitoring.reporting;
 
 import java.io.IOException;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.Timer;
 import java.util.TimerTask;
 
@@ -47,15 +49,35 @@
 
     /**
      * @param period the period (in ms) to log the monitoring state
-     * @param repository the target monitoring repository
+     * @param repository the observed repository
      */
-    public AbstractPeriodicLogger( long period, Repository.Observable 
repository )
+    public AbstractPeriodicLogger( int period, Repository.Observable 
repository )
+    {
+        this( period, null, repository );
+    }
+
+    /**
+     * Create and start a PeriodicLogger to observe and log the repository 
datas.
+     * If <tt>firstTime</tt> is null, the first time to log will be computed to
+     * log first at current date + period.
+     *
+     * @param period the period (in ms) to log the monitoring state
+     * @param firstTime the first time to log the observed repository (may be 
null)
+     * @param repository the observed repository
+     */
+    public AbstractPeriodicLogger( int period, Date firstTime, 
Repository.Observable repository )
     {
         super();
         this.repository = repository;
         observeRepositoryForPeriod();
         timer = new Timer();
-        timer.scheduleAtFixedRate( this, period, period );
+        if (firstTime == null)
+        {
+            Calendar c = Calendar.getInstance();
+            c.add( Calendar.MILLISECOND, period );
+            firstTime = c.getTime();
+        }
+        timer.scheduleAtFixedRate( this, firstTime, period );
     }
 
 
@@ -115,7 +137,7 @@
      * @param period secondary repository that observed the monitored state 
during the last active period
      */
     protected abstract void log( SecondaryRepository period ) throws 
IOException;
-       
+
     /**
      * @return the SecondaryRepository active for the current period.
      */

Modified: 
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/SelectorPeriodicLogger.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/SelectorPeriodicLogger.java?rev=648190&r1=648189&r2=648190&view=diff
==============================================================================
--- 
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/SelectorPeriodicLogger.java
 (original)
+++ 
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/SelectorPeriodicLogger.java
 Tue Apr 15 02:14:45 2008
@@ -19,6 +19,7 @@
 
 import java.io.IOException;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 import org.apache.commons.monitoring.Repository;
@@ -40,12 +41,13 @@
 
     /**
      * @param period the period (in ms) to log the monitoring state
-     * @param repository the target monitoring repository
+     * @param firstTime the first time to log (may be null)
+     * @param repository the observed repository
      * @param output the output file
      */
-    public SelectorPeriodicLogger( long period, Repository.Observable 
repository, List<String> selectors )
+    public SelectorPeriodicLogger( int period, Date firstTime, 
Repository.Observable repository, List<String> selectors )
     {
-        super( period, repository );
+        super( period, firstTime, repository );
         this.selectors = new Selector[selectors.size()];
         int i = 0;
         for ( String path : selectors )
@@ -54,14 +56,16 @@
         }
     }
 
+
+
     /**
      * @param period the period (in ms) to log the monitoring state
      * @param repository the target monitoring repository
      * @param output the output file
      */
-    public SelectorPeriodicLogger( long period, Repository.Observable 
repository, String[] selectors )
+    public SelectorPeriodicLogger( int period, Date firstTime, 
Repository.Observable repository, String[] selectors )
     {
-        this( period, repository, Arrays.asList( selectors ) );
+        this( period, firstTime, repository, Arrays.asList( selectors ) );
     }
 
     /**

Modified: 
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/servlet/MonitoringListener.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/servlet/MonitoringListener.java?rev=648190&r1=648189&r2=648190&view=diff
==============================================================================
--- 
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/servlet/MonitoringListener.java
 (original)
+++ 
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/servlet/MonitoringListener.java
 Tue Apr 15 02:14:45 2008
@@ -137,12 +137,12 @@
         Repository.Observable observable = (Repository.Observable) repository;
         int idx = history.indexOf( ':' );
         char[] ch = history.toCharArray();
-        long period = 0;
+        int period = 0;
         for ( int i = 0; i < idx; i++ )
         {
             if ( Character.isDigit( ch[i] ) )
                 continue;
-            period = Long.parseLong( history.substring( 0, i ) );
+            period = Integer.parseInt( history.substring( 0, i ) );
             String unit = history.substring( i, idx );
             if ( unit != null )
             {


Reply via email to