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 2015/04/08 09:38:10 UTC

svn commit: r1672016 - in /sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs: JobManagerImpl.java config/JobManagerConfiguration.java queues/JobQueueImpl.java tasks/CheckTopologyTask.java

Author: cziegeler
Date: Wed Apr  8 07:38:09 2015
New Revision: 1672016

URL: http://svn.apache.org/r1672016
Log:
SLING-4407 : introduce an audit-style logger to job handling

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/impl/jobs/config/JobManagerConfiguration.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/tasks/CheckTopologyTask.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=1672016&r1=1672015&r2=1672016&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 Apr  8 07:38:09 2015
@@ -350,6 +350,7 @@ public class JobManagerImpl
                     final JobHandler jh = new JobHandler(job, null, this.configuration);
                     jh.finished(Job.JobState.DROPPED, true, null);
                 }
+                this.configuration.getAuditLogger().debug("REMOVE OK : {}", jobId);
             }
         } else {
             logger.debug("Job for removal does not exist (anymore): {}", jobId);
@@ -768,6 +769,13 @@ public class JobManagerImpl
                         jobName,
                         jobProperties,
                         info);
+                if ( info.targetId != null ) {
+                    this.configuration.getAuditLogger().debug("ASSIGN OK {} : {}",
+                            info.targetId, job.getId());
+                } else {
+                    this.configuration.getAuditLogger().debug("UNASSIGN OK : {}",
+                            job.getId());
+                }
                 return job;
             } catch (final PersistenceException re ) {
                 // something went wrong, so let's log it
@@ -950,15 +958,50 @@ public class JobManagerImpl
             if ( errors != null ) {
                 errors.add(errorMessage);
             }
+            this.configuration.getAuditLogger().debug("ADD FAILED topic={}{}{}, properties={} : {}",
+                    new Object[] {topic,
+                                  name == null ? "" : ",name=",
+                                  name == null ? "" : name,
+                                  properties,
+                                  errorMessage});
             return null;
         }
         if ( name != null ) {
             Utility.logDeprecated(logger, "Job is using deprecated name feature: " + Utility.toString(topic, name, properties));
         }
-        Job result = this.addJobInteral(topic, name, properties, errors);
-        if ( result == null && name != null ) {
-            result = this.getJobByName(name);
+        final List<String> errorList = new ArrayList<String>();
+        Job result = this.addJobInteral(topic, name, properties, errorList);
+        if ( errors != null ) {
+            errors.addAll(errorList);
         }
+        if ( result == null ) {
+            if ( name != null ) {
+                result = this.getJobByName(name);
+            }
+            if ( result == null ) {
+                this.configuration.getAuditLogger().debug("ADD FAILED topic={}{}{}, properties={} : {}",
+                        new Object[] {topic,
+                                      name == null ? "" : ",name=",
+                                      name == null ? "" : name,
+                                      properties,
+                                      errorList});
+            } else {
+                this.configuration.getAuditLogger().debug("ADD DUP topic={}{}{}, properties={} : {}",
+                        new Object[] {topic,
+                                      name == null ? "" : ",name=",
+                                      name == null ? "" : name,
+                                      properties,
+                                      result.getId()});
+            }
+        } else {
+            this.configuration.getAuditLogger().debug("ADD OK topic={}{}{}, properties={} : {}",
+                    new Object[] {topic,
+                                  name == null ? "" : ",name=",
+                                  name == null ? "" : name,
+                                  properties,
+                                  result.getId()});
+        }
+
         return result;
     }
 

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java?rev=1672016&r1=1672015&r2=1672016&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java Wed Apr  8 07:38:09 2015
@@ -85,6 +85,9 @@ public class JobManagerConfiguration imp
     /** Logger. */
     private final Logger logger = LoggerFactory.getLogger("org.apache.sling.event.impl.jobs");
 
