You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2013/06/12 16:24:11 UTC

svn commit: r1492217 - in /syncope/trunk/core/src/main/java/org/apache/syncope/core: init/ quartz/ rest/controller/

Author: ilgrosso
Date: Wed Jun 12 14:24:11 2013
New Revision: 1492217

URL: http://svn.apache.org/r1492217
Log:
[SYNCOPE-394] Merge from 1_1_X

Added:
    syncope/trunk/core/src/main/java/org/apache/syncope/core/quartz/AbstractTransactionalTaskJob.java
      - copied unchanged from r1492216, syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/quartz/AbstractTransactionalTaskJob.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/quartz/TaskJob.java
      - copied unchanged from r1492216, syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/quartz/TaskJob.java
Modified:
    syncope/trunk/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/init/JobInstanceLoader.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/quartz/SampleJob.java
    syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/TaskController.java

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java?rev=1492217&r1=1492216&r2=1492217&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java Wed Jun 12 14:24:11 2013
@@ -25,15 +25,13 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.syncope.core.notification.NotificationJob;
 import org.apache.syncope.core.persistence.validation.attrvalue.Validator;
 import org.apache.syncope.core.propagation.PropagationActions;
-import org.apache.syncope.core.report.ReportJob;
+import org.apache.syncope.core.quartz.TaskJob;
 import org.apache.syncope.core.report.Reportlet;
 import org.apache.syncope.core.sync.SyncActions;
 import org.apache.syncope.core.sync.SyncCorrelationRule;
 import org.apache.syncope.core.sync.impl.SyncJob;
-import org.quartz.Job;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,7 +51,7 @@ public class ImplementationClassNamesLoa
     public enum Type {
 
         REPORTLET,
-        JOB,
+        TASKJOB,
         SYNC_ACTIONS,
         SYNC_CORRELATION_RULES,
         PROPAGATION_ACTIONS,
@@ -91,12 +89,10 @@ public class ImplementationClassNamesLoa
                         classNames.get(Type.REPORTLET).add(clazz.getName());
                     }
 
