[REDBACK-296] interface Scheduler the method schedulJob takes an implementation, not a interface
Submitted by Adrien Lecharpentier.

git-svn-id: https://svn.apache.org/repos/asf/archiva/redback/redback-components/trunk@1366772 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/archiva/redback/components/scheduler/DefaultScheduler.java b/src/main/java/org/apache/archiva/redback/components/scheduler/DefaultScheduler.java
index d2f8553..ddf71e6 100644
--- a/src/main/java/org/apache/archiva/redback/components/scheduler/DefaultScheduler.java
+++ b/src/main/java/org/apache/archiva/redback/components/scheduler/DefaultScheduler.java
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.quartz.JobDetail;
 import org.quartz.JobKey;
 import org.quartz.JobListener;
 import org.quartz.Matcher;
@@ -47,18 +48,19 @@
 
     private StdScheduler scheduler;
 
-    public void scheduleJob( JobDetailImpl jobDetail, Trigger trigger )
+    public void scheduleJob( JobDetail jobDetail, Trigger trigger )
         throws SchedulerException
     {
-        if ( jobDetail == null || jobDetail.getName() == null )
+
+        if ( jobDetail == null || jobDetail.getKey() == null || jobDetail.getKey().getName() == null )
         {
             throw new SchedulerException( "No job or no job name - cannot schedule this job" );
         }
 
-        if ( jobExists( jobDetail.getName(), jobDetail.getGroup() ) )
+        if ( jobExists( jobDetail.getKey() ) )
         {
-            log.warn( "Will not schedule this job as a job {" + jobDetail.getName() + ":" + jobDetail.getGroup()
-                          + "} already exists." );
+            log.warn( "Will not schedule this job as a job {" + jobDetail.getKey().getName() + ":"
+                          + jobDetail.getKey().getGroup() + "} already exists." );
 
             return;
         }
@@ -89,7 +91,8 @@
         scheduler.getListenerManager().addTriggerListener( listener, new AllMatch() );
     }
 
-    private static class AllMatch<R extends Key<?>> implements Matcher<R>
+    private static class AllMatch<R extends Key<?>>
+        implements Matcher<R>
     {
         public boolean isMatch( R key )
         {
@@ -153,7 +156,13 @@
         throws SchedulerException
     {
 
-        return ( scheduler.getJobDetail( new JobKey( jobName, jobGroup ) ) != null );
+        return jobExists( new JobKey( jobName, jobGroup ) );
+    }
+
+    private boolean jobExists( JobKey jobKey )
+        throws SchedulerException
+    {
+        return scheduler.getJobDetail( jobKey ) != null;
     }
 
     public void shutdown( boolean waitForJobsToComplete )
diff --git a/src/main/java/org/apache/archiva/redback/components/scheduler/Scheduler.java b/src/main/java/org/apache/archiva/redback/components/scheduler/Scheduler.java
index 58dd6e8..722c405 100644
--- a/src/main/java/org/apache/archiva/redback/components/scheduler/Scheduler.java
+++ b/src/main/java/org/apache/archiva/redback/components/scheduler/Scheduler.java
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.quartz.JobDetail;
 import org.quartz.JobListener;
 import org.quartz.SchedulerException;
 import org.quartz.Trigger;
@@ -30,7 +31,7 @@
 public interface Scheduler
 {
 
-    void scheduleJob( JobDetailImpl jobDetail, Trigger trigger )
+    void scheduleJob( JobDetail jobDetail, Trigger trigger )
         throws SchedulerException;
 
     /**