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:53:22 UTC
svn commit: r1532674 - in /sling/trunk/bundles/extensions/event/src:
main/java/org/apache/sling/event/impl/jobs/
main/java/org/apache/sling/event/impl/jobs/queues/
main/java/org/apache/sling/event/jobs/consumer/
test/java/org/apache/sling/event/it/
Author: cziegeler
Date: Wed Oct 16 07:53:21 2013
New Revision: 1532674
URL: http://svn.apache.org/r1532674
Log:
SLING-3169 : Naming of Job related enumerations
Modified:
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java
sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/HistoryTest.java
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java?rev=1532674&r1=1532673&r2=1532674&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java Wed Oct 16 07:53:21 2013
@@ -310,7 +310,7 @@ public class JobConsumerManager {
for(final Object[] listenerObjects : this.listenerMap.values()) {
if ( listenerObjects[0] == oldConsumer.executor ) {
final JobExecutionContext context = (JobExecutionContext)listenerObjects[1];
- context.asyncProcessingFinished(context.FAILED());
+ context.asyncProcessingFinished(context.result().failed());
break;
}
}
@@ -466,17 +466,17 @@ public class JobConsumerManager {
@Override
public void ok() {
- this.check(context.SUCCEEDED());
+ this.check(context.result().succeeded());
}
@Override
public void failed() {
- this.check(context.FAILED());
+ this.check(context.result().failed());
}
@Override
public void cancel() {
- this.check(context.CANCELLED());
+ this.check(context.result().cancelled());
}
};
((JobImpl)job).setProperty(JobConsumer.PROPERTY_JOB_ASYNC_HANDLER, asyncHandler);
@@ -484,11 +484,11 @@ public class JobConsumerManager {
if ( result == JobResult.ASYNC ) {
return null;
} else if ( result == JobResult.FAILED) {
- return context.FAILED();
+ return context.result().failed();
} else if ( result == JobResult.OK) {
- return context.SUCCEEDED();
+ return context.result().succeeded();
}
- return context.CANCELLED();
+ return context.result().cancelled();
}
}
}
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java?rev=1532674&r1=1532673&r2=1532674&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java Wed Oct 16 07:53:21 2013
@@ -597,48 +597,41 @@ public abstract class AbstractJobQueue
}
@Override
- public ResultBuilder result(final String message) {
+ public ResultBuilder result() {
return new ResultBuilder() {
+ private String message;
+
private Long retryDelayInMs;
@Override
- public ResultBuilder retryDelay(final long retryDelayInMs) {
+ public JobExecutionResult failed(final long retryDelayInMs) {
this.retryDelayInMs = retryDelayInMs;
+ return new JobExecutionResultImpl(InternalJobState.FAILED, message, retryDelayInMs);
+ }
+
+ @Override
+ public ResultBuilder message(final String message) {
+ this.message = message;
return this;
}
@Override
- public JobExecutionResult SUCCEEDED() {
+ public JobExecutionResult succeeded() {
return new JobExecutionResultImpl(InternalJobState.SUCCEEDED, message, retryDelayInMs);
}
@Override
- public JobExecutionResult FAILED() {
+ public JobExecutionResult failed() {
return new JobExecutionResultImpl(InternalJobState.FAILED, message, retryDelayInMs);
}
@Override
- public JobExecutionResult CANCELLED() {
+ public JobExecutionResult cancelled() {
return new JobExecutionResultImpl(InternalJobState.CANCELLED, message, retryDelayInMs);
}
};
}
-
- @Override
- public JobExecutionResult SUCCEEDED() {
- return JobExecutionResultImpl.SUCCEEDED;
- }
-
- @Override
- public JobExecutionResult FAILED() {
- return JobExecutionResultImpl.FAILED;
- }
-
- @Override
- public JobExecutionResult CANCELLED() {
- return JobExecutionResultImpl.CANCELLED;
- }
};
result = (JobExecutionResultImpl)consumer.process(job, ctx);
if ( result == null ) { // ASYNC processing
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java?rev=1532674&r1=1532673&r2=1532674&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java Wed Oct 16 07:53:21 2013
@@ -98,25 +98,38 @@ public interface JobExecutionContext {
*/
void log(final String message, final Object...args);
- ResultBuilder result(final String message);
+ /**
+ * Build a result for the processing.
+ */
+ ResultBuilder result();
- JobExecutionResult SUCCEEDED();
+ public interface ResultBuilder {
- JobExecutionResult FAILED();
+ /**
+ * Add an optional processing message.
+ * This message can be viewed using {@link org.apache.sling.event.jobs.Job#getResultMessage()}.
+ */
+ ResultBuilder message(final String message);
- JobExecutionResult CANCELLED();
+ /**
+ * The job processing finished successfully.
+ */
+ JobExecutionResult succeeded();
- public interface ResultBuilder {
+ /**
+ * The job processing failed and might be retried.
+ */
+ JobExecutionResult failed();
/**
+ * The job processing failed and might be retried.
* @param retryDelayInMs The new retry delay in ms.
*/
- ResultBuilder retryDelay(final long retryDelayInMs);
-
- JobExecutionResult SUCCEEDED();
+ JobExecutionResult failed(final long retryDelayInMs);
- JobExecutionResult FAILED();
-
- JobExecutionResult CANCELLED();
+ /**
+ * The job processing failed permanently.
+ */
+ JobExecutionResult cancelled();
}
}
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java?rev=1532674&r1=1532673&r2=1532674&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java Wed Oct 16 07:53:21 2013
@@ -22,21 +22,39 @@ import aQute.bnd.annotation.ProviderType
/**
* The status of a job after it has been processed by a {@link JobExecutor}.
+ * The job executor uses the {@link JobExecutionContext} to create a result object.
*
- * A job executor can either use one of the constants {@link #SUCCEEDED}, {@link #FAILED}
- * or {@link #CANCELLED} to return a result or it can build an individual result
- * with optional parameters using the builder methods {@link #SUCCEEDED()}, {@link #FAILED()}
- * or {@link #CANCELLED()}.
+ * The result can have three states, succeeded, cancelled or failed whereas
+ * failed means that the execution is potentially retried.
*
* @since 1.1
*/
@ProviderType
public interface JobExecutionResult {
+ /**
+ * If this returns true the job processing finished successfully.
+ * In this case {@link #cancelled()} and {@link #failed()} return
+ * <code>false</code>
+ * @return <code>true</code> for a successful processing
+ */
boolean succeeded();
+ /**
+ * If this returns true the job processing failed permanently.
+ * In this case {@link #succeeded()} and {@link #failed()} return
+ * <code>false</code>
+ * @return <code>true</code> for a permanently failed processing
+ */
boolean cancelled();
+ /**
+ * If this returns true the job processing failed but might be
+ * retried..
+ * In this case {@link #cancelled()} and {@link #succeeded()} return
+ * <code>false</code>
+ * @return <code>true</code> for a failedl processing
+ */
boolean failed();
/**
Modified: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/HistoryTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/HistoryTest.java?rev=1532674&r1=1532673&r2=1532674&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/HistoryTest.java (original)
+++ sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/HistoryTest.java Wed Oct 16 07:53:21 2013
@@ -101,9 +101,9 @@ public class HistoryTest extends Abstrac
sleep(5L);
final long count = job.getProperty(PROP_COUNTER, Long.class);
if ( count == 2 || count == 5 || count == 7 ) {
- return context.result(Job.JobState.CANCELLED.name()).CANCELLED();
+ return context.result().message(Job.JobState.CANCELLED.name()).cancelled();
}
- return context.result(Job.JobState.SUCCEEDED.name()).SUCCEEDED();
+ return context.result().message(Job.JobState.SUCCEEDED.name()).succeeded();
}
});