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/16 09:20:39 UTC

svn commit: r1532660 - in /sling/trunk/bundles/extensions/event/src: main/java/org/apache/sling/event/impl/jobs/ main/java/org/apache/sling/event/impl/jobs/console/ main/java/org/apache/sling/event/jobs/ test/java/org/apache/sling/event/it/

Author: cziegeler
Date: Wed Oct 16 07:20:38 2013
New Revision: 1532660

URL: http://svn.apache.org/r1532660
Log:
SLING-3172 : Job schedule name handling

Modified:
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobBuilderImpl.java
    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/impl/jobs/JobSchedulerImpl.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/ScheduledJobInfoImpl.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/InventoryPlugin.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/WebConsolePlugin.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobBuilder.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java
    sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/TimedJobsTest.java

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobBuilderImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobBuilderImpl.java?rev=1532660&r1=1532659&r2=1532660&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobBuilderImpl.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobBuilderImpl.java Wed Oct 16 07:20:38 2013
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import org.apache.sling.event.impl.support.ScheduleInfoImpl;
 import org.apache.sling.event.jobs.Job;
@@ -62,6 +63,10 @@ public class JobBuilderImpl implements J
     }
 
     @Override
+    public ScheduleBuilder schedule() {
+        return new ScheduleBuilderImpl(UUID.randomUUID().toString());
+    }
+
     public ScheduleBuilder schedule(final String name) {
         return new ScheduleBuilderImpl(name);
     }

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=1532660&r1=1532659&r2=1532660&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 Wed Oct 16 07:20:38 2013
@@ -1467,14 +1467,6 @@ public class JobManagerImpl
         return this.jobScheduler.getScheduledJobs();
     }
 
-    /**
-     * @see org.apache.sling.event.jobs.JobManager#getScheduledJob(java.lang.String)
-     */
-    @Override
-    public ScheduledJobInfo getScheduledJob(final String name) {
-        return this.jobScheduler.getScheduledJob(name);
-    }
-
     public ScheduledJobInfo addScheduledJob(final String topic,
             final String jobName,
             final Map<String, Object> properties,

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobSchedulerImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobSchedulerImpl.java?rev=1532660&r1=1532659&r2=1532660&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobSchedulerImpl.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobSchedulerImpl.java Wed Oct 16 07:20:38 2013
@@ -615,7 +615,7 @@ public class JobSchedulerImpl
      * Create a schedule builder for a currently scheduled job
      */
     public JobBuilder.ScheduleBuilder createJobBuilder(final ScheduledJobInfoImpl info) {
-        final JobBuilder builder = this.jobManager.createJob(info.getJobTopic()).properties(info.getJobProperties());
+        final JobBuilderImpl builder = (JobBuilderImpl)this.jobManager.createJob(info.getJobTopic()).properties(info.getJobProperties());
         final JobBuilder.ScheduleBuilder sb = builder.schedule(info.getName());
         return (info.isSuspended() ? sb.suspend() : sb);
     }
@@ -633,15 +633,6 @@ public class JobSchedulerImpl
         return jobs;
     }
 