-                    if ((interfaces.contains(Job.class))
-                            && !metadata.isAbstract() && !SyncJob.class.getName().equals(metadata.getClassName())
-                            && !ReportJob.class.getName().equals(metadata.getClassName())
-                            && !NotificationJob.class.getName().equals(metadata.getClassName())) {
+                    if ((interfaces.contains(TaskJob.class))
+                            && !metadata.isAbstract() && !SyncJob.class.getName().equals(metadata.getClassName())) {
 
-                        classNames.get(Type.JOB).add(metadata.getClassName());
+                        classNames.get(Type.TASKJOB).add(metadata.getClassName());
                     }
 
                     if (interfaces.contains(SyncActions.class) && !metadata.isAbstract()) {

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/init/JobInstanceLoader.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/init/JobInstanceLoader.java?rev=1492217&r1=1492216&r2=1492217&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/init/JobInstanceLoader.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/init/JobInstanceLoader.java Wed Jun 12 14:24:11 2013
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.core.init;
 
+import static org.apache.syncope.core.init.JobInstanceLoader.getJobName;
+import static org.apache.syncope.core.init.JobInstanceLoader.getTriggerName;
+
 import java.text.ParseException;
 import java.util.HashSet;
 import java.util.Set;
@@ -32,7 +35,7 @@ import org.apache.syncope.core.persisten
 import org.apache.syncope.core.persistence.dao.ConfDAO;
 import org.apache.syncope.core.persistence.dao.ReportDAO;
 import org.apache.syncope.core.persistence.dao.TaskDAO;
-import org.apache.syncope.core.quartz.AbstractTaskJob;
+import org.apache.syncope.core.quartz.TaskJob;
 import org.apache.syncope.core.report.ReportJob;
 import org.apache.syncope.core.sync.DefaultSyncActions;
 import org.apache.syncope.core.sync.SyncActions;
@@ -157,15 +160,15 @@ public class JobInstanceLoader {
     public void registerJob(final Task task, final String jobClassName, final String cronExpression)
             throws ClassNotFoundException, SchedulerException, ParseException {
 
-        Class jobClass = Class.forName(jobClassName);
+        Class<?> jobClass = Class.forName(jobClassName);
         Job jobInstance = (Job) ApplicationContextProvider.getBeanFactory().
                 createBean(jobClass, AbstractBeanDefinition.AUTOWIRE_BY_TYPE, false);
-        if (jobInstance instanceof AbstractTaskJob) {
-            ((AbstractTaskJob) jobInstance).setTaskId(task.getId());
+        if (jobInstance instanceof TaskJob) {
+            ((TaskJob) jobInstance).setTaskId(task.getId());
         }
         if (jobInstance instanceof SyncJob && task instanceof SyncTask) {
             String jobActionsClassName = ((SyncTask) task).getActionsClassName();
-            Class syncActionsClass = DefaultSyncActions.class;
+            Class<?> syncActionsClass = DefaultSyncActions.class;
             if (StringUtils.isNotBlank(jobActionsClassName)) {
                 try {
                     syncActionsClass = Class.forName(jobActionsClassName);

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java?rev=1492217&r1=1492216&r2=1492217&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java Wed Jun 12 14:24:11 2013
@@ -27,7 +27,6 @@ import org.apache.syncope.core.persisten
 import org.apache.syncope.core.persistence.dao.TaskDAO;
 import org.apache.syncope.core.persistence.dao.TaskExecDAO;
 import org.quartz.DisallowConcurrentExecution;
-import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.slf4j.Logger;
@@ -35,11 +34,15 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
 /**
- * Base job implementation that delegates to concrete implementation the actual job execution and provides some
- * background settings (like as the corresponding Task, for example).
+ * Abstract job implementation that delegates to concrete implementation the actual job execution and provides some
+ * base features.
+ * <strong>Extending ttis class will not provide support transaction management.</strong><br/>
+ * Extend <tt>AbstractTransactionalTaskJob</tt> for this purpose.
+ *
+ * @see AbstractTransactionalTaskJob
  */
 @DisallowConcurrentExecution
-public abstract class AbstractTaskJob implements Job {
+public abstract class AbstractTaskJob implements TaskJob {
 
     public static final String DRY_RUN_JOBDETAIL_KEY = "dryRun";
 
@@ -85,12 +88,13 @@ public abstract class AbstractTaskJob im
      *
      * @param taskId to be set
      */
+    @Override
     public void setTaskId(final Long taskId) {
         this.taskId = taskId;
     }
 
     @Override
-    public final void execute(final JobExecutionContext context) throws JobExecutionException {
+    public void execute(final JobExecutionContext context) throws JobExecutionException {
         task = taskDAO.find(taskId);
         if (task == null) {
             throw new JobExecutionException("Task " + taskId + " not found");

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/quartz/SampleJob.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/quartz/SampleJob.java?rev=1492217&r1=1492216&r2=1492217&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/quartz/SampleJob.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/quartz/SampleJob.java Wed Jun 12 14:24:11 2013
@@ -31,7 +31,6 @@ public class SampleJob extends AbstractT
 
     @Override
     protected String doExecute(final boolean dryRun) throws JobExecutionException {
-
         if (!(task instanceof SchedTask)) {
             throw new JobExecutionException("Task " + taskId + " isn't a SchedTask");
         }

Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/TaskController.java
URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/TaskController.java?rev=1492217&r1=1492216&r2=1492217&view=diff
==============================================================================
--- syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/TaskController.java (original)
+++ syncope/trunk/core/src/main/java/org/apache/syncope/core/rest/controller/TaskController.java Wed Jun 12 14:24:11 2013
@@ -229,7 +229,7 @@ public class TaskController extends Abst
     @PreAuthorize("hasRole('TASK_LIST')")
     @RequestMapping(method = RequestMethod.GET, value = "/jobClasses")
     public ModelAndView getJobClasses() {
-        Set<String> jobClasses = classNamesLoader.getClassNames(ImplementationClassNamesLoader.Type.JOB);
+        Set<String> jobClasses = classNamesLoader.getClassNames(ImplementationClassNamesLoader.Type.TASKJOB);
 
         auditManager.audit(Category.task, TaskSubCategory.getJobClasses, Result.success,
                 "Successfully listed all Job classes: " + jobClasses.size());