Hello warner,

the problem is that everythig you suggest is already done!
My tasks are under com.wuerth.phoenix.bugtrack.modules.scheduledjobs.

I do attach the classes i use to configure and start the scheduler.

I must precise that turbine does not let me use the classes embedded in the Turbine Jar.
So i have to use Fulcrum.

I'm  sad because everything worked correctly in the TDK2.1
The problems raised when i decided to shift to the TDK2.2

I'll be glad to have an answer also from the people that developed the fulcrum package.

thx!

Greetings

Fabio

Warner Onstine wrote:
Oops, didn't notice you were using fulcrum, so it should be
http://jakarta.apache.org/turbine/fulcrum/howto/scheduler-service.html

-warner

----- Original Message -----
From: "Warner Onstine" <[EMAIL PROTECTED]>
To: "Turbine Users List" <[EMAIL PROTECTED]>
Sent: Wednesday, July 17, 2002 7:49 AM
Subject: Re: Re: Suggestions with Turbine Scheduler.]


  
For configuring, not much needs to be done, you will need to turn on the
Scheduler service in TurbineResources.properties file.


    
http://jakarta.apache.org/turbine/turbine-2/services/scheduler-service.html
  
Also make sure that you put your scheduled jobs in a package
com.mycompany.app.modules.scheduledjobs, or whereever you have the rest of
your modules (Actions, Screens, etc.). Just make sure that you have
scheduledjobs as the package.

-warner

----- Original Message -----
From: "Fabio Daprile" <[EMAIL PROTECTED]>
To: "turbine Users List" <[EMAIL PROTECTED]>
Sent: Wednesday, July 17, 2002 7:25 AM
Subject: [Fwd: Re: Suggestions with Turbine Scheduler.]


    
-------- Original Message --------
Subject: Re: Suggestions with Turbine Scheduler.
Date: Wed, 17 Jul 2002 07:19:53 -0700
From: "Warner Onstine" <[EMAIL PROTECTED]>
To: "Fabio Daprile" <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>



Hi Fabio,
I would recommend you send this to the turbine-users list, I and others
      
are
    
more likely to help you so that others can benefit from the discussion.

-warner

----- Original Message -----
From: "Fabio Daprile"
To:
Sent: Wednesday, July 17, 2002 6:09 AM
Subject: Suggestions with Turbine Scheduler.


      
Hello Warner,

i've seen a message on the mail list of turbine that you have been
        
able
  
to start jobs with turbine 2.2.
I'm currently using the tdk 2.2 with the following jars:

torque-3.0-b2-dev.jar
turbine-2.2-b2-dev.jar
fulcrum-3.0-b2-dev.jar

Attached are my configuration files.
I've got crazy trying to start a job, but no way.

Maybe you can help me, giving me some advices on configuration or what
        
else.
      
I can see that the Thread is Alive, i can get the next running time
        
for
  
my jobs, but these are never started.

Help will be really appreciated.

thx in advance.
Greetings

Fabio Daprile

--
Fabio Daprile

Würth-Phoenix Srl
Via Kravogl 4, I-39100 Bolzano
Tel: +39 0471/564111 - (direct 564070)
Fax: +39 0471/564122

mailto:[EMAIL PROTECTED]
http://www.wuerth-phoenix.com
http://www.wuerth.com




        
--
Fabio Daprile

Würth-Phoenix Srl
Via Kravogl 4, I-39100 Bolzano
Tel: +39 0471/564111 - (direct 564070)
Fax: +39 0471/564122

mailto:[EMAIL PROTECTED]
http://www.wuerth-phoenix.com
http://www.wuerth.com



      
--
To unsubscribe, e-mail:
    
<mailto:[EMAIL PROTECTED]>
  
For additional commands, e-mail:
    
<mailto:[EMAIL PROTECTED]>
  
    


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

  

-- 
Fabio Daprile

Würth-Phoenix Srl
Via Kravogl 4, I-39100 Bolzano
Tel: +39 0471/564111 - (direct 564070)
Fax: +39 0471/564122

mailto:[EMAIL PROTECTED]
http://www.wuerth-phoenix.com
http://www.wuerth.com


package com.wuerth.phoenix.bugtrack.modules.actions;