-    /**
-     * Get a scheduled job with the given name
-     */
-    public ScheduledJobInfo getScheduledJob(final String name) {
-        synchronized ( this.scheduledJobs ) {
-            return this.scheduledJobs.get(ResourceHelper.filterName(name));
-        }
-    }
-
     public void setSuspended(final ScheduledJobInfoImpl info, final boolean flag) {
         ResourceResolver resolver = null;
         try {

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/ScheduledJobInfoImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/ScheduledJobInfoImpl.java?rev=1532660&r1=1532659&r2=1532660&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/ScheduledJobInfoImpl.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/ScheduledJobInfoImpl.java Wed Oct 16 07:20:38 2013
@@ -65,9 +65,8 @@ public class ScheduledJobInfoImpl implem
     }
 
     /**
-     * @see org.apache.sling.event.jobs.ScheduledJobInfo#getName()
+     * Get the schedule name
      */
-    @Override
     public String getName() {
         return this.scheduleName;
     }

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/InventoryPlugin.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/InventoryPlugin.java?rev=1532660&r1=1532659&r2=1532660&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/InventoryPlugin.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/InventoryPlugin.java Wed Oct 16 07:20:38 2013
@@ -194,7 +194,7 @@ public class InventoryPlugin implements 
             pw.print("No jobs currently scheduled");
         } else {
             for(final ScheduledJobInfo info : infos) {
-                pw.printf("Schedule : %s%n", info.getName());
+                pw.println("Schedule");
                 pw.printf("Job Topic< : %s%n", info.getJobTopic());
                 pw.print("Schedules : ");
                 boolean first = true;

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/WebConsolePlugin.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/WebConsolePlugin.java?rev=1532660&r1=1532659&r2=1532660&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/WebConsolePlugin.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/console/WebConsolePlugin.java Wed Oct 16 07:20:38 2013
@@ -263,9 +263,10 @@ public class WebConsolePlugin extends Ht
             pw.print("<tr><td colspan='5'>No jobs currently scheduled.</td></tr>");
         } else {
             pw.println("<tr><th>Schedule</th><th>Job Topic</th><th>Schedules</th></tr>");
+            int index = 1;
             for(final ScheduledJobInfo info : infos) {
                 pw.printf("<tr><td><b>%s</b></td><td>%s</td><td>",
-                        info.getName(), info.getJobTopic());
+                        String.valueOf(index), info.getJobTopic());
                 boolean first = true;
                 for(final ScheduleInfo si : info.getSchedules() ) {
                     if ( !first ) {
@@ -289,6 +290,7 @@ public class WebConsolePlugin extends Ht
                     }
                 }
                 pw.print("</td></tr>");
+                index++;
             }
         }
         pw.println("</tbody></table>");

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobBuilder.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobBuilder.java?rev=1532660&r1=1532659&r2=1532660&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobBuilder.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobBuilder.java Wed Oct 16 07:20:38 2013
@@ -55,13 +55,9 @@ public interface JobBuilder {
 
     /**
      * Schedule the job
-     * If a job scheduler with the same name already exists, it is updated
-     * with the new information.
-     * If no name is provided (empty name or null), the job can't be scheduled.
-     * @param name Unique name for the scheduler.
      * @return A schedule builder to schedule the jobs
      */
-    ScheduleBuilder schedule(final String name);
+    ScheduleBuilder schedule();
 
     /**
      * This is a builder interface for creating schedule information

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=1532660&r1=1532659&r2=1532660&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 Wed Oct 16 07:20:38 2013
@@ -186,11 +186,6 @@ public interface JobManager {
     Collection<ScheduledJobInfo> getScheduledJobs();
 
     /**
-     * @since 1.3
-     */
-    ScheduledJobInfo getScheduledJob(final String name);
-
-    /**
      * Add a new job
      *
      * If the topic is <code>null</code> or illegal, no job is created and <code>null</code> is returned.

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java?rev=1532660&r1=1532659&r2=1532660&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java Wed Oct 16 07:20:38 2013
@@ -32,12 +32,6 @@ import aQute.bnd.annotation.ProviderType
 public interface ScheduledJobInfo {
 
     /**
-     * Return the unique scheduling name.
-     * @return The unique name
-     */
-    String getName();
-
-    /**
      * Get all schedules for this job
      * @return A non null and non empty list of schedules.
      */

Modified: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/TimedJobsTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/TimedJobsTest.java?rev=1532660&r1=1532659&r2=1532660&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/TimedJobsTest.java (original)
+++ sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/TimedJobsTest.java Wed Oct 16 07:20:38 2013
@@ -26,6 +26,7 @@ import java.util.Date;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.sling.event.jobs.Job;
+import org.apache.sling.event.jobs.ScheduledJobInfo;
 import org.apache.sling.event.jobs.consumer.JobConsumer;
 import org.junit.Before;
 import org.junit.Test;
@@ -69,12 +70,14 @@ public class TimedJobsTest extends Abstr
             d.setTime(System.currentTimeMillis() + 3000); // run in 3 seconds
 
             // create scheduled job
-            assertNotNull(this.getJobManager().createJob(TOPIC).schedule("simpleTest").at(d).add());
+            final ScheduledJobInfo info = this.getJobManager().createJob(TOPIC).schedule().at(d).add();
+            assertNotNull(info);
 
             while ( counter.get() == 0 ) {
                 this.sleep(1000);
             }
             assertEquals(1, this.getJobManager().getScheduledJobs().size()); // job is still scheduled
+            info.unschedule();
         } finally {
             ehReg.unregister();
         }