You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2013/10/17 07:53:08 UTC

svn commit: r1532972 - in /sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event: impl/jobs/JobManagerImpl.java jobs/JobManager.java

Author: cziegeler
Date: Thu Oct 17 05:53:07 2013
New Revision: 1532972

URL: http://svn.apache.org/r1532972
Log:
SLING-3028 :  Support for progress tracking of jobs

Modified:
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java?rev=1532972&r1=1532971&r2=1532972&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java Thu Oct 17 05:53:07 2013
@@ -1532,6 +1532,9 @@ public class JobManagerImpl
         return null;
     }
 
+    /**
+     * Internal method to add a job
+     */
     public Job addJob(final String topic, final String name,
             final Map<String, Object> properties,
             final List<String> errors) {
@@ -1549,4 +1552,17 @@ public class JobManagerImpl
         }
         return result;
     }
+
+    /**
+     * @see org.apache.sling.event.jobs.JobManager#retryJobById(java.lang.String)
+     */
+    @Override
+    public Job retryJobById(final String jobId) {
+        final JobImpl job = (JobImpl)this.getJobById(jobId);
+        if ( job != null && this.configuration.isStoragePath(job.getResourcePath()) ) {
+            this.internalRemoveJobById(jobId, true);
+            return this.addJob(job.getTopic(), job.getName(), job.getProperties());
+        }
+        return null;
+    }
 }

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java?rev=1532972&r1=1532971&r2=1532972&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java Thu Oct 17 05:53:07 2013
@@ -180,6 +180,16 @@ public interface JobManager {
     void stopJobById(String jobId);
 
     /**
+     * Retry a cancelled job.
+     * If a job has failed permanently it can be requeued with this method. The job will be
+     * removed from the history and put into the queue again. The new job will get a new job id.
+     * For all other jobs calling this method has no effect and it simply returns <code>null</code>.
+     * @param jobId The job id.
+     * @return If the job is requeued, the new job object otherwise <code>null</code>
+     */
+    Job retryJobById(String jobId);
+
+    /**
      * Fluent API to create, start and schedule new jobs
      * @param topic Required topic
      * @return A job builder