/**
 * Title:        Bug tracking system
 * Description:  Development of a Bug Tracking and Enhancement request system
 * Copyright:    Copyright (c) 2001
 * Company:
 * @author Fabio Daprile
 * @version 1.0
 */

//Turbine
import org.apache.velocity.context.Context;
import org.apache.turbine.util.RunData;
import org.apache.fulcrum.schedule.TurbineSchedulerService;
import org.apache.fulcrum.schedule.JobEntryPeer;
import org.apache.fulcrum.schedule.ScheduleService;
import org.apache.fulcrum.schedule.JobEntry;
import org.apache.fulcrum.TurbineServices;
import org.apache.turbine.modules.actions.VelocityAction;
import org.apache.turbine.util.ParameterParser;
import org.apache.torque.util.Criteria;

import java.util.*;


public class SchedulerStart extends VelocityAction
{

     public void doPerform(RunData data, Context context) throws Exception
     {
        Criteria _criteria = null;
        Criteria.Criterion _criterion1 = null;

        List _schedulerParams = null;
        JobEntry je;
        ParameterParser params = data.getParameters();

        _criteria = new Criteria();
        _criterion1 = _criteria.getNewCriterion(JobEntryPeer.JOB_ID,
                                                 new Integer(0),
                                                  Criteria.GREATER_THAN);
        try
        {
          _schedulerParams = JobEntryPeer.doSelect(_criteria);
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }

        try
        {
            //access the service singleton
            TurbineSchedulerService ss = 
(TurbineSchedulerService)TurbineServices.getInstance().getService(TurbineSchedulerService.SERVICE_NAME);
            ss.init();
            ss.restart();
            //System.out.println(ss.getJob(0).getNextRuntime());
            System.out.println("next run " + 
((JobEntry)(ss.listJobs().get(0))).getNextRunAsString());

            //set the Message
            System.out.println("Task started successfully");
            System.out.println("listed scheduler jobs " + ss.listJobs().size());
        }
        catch (Exception e)
        {
            e.printStackTrace();
            //set the Message
            data.setMessage("Task failed to start!");
        }

        //setTemplate(schedule,SchedulerStatus.vm);

     }
}


package com.wuerth.phoenix.bugtrack.modules.screens;

//java stuff
import java.util.*;
import java.io.*;
import java.text.SimpleDateFormat;
import javax.servlet.http.HttpSession;

//turbine stuff
import org.apache.turbine.modules.screens.VelocityScreen;
import org.apache.turbine.util.RunData;
import org.apache.velocity.context.Context;
import org.apache.turbine.util.ParameterParser;
import org.apache.torque.util.Criteria;
import org.apache.fulcrum.schedule.JobEntryPeer;
import org.apache.fulcrum.schedule.JobEntry;

//bugtrack stuff
import com.wuerth.phoenix.bugtrack.modules.utilclasses.IdFactory;
import com.wuerth.phoenix.bugtrack.om.*;
import com.wuerth.phoenix.bugtrack.modules.utilclasses.CheckPermissions;

/**
 * Title:        Bug tracking system
 * Description:  Development of a Bug Tracking and Enhancement request system
 * Copyright:    Copyright (c) 2001
 * Company:
 * @author Fabio Daprile
 * @version 1.0
 */

