[jboss-svn-commits] JBL Code SVN: r22324 - in labs/jbossrules/trunk/drools-process/drools-process-task/src: main/java/org/drools/task/service and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Sep 2 09:47:42 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-09-02 09:47:41 -0400 (Tue, 02 Sep 2008)
New Revision: 22324
Added:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/AttachmentContent.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTaskUpdate.java
Modified:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Attachment.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/TaskClientHandler.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/main/resources/META-INF/persistence.xml
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/ModelPersistenceTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.mvel
Log:
JBRULES-1745 WS-Human-Task
-Attachments and Comments now work with the client/server api
-Attachment content is now in another table, to avoid large Task retrievals
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Attachment.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Attachment.java 2008-09-02 13:40:56 UTC (rev 22323)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Attachment.java 2008-09-02 13:47:41 UTC (rev 22324)
@@ -42,9 +42,10 @@
private Date attachedAt;
- @Lob
- private byte[] content;
+ private int size;
+ private long contentId;
+
public void writeExternal(ObjectOutput out) throws IOException {
out.writeLong( id );
out.writeUTF( name );
@@ -52,8 +53,8 @@
out.writeUTF( contentType );
attachedBy.writeExternal( out );
out.writeLong( attachedAt.getTime() );
- out.writeInt( content.length );
- out.write( content );
+ out.writeInt( size );
+ out.writeLong( contentId );
}
public void readExternal(ObjectInput in) throws IOException,
@@ -65,8 +66,8 @@
attachedBy = new User();
attachedBy.readExternal( in );
attachedAt = new Date( in.readLong() );
- content = new byte[ in.readInt() ];
- in.read( content );
+ size = in.readInt( );
+ contentId = in.readLong();
}
public Long getId() {
@@ -115,16 +116,24 @@
public void setAttachedBy(User attachedBy) {
this.attachedBy = attachedBy;
+ }
+
+ public int getSize() {
+ return size;
}
- public byte[] getContent() {
- return content;
+ public void setSize(int size) {
+ this.size = size;
}
+
+ public long getContentId() {
+ return contentId;
+ }
- public void setContent(byte[] attachment) {
- this.content = attachment;
- }
-
+ public void setContentId(long contentId) {
+ this.contentId = contentId;
+ }
+
@Override
public int hashCode() {
final int prime = 31;
@@ -132,7 +141,8 @@
result = prime * result + ((accessType == null) ? 0 : accessType.hashCode());
result = prime * result + ((attachedAt == null) ? 0 : attachedAt.hashCode());
result = prime * result + ((attachedBy == null) ? 0 : attachedBy.hashCode());
- result = prime * result + Arrays.hashCode( content );
+ result = prime * result + size;
+ result = prime * result + (int) (contentId ^ (contentId >>> 32));
result = prime * result + ((contentType == null) ? 0 : contentType.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
@@ -153,8 +163,8 @@
if ( attachedBy == null ) {
if ( other.attachedBy != null ) return false;
} else if ( !attachedBy.equals( other.attachedBy ) ) return false;
- if ( !Arrays.equals( content,
- other.content ) ) return false;
+ if ( size != other.size ) return false;
+ if ( contentId != other.contentId ) return false;
if ( contentType == null ) {
if ( other.contentType != null ) return false;
} else if ( !contentType.equals( other.contentType ) ) return false;
@@ -163,6 +173,10 @@
} else if ( !name.equals( other.name ) ) return false;
return true;
}
+
+
+
+
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/AttachmentContent.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/AttachmentContent.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/AttachmentContent.java 2008-09-02 13:47:41 UTC (rev 22324)
@@ -0,0 +1,76 @@
+package org.drools.task;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.Arrays;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+
+ at Entity
+public class AttachmentContent implements Externalizable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long id;
+
+ @Lob
+ private byte[] content;
+
+ public AttachmentContent() {
+
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong( id );
+ out.writeInt( content.length );
+ out.write( content );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ id = in.readLong();
+ content = new byte[ in.readInt() ];
+ in.read( content );
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public byte[] getContent() {
+ return content;
+ }
+
+ public void setContent(byte[] content) {
+ this.content = content;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + Arrays.hashCode( content );
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof AttachmentContent) ) return false;
+ AttachmentContent other = (AttachmentContent) obj;
+ if ( !Arrays.equals( content,
+ other.content ) ) return false;
+ return true;
+ }
+
+}
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-02 13:40:56 UTC (rev 22323)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/CommandName.java 2008-09-02 13:47:41 UTC (rev 22324)
@@ -2,11 +2,22 @@
import javax.persistence.Query;
-public enum CommandName {
+public enum CommandName {
+
+ GetTaskRequest,
+ GetTaskResponse,
+
AddTaskRequest,
- AddAttachment,
- AddComment,
+ AddTaskResponse,
+ AddAttachmentRequest,
+ AddAttachmentResponse,
+ GetAttachmentContentRequest,
+ GetAttachmentContentResponse,
+
+ AddCommentRequest,
+ AddCommentResponse,
+
Query_TasksOwned,
Query_TasksAssignedAsBusinessAdministrator,
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-02 13:40:56 UTC (rev 22323)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java 2008-09-02 13:47:41 UTC (rev 22324)
@@ -7,6 +7,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.core.service.IoHandler;
@@ -18,7 +19,15 @@
import org.apache.mina.transport.socket.SocketConnector;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
import org.drools.task.AccessType;
+import org.drools.task.Attachment;
+import org.drools.task.AttachmentContent;
+import org.drools.task.Comment;
import org.drools.task.Task;
+import org.drools.task.service.TaskClientHandler.AddAttachmentResponseHandler;
+import org.drools.task.service.TaskClientHandler.AddCommentResponseHandler;
+import org.drools.task.service.TaskClientHandler.AddTaskResponseHandler;
+import org.drools.task.service.TaskClientHandler.GetAttachmentContentResponseHandler;
+import org.drools.task.service.TaskClientHandler.GetTaskResponseHandler;
import org.drools.task.service.TaskClientHandler.TaskSummaryResponseHandler;
public class MinaTaskClient
@@ -29,7 +38,7 @@
private IoSession session;
- private int counter;
+ private AtomicInteger counter;
public static void main(String[] args) throws Exception {
MinaTaskClient client = new MinaTaskClient("test client", new TaskClientHandler() );
@@ -44,6 +53,7 @@
}
this.name = name;
this.handler = handler;
+ counter = new AtomicInteger();
}
public boolean connect(SocketConnector connector, SocketAddress address) {
@@ -92,45 +102,68 @@
}
}
- public void addTask(Task task) {
+ public void addTask(Task task, AddTaskResponseHandler responseHandler ) {
List args = new ArrayList( 1 );
args.add( task );
- Command cmd = new Command( counter++, CommandName.AddTaskRequest, args);
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.AddTaskRequest, args);
+ handler.addResponseHandler( cmd.getId(), responseHandler );
+
session.write( cmd );
}
- public void addAttachment(long taskId, String name, long userId, Date attachedAt, AccessType accessType, String contentType, byte[] content ) {
- List args = new ArrayList( 7 );
+ public void getTask(long taskId, GetTaskResponseHandler responseHandler) {
+ List args = new ArrayList( 1 );
args.add( taskId );
- args.add( name );
- args.add( userId );
- args.add( attachedAt );
- args.add( accessType );
- args.add( contentType );
- args.add( content );
- Command cmd = new Command( counter++, CommandName.AddAttachment, args);
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.GetTaskRequest, args);
+ handler.addResponseHandler( cmd.getId(), responseHandler );
+
session.write( cmd );
+
}
- public void addComment(long taskId, long userId, Date addedAt, String text) {
- List args = new ArrayList( 4 );
+ public void addComment(long taskId, Comment comment, AddCommentResponseHandler responseHandler) {
+ List args = new ArrayList( 2 );
args.add( taskId );
- args.add( name );
- args.add( userId );
- args.add( addedAt );
- args.add( text );
- Command cmd = new Command( counter++, CommandName.AddComment, args);
+ args.add( comment );
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.AddCommentRequest, args);
+ handler.addResponseHandler( cmd.getId(), responseHandler );
+
session.write( cmd );
}
+
+ public void addAttachment(long taskId, Attachment attachment, AttachmentContent content, AddAttachmentResponseHandler responseHandler ) {
+ List args = new ArrayList( 2 );
+ args.add( taskId );
+ args.add( attachment );
+ args.add( content );
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.AddAttachmentRequest, args);
+
+ handler.addResponseHandler( cmd.getId(), responseHandler );
+
+ session.write( cmd );
+ }
+
+ public void getAttachmentContent(long contentId, GetAttachmentContentResponseHandler responseHandler) {
+ List args = new ArrayList( 1 );
+ args.add( contentId );
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.GetAttachmentContentRequest, args);
+
+ handler.addResponseHandler( cmd.getId(), responseHandler );
+
+ session.write( cmd );
+
+ }
+
+
public void getTasksOwned(long userId, String language, TaskSummaryResponseHandler responseHandler) {
List args = new ArrayList( 2 );
args.add( userId );
args.add( language );
- Command cmd = new Command( counter++, CommandName.Query_TasksOwned, args);
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.Query_TasksOwned, args);
handler.addResponseHandler( cmd.getId(), responseHandler );
session.write( cmd );
}
@@ -139,7 +172,7 @@
List args = new ArrayList( 2 );
args.add( userId );
args.add( language );
- Command cmd = new Command( counter++, CommandName.Query_TasksAssignedAsBusinessAdministrator, args);
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.Query_TasksAssignedAsBusinessAdministrator, args);
handler.addResponseHandler( cmd.getId(), responseHandler );
session.write( cmd );
}
@@ -148,7 +181,7 @@
List args = new ArrayList( 2 );
args.add( userId );
args.add( language );
- Command cmd = new Command( counter++, CommandName.Query_TasksAssignedAsExcludedOwner, args);
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.Query_TasksAssignedAsExcludedOwner, args);
handler.addResponseHandler( cmd.getId(), responseHandler );
session.write( cmd );
}
@@ -157,7 +190,7 @@
List args = new ArrayList( 2 );
args.add( userId );
args.add( language );
- Command cmd = new Command( counter++, CommandName.Query_TasksAssignedAsPotentialOwner, args);
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.Query_TasksAssignedAsPotentialOwner, args);
handler.addResponseHandler( cmd.getId(), responseHandler );
session.write( cmd );
}
@@ -166,7 +199,7 @@
List args = new ArrayList( 2 );
args.add( userId );
args.add( language );
- Command cmd = new Command( counter++, CommandName.Query_TasksAssignedAsRecipient, args);
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.Query_TasksAssignedAsRecipient, args);
handler.addResponseHandler( cmd.getId(), responseHandler );
session.write( cmd );
}
@@ -175,7 +208,7 @@
List args = new ArrayList( 2 );
args.add( userId );
args.add( language );
- Command cmd = new Command( counter++, CommandName.Query_TasksAssignedAsTaskInitiator, args);
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.Query_TasksAssignedAsTaskInitiator, args);
handler.addResponseHandler( cmd.getId(), responseHandler );
session.write( cmd );
}
@@ -184,7 +217,7 @@
List args = new ArrayList( 2 );
args.add( userId );
args.add( language );
- Command cmd = new Command( counter++, CommandName.Query_TasksAssignedAsTaskStakeholder, args);
+ Command cmd = new Command( counter.getAndIncrement(), CommandName.Query_TasksAssignedAsTaskStakeholder, args);
handler.addResponseHandler( cmd.getId(), responseHandler );
session.write( cmd );
}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java 2008-09-02 13:40:56 UTC (rev 22323)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java 2008-09-02 13:47:41 UTC (rev 22324)
@@ -8,6 +8,8 @@
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
+import org.drools.task.AttachmentContent;
+import org.drools.task.Task;
import org.drools.task.query.TaskSummary;
public class TaskClientHandler extends IoHandlerAdapter
@@ -42,12 +44,54 @@
Object message) throws Exception {
Command cmd = (Command) message;
switch ( cmd.getName() ) {
+ case GetTaskResponse : {
+ Task task = ( Task ) cmd.getArguments().get( 0 );
+ GetTaskResponseHandler responseHandler = (GetTaskResponseHandler) responseHandlers.remove( cmd.getId() );
+ if ( responseHandler != null ) {
+ responseHandler.execute( task );
+ }
+ break;
+ }
+ case AddTaskResponse : {
+ long taskId = ( Long ) cmd.getArguments().get( 0 );
+ AddTaskResponseHandler responseHandler = (AddTaskResponseHandler) responseHandlers.remove( cmd.getId() );
+ if ( responseHandler != null ) {
+ responseHandler.execute( taskId );
+ }
+ break;
+ }
+ case AddCommentResponse : {
+ long commentId = ( Long ) cmd.getArguments().get( 0 );
+ AddCommentResponseHandler responseHandler = (AddCommentResponseHandler) responseHandlers.remove( cmd.getId() );
+ if ( responseHandler != null ) {
+ responseHandler.execute( commentId );
+ }
+ break;
+ }
+ case AddAttachmentResponse : {
+ long attachmentId = ( Long ) cmd.getArguments().get( 0 );
+ long contentId = ( Long ) cmd.getArguments().get( 1 );
+ AddAttachmentResponseHandler responseHandler = (AddAttachmentResponseHandler) responseHandlers.remove( cmd.getId() );
+ if ( responseHandler != null ) {
+ responseHandler.execute( attachmentId, contentId );
+ }
+ break;
+ }
+ case GetAttachmentContentResponse : {
+ AttachmentContent content = ( AttachmentContent ) cmd.getArguments().get( 0 );
+ GetAttachmentContentResponseHandler responseHandler = (GetAttachmentContentResponseHandler) responseHandlers.remove( cmd.getId() );
+ if ( responseHandler != null ) {
+ responseHandler.execute( content );
+ }
+ break;
+ }
case Query_TaskSummaryResponse : {
List<TaskSummary> results = ( List<TaskSummary> ) cmd.getArguments().get( 0 );
TaskSummaryResponseHandler responseHandler = ( TaskSummaryResponseHandler ) responseHandlers.remove( cmd.getId() );
if ( responseHandler != null ) {
responseHandler.execute( results );
- }
+ }
+ break;
}
}
}
@@ -77,9 +121,27 @@
}
+ public static interface GetTaskResponseHandler extends ResponseHandler {
+ public void execute(Task task);
+ }
+
+ public static interface AddTaskResponseHandler extends ResponseHandler {
+ public void execute(long taskId);
+ }
+
+ public static interface AddCommentResponseHandler extends ResponseHandler {
+ public void execute(long commentId);
+ }
+
+ public static interface AddAttachmentResponseHandler extends ResponseHandler {
+ public void execute(long attachmentId, long contentId);
+ }
+
+ public static interface GetAttachmentContentResponseHandler extends ResponseHandler {
+ public void execute(AttachmentContent attachmentContent);
+ }
+
public static interface TaskSummaryResponseHandler extends ResponseHandler {
public void execute(List<TaskSummary> results);
-
- public List<TaskSummary> getResults();
}
}
\ No newline at end of file
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-02 13:40:56 UTC (rev 22323)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java 2008-09-02 13:47:41 UTC (rev 22324)
@@ -8,6 +8,10 @@
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
+import org.drools.task.AccessType;
+import org.drools.task.Attachment;
+import org.drools.task.AttachmentContent;
+import org.drools.task.Comment;
import org.drools.task.Task;
import org.drools.task.query.TaskSummary;
@@ -29,10 +33,66 @@
Object message) throws Exception {
Command cmd = (Command) message;
switch ( cmd.getName() ) {
+ case GetTaskRequest : {
+ long taskId = ( Long ) cmd.getArguments().get( 0 );
+ Task task = service.getTask( taskId );
+ List args = new ArrayList( 1 );
+ args.add( task );
+ Command resultsCmnd = new Command( cmd.getId(),
+ CommandName.GetTaskResponse,
+ args );
+ session.write( resultsCmnd );
+ break;
+ }
case AddTaskRequest : {
- service.addTask( (Task) cmd.getArguments().get( 0 ) );
+ Task task = (Task) cmd.getArguments().get( 0 ) ;
+ service.addTask( task );
+
+ List args = new ArrayList( 1 );
+ args.add( task.getId() );
+ Command resultsCmnd = new Command( cmd.getId(),
+ CommandName.AddTaskResponse,
+ args );
+ session.write( resultsCmnd );
break;
}
+ case AddCommentRequest : {
+ Comment comment = ( Comment ) cmd.getArguments().get( 1 );
+ service.addComment( (Long) cmd.getArguments().get( 0 ), comment );
+
+ List args = new ArrayList( 1 );
+ args.add( comment.getId() );
+ Command resultsCmnd = new Command( cmd.getId(),
+ CommandName.AddCommentResponse,
+ args );
+ session.write( resultsCmnd );
+ break;
+ }
+ case AddAttachmentRequest : {
+ Attachment attachment = ( Attachment ) cmd.getArguments().get( 1 );
+ AttachmentContent content = ( AttachmentContent ) cmd.getArguments().get( 2 );
+ service.addAttachment( (Long) cmd.getArguments().get( 0 ), attachment, content );
+
+ List args = new ArrayList( 1 );
+ args.add( attachment.getId() );
+ args.add( content.getId() );
+ Command resultsCmnd = new Command( cmd.getId(),
+ CommandName.AddAttachmentResponse,
+ args );
+ session.write( resultsCmnd );
+ break;
+ }
+ case GetAttachmentContentRequest : {
+ long contentId = ( Long ) cmd.getArguments().get( 0 );
+ AttachmentContent content = service.getAttachmentContent( contentId );
+ List args = new ArrayList( 1 );
+ args.add( content );
+ Command resultsCmnd = new Command( cmd.getId(),
+ CommandName.GetAttachmentContentResponse,
+ args );
+ session.write( resultsCmnd );
+ break;
+ }
case Query_TasksOwned : {
List<TaskSummary> results = service.getTasksOwned( (Long) cmd.getArguments().get( 0 ),
(String) 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-02 13:40:56 UTC (rev 22323)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskService.java 2008-09-02 13:47:41 UTC (rev 22324)
@@ -19,6 +19,7 @@
import org.drools.task.AccessType;
import org.drools.task.Attachment;
+import org.drools.task.AttachmentContent;
import org.drools.task.Comment;
import org.drools.task.Deadline;
import org.drools.task.Group;
@@ -155,73 +156,59 @@
}
}
}
- }
+ }
- public void addAttachment(long taskId, String name, long userId, Date attachedAt, AccessType accessType, String contentType, byte[] content ) {
+ public void addComment(long taskId, Comment comment) {
Task task = em.find( Task.class, taskId );
-
if ( task == null ) {
// throw some exception
- }
+ }
- User addedBy = em.find( User.class, userId);
- if ( addedBy == null ) {
- // throw some exception
- }
-
em.getTransaction().begin();
- Attachment attachment = new Attachment();
- attachment.setName( name );
- attachment.setAttachedBy( addedBy );
- attachment.setAttachedAt( attachedAt );
- attachment.setAccessType( accessType );
- attachment.setContentType( contentType );
- attachment.setContent( content );
-
- List<Attachment> list = task.getTaskData().getAttachments();
- if ( list == null || list == Collections.<Attachment>emptyList() ) {
- list = new ArrayList<Attachment>( 1 );
- task.getTaskData().setAttachments( list );
+ List<Comment> list = task.getTaskData().getComments();
+ if ( list == null || list == Collections.<Comment>emptyList() ) {
+ list = new ArrayList<Comment>( 1 );
+ task.getTaskData().setComments( list );
}
- list.add ( attachment );
+ list.add ( comment );
+
em.getTransaction().commit();
- }
+ }
- public void addComment(long taskId, long userId, Date addedAt, String text) {
+ public void addAttachment(long taskId, Attachment attachment, AttachmentContent content) {
Task task = em.find( Task.class, taskId );
+
if ( task == null ) {
// throw some exception
}
- User addedBy = em.find( User.class, userId);
- if ( addedBy == null ) {
- // throw some exception
- }
+ em.getTransaction().begin();
- em.getTransaction().begin();
+ em.persist( content );
+ attachment.setSize( content.getContent().length );
+ attachment.setContentId( content.getId() );
- Comment comment = new Comment();
- comment.setAddedBy( addedBy );
- comment.setAddedAt( addedAt );
- comment.setText( text );
-
- List<Comment> list = task.getTaskData().getComments();
- if ( list == null || list == Collections.<Comment>emptyList() ) {
- list = new ArrayList<Comment>( 1 );
- task.getTaskData().setComments( list );
+ List<Attachment> list = task.getTaskData().getAttachments();
+ if ( list == null || list == Collections.<Attachment>emptyList() ) {
+ list = new ArrayList<Attachment>( 1 );
+ task.getTaskData().setAttachments( list );
}
- list.add ( comment );
-
+ list.add ( attachment );
em.getTransaction().commit();
- }
+ }
+
+ public AttachmentContent getAttachmentContent(long contentId) {
+ AttachmentContent content = em.find( AttachmentContent.class, contentId );
+ return content;
+ }
public Task getTask(long taskId) {
Task task = em.find( Task.class,
taskId );
- return task;
+ return task;
}
public List<DeadlineSummary> getUnescalatedDeadlines() {
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/persistence.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/persistence.xml 2008-09-02 13:40:56 UTC (rev 22323)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/persistence.xml 2008-09-02 13:47:41 UTC (rev 22324)
@@ -3,8 +3,8 @@
http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="org.drools.task">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
- <class>org.drools.task.User</class>
<class>org.drools.task.Attachment</class>
+ <class>org.drools.task.AttachmentContent</class>
<class>org.drools.task.BooleanExpression</class>
<class>org.drools.task.Comment</class>
<class>org.drools.task.Deadline</class>
@@ -20,7 +20,8 @@
<class>org.drools.task.Status</class>
<class>org.drools.task.Task</class>
<class>org.drools.task.TaskData</class>
-
+ <class>org.drools.task.User</class>
+
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
<property name="hibernate.connection.driver_class" value="org.h2.Driver"/>
@@ -37,7 +38,7 @@
<property name="hibernate.connection.autocommit" value="false" />
<property name="hibernate.max_fetch_depth" value="3"/>
<property name="hibernate.hbm2ddl.auto" value="update" />
- <property name="hibernate.show_sql" value="true" />
+ <property name="hibernate.show_sql" value="false" />
</properties>
</persistence-unit>
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/ModelPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/ModelPersistenceTest.java 2008-09-02 13:40:56 UTC (rev 22323)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/ModelPersistenceTest.java 2008-09-02 13:47:41 UTC (rev 22324)
@@ -115,7 +115,8 @@
attachment.setAttachedBy( users.get( "liz" ) );
attachment.setContentType( "text" );
attachment.setName( "file.txt" );
- attachment.setContent( new byte[]{1, 0, 0, 1} );
+ attachment.setSize( 5000);
+ attachment.setContentId( 5 );
attachments.add( attachment );
attachment = new Attachment();
@@ -124,7 +125,8 @@
attachment.setAttachedBy( users.get( "liz" ) );
attachment.setContentType( "text" );
attachment.setName( "file2.txt" );
- attachment.setContent( new String( "http://domain.org/file.txt" ).getBytes() );
+ attachment.setSize( 500 );
+ attachment.setContentId( 3 );
attachments.add( attachment );
List<Comment> comments = new ArrayList<Comment>();
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTaskUpdate.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTaskUpdate.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTaskUpdate.java 2008-09-02 13:47:41 UTC (rev 22324)
@@ -0,0 +1,314 @@
+package org.drools.task.service;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.drools.task.AccessType;
+import org.drools.task.Attachment;
+import org.drools.task.AttachmentContent;
+import org.drools.task.BaseTest;
+import org.drools.task.Comment;
+import org.drools.task.Deadline;
+import org.drools.task.Task;
+import org.drools.task.query.TaskSummary;
+import org.drools.task.service.TaskClientHandler.AddAttachmentResponseHandler;
+import org.drools.task.service.TaskClientHandler.AddCommentResponseHandler;
+import org.drools.task.service.TaskClientHandler.AddTaskResponseHandler;
+import org.drools.task.service.TaskClientHandler.GetAttachmentContentResponseHandler;
+import org.drools.task.service.TaskClientHandler.GetTaskResponseHandler;
+import org.drools.task.service.TaskClientHandler.TaskSummaryResponseHandler;
+import org.drools.task.service.TaskServiceEscalationTest.MockEscalatedDeadlineHandler.Item;
+import org.drools.task.service.TaskServiceTest.BlockingAllOpenTasksForUseResponseHandler;
+import org.drools.task.utils.CollectionUtils;
+
+import junit.framework.TestCase;
+
+public class TaskServiceTaskUpdate extends BaseTest {
+ MinaTaskServer server;
+ MinaTaskClient client;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ server = new MinaTaskServer( taskService );
+ Thread thread = new Thread( server );
+ thread.start();
+ 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 );
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ client.disconnect();
+ server.stop();
+ }
+
+ public void testAddComment() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+
+ String str = "(with (new Task()) { priority = 55, taskData = new TaskData(),";
+ 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();
+
+ Comment comment = new Comment();
+ Date addedAt = new Date( System.currentTimeMillis() );
+ comment.setAddedAt( addedAt );
+ comment.setAddedBy( users.get( "luke" ) );
+ comment.setText( "This is my comment!!!!!" );
+
+ BlockingAddCommentResponseHandler addCommentResponseHandler = new BlockingAddCommentResponseHandler();
+ client.addComment( taskId, comment,addCommentResponseHandler );
+ assertTrue( addCommentResponseHandler.getCommentId() != comment.getId() );
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertNotSame(task, task1);
+ assertFalse( task.equals( task1) );
+
+ List<Comment> comments = task1.getTaskData().getComments();
+ assertEquals(1, comments.size() );
+ Comment returnedComment = comments.get( 0 );
+ assertEquals( "This is my comment!!!!!", returnedComment.getText() );
+ assertEquals( addedAt, returnedComment.getAddedAt() );
+ assertEquals( users.get( "luke" ), returnedComment.getAddedBy() );
+
+ assertEquals( (long)addCommentResponseHandler.getCommentId(), (long) returnedComment.getId() );
+
+ task.getTaskData().setComments( comments );
+ assertEquals(task, task1);
+ }
+
+ public void testAddAttachment() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+
+ String str = "(with (new Task()) { priority = 55, taskData = new TaskData(),";
+ 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();
+
+ Attachment attachment = new Attachment();
+ Date attachedAt = new Date( System.currentTimeMillis() );
+ attachment.setAttachedAt( attachedAt);
+ attachment.setAttachedBy( users.get( "luke" ) );
+ attachment.setName( "file.txt" );
+ attachment.setAccessType( AccessType.Inline );
+ attachment.setContentType( "txt" );
+
+ byte[] bytes = "Ths is my attachment text".getBytes();
+ AttachmentContent content = new AttachmentContent();
+ content.setContent( bytes );
+
+ BlockingAddAttachmentResponseHandler addAttachmentResponseHandler = new BlockingAddAttachmentResponseHandler();
+ client.addAttachment( taskId, attachment, content, addAttachmentResponseHandler);
+ assertTrue( addAttachmentResponseHandler.getAttachmentId() != attachment.getId() );
+ assertTrue( addAttachmentResponseHandler.getContentId() != attachment.getContentId() );
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertNotSame(task, task1);
+ assertFalse( task.equals( task1) );
+
+ List<Attachment> attachments = task1.getTaskData().getAttachments();
+ assertEquals(1, attachments.size() );
+ Attachment returnedAttachment = attachments.get( 0 );
+ assertEquals( attachedAt, returnedAttachment.getAttachedAt() );
+ assertEquals( users.get( "luke" ), returnedAttachment.getAttachedBy() );
+ assertEquals( AccessType.Inline, returnedAttachment.getAccessType() );
+ assertEquals( "txt", returnedAttachment.getContentType() );
+ assertEquals( "file.txt", returnedAttachment.getName() );
+ assertEquals( bytes.length, returnedAttachment.getSize() );
+
+ assertEquals( (long) addAttachmentResponseHandler.getAttachmentId(), (long) returnedAttachment.getId() );
+ assertEquals( (long) addAttachmentResponseHandler.getContentId(), (long) returnedAttachment.getContentId() );
+
+ task.getTaskData().setAttachments( attachments );
+ assertEquals(task, task1);
+
+ BlockingGetAttachmentContentResponseHandler getAttachmentContentResponseHandler = new BlockingGetAttachmentContentResponseHandler();
+ client.getAttachmentContent( returnedAttachment.getContentId(), getAttachmentContentResponseHandler );
+ AttachmentContent attachmentContent = getAttachmentContentResponseHandler.getAttachmentContent();
+ assertEquals( "Ths is my attachment text", new String( attachmentContent.getContent() ) );
+ }
+
+ public static class BlockingGetTaskResponseHandler implements GetTaskResponseHandler {
+ private volatile Task task;
+
+ public synchronized void execute(Task task) {
+ this.task = task;
+ notifyAll();
+ }
+
+ public synchronized Task getTask() {
+ if ( task == null ) {
+ try {
+ wait( 3000 );
+ } catch ( InterruptedException e ) {
+ // swallow as this is just a notifiation
+ }
+ }
+
+ if ( task == null ) {
+ throw new RuntimeException("Timeout : unable to retrieve Task Id" );
+ }
+
+ return task;
+ }
+ }
+
+ public static class BlockingAddTaskResponseHandler implements AddTaskResponseHandler {
+ private volatile long taskId;
+ private volatile boolean wait = true;
+
+ public synchronized void execute(long taskId) {
+ this.taskId = taskId;
+ wait = false;
+ notifyAll();
+ }
+
+ public synchronized long getTaskId() {
+ if ( wait ) {
+ try {
+ wait( 3000 );
+ } catch ( InterruptedException e ) {
+ // swallow as this is just a notifiation
+ }
+ }
+
+ if ( wait ) {
+ throw new RuntimeException("Timeout : unable to retrieve Task Id" );
+ }
+
+ return taskId;
+ }
+ }
+
+ public static class BlockingAddCommentResponseHandler implements AddCommentResponseHandler {
+ private volatile long commentId;
+ private volatile boolean wait = true;
+
+ public synchronized void execute(long commentId) {
+ this.commentId = commentId;
+ wait = false;
+ notifyAll();
+ }
+
+ public synchronized long getCommentId() {
+ if ( wait ) {
+ try {
+ wait( 3000 );
+ } catch ( InterruptedException e ) {
+ // swallow as this is just a notifiation
+ }
+ }
+
+ if ( wait ) {
+ throw new RuntimeException("Timeout : unable to retrieve Task Id" );
+ }
+
+ return commentId;
+ }
+ }
+
+ public static class BlockingAddAttachmentResponseHandler implements AddAttachmentResponseHandler {
+ private volatile long attachmentId ;
+ private volatile long contentId;
+ private volatile boolean wait = true;
+
+ public synchronized void execute(long attachmentId, long contentId) {
+ this.attachmentId = attachmentId;
+ this.contentId = contentId;
+ wait = false;
+ notifyAll();
+ }
+
+ public synchronized long getAttachmentId() {
+ if ( wait ) {
+ try {
+ wait( 3000 );
+ } catch ( InterruptedException e ) {
+ // swallow as this is just a notifiation
+ }
+ }
+
+ if ( wait ) {
+ throw new RuntimeException("Timeout : unable to retrieve Attachment Id" );
+ }
+
+ return attachmentId;
+ }
+
+ public synchronized long getContentId() {
+ if ( wait ) {
+ try {
+ wait( 3000 );
+ } catch ( InterruptedException e ) {
+ // swallow as this is just a notifiation
+ }
+ }
+
+ if ( wait ) {
+ throw new RuntimeException("Timeout : unable to retrieve Attachment Content Id" );
+ }
+
+ return contentId;
+ }
+ }
+
+ public static class BlockingGetAttachmentContentResponseHandler implements GetAttachmentContentResponseHandler {
+ private volatile AttachmentContent attachmentContent;
+
+ public synchronized void execute(AttachmentContent attachmentContent) {
+ this.attachmentContent = attachmentContent;
+ notifyAll();
+ }
+
+ public synchronized AttachmentContent getAttachmentContent() {
+ if ( attachmentContent == null ) {
+ try {
+ wait( 3000 );
+ } catch ( InterruptedException e ) {
+ // swallow as this is just a notifiation
+ }
+ }
+
+ if ( attachmentContent == null ) {
+ throw new RuntimeException("Timeout : unable to retrieve Attachment Content" );
+ }
+
+ return attachmentContent;
+ }
+ }
+}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java 2008-09-02 13:40:56 UTC (rev 22323)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java 2008-09-02 13:47:41 UTC (rev 22324)
@@ -15,90 +15,123 @@
import org.drools.task.Task;
import org.drools.task.query.TaskSummary;
import org.drools.task.service.TaskClientHandler.TaskSummaryResponseHandler;
+import org.drools.task.service.TaskServiceTaskUpdate.BlockingAddTaskResponseHandler;
import org.drools.task.utils.CollectionUtils;
-public class TaskServiceTest extends BaseTest {
+public class TaskServiceTest extends BaseTest {
MinaTaskServer server;
MinaTaskClient client;
-
+
@Override
protected void setUp() throws Exception {
super.setUp();
server = new MinaTaskServer( taskService );
Thread thread = new Thread( server );
thread.start();
- Thread.sleep(500);
-
- client = new MinaTaskClient( "client 1", new TaskClientHandler() );
+ 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 );
+ SocketAddress address = new InetSocketAddress( "127.0.0.1",
+ 9123 );
+ client.connect( connector,
+ address );
}
-
+
protected void tearDown() throws Exception {
super.tearDown();
client.disconnect();
server.stop();
}
-
+
public void testTasksOwnedQueryWithI18N() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
-
+ Map vars = new HashedMap();
+ vars.put( "users",
+ users );
+ vars.put( "groups",
+ groups );
+
//Reader reader;
Reader reader = new InputStreamReader( getClass().getResourceAsStream( "QueryData_TasksOwned.mvel" ) );
- List<Task> tasks = ( List<Task> ) eval( reader, vars );
- for ( Task task : tasks) {
- client.addTask( task );
+ List<Task> tasks = (List<Task>) eval( reader,
+ vars );
+ for ( Task task : tasks ) {
+ BlockingAddTaskResponseHandler responseHandler = new BlockingAddTaskResponseHandler();
+ client.addTask( task, responseHandler );
}
-
+
// Test UK I18N
reader = new InputStreamReader( getClass().getResourceAsStream( "QueryResults_TasksOwnedInEnglish.mvel" ) );
- Map<String, List<TaskSummary>> expected = ( Map<String, List<TaskSummary>> ) eval( reader, vars );
-
+ Map<String, List<TaskSummary>> expected = (Map<String, List<TaskSummary>>) eval( reader,
+ vars );
- TaskSummaryResponseHandler responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
- client.getTasksOwned( users.get( "peter" ).getId(), "en-UK", responseHandler );
- List<TaskSummary> actual = responseHandler.getResults();
- assertEquals( 3, actual.size() );
- assertTrue( CollectionUtils.equals( expected.get( "peter" ), actual ) );
+ BlockingAllOpenTasksForUseResponseHandler responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getTasksOwned( users.get( "peter" ).getId(),
+ "en-UK",
+ responseHandler );
+ List<TaskSummary> actual = responseHandler.getResults();
+ assertEquals( 3,
+ actual.size() );
+ assertTrue( CollectionUtils.equals( expected.get( "peter" ),
+ actual ) );
- responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
- client.getTasksOwned( users.get( "steve" ).getId(), "en-UK", responseHandler );
- actual = responseHandler.getResults();
- assertEquals( 2, actual.size() );
- assertTrue( CollectionUtils.equals( expected.get( "steve" ), actual ) );
-
- responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
- client.getTasksOwned( users.get( "darth" ).getId(), "en-UK", responseHandler );
- actual = responseHandler.getResults();
- assertEquals( 1, actual.size() );
- assertTrue( CollectionUtils.equals( expected.get( "darth" ), actual ) );
-
+ responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getTasksOwned( users.get( "steve" ).getId(),
+ "en-UK",
+ responseHandler );
+ actual = responseHandler.getResults();
+ assertEquals( 2,
+ actual.size() );
+ assertTrue( CollectionUtils.equals( expected.get( "steve" ),
+ actual ) );
+
+ responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getTasksOwned( users.get( "darth" ).getId(),
+ "en-UK",
+ responseHandler );
+ actual = responseHandler.getResults();
+ assertEquals( 1,
+ actual.size() );
+ assertTrue( CollectionUtils.equals( expected.get( "darth" ),
+ actual ) );
+
// Test DK I18N
reader = new InputStreamReader( getClass().getResourceAsStream( "QueryResults_TasksOwnedInGerman.mvel" ) );
- expected = ( Map<String, List<TaskSummary>> ) eval( reader, vars );
-
- responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
- client.getTasksOwned( users.get( "peter" ).getId(), "en-DK", responseHandler );
- actual = responseHandler.getResults();
- assertEquals( 3, actual.size() );
- assertTrue( CollectionUtils.equals( expected.get( "peter" ), actual ) );
+ expected = (Map<String, List<TaskSummary>>) eval( reader,
+ vars );
- responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
- client.getTasksOwned( users.get( "steve" ).getId(), "en-DK", responseHandler );
- actual = responseHandler.getResults();
- assertEquals( 2, actual.size() );
- assertTrue( CollectionUtils.equals( expected.get( "steve" ), actual ) );
-
- responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
- client.getTasksOwned( users.get( "darth" ).getId(), "en-DK", responseHandler );
- actual = responseHandler.getResults();
- assertEquals( 1, actual.size() );
- assertTrue( CollectionUtils.equals( expected.get( "darth" ), actual ) );
+ responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getTasksOwned( users.get( "peter" ).getId(),
+ "en-DK",
+ responseHandler );
+ actual = responseHandler.getResults();
+ assertEquals( 3,
+ actual.size() );
+ assertTrue( CollectionUtils.equals( expected.get( "peter" ),
+ actual ) );
+
+ responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getTasksOwned( users.get( "steve" ).getId(),
+ "en-DK",
+ responseHandler );
+ actual = responseHandler.getResults();
+ assertEquals( 2,
+ actual.size() );
+ assertTrue( CollectionUtils.equals( expected.get( "steve" ),
+ actual ) );
+
+ responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getTasksOwned( users.get( "darth" ).getId(),
+ "en-DK",
+ responseHandler );
+ actual = responseHandler.getResults();
+ assertEquals( 1,
+ actual.size() );
+ assertTrue( CollectionUtils.equals( expected.get( "darth" ),
+ actual ) );
}
-
+
public void testPeopleAssignmentQueries() {
Map vars = new HashedMap();
vars.put( "users",
@@ -112,74 +145,87 @@
for ( Task task : tasks ) {
taskService.addTask( task );
}
-
+
reader = new InputStreamReader( getClass().getResourceAsStream( "QueryResults_PeopleAssignmentQuerries.mvel" ) );
Map<String, List<TaskSummary>> expected = (Map<String, List<TaskSummary>>) eval( reader,
vars );
-
- TaskSummaryResponseHandler responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
- client.getTasksAssignedAsTaskInitiator( users.get( "darth" ).getId(), "en-UK", responseHandler );
- List<TaskSummary> actual = responseHandler.getResults();
- assertEquals( 1, actual.size() );
+
+ BlockingAllOpenTasksForUseResponseHandler responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getTasksAssignedAsTaskInitiator( users.get( "darth" ).getId(),
+ "en-UK",
+ responseHandler );
+ List<TaskSummary> actual = responseHandler.getResults();
+ assertEquals( 1,
+ actual.size() );
assertTrue( CollectionUtils.equals( expected.get( "darth" ),
- actual ) );
-
- responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
- client.getTasksAssignedAsBusinessAdministrator( users.get( "steve" ).getId(), "en-UK", responseHandler );
- actual = responseHandler.getResults();
+ actual ) );
+
+ responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getTasksAssignedAsBusinessAdministrator( users.get( "steve" ).getId(),
+ "en-UK",
+ responseHandler );
+ actual = responseHandler.getResults();
assertTrue( CollectionUtils.equals( expected.get( "steve" ),
- actual ) );
-
- responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
- client.getTasksAssignedAsExcludedOwner( users.get( "liz" ).getId(), "en-UK", responseHandler );
- actual = responseHandler.getResults();
- assertEquals( 2, actual.size() );
+ actual ) );
+
+ responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getTasksAssignedAsExcludedOwner( users.get( "liz" ).getId(),
+ "en-UK",
+ responseHandler );
+ actual = responseHandler.getResults();
+ assertEquals( 2,
+ actual.size() );
assertTrue( CollectionUtils.equals( expected.get( "liz" ),
- actual ) );
+ actual ) );
- responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
- client.getTasksAssignedAsPotentialOwner( users.get( "bobba" ).getId(), "en-UK", responseHandler );
- actual = responseHandler.getResults();
- assertEquals( 3, actual.size() );
+ responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getTasksAssignedAsPotentialOwner( users.get( "bobba" ).getId(),
+ "en-UK",
+ responseHandler );
+ actual = responseHandler.getResults();
+ assertEquals( 3,
+ actual.size() );
assertTrue( CollectionUtils.equals( expected.get( "bobba" ),
- actual ) );
-
-
- responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
- client.getTasksAssignedAsRecipient( users.get( "sly" ).getId(), "en-UK", responseHandler );
- actual = responseHandler.getResults();
- assertEquals( 1, actual.size() );
+ actual ) );
+
+ responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getTasksAssignedAsRecipient( users.get( "sly" ).getId(),
+ "en-UK",
+ responseHandler );
+ actual = responseHandler.getResults();
+ assertEquals( 1,
+ actual.size() );
assertTrue( CollectionUtils.equals( expected.get( "sly" ),
- actual ) );
- }
-
-
- public static class BlockingAllOpenTasksForUseResponseHandler implements TaskSummaryResponseHandler {
+ actual ) );
+ }
+
+ public static class BlockingAllOpenTasksForUseResponseHandler
+ implements
+ TaskSummaryResponseHandler {
private volatile List<TaskSummary> results;
public synchronized void execute(List<TaskSummary> results) {
this.results = results;
- notifyAll();
+ notifyAll();
}
-
+
public synchronized List<TaskSummary> getResults() {
- if ( results == null ) {
+ if ( results == null ) {
try {
wait( 3000 );
} catch ( InterruptedException e ) {
e.printStackTrace();
}
}
-
+
if ( results == null ) {
- throw new RuntimeException("Timeout : unable to retrieve results" );
+ throw new RuntimeException( "Timeout : unable to retrieve results" );
}
-
+
return results;
}
-
- };
-
-
+
+ };
+
}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.mvel
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.mvel 2008-09-02 13:40:56 UTC (rev 22323)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.mvel 2008-09-02 13:47:41 UTC (rev 22324)
@@ -22,7 +22,8 @@
attachedBy = users['liz' ],
contentType = "text",
name = "file.txt",
- content = bytes1
+ size = 5000,
+ contentId = 5
}),
(with ( new Attachment() ) {
accessType = AccessType.Url,
@@ -30,7 +31,8 @@
attachedBy = users['liz' ],
contentType = "text",
name = "file2.txt",
- content = "http://domain.org/file.txt".bytes
+ size = 500,
+ contentId = 3
})
],
comments = [
More information about the jboss-svn-commits
mailing list