[jboss-svn-commits] JBL Code SVN: r25641 - in labs/jbossrules/trunk/drools-process/drools-process-task/src: main/java/org/drools/task/service/responsehandlers and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Mar 13 12:29:24 EDT 2009
Author: stampy88
Date: 2009-03-13 12:29:23 -0400 (Fri, 13 Mar 2009)
New Revision: 25641
Modified:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/AbstractBlockingResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingAddTaskResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingEventResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingGetTaskResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBlockingResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddAttachmentResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddCommentResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddTaskResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingDeleteAttachmentResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingDeleteCommentResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingEventResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingGetContentResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingGetTaskResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingSetContentResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingTaskOperationResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingTaskSummaryResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java
Log:
Fixed JBRULES-2006 and refactored handlers to make synchronization cleaner
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/AbstractBlockingResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/AbstractBlockingResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/AbstractBlockingResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,16 +1,15 @@
/**
- *
+ *
*/
package org.drools.process.workitem.wsht;
import org.drools.task.service.BaseMinaHandler.ResponseHandler;
-public abstract class AbstractBlockingResponseHandler
- implements
- ResponseHandler {
- protected volatile Boolean done = Boolean.FALSE;
+public abstract class AbstractBlockingResponseHandler implements ResponseHandler {
+
+ private volatile boolean done;
private String error;
-
+
public boolean hasError() {
return error != null;
}
@@ -23,31 +22,33 @@
this.error = error;
}
- public boolean isDone() {
- synchronized ( done ) {
- return done;
- }
+ public synchronized boolean isDone() {
+ return done;
}
- public boolean waitTillDone(long time) {
- long totalWaitTime = 0;
- try {
- while ( true ) {
- synchronized ( done ) {
- if ( done ) {
- return true;
- }
- }
- if ( totalWaitTime >= time ) {
- break;
- }
- Thread.sleep( 250 );
- totalWaitTime += 250;
+ protected synchronized void setDone(boolean done) {
+ this.done = done;
+ notifyAll();
+ }
+
+ /**
+ * This method will wait the specified amount of time in milliseconds for the response to
+ * be completed. Completed is determined via the <field>done</field>. Returns true if the
+ * reponse was completed in time, false otherwise
+ *
+ * @param time max time to wait
+ * @return true if response is available, false otherwise
+ */
+ public synchronized boolean waitTillDone(long time) {
+
+ if (!isDone()) {
+ try {
+ wait(time);
+ } catch (InterruptedException e) {
+ // swallow and return state of done
}
- } catch ( Exception e ) {
- // swallow, as we are either true or false
}
- return false;
+
+ return isDone();
}
-
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingAddTaskResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingAddTaskResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingAddTaskResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,40 +1,29 @@
/**
- *
+ *
*/
package org.drools.process.workitem.wsht;
import org.drools.task.service.TaskClientHandler.AddTaskResponseHandler;
public class BlockingAddTaskResponseHandler extends AbstractBlockingResponseHandler implements AddTaskResponseHandler {
+ private static final int DEFAULT_WAIT_TIME = 10000;
+
private volatile long taskId;
public synchronized void execute(long taskId) {
- synchronized ( this.done ) {
- this.taskId = taskId;
- this.done = true;
- notifyAll();
- }
+ this.taskId = taskId;
+ setDone(true);
}
-
- public synchronized long getTaskId() {
- boolean isDone;
- synchronized ( done ) {
- isDone = this.done;
+
+ public long getTaskId() {
+ // note that this method doesn't need to be synced because if waitTillDone returns true,
+ // it means taskId is available
+ boolean done = waitTillDone(DEFAULT_WAIT_TIME);
+
+ if (!done) {
+ throw new RuntimeException("Timeout : unable to retrieve Task Id");
}
- if ( !isDone ) {
- try {
- wait( 10000 );
- } catch ( InterruptedException e ) {
- // swallow as this is just a notification
- }
- }
- synchronized ( done ) {
- isDone = this.done;
- }
- if ( !isDone ) {
- throw new RuntimeException("Timeout : unable to retrieve Task Id" );
- }
-
+
return taskId;
- }
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingEventResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingEventResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingEventResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,5 +1,5 @@
/**
- *
+ *
*/
package org.drools.process.workitem.wsht;
@@ -7,35 +7,26 @@
import org.drools.eventmessaging.Payload;
public class BlockingEventResponseHandler extends AbstractBlockingResponseHandler implements EventResponseHandler {
+ // todo why is this timeout different from the others?? - also, if this should be the same
+ // they can be collasped into the base class
+ private static final int DEFAULT_WAIT_TIME = 1000000;
+
private volatile Payload payload;
public synchronized void execute(Payload payload) {
- synchronized ( this.done ) {
- this.payload = payload;
- this.done = true;
- }
- notifyAll();
+ this.payload = payload;
+ setDone(true);
}
-
- public synchronized Payload getPayload() {
- boolean isDone;
- synchronized ( done ) {
- isDone = this.done;
+
+ public Payload getPayload() {
+ // note that this method doesn't need to be synced because if waitTillDone returns true,
+ // it means payload is available
+ boolean done = waitTillDone(DEFAULT_WAIT_TIME);
+
+ if (!done) {
+ throw new RuntimeException("Timeout : unable to retrieve event payload");
}
- if ( !isDone ) {
- try {
- wait( 1000000 );
- } catch ( InterruptedException e ) {
- // swallow as this is just a notification
- }
- }
- synchronized ( done ) {
- isDone = this.done;
- }
- if ( !isDone ) {
- throw new RuntimeException("Timeout : unable to retrieve event payload" );
- }
-
+
return payload;
- }
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingGetTaskResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingGetTaskResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingGetTaskResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,5 +1,5 @@
/**
- *
+ *
*/
package org.drools.process.workitem.wsht;
@@ -7,29 +7,24 @@
import org.drools.task.service.TaskClientHandler.GetTaskResponseHandler;
public class BlockingGetTaskResponseHandler extends AbstractBlockingResponseHandler implements GetTaskResponseHandler {
- private volatile Task task;
+ private static final int DEFAULT_WAIT_TIME = 10000;
+ private volatile Task task;
+
public synchronized void execute(Task task) {
- synchronized ( this.done ) {
- this.task = task;
- this.done = true;
- notifyAll();
- }
+ this.task = task;
+ setDone(true);
}
-
- public synchronized Task getTask() {
- if ( task == null ) {
- try {
- wait( 10000 );
- } catch ( InterruptedException e ) {
- // swallow as this is just a notifiation
- }
+
+ public Task getTask() {
+ // note that this method doesn't need to be synced because if waitTillDone returns true,
+ // it means task is available
+ boolean done = waitTillDone(DEFAULT_WAIT_TIME);
+
+ if (!done) {
+ throw new RuntimeException("Timeout : unable to retrieve Task");
}
-
- if ( task == null ) {
- throw new RuntimeException("Timeout : unable to retrieve Task Id" );
- }
-
+
return task;
- }
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBlockingResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBlockingResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBlockingResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,16 +1,17 @@
/**
- *
+ *
*/
package org.drools.task.service.responsehandlers;
import org.drools.task.service.BaseMinaHandler.ResponseHandler;
-public abstract class AbstractBlockingResponseHandler
- implements
- ResponseHandler {
- protected volatile Boolean done = Boolean.FALSE;
+// todo: this class is the same as org.drools.process.workitem.wsht.AbstractBlockingResponseHandler - need to
+// consolodate them
+public abstract class AbstractBlockingResponseHandler implements ResponseHandler {
+
+ private volatile boolean done;
private String error;
-
+
public boolean hasError() {
return error != null;
}
@@ -23,31 +24,33 @@
this.error = error;
}
- public boolean isDone() {
- synchronized ( done ) {
- return done;
- }
+ public synchronized boolean isDone() {
+ return done;
}
- public boolean waitTillDone(long time) {
- long totalWaitTime = 0;
- try {
- while ( true ) {
- synchronized ( done ) {
- if ( done ) {
- return true;
- }
- }
- if ( totalWaitTime >= time ) {
- break;
- }
- Thread.sleep( 250 );
- totalWaitTime += 250;
+ protected synchronized void setDone(boolean done) {
+ this.done = done;
+ notifyAll();
+ }
+
+ /**
+ * This method will wait the specified amount of time in milliseconds for the response to
+ * be completed. Completed is determined via the <field>done</field>. Returns true if the
+ * reponse was completed in time, false otherwise
+ *
+ * @param time max time to wait
+ * @return true if response is available, false otherwise
+ */
+ public synchronized boolean waitTillDone(long time) {
+
+ if (!isDone()) {
+ try {
+ wait(time);
+ } catch (InterruptedException e) {
+ // swallow and return state of done
}
- } catch ( Exception e ) {
- // swallow, as we are either true or false
}
- return false;
+
+ return isDone();
}
-
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddAttachmentResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddAttachmentResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddAttachmentResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,64 +1,44 @@
/**
- *
+ *
*/
package org.drools.task.service.responsehandlers;
import org.drools.task.service.TaskClientHandler.AddAttachmentResponseHandler;
public class BlockingAddAttachmentResponseHandler extends AbstractBlockingResponseHandler implements AddAttachmentResponseHandler {
- private volatile long attachmentId ;
+ private static final int ATTACHMENT_ID_WAIT_TIME = 10000;
+ private static final int CONTENT_ID_WAIT_TIME = 3000;
+
+ private volatile long attachmentId;
private volatile long contentId;
public synchronized void execute(long attachmentId, long contentId) {
- synchronized ( this.done ) {
- this.attachmentId = attachmentId;
- this.contentId = contentId;
- this.done = true;
- notifyAll();
- }
+ this.attachmentId = attachmentId;
+ this.contentId = contentId;
+ setDone(true);
}
-
- public synchronized long getAttachmentId() {
- boolean isDone;
- synchronized ( done ) {
- isDone = this.done;
+
+ public long getAttachmentId() {
+ // note that this method doesn't need to be synced because if waitTillDone returns true,
+ // it means attachmentId is available
+ boolean done = waitTillDone(ATTACHMENT_ID_WAIT_TIME);
+
+ if (!done) {
+ throw new RuntimeException("Timeout : unable to retrieve Attachment Id");
}
- if ( !isDone ) {
- try {
- wait( 10000 );
- } catch ( InterruptedException e ) {
- // swallow as this is just a notification
- }
- }
- synchronized ( done ) {
- isDone = this.done;
- }
- if ( !isDone ) {
- throw new RuntimeException("Timeout : unable to retrieve Attachment Id" );
- }
-
+
return attachmentId;
- }
-
- public synchronized long getContentId() {
- boolean isDone;
- synchronized ( done ) {
- isDone = this.done;
+ }
+
+ public long getContentId() {
+ // note that this method doesn't need to be synced because if waitTillDone returns true,
+ // it means contentId is available
+ boolean done = waitTillDone(CONTENT_ID_WAIT_TIME);
+
+ if (!done) {
+ throw new RuntimeException("Timeout : unable to retrieve Attachment Content Id");
}
- if ( !isDone ) {
- try {
- wait( 3000 );
- } catch ( InterruptedException e ) {
- // swallow as this is just a notification
- }
- }
- synchronized ( done ) {
- isDone = this.done;
- }
- if ( !isDone ) {
- throw new RuntimeException("Timeout : unable to retrieve Attachment Content Id" );
- }
-
+
return contentId;
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddCommentResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddCommentResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddCommentResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,41 +1,30 @@
/**
- *
+ *
*/
package org.drools.task.service.responsehandlers;
import org.drools.task.service.TaskClientHandler.AddCommentResponseHandler;
public class BlockingAddCommentResponseHandler extends AbstractBlockingResponseHandler
- implements
- AddCommentResponseHandler {
- private volatile long commentId;
+ implements AddCommentResponseHandler {
+ private static final int COMMENT_ID_WAIT_TIME = 10000;
+
+ private volatile long commentId;
+
public synchronized void execute(long commentId) {
- synchronized ( this.done ) {
- this.commentId = commentId;
- this.done = true;
- notifyAll();
- }
+ this.commentId = commentId;
+ setDone(true);
}
- public synchronized long getCommentId() {
- boolean isDone;
- synchronized ( done ) {
- isDone = this.done;
+ public long getCommentId() {
+ // note that this method doesn't need to be synced because if waitTillDone returns true,
+ // it means commentId is available
+ boolean done = waitTillDone(COMMENT_ID_WAIT_TIME);
+
+ if (!done) {
+ throw new RuntimeException("Timeout : unable to retrieve Comment Id");
}
- if ( !isDone ) {
- try {
- wait( 10000 );
- } catch ( InterruptedException e ) {
- // swallow as this is just a notification
- }
- }
- synchronized ( done ) {
- isDone = this.done;
- }
- if ( !isDone ) {
- throw new RuntimeException( "Timeout : unable to retrieve Task Id" );
- }
return commentId;
}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddTaskResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddTaskResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingAddTaskResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,40 +1,29 @@
/**
- *
+ *
*/
package org.drools.task.service.responsehandlers;
import org.drools.task.service.TaskClientHandler.AddTaskResponseHandler;
public class BlockingAddTaskResponseHandler extends AbstractBlockingResponseHandler implements AddTaskResponseHandler {
+ private static final int TASK_ID_WAIT_TIME = 10000;
+
private volatile long taskId;
public synchronized void execute(long taskId) {
- synchronized ( this.done ) {
- this.taskId = taskId;
- this.done = true;
- notifyAll();
- }
+ this.taskId = taskId;
+ setDone(true);
}
-
- public synchronized long getTaskId() {
- boolean isDone;
- synchronized ( done ) {
- isDone = this.done;
+
+ public long getTaskId() {
+ // note that this method doesn't need to be synced because if waitTillDone returns true,
+ // it means taskId is available
+ boolean done = waitTillDone(TASK_ID_WAIT_TIME);
+
+ if (!done) {
+ throw new RuntimeException("Timeout : unable to retrieve Task Id");
}
- if ( !isDone ) {
- try {
- wait( 10000 );
- } catch ( InterruptedException e ) {
- // swallow as this is just a notification
- }
- }
- synchronized ( done ) {
- isDone = this.done;
- }
- if ( !isDone ) {
- throw new RuntimeException("Timeout : unable to retrieve Task Id" );
- }
-
+
return taskId;
- }
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingDeleteAttachmentResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingDeleteAttachmentResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingDeleteAttachmentResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,14 +1,12 @@
/**
- *
+ *
*/
package org.drools.task.service.responsehandlers;
import org.drools.task.service.TaskClientHandler.DeleteAttachmentResponseHandler;
public class BlockingDeleteAttachmentResponseHandler extends AbstractBlockingResponseHandler implements DeleteAttachmentResponseHandler {
- public void setIsDone(boolean done) {
- synchronized ( this.done ) {
- this.done = done;
- }
- }
+ public void setIsDone(boolean done) {
+ setDone(done);
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingDeleteCommentResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingDeleteCommentResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingDeleteCommentResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,14 +1,12 @@
/**
- *
+ *
*/
package org.drools.task.service.responsehandlers;
import org.drools.task.service.TaskClientHandler.DeleteCommentResponseHandler;
public class BlockingDeleteCommentResponseHandler extends AbstractBlockingResponseHandler implements DeleteCommentResponseHandler {
- public void setIsDone(boolean done) {
- synchronized ( this.done ) {
- this.done = done;
- }
- }
+ public void setIsDone(boolean done) {
+ setDone(done);
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingEventResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingEventResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingEventResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,5 +1,5 @@
/**
- *
+ *
*/
package org.drools.task.service.responsehandlers;
@@ -7,35 +7,24 @@
import org.drools.eventmessaging.Payload;
public class BlockingEventResponseHandler extends AbstractBlockingResponseHandler implements EventResponseHandler {
+ private static final int PAYLOAD_WAIT_TIME = 10000;
+
private volatile Payload payload;
public synchronized void execute(Payload payload) {
- synchronized ( this.done ) {
- this.payload = payload;
- this.done = true;
- }
- notifyAll();
+ this.payload = payload;
+ setDone(true);
}
-
- public synchronized Payload getPayload() {
- boolean isDone;
- synchronized ( done ) {
- isDone = this.done;
+
+ public Payload getPayload() {
+ // note that this method doesn't need to be synced because if waitTillDone returns true,
+ // it means payload is available
+ boolean done = waitTillDone(PAYLOAD_WAIT_TIME);
+
+ if (!done) {
+ throw new RuntimeException("Timeout : unable to retrieve event payload");
}
- if ( !isDone ) {
- try {
- wait( 10000 );
- } catch ( InterruptedException e ) {
- // swallow as this is just a notification
- }
- }
- synchronized ( done ) {
- isDone = this.done;
- }
- if ( !isDone ) {
- throw new RuntimeException("Timeout : unable to retrieve event payload" );
- }
-
+
return payload;
- }
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingGetContentResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingGetContentResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingGetContentResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,5 +1,5 @@
/**
- *
+ *
*/
package org.drools.task.service.responsehandlers;
@@ -7,29 +7,24 @@
import org.drools.task.service.TaskClientHandler.GetContentResponseHandler;
public class BlockingGetContentResponseHandler extends AbstractBlockingResponseHandler implements GetContentResponseHandler {
+ private static final int CONTENT_WAIT_TIME = 10000;
+
private volatile Content content;
public synchronized void execute(Content content) {
- synchronized ( this.done ) {
- this.content = content;
- this.done = true;
- notifyAll();
- }
+ this.content = content;
+ setDone(true);
}
-
- public synchronized Content getContent() {
- if ( content == null ) {
- try {
- wait( 10000 );
- } catch ( InterruptedException e ) {
- // swallow as this is just a notifiation
- }
+
+ public Content getContent() {
+ // note that this method doesn't need to be synced because if waitTillDone returns true,
+ // it means content is available
+ boolean done = waitTillDone(CONTENT_WAIT_TIME);
+
+ if (!done) {
+ throw new RuntimeException("Timeout : unable to retrieve Attachment Content");
}
-
- if ( content == null ) {
- throw new RuntimeException("Timeout : unable to retrieve Attachment Content" );
- }
-
+
return content;
- }
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingGetTaskResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingGetTaskResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingGetTaskResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,5 +1,5 @@
/**
- *
+ *
*/
package org.drools.task.service.responsehandlers;
@@ -7,29 +7,24 @@
import org.drools.task.service.TaskClientHandler.GetTaskResponseHandler;
public class BlockingGetTaskResponseHandler extends AbstractBlockingResponseHandler implements GetTaskResponseHandler {
+ private static final int TASK_WAIT_TIME = 10000;
+
private volatile Task task;
public synchronized void execute(Task task) {
- synchronized ( this.done ) {
- this.task = task;
- this.done = true;
- notifyAll();
- }
+ this.task = task;
+ setDone(true);
}
-
- public synchronized Task getTask() {
- if ( task == null ) {
- try {
- wait( 10000 );
- } catch ( InterruptedException e ) {
- // swallow as this is just a notifiation
- }
+
+ public Task getTask() {
+ // note that this method doesn't need to be synced because if waitTillDone returns true,
+ // it means task is available
+ boolean done = waitTillDone(TASK_WAIT_TIME);
+
+ if (!done) {
+ throw new RuntimeException("Timeout : unable to retrieve Task");
}
-
- if ( task == null ) {
- throw new RuntimeException("Timeout : unable to retrieve Task Id" );
- }
-
+
return task;
- }
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingSetContentResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingSetContentResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingSetContentResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,40 +1,29 @@
/**
- *
+ *
*/
package org.drools.task.service.responsehandlers;
import org.drools.task.service.TaskClientHandler.SetDocumentResponseHandler;
public class BlockingSetContentResponseHandler extends AbstractBlockingResponseHandler implements SetDocumentResponseHandler {
+ private static final int CONTENT_ID_WAIT_TIME = 10000;
+
private volatile long contentId;
public synchronized void execute(long contentId) {
- synchronized ( this.done ) {
- this.contentId = contentId;
- this.done = true;
- notifyAll();
+ this.contentId = contentId;
+ setDone(true);
+ }
+
+ public long getContentId() {
+ // note that this method doesn't need to be synced because if waitTillDone returns true,
+ // it means contentId is available
+ boolean done = waitTillDone(CONTENT_ID_WAIT_TIME);
+
+ if (!done) {
+ throw new RuntimeException("Timeout : unable to retrieve Content Id");
}
- }
-
- public synchronized long getContentId() {
- boolean isDone;
- synchronized ( done ) {
- isDone = this.done;
- }
- if ( !isDone ) {
- try {
- wait( 10000 );
- } catch ( InterruptedException e ) {
- // swallow as this is just a notification
- }
- }
- synchronized ( done ) {
- isDone = this.done;
- }
- if ( !isDone ) {
- throw new RuntimeException("Timeout : unable to retrieve Content Id" );
- }
-
+
return contentId;
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingTaskOperationResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingTaskOperationResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingTaskOperationResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,14 +1,12 @@
/**
- *
+ *
*/
package org.drools.task.service.responsehandlers;
import org.drools.task.service.TaskClientHandler.TaskOperationResponseHandler;
public class BlockingTaskOperationResponseHandler extends AbstractBlockingResponseHandler implements TaskOperationResponseHandler {
- public void setIsDone(boolean done) {
- synchronized ( this.done ) {
- this.done = done;
- }
- }
+ public void setIsDone(boolean done) {
+ setDone(done);
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingTaskSummaryResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingTaskSummaryResponseHandler.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/BlockingTaskSummaryResponseHandler.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -1,43 +1,32 @@
package org.drools.task.service.responsehandlers;
-import java.util.List;
-
import org.drools.task.query.TaskSummary;
import org.drools.task.service.TaskClientHandler.TaskSummaryResponseHandler;
+import java.util.List;
+
public class BlockingTaskSummaryResponseHandler extends AbstractBlockingResponseHandler implements TaskSummaryResponseHandler {
-
- private volatile List<TaskSummary> results;
- public synchronized void execute(List<TaskSummary> results) {
- synchronized ( this.done ) {
- this.results = results;
- this.done = true;
- notifyAll();
- }
- }
+ private static final int RESULTS_WAIT_TIME = 10000;
- public synchronized List<TaskSummary> getResults() {
- boolean isDone;
- synchronized ( done ) {
- isDone = this.done;
+ private volatile List<TaskSummary> results;
+
+ public synchronized void execute(List<TaskSummary> results) {
+ this.results = results;
+ setDone(true);
+ }
+
+ public List<TaskSummary> getResults() {
+ // note that this method doesn't need to be synced because if waitTillDone returns true,
+ // it means results is available
+ boolean done = waitTillDone(RESULTS_WAIT_TIME);
+
+ if (!done) {
+ throw new RuntimeException("Timeout : unable to retrieve results");
}
- if ( !isDone ) {
- try {
- wait( 10000 );
- } catch ( InterruptedException e ) {
- // swallow as this is just a notification
- }
- }
- synchronized ( done ) {
- isDone = this.done;
- }
- if ( !isDone ) {
- throw new RuntimeException("Timeout : unable to retrieve results" );
- }
-
+
return results;
- }
+ }
-};
+}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java 2009-03-13 16:03:43 UTC (rev 25640)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java 2009-03-13 16:29:23 UTC (rev 25641)
@@ -30,7 +30,8 @@
import org.drools.task.service.TaskClientHandler;
public class WSHumanTaskHandlerTest extends BaseTest {
-
+ private static final int MANAGER_COMPLETION_WAIT_TIME = 5000;
+
MinaTaskServer server;
MinaTaskClient client;
WSHumanTaskHandler handler;
@@ -38,15 +39,15 @@
@Override
protected void setUp() throws Exception {
super.setUp();
- server = new MinaTaskServer( taskService );
- Thread thread = new Thread( server );
+ server = new MinaTaskServer(taskService);
+ Thread thread = new Thread(server);
thread.start();
- Thread.sleep( 500 );
+ Thread.sleep(500);
client = new MinaTaskClient("client 1", new TaskClientHandler());
- NioSocketConnector connector = new NioSocketConnector();
- SocketAddress address = new InetSocketAddress("127.0.0.1", 9123);
- client.connect(connector, address);
- handler = new WSHumanTaskHandler();
+ NioSocketConnector connector = new NioSocketConnector();
+ SocketAddress address = new InetSocketAddress("127.0.0.1", 9123);
+ client.connect(connector, address);
+ handler = new WSHumanTaskHandler();
}
protected void tearDown() throws Exception {
@@ -55,412 +56,410 @@
server.stop();
super.tearDown();
}
-
- public void testTask() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary task = tasks.get(0);
- assertEquals("TaskName", task.getName());
- assertEquals(10, task.getPriority());
- assertEquals("Comment", task.getDescription());
- assertEquals(Status.Reserved, task.getStatus());
- assertEquals("Darth Vader", task.getActualOwner().getId());
-
- System.out.println("Starting task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Started task " + task.getId());
-
- System.out.println("Completing task " + task.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.complete(task.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(15000);
- System.out.println("Completed task " + task.getId());
-
- assertTrue(manager.isCompleted());
- }
-
- public void testTaskMultipleActors() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader, Dalai Lama");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary task = tasks.get(0);
- assertEquals("TaskName", task.getName());
- assertEquals(10, task.getPriority());
- assertEquals("Comment", task.getDescription());
- assertEquals(Status.Ready, task.getStatus());
-
- System.out.println("Claiming task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.claim(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Claimed task " + task.getId());
-
- System.out.println("Starting task " + task.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Started task " + task.getId());
-
- System.out.println("Completing task " + task.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.complete(task.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Completed task " + task.getId());
-
- assertTrue(manager.isCompleted());
- }
-
+
+ public void testTask() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ handler.executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ assertEquals("TaskName", task.getName());
+ assertEquals(10, task.getPriority());
+ assertEquals("Comment", task.getDescription());
+ assertEquals(Status.Reserved, task.getStatus());
+ assertEquals("Darth Vader", task.getActualOwner().getId());
+
+ System.out.println("Starting task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Started task " + task.getId());
+
+ System.out.println("Completing task " + task.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.complete(task.getId(), "Darth Vader", null, operationResponseHandler);
+ operationResponseHandler.waitTillDone(15000);
+ System.out.println("Completed task " + task.getId());
+
+ assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
+ }
+
+ public void testTaskMultipleActors() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader, Dalai Lama");
+ handler.executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ assertEquals("TaskName", task.getName());
+ assertEquals(10, task.getPriority());
+ assertEquals("Comment", task.getDescription());
+ assertEquals(Status.Ready, task.getStatus());
+
+ System.out.println("Claiming task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Claimed task " + task.getId());
+
+ System.out.println("Starting task " + task.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Started task " + task.getId());
+
+ System.out.println("Completing task " + task.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.complete(task.getId(), "Darth Vader", null, operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Completed task " + task.getId());
+
+ assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
+ }
+
public void testTaskGroupActors() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("GroupId", "Crusaders");
- handler.executeWorkItem(workItem, manager);
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("GroupId", "Crusaders");
+ handler.executeWorkItem(workItem, manager);
- Thread.sleep(500);
+ Thread.sleep(500);
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner(null,"Crusaders", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary taskSummary = tasks.get(0);
- assertEquals("TaskName", taskSummary.getName());
- assertEquals(10, taskSummary.getPriority());
- assertEquals("Comment", taskSummary.getDescription());
- assertEquals(Status.Ready, taskSummary.getStatus());
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner(null, "Crusaders", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary taskSummary = tasks.get(0);
+ assertEquals("TaskName", taskSummary.getName());
+ assertEquals(10, taskSummary.getPriority());
+ assertEquals("Comment", taskSummary.getDescription());
+ assertEquals(Status.Ready, taskSummary.getStatus());
- System.out.println("Claiming task " + taskSummary.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.claim(taskSummary.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Claimed task " + taskSummary.getId());
+ System.out.println("Claiming task " + taskSummary.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim(taskSummary.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Claimed task " + taskSummary.getId());
//Check if the parent task is InProgress
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskSummary.getId(), getTaskResponseHandler );
+ client.getTask(taskSummary.getId(), getTaskResponseHandler);
Task task = getTaskResponseHandler.getTask();
- assertEquals( Status.Ready, task.getTaskData().getStatus() );
-
+ assertEquals(Status.Ready, task.getTaskData().getStatus());
- }
+ }
public void testTaskSingleAndGroupActors() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task One");
- workItem.setParameter("TaskName", "TaskNameOne");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("GroupId", "Crusaders");
- handler.executeWorkItem(workItem, manager);
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task One");
+ workItem.setParameter("TaskName", "TaskNameOne");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("GroupId", "Crusaders");
+ handler.executeWorkItem(workItem, manager);
- Thread.sleep(500);
+ Thread.sleep(500);
- workItem = new WorkItemImpl();
- workItem.setName("Human Task Two");
- workItem.setParameter("TaskName", "TaskNameTwo");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- handler.executeWorkItem(workItem, manager);
+ workItem = new WorkItemImpl();
+ workItem.setName("Human Task Two");
+ workItem.setParameter("TaskName", "TaskNameTwo");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ handler.executeWorkItem(workItem, manager);
- Thread.sleep(500);
+ Thread.sleep(500);
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader","Crusaders", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(2, tasks.size());
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner("Darth Vader", "Crusaders", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(2, tasks.size());
- }
+ }
- public void testTaskFail() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary task = tasks.get(0);
- assertEquals("TaskName", task.getName());
- assertEquals(10, task.getPriority());
- assertEquals("Comment", task.getDescription());
- assertEquals(Status.Reserved, task.getStatus());
- assertEquals("Darth Vader", task.getActualOwner().getId());
-
- System.out.println("Starting task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Started task " + task.getId());
-
- System.out.println("Failing task " + task.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.fail(task.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Failed task " + task.getId());
-
- assertTrue(manager.isAborted());
- }
-
- public void testTaskSkip() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary task = tasks.get(0);
- assertEquals("TaskName", task.getName());
- assertEquals(10, task.getPriority());
- assertEquals("Comment", task.getDescription());
- assertEquals(Status.Reserved, task.getStatus());
- assertEquals("Darth Vader", task.getActualOwner().getId());
-
- System.out.println("Skipping task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.skip(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Skipped task " + task.getId());
-
- assertTrue(manager.isAborted());
- }
-
- public void testTaskAbortSkippable() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- handler.abortWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(0, tasks.size());
- }
-
- public void testTaskAbortNotSkippable() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- workItem.setParameter("Skippable", "false");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
-
- handler.abortWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- }
-
- public void testTaskData() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- workItem.setParameter("Content", "This is the content");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary taskSummary = tasks.get(0);
- assertEquals("TaskName", taskSummary.getName());
- assertEquals(10, taskSummary.getPriority());
- assertEquals("Comment", taskSummary.getDescription());
- assertEquals(Status.Reserved, taskSummary.getStatus());
- assertEquals("Darth Vader", taskSummary.getActualOwner().getId());
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(taskSummary.getId(), getTaskResponseHandler);
- Task task = getTaskResponseHandler.getTask();
- assertEquals(AccessType.Inline, task.getTaskData().getDocumentAccessType());
- long contentId = task.getTaskData().getDocumentContentId();
- assertTrue(contentId != -1);
- BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
- client.getContent(contentId, getContentResponseHandler);
- ByteArrayInputStream bis = new ByteArrayInputStream(getContentResponseHandler.getContent().getContent());
- ObjectInputStream in = new ObjectInputStream(bis);
- Object data = in.readObject();
- in.close();
- assertEquals("This is the content", data);
-
- System.out.println("Starting task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Started task " + task.getId());
-
- System.out.println("Completing task " + task.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- ContentData result = new ContentData();
- result.setAccessType(AccessType.Inline);
- result.setType("java.lang.String");
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- ObjectOutputStream out = new ObjectOutputStream(bos);
- out.writeObject("This is the result");
- out.close();
- result.setContent(bos.toByteArray());
- client.complete(task.getId(), "Darth Vader", result, operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Completed task " + task.getId());
-
- assertTrue(manager.isCompleted());
- Map<String, Object> results = manager.getResults();
- assertNotNull(results);
- assertEquals("Darth Vader", results.get("ActorId"));
- assertEquals("This is the result", results.get("Result"));
- }
+ public void testTaskFail() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ handler.executeWorkItem(workItem, manager);
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ assertEquals("TaskName", task.getName());
+ assertEquals(10, task.getPriority());
+ assertEquals("Comment", task.getDescription());
+ assertEquals(Status.Reserved, task.getStatus());
+ assertEquals("Darth Vader", task.getActualOwner().getId());
+
+ System.out.println("Starting task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Started task " + task.getId());
+
+ System.out.println("Failing task " + task.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.fail(task.getId(), "Darth Vader", null, operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Failed task " + task.getId());
+
+ assertTrue(manager.isAborted());
+ }
+
+ public void testTaskSkip() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ handler.executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ assertEquals("TaskName", task.getName());
+ assertEquals(10, task.getPriority());
+ assertEquals("Comment", task.getDescription());
+ assertEquals(Status.Reserved, task.getStatus());
+ assertEquals("Darth Vader", task.getActualOwner().getId());
+
+ System.out.println("Skipping task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.skip(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Skipped task " + task.getId());
+
+ assertTrue(manager.isAborted());
+ }
+
+ public void testTaskAbortSkippable() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ handler.executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ handler.abortWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(0, tasks.size());
+ }
+
+ public void testTaskAbortNotSkippable() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ workItem.setParameter("Skippable", "false");
+ handler.executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+
+ handler.abortWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ }
+
+ public void testTaskData() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ workItem.setParameter("Content", "This is the content");
+ handler.executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary taskSummary = tasks.get(0);
+ assertEquals("TaskName", taskSummary.getName());
+ assertEquals(10, taskSummary.getPriority());
+ assertEquals("Comment", taskSummary.getDescription());
+ assertEquals(Status.Reserved, taskSummary.getStatus());
+ assertEquals("Darth Vader", taskSummary.getActualOwner().getId());
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask(taskSummary.getId(), getTaskResponseHandler);
+ Task task = getTaskResponseHandler.getTask();
+ assertEquals(AccessType.Inline, task.getTaskData().getDocumentAccessType());
+ long contentId = task.getTaskData().getDocumentContentId();
+ assertTrue(contentId != -1);
+ BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
+ client.getContent(contentId, getContentResponseHandler);
+ ByteArrayInputStream bis = new ByteArrayInputStream(getContentResponseHandler.getContent().getContent());
+ ObjectInputStream in = new ObjectInputStream(bis);
+ Object data = in.readObject();
+ in.close();
+ assertEquals("This is the content", data);
+
+ System.out.println("Starting task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Started task " + task.getId());
+
+ System.out.println("Completing task " + task.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ ContentData result = new ContentData();
+ result.setAccessType(AccessType.Inline);
+ result.setType("java.lang.String");
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ObjectOutputStream out = new ObjectOutputStream(bos);
+ out.writeObject("This is the result");
+ out.close();
+ result.setContent(bos.toByteArray());
+ client.complete(task.getId(), "Darth Vader", result, operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Completed task " + task.getId());
+
+ assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
+ Map<String, Object> results = manager.getResults();
+ assertNotNull(results);
+ assertEquals("Darth Vader", results.get("ActorId"));
+ assertEquals("This is the result", results.get("Result"));
+ }
+
public void testOnAllSubTasksEndParentEndStrategy() throws Exception {
TestWorkItemManager manager = new TestWorkItemManager();
//Create the parent task
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskNameParent");
- workItem.setParameter("Comment", "CommentParent");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskNameParent");
+ workItem.setParameter("Comment", "CommentParent");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
//Set the subtask policy
workItem.setParameter("SubTaskStrategies", "OnAllSubTasksEndParentEnd");
handler.executeWorkItem(workItem, manager);
- Thread.sleep(500);
+ Thread.sleep(500);
//Test if the task is succesfully created
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary task = tasks.get(0);
- assertEquals("TaskNameParent", task.getName());
- assertEquals(10, task.getPriority());
- assertEquals("CommentParent", task.getDescription());
- assertEquals(Status.Reserved, task.getStatus());
- assertEquals("Darth Vader", task.getActualOwner().getId());
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ assertEquals("TaskNameParent", task.getName());
+ assertEquals(10, task.getPriority());
+ assertEquals("CommentParent", task.getDescription());
+ assertEquals(Status.Reserved, task.getStatus());
+ assertEquals("Darth Vader", task.getActualOwner().getId());
-
//Create the child task
workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskNameChild1");
- workItem.setParameter("Comment", "CommentChild1");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskNameChild1");
+ workItem.setParameter("Comment", "CommentChild1");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
workItem.setParameter("ParentId", task.getId());
- handler.executeWorkItem(workItem, manager);
+ handler.executeWorkItem(workItem, manager);
Thread.sleep(500);
//Create the child task2
workItem = new WorkItemImpl();
- workItem.setName("Human Task2");
- workItem.setParameter("TaskName", "TaskNameChild2");
- workItem.setParameter("Comment", "CommentChild2");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
+ workItem.setName("Human Task2");
+ workItem.setParameter("TaskName", "TaskNameChild2");
+ workItem.setParameter("Comment", "CommentChild2");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
workItem.setParameter("ParentId", task.getId());
- handler.executeWorkItem(workItem, manager);
+ handler.executeWorkItem(workItem, manager);
Thread.sleep(500);
//Start the parent task
System.out.println("Starting task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Started task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Started task " + task.getId());
//Check if the parent task is InProgress
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( task.getId(), getTaskResponseHandler );
+ client.getTask(task.getId(), getTaskResponseHandler);
Task parentTask = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, parentTask.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), parentTask.getTaskData().getActualOwner() );
+ assertEquals(Status.InProgress, parentTask.getTaskData().getStatus());
+ assertEquals(users.get("darth"), parentTask.getTaskData().getActualOwner());
//Get all the subtask created for the parent task based on the potential owner
responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getSubTasksAssignedAsPotentialOwner(parentTask.getId(),"Darth Vader", "en-UK", responseHandler);
+ client.getSubTasksAssignedAsPotentialOwner(parentTask.getId(), "Darth Vader", "en-UK", responseHandler);
List<TaskSummary> subTasks = responseHandler.getResults();
assertEquals(2, subTasks.size());
TaskSummary subTaskSummary1 = subTasks.get(0);
@@ -470,154 +469,142 @@
//Starting the sub task 1
System.out.println("Starting sub task " + subTaskSummary1.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(subTaskSummary1.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Started sub task " + subTaskSummary1.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.start(subTaskSummary1.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Started sub task " + subTaskSummary1.getId());
//Starting the sub task 2
System.out.println("Starting sub task " + subTaskSummary2.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(subTaskSummary2.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Started sub task " + subTaskSummary2.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.start(subTaskSummary2.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Started sub task " + subTaskSummary2.getId());
-
-
//Check if the child task 1 is InProgress
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( subTaskSummary1.getId(), getTaskResponseHandler );
+ client.getTask(subTaskSummary1.getId(), getTaskResponseHandler);
Task subTask1 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, subTask1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), subTask1.getTaskData().getActualOwner() );
+ assertEquals(Status.InProgress, subTask1.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
-
- //Check if the child task 2 is InProgress
+ //Check if the child task 2 is InProgress
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( subTaskSummary2.getId(), getTaskResponseHandler );
+ client.getTask(subTaskSummary2.getId(), getTaskResponseHandler);
Task subTask2 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, subTask2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), subTask2.getTaskData().getActualOwner() );
+ assertEquals(Status.InProgress, subTask2.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
// Complete the child task 1
System.out.println("Completing sub task " + subTask1.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( subTask1.getId(),"Darth Vader" , null, operationResponseHandler );
- operationResponseHandler.waitTillDone( 5000 );
+ client.complete(subTask1.getId(), "Darth Vader", null, operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
System.out.println("Completed sub task " + subTask1.getId());
- // Complete the child task 2
+ // Complete the child task 2
System.out.println("Completing sub task " + subTask2.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( subTask2.getId(),"Darth Vader" , null, operationResponseHandler );
- operationResponseHandler.waitTillDone( 5000 );
+ client.complete(subTask2.getId(), "Darth Vader", null, operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
System.out.println("Completed sub task " + subTask2.getId());
+ //Check if the child task 1 is Completed
-
- //Check if the child task 1 is Completed
-
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( subTask1.getId(), getTaskResponseHandler );
+ client.getTask(subTask1.getId(), getTaskResponseHandler);
subTask1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Completed, subTask1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), subTask1.getTaskData().getActualOwner() );
+ assertEquals(Status.Completed, subTask1.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
- //Check if the child task 2 is Completed
+ //Check if the child task 2 is Completed
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( subTask2.getId(), getTaskResponseHandler );
+ client.getTask(subTask2.getId(), getTaskResponseHandler);
subTask2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Completed, subTask2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), subTask2.getTaskData().getActualOwner() );
+ assertEquals(Status.Completed, subTask2.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
-
-
// Check is the parent task is Complete
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( parentTask.getId(), getTaskResponseHandler );
+ client.getTask(parentTask.getId(), getTaskResponseHandler);
parentTask = getTaskResponseHandler.getTask();
- assertEquals( Status.Completed, parentTask.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), parentTask.getTaskData().getActualOwner() );
+ assertEquals(Status.Completed, parentTask.getTaskData().getStatus());
+ assertEquals(users.get("darth"), parentTask.getTaskData().getActualOwner());
+ assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
+ }
+ public void testOnParentAbortAllSubTasksEndStrategy() throws Exception {
-
-
- assertTrue(manager.isCompleted());
- }
-
- public void testOnParentAbortAllSubTasksEndStrategy() throws Exception {
-
TestWorkItemManager manager = new TestWorkItemManager();
//Create the parent task
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskNameParent");
- workItem.setParameter("Comment", "CommentParent");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskNameParent");
+ workItem.setParameter("Comment", "CommentParent");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
//Set the subtask policy
workItem.setParameter("SubTaskStrategies", "OnParentAbortAllSubTasksEnd");
handler.executeWorkItem(workItem, manager);
- Thread.sleep(500);
+ Thread.sleep(500);
//Test if the task is succesfully created
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary task = tasks.get(0);
- assertEquals("TaskNameParent", task.getName());
- assertEquals(10, task.getPriority());
- assertEquals("CommentParent", task.getDescription());
- assertEquals(Status.Reserved, task.getStatus());
- assertEquals("Darth Vader", task.getActualOwner().getId());
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ assertEquals("TaskNameParent", task.getName());
+ assertEquals(10, task.getPriority());
+ assertEquals("CommentParent", task.getDescription());
+ assertEquals(Status.Reserved, task.getStatus());
+ assertEquals("Darth Vader", task.getActualOwner().getId());
-
//Create the child task
workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskNameChild1");
- workItem.setParameter("Comment", "CommentChild1");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskNameChild1");
+ workItem.setParameter("Comment", "CommentChild1");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
workItem.setParameter("ParentId", task.getId());
- handler.executeWorkItem(workItem, manager);
+ handler.executeWorkItem(workItem, manager);
Thread.sleep(500);
//Create the child task2
workItem = new WorkItemImpl();
- workItem.setName("Human Task2");
- workItem.setParameter("TaskName", "TaskNameChild2");
- workItem.setParameter("Comment", "CommentChild2");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
+ workItem.setName("Human Task2");
+ workItem.setParameter("TaskName", "TaskNameChild2");
+ workItem.setParameter("Comment", "CommentChild2");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
workItem.setParameter("ParentId", task.getId());
- handler.executeWorkItem(workItem, manager);
+ handler.executeWorkItem(workItem, manager);
Thread.sleep(500);
//Start the parent task
System.out.println("Starting task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Started task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Started task " + task.getId());
//Check if the parent task is InProgress
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( task.getId(), getTaskResponseHandler );
+ client.getTask(task.getId(), getTaskResponseHandler);
Task parentTask = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, parentTask.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), parentTask.getTaskData().getActualOwner() );
+ assertEquals(Status.InProgress, parentTask.getTaskData().getStatus());
+ assertEquals(users.get("darth"), parentTask.getTaskData().getActualOwner());
//Get all the subtask created for the parent task based on the potential owner
responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getSubTasksAssignedAsPotentialOwner(parentTask.getId(),"Darth Vader", "en-UK", responseHandler);
+ client.getSubTasksAssignedAsPotentialOwner(parentTask.getId(), "Darth Vader", "en-UK", responseHandler);
List<TaskSummary> subTasks = responseHandler.getResults();
assertEquals(2, subTasks.size());
TaskSummary subTaskSummary1 = subTasks.get(0);
@@ -627,113 +614,118 @@
//Starting the sub task 1
System.out.println("Starting sub task " + subTaskSummary1.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(subTaskSummary1.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Started sub task " + subTaskSummary1.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.start(subTaskSummary1.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Started sub task " + subTaskSummary1.getId());
//Starting the sub task 2
System.out.println("Starting sub task " + subTaskSummary2.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(subTaskSummary2.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
- System.out.println("Started sub task " + subTaskSummary2.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ client.start(subTaskSummary2.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
+ System.out.println("Started sub task " + subTaskSummary2.getId());
-
-
//Check if the child task 1 is InProgress
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( subTaskSummary1.getId(), getTaskResponseHandler );
+ client.getTask(subTaskSummary1.getId(), getTaskResponseHandler);
Task subTask1 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, subTask1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), subTask1.getTaskData().getActualOwner() );
+ assertEquals(Status.InProgress, subTask1.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
-
- //Check if the child task 2 is InProgress
+ //Check if the child task 2 is InProgress
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( subTaskSummary2.getId(), getTaskResponseHandler );
+ client.getTask(subTaskSummary2.getId(), getTaskResponseHandler);
Task subTask2 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, subTask2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), subTask2.getTaskData().getActualOwner() );
+ assertEquals(Status.InProgress, subTask2.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
// Complete the parent task
System.out.println("Completing parent task " + parentTask.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.skip( parentTask.getId(), "Darth Vader", operationResponseHandler );
- operationResponseHandler.waitTillDone( 5000 );
+ client.skip(parentTask.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(5000);
System.out.println("Completed parent task " + parentTask.getId());
-
-
-
//Check if the child task 1 is Completed
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( subTaskSummary1.getId(), getTaskResponseHandler );
+ client.getTask(subTaskSummary1.getId(), getTaskResponseHandler);
subTask1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Completed, subTask1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), subTask1.getTaskData().getActualOwner() );
+ assertEquals(Status.Completed, subTask1.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
-
- //Check if the child task 2 is Completed
+ //Check if the child task 2 is Completed
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( subTaskSummary2.getId(), getTaskResponseHandler );
+ client.getTask(subTaskSummary2.getId(), getTaskResponseHandler);
subTask2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Completed, subTask2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), subTask2.getTaskData().getActualOwner() );
+ assertEquals(Status.Completed, subTask2.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
+ assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
+ }
+ private class TestWorkItemManager implements WorkItemManager {
- assertTrue(manager.isCompleted());
- }
+ private volatile boolean completed;
+ private volatile boolean aborted;
+ private volatile Map<String, Object> results;
+ public synchronized boolean waitTillCompleted(long time) {
+ if (!isCompleted()) {
+ try {
+ wait(time);
+ } catch (InterruptedException e) {
+ // swallow and return state of completed
+ }
+ }
+ return isCompleted();
+ }
- private class TestWorkItemManager implements WorkItemManager {
-
- private boolean completed;
- private boolean aborted;
- private Map<String, Object> results;
-
- public void abortWorkItem(long id) {
- aborted = true;
- }
-
- public boolean isAborted() {
- return aborted;
- }
+ public void abortWorkItem(long id) {
+ aborted = true;
+ }
- public void completeWorkItem(long id, Map<String, Object> results) {
- completed = true;
- this.results = results;
- }
-
- public boolean isCompleted() {
- return completed;
- }
+ public boolean isAborted() {
+ return aborted;
+ }
- public WorkItem getWorkItem(long id) {
- return null;
- }
+ public void completeWorkItem(long id, Map<String, Object> results) {
+ this.results = results;
+ setCompleted(true);
+ }
- public Set<WorkItem> getWorkItems() {
- return null;
- }
-
- public Map<String, Object> getResults() {
- return results;
- }
+ private synchronized void setCompleted(boolean completed) {
+ this.completed = completed;
+ }
- public void internalAbortWorkItem(long id) {
- }
+ public synchronized boolean isCompleted() {
+ return completed;
+ }
- public void internalAddWorkItem(WorkItem workItem) {
- }
+ public WorkItem getWorkItem(long id) {
+ return null;
+ }
- public void internalExecuteWorkItem(WorkItem workItem) {
- }
+ public Set<WorkItem> getWorkItems() {
+ return null;
+ }
- public void registerWorkItemHandler(String workItemName, WorkItemHandler handler) {
- }
-
- }
+ public Map<String, Object> getResults() {
+ return results;
+ }
+
+ public void internalAbortWorkItem(long id) {
+ }
+
+ public void internalAddWorkItem(WorkItem workItem) {
+ }
+
+ public void internalExecuteWorkItem(WorkItem workItem) {
+ }
+
+ public void registerWorkItemHandler(String workItemName, WorkItemHandler handler) {
+ }
+
+ }
}
More information about the jboss-svn-commits
mailing list