Mercurial > hg > mpdl-group
annotate software/mpdl-services-new/mpiwg-mpdl-cms/src/de/mpg/mpiwg/berlin/mpdl/cms/scheduler/CmsChainSchedulerListener.java @ 25:e9fe3186670c default tip
letzter Stand eingecheckt
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 21 May 2013 10:19:32 +0200 |
parents | |
children |
rev | line source |
---|---|
25
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1 package de.mpg.mpiwg.berlin.mpdl.cms.scheduler; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2 |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3 import java.util.logging.Logger; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4 import org.quartz.JobDataMap; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
5 import org.quartz.JobDetail; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
6 import org.quartz.JobExecutionContext; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
7 import org.quartz.JobExecutionException; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
8 import org.quartz.JobListener; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
9 |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
10 import de.mpg.mpiwg.berlin.mpdl.exception.ApplicationException; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
11 |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
12 public class CmsChainSchedulerListener implements JobListener { |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
13 private static Logger LOGGER = Logger.getLogger(CmsDocJob.class.getName()); |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
14 |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
15 public String getName() { |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
16 return "MpdlJobChainingListener"; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
17 } |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
18 |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
19 public void jobToBeExecuted(JobExecutionContext inContext) { |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
20 } |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
21 |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
22 public void jobExecutionVetoed(JobExecutionContext inContext) { |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
23 String message = "Quartz: JobChainingListener: Job execution was vetoed."; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
24 LOGGER.fine(message); |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
25 } |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
26 |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
27 public void jobWasExecuted(JobExecutionContext inContext, JobExecutionException inException) { |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
28 // after finishing his job it tries to schedule the next operation (if there is one in the queue) |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
29 CmsDocOperation docOperation = null; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
30 try { |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
31 CmsChainScheduler mpdlChainScheduler = CmsChainScheduler.getInstance(); |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
32 docOperation = getDocOperation(inContext); |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
33 mpdlChainScheduler.finishOperation(docOperation); |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
34 } catch (ApplicationException e) { |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
35 if (docOperation != null) { |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
36 docOperation.setErrorMessage(e.getMessage()); |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
37 } |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
38 LOGGER.severe(e.getMessage()); |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
39 } |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
40 } |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
41 |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
42 private CmsDocOperation getDocOperation(JobExecutionContext context) { |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
43 CmsDocOperation docOperation = null; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
44 if (context != null) { |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
45 JobDetail job = context.getJobDetail(); |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
46 JobDataMap parameters = job.getJobDataMap(); |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
47 docOperation = (CmsDocOperation) parameters.get("operation"); |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
48 } |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
49 return docOperation; |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
50 } |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
51 |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
52 |
e9fe3186670c
letzter Stand eingecheckt
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
53 } |