+    /** Audit Logger. */
+    private final Logger auditLogger = LoggerFactory.getLogger("org.apache.sling.event.jobs.audit");
+
     /** Default resource path for jobs. */
     public static final String DEFAULT_REPOSITORY_PATH = "/var/eventing/jobs";
 
@@ -605,4 +608,12 @@ public class JobManagerConfiguration imp
             return retryList.get(jobId);
         }
     }
+
+    /**
+     * The audit logger is logging actions for auditing.
+     * @return The logger
+     */
+    public Logger getAuditLogger() {
+        return this.auditLogger;
+    }
 }

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java?rev=1672016&r1=1672015&r2=1672016&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/JobQueueImpl.java Wed Apr  8 07:38:09 2015
@@ -273,6 +273,7 @@ public class JobQueueImpl
                 handler.started = System.currentTimeMillis();
 
                 if ( handler.getConsumer() != null ) {
+                    this.services.configuration.getAuditLogger().debug("START OK : {}", job.getId());
                     final long queueTime = handler.started - job.getProperty(JobImpl.PROPERTY_JOB_QUEUED, Calendar.class).getTime().getTime();
                     NotificationUtility.sendNotification(this.services.eventAdmin, NotificationConstants.TOPIC_JOB_STARTED, job, queueTime);
                     synchronized ( this.processingJobsLists ) {
@@ -559,6 +560,7 @@ public class JobQueueImpl
     private boolean finishedJob(final String jobId,
                                 final Job.JobState resultState,
                                 final boolean isAsync) {
+        this.services.configuration.getAuditLogger().debug("FINISHED {} : {}", resultState, jobId);
         this.logger.debug("Received finish for job {}, resultState={}", jobId, resultState);
 
         // get job handler

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/tasks/CheckTopologyTask.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/tasks/CheckTopologyTask.java?rev=1672016&r1=1672015&r2=1672016&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/tasks/CheckTopologyTask.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/tasks/CheckTopologyTask.java Wed Apr  8 07:38:09 2015
@@ -170,6 +170,12 @@ public class CheckTopologyTask {
                                                     ResourceHelper.getOrCreateResource(resolver, newPath, props);
                                                     resolver.delete(rsrc);
                                                     resolver.commit();
+                                                    final String jobId = vm.get(ResourceHelper.PROPERTY_JOB_ID, String.class);
+                                                    if ( targetId != null ) {
+                                                        configuration.getAuditLogger().debug("REASSIGN OK {} : {}", targetId, jobId);
+                                                    } else {
+                                                        configuration.getAuditLogger().debug("REUNASSIGN OK : {}", jobId);
+                                                    }
                                                 } catch ( final PersistenceException pe ) {
                                                     logger.warn("Unable to move stale job from " + rsrc.getPath() + " to " + newPath, pe);
                                                     resolver.refresh();
@@ -270,6 +276,8 @@ public class CheckTopologyTask {
                                     ResourceHelper.getOrCreateResource(resolver, newPath, props);
                                     resolver.delete(rsrc);
                                     resolver.commit();
+                                    final String jobId = vm.get(ResourceHelper.PROPERTY_JOB_ID, String.class);
+                                    configuration.getAuditLogger().debug("REASSIGN OK {} : {}", targetId, jobId);
                                 } catch ( final PersistenceException pe ) {
                                     logger.warn("Unable to move unassigned job from " + rsrc.getPath() + " to " + newPath, pe);
                                     resolver.refresh();
@@ -305,6 +313,8 @@ public class CheckTopologyTask {
                                 ResourceHelper.getOrCreateResource(resolver, newPath, props);
                                 resolver.delete(rsrc);
                                 resolver.commit();
+                                final String jobId = vm.get(ResourceHelper.PROPERTY_JOB_ID, String.class);
+                                configuration.getAuditLogger().debug("REUNASSIGN OK : {}", jobId);
                             } catch ( final PersistenceException pe ) {
                                 logger.warn("Unable to unassigned job from " + rsrc.getPath() + " to " + newPath, pe);
                                 resolver.refresh();