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();