home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2004 December / PCpro_2004_12.ISO / files / webserver / xampp / xampp-cocoon-addon-1.4.9-installer.exe / cron.js < prev    next >
Encoding:
JavaScript  |  2004-07-12  |  6.3 KB  |  146 lines

  1. /*
  2. * Copyright 1999-2004 The Apache Software Foundation
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. *     http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. function Format() {
  17. }
  18.     
  19. Format.prototype.format = function(date) {
  20.     if( date == null || date == undefined )
  21.         return "-";
  22.        return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
  23. }
  24. Format.prototype.parse = function(date) {
  25.     if( date == null || date == undefined )
  26.         return "";
  27.        return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(date);
  28. }
  29.  
  30. function cron( realPath )
  31. {
  32.     var done = false;
  33.     var scheduler = cocoon.getComponent(Packages.org.apache.cocoon.components.cron.JobScheduler.ROLE);
  34.     var msg_param_key = Packages.org.apache.cocoon.components.cron.TestCronJob.PARAMETER_MESSAGE;
  35.     var sleep_param_key = Packages.org.apache.cocoon.components.cron.TestCronJob.PARAMETER_SLEEP;
  36.     var pipeline_param_key = Packages.org.apache.cocoon.components.cron.TestCronJob.PARAMETER_PIPELINE;
  37.     var testjobrole = "org.apache.cocoon.components.cron.CronJob/test";
  38.     var logsize = 15;
  39.     var formatter = new Format();
  40.     var jobname = "";
  41.     var message = "I'm here";
  42.     var sleep = "23";
  43.     var pipeline = "samples/hello-world/hello.xml";
  44.     var cronexpr = "";
  45.     var intervalexpr = "";
  46.     var atexpr = "";
  47.     while( ! done )
  48.     {
  49.         var jobnames = scheduler.getJobNames();
  50.         var list = [];
  51.         for( i = 0; i < jobnames.length; i++ ) 
  52.         {
  53.             list[ i ] = scheduler.getJobSchedulerEntry( jobnames[ i ] );
  54.         }
  55.         
  56.         var fileName = realPath + "/WEB-INF/logs/cron.log";
  57.         var rdr = new java.io.BufferedReader( java.io.FileReader( fileName ) );
  58.         var count = 0;
  59.         var lines = new java.util.LinkedList();
  60.         var line = rdr.readLine();
  61.         while( line != null )
  62.         {
  63.             count++;
  64.             lines.addLast( line );
  65.             if( count > logsize )
  66.             {
  67.                 lines.removeFirst();
  68.             }
  69.             line = rdr.readLine();
  70.         }
  71.         cocoon.sendPageAndWait( "cron.view", { "entries"      : list, 
  72.                                                "log"          : lines,
  73.                                                "formatter"    : formatter,
  74.                                                "jobname"      : jobname,
  75.                                                "message"      : message,
  76.                                                "sleep"        : sleep,
  77.                                                "pipeline"     : pipeline,                                               
  78.                                                "cronexpr"     : cronexpr,
  79.                                                "intervalexpr" : intervalexpr,
  80.                                                "atexpr"       : atexpr
  81.                                              } 
  82.         );
  83.         var action = cocoon.request.getParameter( "action" );
  84.         if( action == "remove" )
  85.         {
  86.             var name = cocoon.request.getParameter( "name" );
  87.             scheduler.removeJob( name );
  88.         }
  89.         else if( action == "add" )
  90.         {
  91.             jobname = cocoon.request.getParameter( "jobname" );
  92.             message = cocoon.request.getParameter( "message" );
  93.             sleep = cocoon.request.getParameter( "sleep" );
  94.             pipeline = cocoon.request.getParameter( "pipeline" );
  95.             cronexpr = cocoon.request.getParameter( "cronexpr" );
  96.             intervalexpr = cocoon.request.getParameter( "intervalexpr" );
  97.             atexpr = cocoon.request.getParameter( "atexpr" );
  98.             
  99.             var scheduletype = cocoon.request.getParameter( "cron" );
  100.             if( scheduletype != null )
  101.             {
  102.                 var params = new Packages.org.apache.avalon.framework.parameters.Parameters();
  103.                 params.setParameter( msg_param_key, message );
  104.                 var sleepms = sleep * 1000;
  105.                 params.setParameter( sleep_param_key, sleepms );
  106.                 params.setParameter( pipeline_param_key, pipeline );
  107.                 scheduler.addJob(jobname, testjobrole, cronexpr, false, params, null);
  108.             }
  109.             scheduletype = cocoon.request.getParameter( "periodic" );
  110.             if( scheduletype != null )
  111.             {
  112.                 var params = new Packages.org.apache.avalon.framework.parameters.Parameters();
  113.                 params.setParameter( msg_param_key, message );
  114.                 var sleepms = sleep * 1000;
  115.                 params.setParameter( sleep_param_key, sleepms );
  116.                 params.setParameter( pipeline_param_key, pipeline );                
  117.                 scheduler.addPeriodicJob(jobname, testjobrole, intervalexpr, false, params, null);
  118.             }
  119.             scheduletype = cocoon.request.getParameter( "at" );
  120.             if( scheduletype != null )
  121.             {
  122.                 var params = new Packages.org.apache.avalon.framework.parameters.Parameters();
  123.                 params.setParameter( msg_param_key, message );
  124.                 var sleepms = sleep * 1000;
  125.                 params.setParameter( sleep_param_key, sleepms );
  126.                 params.setParameter( pipeline_param_key, pipeline );                
  127.                 var date = formatter.parse( atexpr );
  128.                 scheduler.fireJobAt(date, jobname, testjobrole, params, null)
  129.             }
  130.             scheduletype = cocoon.request.getParameter( "immediately" );
  131.             if( scheduletype != null )
  132.             {
  133.                 var params = new Packages.org.apache.avalon.framework.parameters.Parameters();
  134.                 params.setParameter( msg_param_key, message );
  135.                 var sleepms = sleep * 1000;
  136.                 params.setParameter( sleep_param_key, sleepms );
  137.                 params.setParameter( pipeline_param_key, pipeline );                
  138.                 scheduler.fireJob(testjobrole, params, null)
  139.             }
  140.         }
  141.         else
  142.         {
  143.             // do a refresh
  144.         }
  145.     }
  146. }