View Javadoc

1   package org.apache.commons.jelly.tags.quartz;
2   
3   /*
4    * Copyright 2002,2004 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  import org.apache.commons.jelly.JellyContext;
20  import org.apache.commons.jelly.Script;
21  import org.apache.commons.jelly.XMLOutput;
22  
23  import org.quartz.Job;
24  import org.quartz.JobDetail;
25  import org.quartz.JobDataMap;
26  import org.quartz.JobExecutionContext;
27  import org.quartz.JobExecutionException;
28  
29  /*** Implementation of a quart <code>Job</code> to execute jellyscript.
30   *
31   *  @author <a href="mailto:bob@eng.werken.com">bob mcwhirter</a>
32   */
33  public class JellyJob implements Job
34  {
35      // ------------------------------------------------------------
36      //     Constructors
37      // ------------------------------------------------------------
38  
39      /*** Construct.
40       */
41      public JellyJob()
42      {
43          // intentionally left blank.
44      }
45  
46      // ------------------------------------------------------------
47      //     Instance methods
48      // ------------------------------------------------------------
49  
50      // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
51      //     org.quartz.Job
52      // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
53  
54      /*** Execute this job.
55       *
56       *  @param jobContext Job context data.
57       *
58       *  @throws JobExecutionException If an error occurs during job execution.
59       */
60      public void execute(JobExecutionContext jobContext) throws JobExecutionException
61      {
62  
63          JobDetail  detail = jobContext.getJobDetail();
64  
65          JobDataMap data   = detail.getJobDataMap();
66  
67          Script script = (Script) data.get( "jelly.script" );
68  
69          JellyContext jellyContext = (JellyContext) data.get( "jelly.context" );
70  
71          XMLOutput    output       = (XMLOutput) data.get( "jelly.output" );
72  
73          try
74          {
75              script.run( jellyContext,
76                          output );
77              output.flush();
78          }
79          catch (Exception e)
80          {
81              e.printStackTrace();
82              throw new JobExecutionException( e,
83                                               false );
84          }
85      }
86  }