1 package org.apache.maven.continuum.scheduler;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.continuum.purge.ContinuumPurgeManager;
23 import org.apache.continuum.purge.ContinuumPurgeManagerException;
24 import org.apache.maven.continuum.Continuum;
25 import org.apache.maven.continuum.model.project.Schedule;
26 import org.codehaus.plexus.scheduler.AbstractJob;
27 import org.quartz.JobDetail;
28 import org.quartz.JobExecutionContext;
29 import org.slf4j.Logger;
30
31
32
33
34
35
36 public class ContinuumPurgeJob
37 extends AbstractJob
38 {
39 public static final String PURGE_GROUP = "PURGE_GROUP";
40
41 public void execute( JobExecutionContext context )
42 {
43 if ( isInterrupted() )
44 {
45 return;
46 }
47
48
49
50
51
52 JobDetail jobDetail = context.getJobDetail();
53
54
55
56
57
58 Logger logger = (Logger) jobDetail.getJobDataMap().get( AbstractJob.LOGGER );
59
60 String jobName = jobDetail.getName();
61
62 logger.info( ">>>>>>>>>>>>>>>>>>>>> Executing purge job (" + jobName + ")..." );
63
64 Continuum continuum = (Continuum) jobDetail.getJobDataMap().get( ContinuumSchedulerConstants.CONTINUUM );
65
66 ContinuumPurgeManager purgeManager = continuum.getPurgeManager();
67
68 Schedule schedule = (Schedule) jobDetail.getJobDataMap().get( ContinuumSchedulerConstants.SCHEDULE );
69
70 try
71 {
72 purgeManager.purge( schedule );
73 }
74 catch ( ContinuumPurgeManagerException e )
75 {
76 logger.error( "Error purging for job" + jobName + ".", e );
77 }
78
79 try
80 {
81 if ( schedule.getDelay() > 0 )
82 {
83 Thread.sleep( schedule.getDelay() * 1000 );
84 }
85 }
86 catch ( InterruptedException e )
87 {
88 }
89 }
90 }