[jboss-svn-commits] JBL Code SVN: r22375 - in labs/jbossrules/trunk/drools-process/drools-process-task/src: main/java/org/drools/task/service and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Sep 4 00:07:57 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-09-04 00:07:56 -0400 (Thu, 04 Sep 2008)
New Revision: 22375
Modified:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskData.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/CommandName.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskService.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java
Log:
JBRULES-1745 WS-Human-Task
-Added client/server stuff for suspend and resumed
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskData.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskData.java 2008-09-04 03:04:04 UTC (rev 22374)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskData.java 2008-09-04 04:07:56 UTC (rev 22375)
@@ -25,6 +25,8 @@
Externalizable {
@Enumerated(EnumType.STRING)
private Status status = Status.Created; // initial default state
+
+ private Status previousStatus = null;
@ManyToOne()
private User actualOwner;
@@ -64,6 +66,13 @@
} else {
out.writeBoolean( false );
}
+
+ if ( previousStatus != null ) {
+ out.writeBoolean( true );
+ out.writeUTF( previousStatus.toString() );
+ } else {
+ out.writeBoolean( false );
+ }
if ( actualOwner != null ) {
out.writeBoolean( true );
@@ -111,6 +120,10 @@
if ( in.readBoolean() ) {
status = Status.valueOf( in.readUTF() );
}
+
+ if ( in.readBoolean() ) {
+ previousStatus = Status.valueOf( in.readUTF() );
+ }
if ( in.readBoolean() ) {
actualOwner = new User();
@@ -146,9 +159,18 @@
}
public void setStatus(Status status) {
+ previousStatus = this.status;
this.status = status;
+ }
+
+ public Status getPreviousStatus() {
+ return previousStatus;
}
+ public void setPreviousStatus(Status previousStatus) {
+ this.previousStatus = previousStatus;
+ }
+
public User getActualOwner() {
return actualOwner;
}
@@ -232,6 +254,8 @@
result = prime * result + ((expirationTime == null) ? 0 : expirationTime.hashCode());
result = prime * result + (skipable ? 1231 : 1237);
result = prime * result + ((status == null) ? 0 : status.hashCode());
+ result = prime * result + ((previousStatus == null) ? 0 : previousStatus.hashCode());
+
return result;
}
@@ -264,6 +288,9 @@
if ( status == null ) {
if ( other.status != null ) return false;
} else if ( !status.equals( other.status ) ) return false;
+ if ( previousStatus == null ) {
+ if ( other.previousStatus != null ) return false;
+ } else if ( !previousStatus.equals( other.previousStatus ) ) return false;
if ( activationTime == null ) {
if ( other.activationTime != null ) return false;
} else if ( activationTime.getTime() != other.activationTime.getTime() ) return false;
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/CommandName.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/CommandName.java 2008-09-04 03:04:04 UTC (rev 22374)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/CommandName.java 2008-09-04 04:07:56 UTC (rev 22375)
@@ -10,6 +10,10 @@
StopResponse,
ReleaseRequest,
ReleaseResponse,
+ SuspendRequest,
+ SuspendResponse,
+ ResumeRequest,
+ ResumeResponse,
CompleteRequest,
CompleteResponse,
FailRequest,
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java 2008-09-04 03:04:04 UTC (rev 22374)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java 2008-09-04 04:07:56 UTC (rev 22375)
@@ -213,6 +213,26 @@
session.write( cmd );
}
+ public void suspend(long taskId, long userId) {
+ List args = new ArrayList( 1 );
+ args.add( taskId );
+ args.add( userId );
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.SuspendRequest, args);
+
+ session.write( cmd );
+ }
+
+ public void resume(long taskId, long userId) {
+ List args = new ArrayList( 1 );
+ args.add( taskId );
+ args.add( userId );
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.ResumeRequest, args);
+
+ session.write( cmd );
+ }
+
+
+
public void complete(long taskId, long userId) {
List args = new ArrayList( 1 );
args.add( taskId );
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java 2008-09-04 03:04:04 UTC (rev 22374)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java 2008-09-04 04:07:56 UTC (rev 22375)
@@ -57,6 +57,18 @@
service.release( taskId, userId );
break;
}
+ case SuspendRequest : {
+ long taskId = ( Long ) cmd.getArguments().get( 0 );
+ long userId = ( Long ) cmd.getArguments().get( 1 );
+ service.suspend( taskId, userId );
+ break;
+ }
+ case ResumeRequest : {
+ long taskId = ( Long ) cmd.getArguments().get( 0 );
+ long userId = ( Long ) cmd.getArguments().get( 1 );
+ service.resume( taskId, userId );
+ break;
+ }
case CompleteRequest : {
long taskId = ( Long ) cmd.getArguments().get( 0 );
long userId = ( Long ) cmd.getArguments().get( 1 );
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskService.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskService.java 2008-09-04 03:04:04 UTC (rev 22374)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskService.java 2008-09-04 04:07:56 UTC (rev 22375)
@@ -267,7 +267,8 @@
TaskData taskData = task.getTaskData();
- if ( taskData.getStatus() == Status.InProgress && taskData.getActualOwner().equals( user ) ) {
+ PeopleAssignments people = task.getPeopleAssignments();
+ if ( taskData.getStatus() == Status.InProgress && ( taskData.getActualOwner().equals( user ) || isAllowed( user, new List[] { people.getBusinessAdministrators() } ) ) ) {
// Status must be InProgress and actual owner, switch to Reserved
em.getTransaction().begin();
taskData.setStatus( Status.Reserved );
@@ -306,7 +307,8 @@
TaskData taskData = task.getTaskData();
// task must be reserved or in progress and owned by user
- if ( (taskData.getStatus() == Status.Reserved || taskData.getStatus() == Status.InProgress) && taskData.getActualOwner().equals( user ) ) {
+ PeopleAssignments people = task.getPeopleAssignments();
+ if ( (taskData.getStatus() == Status.Reserved || taskData.getStatus() == Status.InProgress) && ( taskData.getActualOwner().equals( user ) || isAllowed( user, new List[] { people.getBusinessAdministrators() } ) ) ) {
em.getTransaction().begin();
taskData.setStatus( Status.Ready );
taskData.setActualOwner( null );
@@ -316,6 +318,58 @@
}
}
+ public void suspend(long taskId, long userId) {
+ Task task = em.find( Task.class,
+ taskId );
+
+ User user = em.find( User.class, userId );
+
+ TaskData taskData = task.getTaskData();
+
+ List[] allowed;
+ PeopleAssignments people = task.getPeopleAssignments();
+ if ( taskData.getStatus() == Status.Ready ) {
+ // If it's ready then potential owners can suspect too
+ allowed = new List[] { people.getPotentialOwners(), people.getBusinessAdministrators() };
+ } else {
+ allowed = new List[] { people.getBusinessAdministrators() };
+ }
+
+ if ( (taskData.getStatus() != Status.Completed && taskData.getStatus() != Status.Failed && taskData.getStatus() != Status.Created) && ( ( taskData.getActualOwner() != null && taskData.getActualOwner().equals( user ) ) || isAllowed( user, allowed ) ) ) {
+ em.getTransaction().begin();
+ taskData.setStatus( Status.Suspended );
+ em.getTransaction().commit();
+ } else {
+ //@TODO Error
+ }
+ }
+
+ public void resume(long taskId, long userId) {
+ Task task = em.find( Task.class,
+ taskId );
+
+ User user = em.find( User.class, userId );
+
+ TaskData taskData = task.getTaskData();
+
+ List[] allowed;
+ PeopleAssignments people = task.getPeopleAssignments();
+ if ( taskData.getPreviousStatus() == Status.Ready ) {
+ // If it's ready then potential owners can suspect too
+ allowed = new List[] { people.getPotentialOwners(), people.getBusinessAdministrators() };
+ } else {
+ allowed = new List[] { people.getBusinessAdministrators() };
+ }
+
+ if ( (taskData.getStatus() == Status.Suspended) && ( ( taskData.getActualOwner() != null && taskData.getActualOwner().equals( user ) ) || isAllowed( user, allowed ) ) ) {
+ em.getTransaction().begin();
+ taskData.setStatus( taskData.getPreviousStatus() );
+ em.getTransaction().commit();
+ } else {
+ //@TODO Error
+ }
+ }
+
public void fail(long taskId, long userId) {
Task task = em.find( Task.class,
taskId );
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java 2008-09-04 03:04:04 UTC (rev 22374)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsTest.java 2008-09-04 04:07:56 UTC (rev 22375)
@@ -20,6 +20,7 @@
import org.drools.task.BaseTest;
import org.drools.task.Comment;
import org.drools.task.Deadline;
+import org.drools.task.Status;
import org.drools.task.Task;
import org.drools.task.query.TaskSummary;
import org.drools.task.service.TaskClientHandler.TaskSummaryResponseHandler;
@@ -96,7 +97,9 @@
assertEquals( (long)addCommentResponseHandler.getCommentId(), (long) returnedComment.getId() );
+ // Make the same as the returned tasks, so we can test equals
task.getTaskData().setComments( comments1 );
+ task.getTaskData().setStatus( Status.Created );
assertEquals(task, task1);
// test we can have multiple comments
@@ -181,7 +184,9 @@
assertEquals( (long) addAttachmentResponseHandler.getAttachmentId(), (long) returnedAttachment.getId() );
assertEquals( (long) addAttachmentResponseHandler.getContentId(), (long) returnedAttachment.getContentId() );
+ // Make the same as the returned tasks, so we can test equals
task.getTaskData().setAttachments( attachments1 );
+ task.getTaskData().setStatus( Status.Created );
assertEquals(task, task1);
BlockingGetAttachmentContentResponseHandler getAttachmentContentResponseHandler = new BlockingGetAttachmentContentResponseHandler();
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java 2008-09-04 03:04:04 UTC (rev 22374)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java 2008-09-04 04:07:56 UTC (rev 22375)
@@ -445,7 +445,233 @@
assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
}
+
+ public void testSuspendFromReady() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Ready
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready, task1.getTaskData().getStatus() );
+ assertNull( task1.getTaskData().getActualOwner() );
+
+ // Check is Suspended
+ client.suspend( taskId, users.get( "darth" ).getId() );
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Suspended, task2.getTaskData().getStatus() );
+ assertEquals( Status.Ready, task2.getTaskData().getPreviousStatus() );
+ assertNull( task1.getTaskData().getActualOwner() );
+ }
+ public void testSuspendFromReserved() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Reserved
+ client.claim( taskId, users.get( "darth" ).getId() );
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is Suspended
+ client.suspend( taskId, users.get( "darth" ).getId() );
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task2.getTaskData().getPreviousStatus() );
+ assertEquals( Status.Suspended, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+ }
+
+ public void testSuspendFromReservedWithIncorrectUser() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Reserved
+ client.claim( taskId, users.get( "darth" ).getId() );
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is not changed
+ client.suspend( taskId, users.get( "bobba" ).getId() );
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+ }
+
+ //////////////////////////
+ public void testResumeFromReady() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Ready
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready, task1.getTaskData().getStatus() );
+ assertNull( task1.getTaskData().getActualOwner() );
+
+ // Check is Suspended
+ client.suspend( taskId, users.get( "darth" ).getId() );
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Suspended, task2.getTaskData().getStatus() );
+ assertEquals( Status.Ready, task2.getTaskData().getPreviousStatus() );
+ assertNull( task1.getTaskData().getActualOwner() );
+
+ // Check is Resumed
+ client.resume( taskId, users.get( "darth" ).getId() );
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task3 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready, task3.getTaskData().getStatus() );
+ assertEquals( Status.Suspended, task3.getTaskData().getPreviousStatus() );
+ assertNull( task3.getTaskData().getActualOwner() );
+ }
+
+ public void testResumeFromReserved() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Reserved
+ client.claim( taskId, users.get( "darth" ).getId() );
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is suspended
+ client.suspend( taskId, users.get( "darth" ).getId() );
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task2.getTaskData().getPreviousStatus() );
+ assertEquals( Status.Suspended, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+
+ // Check is Resumed
+ client.resume( taskId, users.get( "darth" ).getId() );
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task3 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task3.getTaskData().getStatus() );
+ assertEquals( Status.Suspended, task3.getTaskData().getPreviousStatus() );
+ assertEquals( users.get( "darth" ), task3.getTaskData().getActualOwner() );
+ }
+
+ public void testResumeFromReservedWithIncorrectUser() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Reserved
+ client.claim( taskId, users.get( "darth" ).getId() );
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check not changed
+ client.suspend( taskId, users.get( "bobba" ).getId() );
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+ }
+
+
public void testComplete() {
Map vars = new HashedMap();
vars.put( "users", users );
More information about the jboss-svn-commits
mailing list