public class ConfigureScheduler extends SecureScreen
{
    /**
     * Place all the data object in the context
     * for use in the template.
     */
    public void doBuildTemplate( RunData data, Context context )
    {
        Criteria _criteria = null;
        Criteria.Criterion _criterion1 = null;
        Criteria.Criterion _criterion2 = null;
        Criteria.Criterion _criterion3 = null;

        SimpleDateFormat _sdfExtended;
        SimpleDateFormat _sdf;

        List _schedulerParams = null;

        Users _user;

        CheckPermissions _ckperm = new CheckPermissions();

        ParameterParser _formParams;
        HttpSession _session;

        if (super.isLoggedIn(data))
        {
          _formParams = data.getParameters();
          _session = data.getSession();

          _sdfExtended = new SimpleDateFormat ("EEE MM-dd-yyyy hh.mm.ss aaa", 
Locale.US);
          _sdf = new SimpleDateFormat ("EEE MM-dd-yyyy", Locale.US);

          context.put("Format", _sdf);
          context.put("ExtFormat", _sdfExtended);

          _user = (Users)(_session.getAttribute("myUser")); // get attributes of user 
and ACL
          context.put("User", _user);

          context.put("TopQueues", getEntries(_user));

          if (_formParams.getString("Mode").equals("save"))
          {
            try
            {
              if (!_ckperm.checkPermission(_user, null, null, "AdminScheduler"))
              {
                _formParams.add("Message","You are not allowed to enter the scheduler 
section!");
                this.doRedirect(data, "ErrorTemplate.vm");
              }

              context.put("Messages", this.saveSchedulerConfig(data, context));
            }
            catch (Exception e)
            {
              e.printStackTrace();
            }
          }

          if (!_ckperm.checkPermission(_user, null, null, "AdminScheduler"))
          {
            _formParams.add("Message","You are not allowed to enter the scheduler 
section!");
            try
            {
              this.doRedirect(data, "ErrorTemplate.vm");
            }
            catch(Exception e)
            {
              e.printStackTrace();
            }
          }

          _criteria = new Criteria();
          _criterion1 = _criteria.getNewCriterion(JobEntryPeer.JOB_ID,
                                                 new Integer(0),
                                                  Criteria.GREATER_THAN);
          try
          {
            _schedulerParams = JobEntryPeer.doSelect(_criteria);
          }
          catch(Exception e)
          {
            e.printStackTrace();
          }
          context.put("SchedParams", _schedulerParams);
          context.put("schedConf", new ConfigureScheduler());
        }
        else
        {
          setTemplate(data,"Login.vm");
        }
    }

    public Vector saveSchedulerConfig( RunData data, Context context ) throws Exception
    {
      JobEntry _jobentry;
      Hashtable _properties;
      Vector _result = null;
      int _queueId = 0;

      Users _user = null;
      String _userId;

      String _status = "";
      int _age;
      int _minseverity;
      int _maxseverity;
      int _dest;
      int _second;
      int _minute;
      int _hour;
      int _weekday;
      int _dayofmonth;
      String _task = "";
      String _email = "";

      ParameterParser _formParams;
      HttpSession _session;

      Criteria _criteria = null;
      Criteria.Criterion _criterion1 = null;
      Criteria.Criterion _criterion2 = null;
      Criteria.Criterion _criterion3 = null;
      Criteria.Criterion _criterion4 = null;
      Criteria.Criterion _criterion5 = null;
      Criteria.Criterion _criterion6 = null;
      Criteria.Criterion _criterion7 = null;
      Criteria.Criterion _criterion8 = null;

      Vector messages = new Vector();

      _formParams = data.getParameters();
      _session = data.getSession();

      _user = (Users)(_session.getAttribute("myUser"));
      _userId = _user.getId().toString();

      _status = _formParams.getString("Status");
      _age = _formParams.getInt("Age");
      _minseverity = _formParams.getInt("MinSeverity");
      _maxseverity = _formParams.getInt("MaxSeverity");
      _dest = _formParams.getInt("Dest");
      _second = _formParams.getInt("second");
      _minute = _formParams.getInt("minute");
      _hour = _formParams.getInt("hour");
      _weekday = _formParams.getInt("weekday");
      _dayofmonth = _formParams.getInt("dayofmonth");
      _task = _formParams.getString("task");
      _email = _formParams.getString("email");

      if (_second < -2 || _second > 59)
        messages.add("Valid values for second are (0-59) !");
      else if (_minute < -2 || _minute > 59)
        messages.add("Valid values for minute are (0-59) !");
      else if (_hour < -2 || _hour > 23)
        messages.add("Valid values for hours are (0-23) !");
      else if (_weekday < -2 || _weekday > 7)
        messages.add("Valid values for day of week are (1-7) !");
      else if (_dayofmonth < -2 || _dayofmonth > 31)
        messages.add("Valid values for day of month are (1-31) !");
      else
      {
        _properties = new Hashtable();

        _properties.put("Status", _status);
        _properties.put("Age", new Integer(_age));
        _properties.put("MinSeverity", new Integer(_minseverity));
        _properties.put("MaxSeverity", new Integer(_maxseverity));
        _properties.put("Dest", new Integer(_dest));

        _criteria = new Criteria();

        _criterion1 = _criteria.getNewCriterion(JobEntryPeer.JOB_SECOND,
                                                 new Integer(_second),
                                                  Criteria.EQUAL);
        _criterion2 = _criteria.getNewCriterion(JobEntryPeer.JOB_MINUTE,
                                                 new Integer(_minute),
                                                  Criteria.EQUAL);
        _criterion3 = _criteria.getNewCriterion(JobEntryPeer.JOB_HOUR,
                                                 new Integer(_hour),
                                                  Criteria.EQUAL);
        _criterion4 = _criteria.getNewCriterion(JobEntryPeer.WEEK_DAY,
                                                 new Integer(_weekday),
                                                  Criteria.EQUAL);
        _criterion5 = _criteria.getNewCriterion(JobEntryPeer.DAY_OF_MONTH,
                                                 new Integer(_dayofmonth),
                                                  Criteria.EQUAL);
        _criterion6 = _criteria.getNewCriterion(JobEntryPeer.TASK,
                                                 _task,
                                                  Criteria.EQUAL);
        _criterion7 = _criteria.getNewCriterion(JobEntryPeer.JOB_PROPERTY,
                                                 _properties,
                                                  Criteria.EQUAL);
        _criterion8 = _criteria.getNewCriterion(JobEntryPeer.EMAIL,
                                                 _email,
                                                  Criteria.EQUAL);
        _criteria.add(_criterion1);
        _criteria.add(_criterion2);
        _criteria.add(_criterion3);
        _criteria.add(_criterion4);
        _criteria.add(_criterion5);
        _criteria.add(_criterion6);
        _criteria.add(_criterion7);
        _criteria.add(_criterion8);

        try
        {
          JobEntryPeer.doInsert(_criteria);
        }
        catch(Exception e)
        {
          //System.out.println(e.getMessage());
        }
      }
      return messages;
    }

    private List getEntries(Users _user)
    {
        Criteria _criteria;
        Criteria.Criterion _criterion1;
        List _results;
        List _allQueues;
        ListIterator _iter;
        Queues _tempQueue;
        try
        {
            _criteria = new Criteria();
            _criterion1 = _criteria.getNewCriterion(QueuesPeer.DISABLED,
                                                  new Integer(0),
                                                  Criteria.EQUAL);
            _criteria.add(_criterion1);
            _criteria.addAscendingOrderByColumn(QueuesPeer.NAME);
            _results = QueuesPeer.doSelect(_criteria);

            _allQueues = new ArrayList();

            _iter = _results.listIterator();

            while(_iter.hasNext())
            {
              _tempQueue = (Queues)_iter.next();

              if (_tempQueue.checkVisibility(_user))
                _allQueues.add(_tempQueue);
            }
        }
        catch (Exception e)
        {
            return null;
        }

        return _allQueues;
    }

    public Hashtable getPropertyAsHashtable(byte[] p0)
    {
      Hashtable prop = null;
      try
      {
        ByteArrayInputStream istream = new ByteArrayInputStream(p0);
        ObjectInputStream p = new ObjectInputStream(istream);

        prop = (Hashtable)p.readObject();

       }
       catch(Exception e)
       {e.printStackTrace();}
       return prop;
    }
}
package com.wuerth.phoenix.bugtrack.modules.scheduledjobs;

//JDK
import java.util.*;
import java.io.*;
import java.text.SimpleDateFormat;

//Turbine
import org.apache.torque.util.Criteria;
import org.apache.fulcrum.schedule.JobEntryPeer;
import org.apache.fulcrum.schedule.ScheduledJob;
import org.apache.fulcrum.schedule.JobEntry;
import org.apache.turbine.util.Log;
import com.wuerth.phoenix.bugtrack.modules.utilclasses.SendMail;
import org.apache.turbine.util.mail.MailMessage;
import org.apache.turbine.services.resources.TurbineResources;

//bugtrack stuff
import com.wuerth.phoenix.bugtrack.modules.utilclasses.IdFactory;
import com.wuerth.phoenix.bugtrack.om.*;
import com.wuerth.phoenix.bugtrack.modules.screens.DateDelta;


public class EscalationProcess extends ScheduledJob
{
    private int taskcount = 0;

    /**
     * Constructor
     */
     public EscalationProcess()
     {
         //do Task initialization here
     }


    /**
     * Run the Jobentry from the scheduler queue.
     * From ScheduledJob.
     *
     * @param job The job to run.
     */
    public void run( JobEntry job ) throws Exception
    {
      Criteria _criteria = null;
      Criteria.Criterion _criterion1 = null;
      Criteria.Criterion _criterion2 = null;
      Criteria.Criterion _criterion3 = null;
      Criteria.Criterion _criterion4 = null;
      Criteria.Criterion _criterion5 = null;
      Criteria.Criterion _criterion6 = null;
      Criteria.Criterion _criterion7 = null;
      Criteria.Criterion _criterion8 = null;

      SimpleDateFormat _sdfExtended;
      SimpleDateFormat _sdf;

      Hashtable _property;

      int _age = 0;
      int _minseverity = 0;
      int _maxseverity = 0;
      int _dest = 0;
      String _status = "";
      String _email = "";
      String _mailbody;

      Templates _template;
      Iterator _queuesIter;
      Iterator _projectsIter;
      Projects _project;
      Queues _queue;
      List _groups;
      Groups _group;
      List _ticketsList;
      List _groupMembers;
      Iterator _groupMembersIter;
      List _recipients;
      Users _user;

      _sdfExtended = new SimpleDateFormat ("EEE MM-dd-yyyy hh.mm.ss aaa", Locale.US);
      _sdf = new SimpleDateFormat ("EEE MM-dd-yyyy", Locale.US);

      System.out.println("starting escalation process");

      ByteArrayInputStream istream = new ByteArrayInputStream(job.getProperty());
      ObjectInputStream p = new ObjectInputStream(istream);

      _property = (Hashtable)p.readObject();

      _status = (String)(_property.get("Status"));
      _age = ((Integer)_property.get("Age")).intValue();
      _minseverity = ((Integer)_property.get("MinSeverity")).intValue();
      _maxseverity = ((Integer)_property.get("MaxSeverity")).intValue();
      _dest = ((Integer)_property.get("Dest")).intValue();
      _email = job.getEmail();

      MailMessage msg = new MailMessage();
      msg.setTo(_email);
      msg.setSubject("EscalationProcess executed successfully!");
      _mailbody = "The EscalationProcess succesfully executed at " + 
_sdfExtended.format(Calendar.getInstance().getTime()) + "\n" + " with parameters " + 
_property.toString();
      msg.setBody(_mailbody);
      msg.setFrom(TurbineResources.getString("mail.administrative.user") + " " + 
TurbineResources.getString("mail.administrative.adress"));
      System.out.println(TurbineResources.getString("mail.administrative.user") + " " 
+ TurbineResources.getString("mail.administrative.adress"));

      msg.setHost(TurbineResources.getString("mail.server"));
      msg.send();

      System.out.println("notification mail sent");

      _queuesIter = this.getEntries().iterator();

      while(_queuesIter.hasNext())
      {
        _queue = (Queues)(_queuesIter.next());

        if(_dest == 1)
        {
          _criteria = new Criteria();
          _criterion1 = _criteria.getNewCriterion(GroupsPeer.QUEUEID,
                                                  _queue.getId().toString(),
                                                  Criteria.EQUAL);
          _criterion2= _criteria.getNewCriterion(GroupsPeer.MODERATORTYPE,
                                                  "QueueMod",
                                                  Criteria.EQUAL);

          _criteria.add(_criterion1.and(_criterion2));
          _groups = GroupsPeer.doSelect(_criteria);

          if(_groups.isEmpty())
            break;
          else
          {
            _group = (Groups)(_groups.get(0));
            _groupMembers = _group.getGroupmemberss();

            if(_groupMembers.isEmpty())
            {
              break;
            }
            else
            {
              _ticketsList = this.getTickets(_age, _status, _minseverity, 
_maxseverity, _queue);

              if (_ticketsList.isEmpty())
                break;
              else
              {
                _groupMembersIter = _groupMembers.iterator();

                _recipients = new ArrayList();

                while(_groupMembersIter.hasNext())
                {
                  _user = ((Groupmembers)(_groupMembersIter.next())).getUsers();

                  _recipients.add(_user);
                }

                if(_recipients.isEmpty())
                  break;
                else
                {
                  _template = new Templates();
                  _template = _template.init("8");


                  SendMail _snd = new SendMail();
                  _snd.setFrom(TurbineResources.getString("mail.administrative.user") 
+ " " + TurbineResources.getString("mail.administrative.adress"));
                  _snd.setRecipientsforScheduler(_recipients);
                  //_snd.setHost("mail.tin.it");
                  _snd.setHost(TurbineResources.getString("mail.server"));
                  _snd.setTickets(_ticketsList);
                  _snd.setAge(_age);
                  //_snd.setTicket(_ticket);
                  //_snd.setTransaction(this);
                  
_snd.setReplyTo(TurbineResources.getString("mail.administrative.user") + " " + 
TurbineResources.getString("mail.administrative.adress"));
                  _snd.setTemplate(_template);
                  _snd.send_for_scheduler();
                }
              }
            }
          }
        }
        else if(_dest == 2)
        {

          _projectsIter = _queue.getProjectss().iterator();

          while(_projectsIter.hasNext())
          {
            _project = (Projects)(_projectsIter.next());

            _criteria = new Criteria();
            _criterion1 = _criteria.getNewCriterion(GroupsPeer.QUEUEID,
                                                  _queue.getId().toString(),
                                                  Criteria.EQUAL);
            _criterion2 = _criteria.getNewCriterion(GroupsPeer.PROJECTID,
                                                  _project.getId().toString(),
                                                  Criteria.EQUAL);
            _criterion3 = _criteria.getNewCriterion(GroupsPeer.MODERATORTYPE,
                                                  "ProjectMod",
                                                  Criteria.EQUAL);
            _criteria.add(_criterion1.and(_criterion2.and(_criterion3)));

            _groups = GroupsPeer.doSelect(_criteria);

            if(_groups.isEmpty())
              break;
            else
            {
              _group = (Groups)(_groups.get(0));
              _groupMembers = _group.getGroupmemberss();

              if(_groupMembers.isEmpty())
              {
                break;
              }
              else
              {
                _ticketsList = this.getTickets(_age, _status, _minseverity, 
_maxseverity, _queue);

                if (_ticketsList.isEmpty())
                  break;
                else
                {
                  _groupMembersIter = _groupMembers.iterator();

                  _recipients = new ArrayList();

                  while(_groupMembersIter.hasNext())
                  {
                    _user = ((Groupmembers)(_groupMembersIter.next())).getUsers();

                    _recipients.add(_user);
                  }

                  if(_recipients.isEmpty())
                    break;
                  else
                  {
                    _template = new Templates();
                    _template = _template.init("8");

                    SendMail _snd = new SendMail();
                    
_snd.setFrom(TurbineResources.getString("mail.administrative.user") + " " + 
TurbineResources.getString("mail.administrative.adress"));
                    _snd.setRecipientsforScheduler(_recipients);
                    //_snd.setHost("mail.tin.it");
                    _snd.setHost(TurbineResources.getString("mail.server"));
                    _snd.setTickets(_ticketsList);
                    _snd.setAge(_age);
                    //_snd.setTicket(_ticket);
                    //_snd.setTransaction(this);
                    
_snd.setReplyTo(TurbineResources.getString("mail.administrative.user") + " " + 
TurbineResources.getString("mail.administrative.adress"));
                    _snd.setTemplate(_template);
                    _snd.send_for_scheduler();
                  }
                }
              }
            }
          }
        }
      }
    }

    private List getEntries()
    {
        Criteria _criteria;
        Criteria.Criterion _criterion1;

        try
        {
            _criteria = new Criteria();
            _criterion1 = _criteria.getNewCriterion(QueuesPeer.DISABLED,
                                                  new Integer(0),
                                                  Criteria.EQUAL);
            _criteria.add(_criterion1);
            return QueuesPeer.doSelect(_criteria);
        }
        catch (Exception e)
        {
            return null;
        }
    }

    private ArrayList getTickets(int _age, String _status, int _minseverity, int 
_maxseverity, Queues _queue)
    {
        Criteria _criteria;
        Criteria.Criterion _criterion1;
        Criteria.Criterion _criterion2;
        Criteria.Criterion _criterion3;
        Criteria.Criterion _criterion4;
        Criteria.Criterion _criterion5;
        Criteria.Criterion _criterion6;

        Iterator _ticketsIter;
        Tickets _ticket;
        List _tickets;

        ArrayList _ticketsList;

        DateDelta _delta = new DateDelta();
        long _dayDelta = 0;

        try
        {
            _criteria = new Criteria();
            _criterion1 = _criteria.getNewCriterion(TicketsPeer.DISABLED, new 
Integer(0), Criteria.EQUAL);
            _criterion2 = _criteria.getNewCriterion(TicketsPeer.QUEUEID, 
_queue.getId().toString(), Criteria.EQUAL);
            _criterion3 = _criteria.getNewCriterion(TicketsPeer.INITIALPRIORITY, new 
Integer(_minseverity), Criteria.GREATER_EQUAL);
            _criterion4 = _criteria.getNewCriterion(TicketsPeer.INITIALPRIORITY, new 
Integer(_maxseverity), Criteria.LESS_EQUAL);

            
_criteria.add(_criterion1.and(_criterion2.and(_criterion3.and(_criterion4))));

            if(!_status.equals("all"))
            {
              _criterion5 = _criteria.getNewCriterion(TicketsPeer.STATUS, _status, 
Criteria.EQUAL);

              _criteria.and(_criterion5);
            }

            _criteria.addAscendingOrderByColumn(TicketsPeer.STATUS);
            _criteria.addAscendingOrderByColumn(TicketsPeer.ID);

            //System.out.println(_criteria.toString());

            _tickets = TicketsPeer.doSelect(_criteria);
            _ticketsIter = _tickets.iterator();
            _ticketsList = new ArrayList();

            while(_ticketsIter.hasNext())
            {
              _ticket = (Tickets)(_ticketsIter.next());

              if(!_ticket.isMerged())
              {
                _dayDelta = _delta.getDayDelta(_ticket.getLastupdatetimestamp(), 
Calendar.getInstance().getTime());

                if (_age == 1 && _dayDelta <= 7)
                  _ticketsList.add(_ticket);
                else if (_age == 2 && (_dayDelta > 7 && _dayDelta <= 14))
                  _ticketsList.add(_ticket);
                else if (_age == 3 && (_dayDelta > 14 && _dayDelta <= 21))
                  _ticketsList.add(_ticket);
                else if (_age == 4 && (_dayDelta > 21 && _dayDelta <= 28))
                  _ticketsList.add(_ticket);
                else if (_age == 5 && _dayDelta > 28)
                  _ticketsList.add(_ticket);
              }
            }
        }
        catch (Exception e)
        {
            return null;
        }

        return _ticketsList;
    }
}


package com.wuerth.phoenix.bugtrack.modules.scheduledjobs;

//JDK
import java.util.Date;

//Turbine
import org.apache.fulcrum.schedule.ScheduledJob;
import org.apache.fulcrum.schedule.JobEntry;
import org.apache.turbine.util.Log;
import com.wuerth.phoenix.bugtrack.modules.utilclasses.SendMail;
import org.apache.turbine.util.mail.MailMessage;
import org.apache.turbine.services.resources.TurbineResources;


public class SimpleScheduledJob extends ScheduledJob
{
    private int taskcount = 0;

    /**
     * Constructor
     */
     public SimpleScheduledJob()
     {
         //do Task initialization here
     }


    /**
     * Run the Jobentry from the scheduler queue.
     * From ScheduledJob.
     *
     * @param job The job to run.
     */
    public void run( JobEntry job ) throws Exception
    {

        System.out.println("job started");

        System.out.println("Job Id=" + job.getPrimaryKeyAsString());
        MailMessage sm = new MailMessage();
        sm.setHost(TurbineResources.getString("mail.server"));
        //sm.setHeaders("X-Mailer: Sendmail class, X-Priority: 1(Highest)");
        sm.setFrom(TurbineResources.getString("mail.administrative.user") + " " + 
TurbineResources.getString("mail.administrative.adress"));
        sm.setTo(TurbineResources.getString("mail.administrative.user") + " " + 
TurbineResources.getString("mail.administrative.adress"));
        sm.setSubject("Job confirmation");
        sm.setBody("Your job has been executed");
        sm.send();

        //iterate the task counter
        taskcount++;
    }
}



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to