[jboss-svn-commits] JBL Code SVN: r21972 - in labs/jbossrules/trunk/drools-process/drools-process-task: src/main/java/org/drools/task and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Aug 28 16:48:21 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-08-28 16:48:21 -0400 (Thu, 28 Aug 2008)
New Revision: 21972
Added:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/Command.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/MinaTaskServer.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/server/
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/BaseTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/
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/service/
Removed:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/NotificationPresentationElements.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskPresentationElements.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/server/
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/server/
Modified:
labs/jbossrules/trunk/drools-process/drools-process-task/.classpath
labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml
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/BooleanExpression.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Comment.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Deadline.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Deadlines.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Delegation.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Escalation.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Group.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/I18NText.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Notification.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/OrganizationalEntity.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/PeopleAssignments.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Reassignment.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Task.java
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/TaskSummary.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/User.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/java/org/drools/task/utils/CollectionUtils.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/TestModelPersistence.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/AllOpenTasksData.mvel
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/service/AllOpenTasks.txt
Log:
JBRULES-1745 WS-Human-Task
-Commited Client/Server architecture using mina for remoting for TaskService with unit test
-Inlined PresentationElements
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/.classpath 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/.classpath 2008-08-28 20:48:21 UTC (rev 21972)
@@ -6,13 +6,14 @@
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/com/h2database/h2/1.0.77/h2-1.0.77.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.2.2/xstream-1.2.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.3.4.O/xpp3_min-1.1.3.4.O.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3/xstream-1.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/mina/mina-core/2.0.0-M3/mina-core-2.0.0-M3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.2/slf4j-api-1.5.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.5.2/slf4j-api-1.5.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-core/3.3.0.SP1/hibernate-core-3.3.0.SP1.jar"/>
<classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml 2008-08-28 20:48:21 UTC (rev 21972)
@@ -13,8 +13,13 @@
<name>Drools :: Process :: Task</name>
<dependencies>
-
<dependency>
+ <groupId>org.apache.mina</groupId>
+ <artifactId>mina-core</artifactId>
+ <version>2.0.0-M3</version>
+ </dependency>
+
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.5.2</version>
@@ -39,8 +44,7 @@
<artifactId>h2</artifactId>
<version>1.0.77</version>
<scope>test</scope>
- </dependency>
-
+ </dependency>
<!-- PGSQL -->
<dependency>
<groupId>postgresql</groupId>
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-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Attachment.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Date;
@@ -13,7 +17,7 @@
import javax.persistence.OneToOne;
@Entity
-public class Attachment implements Serializable {
+public class Attachment implements Externalizable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@@ -33,13 +37,37 @@
*/
private String contentType;
- private Date attachedAt;
-
@ManyToOne()
private User attachedBy;
+
+ private Date attachedAt;
@Lob
private byte[] attachment;
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong( id );
+ out.writeUTF( name );
+ out.writeUTF( accessType.toString() );
+ out.writeUTF( contentType );
+ attachedBy.writeExternal( out );
+ out.writeLong( attachedAt.getTime() );
+ out.writeInt( attachment.length );
+ out.write( attachment );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ id = in.readLong();
+ name = in.readUTF();
+ accessType = AccessType.valueOf( in.readUTF() );
+ contentType = in.readUTF();
+ attachedBy = new User();
+ attachedBy.readExternal( in );
+ attachedAt = new Date( in.readLong() );
+ attachment = new byte[ in.readInt() ];
+ in.read( attachment );
+ }
public Long getId() {
return id;
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/BooleanExpression.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/BooleanExpression.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/BooleanExpression.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import javax.persistence.Entity;
@@ -9,7 +13,7 @@
import javax.persistence.Lob;
@Entity
-public class BooleanExpression implements Serializable {
+public class BooleanExpression implements Externalizable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@@ -22,6 +26,19 @@
}
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong( id );
+ out.writeUTF( type );
+ out.writeUTF( expression );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ id = in.readLong();
+ type = in.readUTF();
+ expression = in.readUTF();
+ }
+
public BooleanExpression(String type, String expression) {
this.type = type;
this.expression = expression;
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Comment.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Comment.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Comment.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Date;
@@ -12,7 +16,7 @@
import javax.persistence.OneToOne;
@Entity
-public class Comment implements Serializable {
+public class Comment implements Externalizable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@@ -20,11 +24,27 @@
@Lob
private String text;
- private Date addedDate;
-
@ManyToOne()
private User addedBy;
+ private Date addedDate;
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong( id );
+ out.writeUTF( text );
+ addedBy.writeExternal( out );
+ out.writeLong( addedDate.getTime() );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ id = in.readLong();
+ text = in.readUTF();
+ addedBy = new User();
+ addedBy.readExternal( in );
+ addedDate = new Date( in.readLong() );
+ }
+
public Long getId() {
return id;
}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Deadline.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Deadline.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Deadline.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Collections;
import java.util.Date;
@@ -16,7 +20,7 @@
import org.drools.task.utils.CollectionUtils;
@Entity
-public class Deadline implements Serializable {
+public class Deadline implements Externalizable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@@ -30,6 +34,30 @@
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "Deadline_Escalation_Id", nullable = true)
private List<Escalation> escalations = Collections.emptyList();
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong( id );
+
+ if ( date != null ) {
+ out.writeBoolean( true );
+ out.writeLong( date.getTime() );
+ } else {
+ out.writeBoolean( false );
+ }
+ CollectionUtils.writeI18NTextList( documentation, out );
+ CollectionUtils.writeEscalationList( escalations, out );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ id = in.readLong();
+
+ if ( in.readBoolean()) {
+ date = new Date( in.readLong() );
+ }
+ documentation = CollectionUtils.readI18NTextList( in );
+ escalations = CollectionUtils.readIEscalationList( in );
+ }
public long getId() {
return id;
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Deadlines.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Deadlines.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Deadlines.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
@@ -12,14 +16,25 @@
import org.drools.task.utils.CollectionUtils;
@Embeddable
-public class Deadlines implements Serializable {
+public class Deadlines implements Externalizable {
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "Deadlines_StartDeadLine_Id", nullable = true)
private List<Deadline> startDeadlines = Collections.emptyList();
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "Deadlines_EndDeadLine_Id", nullable = true)
- private List<Deadline> endDeadlines = Collections.emptyList();
+ private List<Deadline> endDeadlines = Collections.emptyList();
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ CollectionUtils.writeDeadlineList( startDeadlines, out );
+ CollectionUtils.writeDeadlineList( endDeadlines, out );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ startDeadlines = CollectionUtils.readDeadlinesList( in );
+ endDeadlines = CollectionUtils.readDeadlinesList( in );
+ }
public List<Deadline> getStartDeadlines() {
return startDeadlines;
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Delegation.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Delegation.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Delegation.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
@@ -16,13 +20,29 @@
import org.drools.task.utils.CollectionUtils;
@Embeddable
-public class Delegation implements Serializable {
+public class Delegation implements Externalizable {
@Enumerated(EnumType.STRING)
private Allowed allowed;
@OneToMany
@JoinColumn(name = "Delegates_Id", nullable = true)
private List<OrganizationalEntity> delegates = Collections.emptyList();
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ if ( allowed != null ) {
+ out.writeBoolean( true );
+ out.writeUTF( allowed.toString() );
+ } else {
+ out.writeBoolean( false );
+ }
+ CollectionUtils.writeOrganizationalEntityList( delegates, out );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ allowed = Allowed.valueOf( in.readUTF() );
+ delegates = CollectionUtils.readOrganizationalEntityList( in );
+ }
public Allowed getAllowed() {
return allowed;
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Escalation.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Escalation.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Escalation.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
@@ -17,7 +21,7 @@
@Entity
public class Escalation
implements
- Serializable {
+ Externalizable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@@ -36,6 +40,32 @@
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "Escalation_Reassignments_Id", nullable = true)
private List<Reassignment> reassignments = Collections.emptyList();
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong( id );
+
+ if ( name != null ) {
+ out.writeBoolean( true );
+ out.writeUTF( name );
+ } else {
+ out.writeBoolean( false );
+ }
+ CollectionUtils.writeBooleanExpressionList( constraints, out );
+ CollectionUtils.writeNotificationList( notifications, out );
+ CollectionUtils.writeReassignmentList( reassignments, out );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ id = in.readLong();
+ if ( in.readBoolean() ) {
+ name = in.readUTF();
+ }
+ constraints = CollectionUtils.readBooleanExpressionList( in );
+ notifications = CollectionUtils.readNotificationList( in );
+ reassignments = CollectionUtils.readReassignmentList( in );
+
+ }
public long getId() {
return id;
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Group.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Group.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Group.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import javax.persistence.Entity;
@@ -11,7 +15,7 @@
import javax.persistence.Table;
@Entity
-public class Group extends OrganizationalEntity implements Serializable {
+public class Group extends OrganizationalEntity implements Externalizable {
private String displayName;
public Group() {
@@ -30,6 +34,18 @@
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ super.writeExternal( out );
+ out.writeUTF( displayName );
+
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ super.readExternal( in );
+ displayName = in.readUTF();
+ }
@Override
public int hashCode() {
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/I18NText.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/I18NText.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/I18NText.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import javax.persistence.Entity;
@@ -9,7 +13,7 @@
import javax.persistence.Lob;
@Entity
-public class I18NText implements Serializable {
+public class I18NText implements Externalizable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@@ -22,6 +26,19 @@
public I18NText() {
}
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong( id );
+ out.writeUTF( language );
+ out.writeUTF( text );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ id = in.readLong();
+ language = in.readUTF();
+ text = in.readUTF();
+ }
public I18NText(String language,
String text) {
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Notification.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Notification.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Notification.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
@@ -11,12 +15,13 @@
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
import javax.persistence.OneToMany;
import org.drools.task.utils.CollectionUtils;
@Entity
-public class Notification implements Serializable {
+public class Notification implements Externalizable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@@ -35,8 +40,45 @@
@JoinColumn(name = "Notification_BusinessAdministrators_Id", nullable = true)
private List<OrganizationalEntity> businessAdministrators = Collections.emptyList();
- @Embedded
- private NotificationPresentationElements presentationElements;
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Notification_Names_Id", nullable = true)
+ private List<I18NText> names = Collections.emptyList();
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Notification_Subjects_Id", nullable = true)
+ private List<I18NText> subjects = Collections.emptyList();
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Notification_Descriptions_Id", nullable = true)
+ @Lob
+ private List<I18NText> descriptions = Collections.emptyList();
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong( id );
+ out.writeInt( priority );
+
+ CollectionUtils.writeOrganizationalEntityList( recipients, out );
+ CollectionUtils.writeOrganizationalEntityList( businessAdministrators, out );
+
+ CollectionUtils.writeI18NTextList( documentation, out );
+ CollectionUtils.writeI18NTextList( names, out );
+ CollectionUtils.writeI18NTextList( subjects, out );
+ CollectionUtils.writeI18NTextList( descriptions, out );
+
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ id = in.readLong();
+ priority = in.readInt();
+
+ recipients = CollectionUtils.readOrganizationalEntityList( in );
+ businessAdministrators = CollectionUtils.readOrganizationalEntityList( in );
+
+ names = CollectionUtils.readI18NTextList( in );
+ subjects = CollectionUtils.readI18NTextList( in );
+ descriptions = CollectionUtils.readI18NTextList( in );
+ }
public Long getId() {
return id;
@@ -78,23 +120,41 @@
this.businessAdministrators = businessAdministrators;
}
- public NotificationPresentationElements getNotificationPresentationElements() {
- return presentationElements;
+ public List<I18NText> getNames() {
+ return names;
}
- public void setNotificationPresentationElements(NotificationPresentationElements presentationElements) {
- this.presentationElements = presentationElements;
+ public void setNames(List<I18NText> names) {
+ this.names = names;
}
+ public List<I18NText> getSubjects() {
+ return subjects;
+ }
+
+ public void setSubjects(List<I18NText> subjects) {
+ this.subjects = subjects;
+ }
+
+ public List<I18NText> getDescriptions() {
+ return descriptions;
+ }
+
+ public void setDescriptions(List<I18NText> descriptions) {
+ this.descriptions = descriptions;
+ }
+
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
+ result = prime * result + priority;
+ result = prime * result + CollectionUtils.hashCode( documentation );
+ result = prime * result + CollectionUtils.hashCode( recipients );
result = prime * result + CollectionUtils.hashCode( businessAdministrators );
- result = prime * result + CollectionUtils.hashCode( documentation );
- result = prime * result + ((presentationElements == null) ? 0 : presentationElements.hashCode());
- result = prime * result + priority;
- result = prime * result + CollectionUtils.hashCode( recipients );
+ result = prime * result + CollectionUtils.hashCode( names );
+ result = prime * result + CollectionUtils.hashCode( subjects );
+ result = prime * result + CollectionUtils.hashCode( descriptions );
return result;
}
@@ -103,14 +163,11 @@
if ( this == obj ) return true;
if ( obj == null ) return false;
if ( !(obj instanceof Notification) ) return false;
- Notification other = (Notification) obj;
+ Notification other = (Notification) obj;
- if ( presentationElements == null ) {
- if ( other.presentationElements != null ) return false;
- } else if ( !presentationElements.equals( other.presentationElements ) ) return false;
-
return CollectionUtils.equals( businessAdministrators, other.businessAdministrators ) && CollectionUtils.equals( documentation, other.documentation )
- && CollectionUtils.equals( recipients, other.recipients );
+ && CollectionUtils.equals( recipients, other.recipients ) && CollectionUtils.equals( descriptions, other.descriptions ) && CollectionUtils.equals( names, other.names )
+ && CollectionUtils.equals( subjects, other.subjects );
}
}
Deleted: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/NotificationPresentationElements.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/NotificationPresentationElements.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/NotificationPresentationElements.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,83 +0,0 @@
-package org.drools.task;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.List;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Embeddable;
-import javax.persistence.JoinColumn;
-import javax.persistence.Lob;
-import javax.persistence.OneToMany;
-
-import org.drools.task.utils.CollectionUtils;
-
- at Embeddable
-public class NotificationPresentationElements implements Serializable {
- @OneToMany(cascade = CascadeType.ALL)
- @JoinColumn(name = "NotificationPresentationElements_Names_Id", nullable = true)
- private List<I18NText> names = Collections.emptyList();
-
- @OneToMany(cascade = CascadeType.ALL)
- @JoinColumn(name = "NotificationPresentationElements_Subjects_Id", nullable = true)
- private List<I18NText> subjects = Collections.emptyList();
-
- @OneToMany(cascade = CascadeType.ALL)
- @JoinColumn(name = "NotificationPresentationElements_Descriptions_Id", nullable = true)
- @Lob
- private List<I18NText> descriptions = Collections.emptyList();
-
- public NotificationPresentationElements() {
-
- }
-
-
- public List<I18NText> getNames() {
- return names;
- }
-
- public void setNames(List<I18NText> names) {
- this.names = names;
- }
-
- public List<I18NText> getSubjects() {
- return subjects;
- }
-
- public void setSubjects(List<I18NText> subjects) {
- this.subjects = subjects;
- }
-
- public List<I18NText> getDescriptions() {
- return descriptions;
- }
-
- public void setDescriptions(List<I18NText> descriptions) {
- this.descriptions = descriptions;
- }
-
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + CollectionUtils.hashCode( descriptions );
- result = prime * result + CollectionUtils.hashCode( names );
- result = prime * result + CollectionUtils.hashCode( subjects );
- return result;
- }
-
-
- @Override
- public boolean equals(Object obj) {
- if ( this == obj ) return true;
- if ( obj == null ) return false;
- if ( !(obj instanceof NotificationPresentationElements) ) return false;
- NotificationPresentationElements other = (NotificationPresentationElements) obj;
-
- return CollectionUtils.equals( descriptions, other.descriptions ) && CollectionUtils.equals( names, other.names )
- && CollectionUtils.equals( subjects, other.subjects );
- }
-
-
-}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/OrganizationalEntity.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/OrganizationalEntity.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/OrganizationalEntity.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,16 +1,32 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
-public abstract class OrganizationalEntity {
- private long id;
+public abstract class OrganizationalEntity implements Externalizable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
+ private long id;
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong( id );
+
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ id = in.readLong();
+ }
+
public Long getId() {
return id;
}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/PeopleAssignments.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/PeopleAssignments.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/PeopleAssignments.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
@@ -14,7 +18,7 @@
import org.drools.task.utils.CollectionUtils;
@Embeddable
-public class PeopleAssignments implements Serializable {
+public class PeopleAssignments implements Externalizable {
@ManyToOne()
private User taskInitiator;
@@ -41,6 +45,33 @@
public PeopleAssignments() {
}
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ if ( taskInitiator != null ) {
+ out.writeBoolean( true );
+ taskInitiator.writeExternal( out );
+ } else {
+ out.writeBoolean( false );
+ }
+ CollectionUtils.writeOrganizationalEntityList( potentialOwners, out );
+ CollectionUtils.writeOrganizationalEntityList( excludedOwners, out );
+ CollectionUtils.writeOrganizationalEntityList( taskStakeholders, out );
+ CollectionUtils.writeOrganizationalEntityList( businessAdministrators, out );
+ CollectionUtils.writeOrganizationalEntityList( recipients, out );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ if ( in.readBoolean() ) {
+ taskInitiator = new User();
+ taskInitiator.readExternal( in );
+ }
+ potentialOwners = CollectionUtils.readOrganizationalEntityList( in );
+ excludedOwners = CollectionUtils.readOrganizationalEntityList( in );
+ taskStakeholders = CollectionUtils.readOrganizationalEntityList( in );
+ businessAdministrators = CollectionUtils.readOrganizationalEntityList( in );
+ recipients = CollectionUtils.readOrganizationalEntityList( in );
+ }
public User getTaskInitiator() {
return taskInitiator;
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Reassignment.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Reassignment.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Reassignment.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
@@ -15,7 +19,7 @@
import org.drools.task.utils.CollectionUtils;
@Entity
-public class Reassignment implements Serializable {
+public class Reassignment implements Externalizable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@@ -28,6 +32,18 @@
@JoinColumn(name = "Reassignment_potentialOwners_Id", nullable = true)
private List<OrganizationalEntity> potentialOwners = Collections.emptyList();;
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong( id );
+ CollectionUtils.writeI18NTextList( documentation, out );
+ CollectionUtils.writeOrganizationalEntityList( potentialOwners, out );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ id = in.readLong();
+ documentation = CollectionUtils.readI18NTextList( in );
+ potentialOwners = CollectionUtils.readOrganizationalEntityList( in );
+ }
public Long getId() {
return id;
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Task.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Task.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Task.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,15 +1,27 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
+import java.util.Collections;
+import java.util.List;
+import javax.persistence.CascadeType;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.OneToMany;
+import org.drools.task.utils.CollectionUtils;
+
@Entity
-public class Task implements Serializable {
+public class Task implements Externalizable {
/**
* WSHT uses a name for the unique identifier, for now we use a generated ID which is also the key, which can be
* mapped to the name or a unique name field added later.
@@ -23,18 +35,28 @@
* default value is 0.
*/
private int priority;
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Task_Names_Id", nullable = true)
+ private List<I18NText> names = Collections.emptyList();
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Task_Subjects_Id", nullable = true)
+ private List<I18NText> subjects = Collections.emptyList();
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Task_Descriptions_Id", nullable = true)
+ @Lob
+ private List<I18NText> descriptions = Collections.emptyList();
+
@Embedded
- private PeopleAssignments peopleAssignments;
-
+ private PeopleAssignments peopleAssignments;
@Embedded
private Delegation delegation;
@Embedded
- private TaskPresentationElements taskPresentationElements;
-
- @Embedded
private TaskData taskData;
@Embedded
@@ -42,6 +64,74 @@
public Task() {
}
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong( id );
+ out.writeInt( priority );
+
+ CollectionUtils.writeI18NTextList( names, out );
+ CollectionUtils.writeI18NTextList( subjects, out );
+ CollectionUtils.writeI18NTextList( descriptions, out );
+
+ if ( peopleAssignments != null ) {
+ out.writeBoolean( true );
+ peopleAssignments.writeExternal( out );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( delegation != null ) {
+ out.writeBoolean( true );
+ delegation.writeExternal( out );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( taskData != null ) {
+ out.writeBoolean( true );
+ taskData.writeExternal( out );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( deadlines != null ) {
+ out.writeBoolean( true );
+ deadlines.writeExternal( out );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ id = in.readLong();
+ priority = in.readInt();
+
+ names = CollectionUtils.readI18NTextList( in );
+ subjects = CollectionUtils.readI18NTextList( in );
+ descriptions = CollectionUtils.readI18NTextList( in );
+
+ if ( in.readBoolean() ) {
+ peopleAssignments = new PeopleAssignments();
+ peopleAssignments.readExternal( in );
+ }
+
+ if ( in.readBoolean() ) {
+ delegation = new Delegation();
+ delegation.readExternal( in );
+ }
+
+ if ( in.readBoolean() ) {
+ taskData = new TaskData();
+ taskData.readExternal( in );
+ }
+
+ if ( in.readBoolean() ) {
+ deadlines = new Deadlines();
+ deadlines.readExternal( in );
+ }
+ }
public Long getId() {
return id;
@@ -58,7 +148,31 @@
public void setPriority(int priority) {
this.priority = priority;
}
+
+ public List<I18NText> getNames() {
+ return names;
+ }
+ public void setNames(List<I18NText> names) {
+ this.names = names;
+ }
+
+ public List<I18NText> getSubjects() {
+ return subjects;
+ }
+
+ public void setSubjects(List<I18NText> subjects) {
+ this.subjects = subjects;
+ }
+
+ public List<I18NText> getDescriptions() {
+ return descriptions;
+ }
+
+ public void setDescriptions(List<I18NText> descriptions) {
+ this.descriptions = descriptions;
+ }
+
public PeopleAssignments getPeopleAssignments() {
return peopleAssignments;
}
@@ -75,15 +189,6 @@
this.delegation = delegation;
}
-
- public TaskPresentationElements getTaskPresentationElements() {
- return taskPresentationElements;
- }
-
- public void setTaskPresentationElements(TaskPresentationElements presentationElements) {
- this.taskPresentationElements = presentationElements;
- }
-
public TaskData getTaskData() {
return taskData;
}
@@ -104,12 +209,14 @@
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + ((deadlines == null) ? 0 : deadlines.hashCode());
+ result = prime * result + priority;
+ result = prime * result + CollectionUtils.hashCode( descriptions );
+ result = prime * result + CollectionUtils.hashCode( names );
+ result = prime * result + CollectionUtils.hashCode( subjects );
+ result = prime * result + ((peopleAssignments == null) ? 0 : peopleAssignments.hashCode());
result = prime * result + ((delegation == null) ? 0 : delegation.hashCode());
- result = prime * result + ((peopleAssignments == null) ? 0 : peopleAssignments.hashCode());
- result = prime * result + ((taskPresentationElements == null) ? 0 : taskPresentationElements.hashCode());
- result = prime * result + priority;
result = prime * result + ((taskData == null) ? 0 : taskData.hashCode());
+ result = prime * result + ((deadlines == null) ? 0 : deadlines.hashCode());
return result;
}
@@ -127,16 +234,14 @@
} else if ( !delegation.equals( other.delegation ) ) return false;
if ( peopleAssignments == null ) {
if ( other.peopleAssignments != null ) return false;
- } else if ( !peopleAssignments.equals( other.peopleAssignments ) ) return false;
- if ( taskPresentationElements == null ) {
- if ( other.taskPresentationElements != null ) return false;
- } else if ( !taskPresentationElements.equals( other.taskPresentationElements ) ) return false;
+ } else if ( !peopleAssignments.equals( other.peopleAssignments ) ) return false;
+
if ( priority != other.priority ) return false;
if ( taskData == null ) {
if ( other.taskData != null ) return false;
} else if ( !taskData.equals( other.taskData ) ) return false;
- return true;
- }
-
-
+ return ( CollectionUtils.equals( descriptions, other.descriptions ) && CollectionUtils.equals( names, other.names )
+ && CollectionUtils.equals( subjects, other.subjects ));
+ }
+
}
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-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskData.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Collections;
import java.util.Date;
@@ -16,7 +20,7 @@
import org.drools.task.utils.CollectionUtils;
@Embeddable
-public class TaskData implements Serializable {
+public class TaskData implements Externalizable {
@Enumerated(EnumType.STRING)
private Status status = Status.Created; // initial default state
@@ -40,8 +44,90 @@
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "TaskData_Attachments_Id", nullable = true)
- private List<Attachment> attachments = Collections.emptyList();
+ private List<Attachment> attachments = Collections.emptyList();
+ public void writeExternal(ObjectOutput out) throws IOException {
+ if ( status != null ) {
+ out.writeBoolean( true );
+ out.writeUTF( status.toString() );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( actualOwner != null) {
+ out.writeBoolean( true );
+ actualOwner.writeExternal( out );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( createdBy != null ) {
+ out.writeBoolean( true );
+ createdBy.writeExternal( out );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( createdOn != null ) {
+ out.writeBoolean( true );
+ out.writeLong( createdOn.getTime() );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( activationTime != null ) {
+ out.writeBoolean( true );
+ out.writeLong( activationTime.getTime() );
+ } else {
+ out.writeBoolean( false );
+ }
+
+ if ( expirationTime != null ) {
+ out.writeBoolean( true );
+ out.writeLong( expirationTime.getTime() );
+ } else {
+ out.writeBoolean( false );
+ }
+ out.writeBoolean( skipable );
+ CollectionUtils.writeCommentList( comments, out );
+ CollectionUtils.writeAttachmentList( attachments, out );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ if( in.readBoolean() ) {
+ status = Status.valueOf( in.readUTF() );
+ }
+
+ if ( in.readBoolean() ) {
+ actualOwner = new User();
+ actualOwner.readExternal( in );
+ }
+
+ if ( in.readBoolean() ) {
+ createdBy = new User();
+ createdBy.readExternal( in );
+ }
+
+ if ( in.readBoolean() ) {
+ createdOn = new Date( in.readLong() );
+ }
+
+ if ( in.readBoolean() ) {
+ activationTime = new Date( in.readLong() );
+ }
+
+ if ( in.readBoolean() ) {
+ expirationTime = new Date( in.readLong() );
+ }
+
+ skipable = in.readBoolean();
+
+ comments = CollectionUtils.readCommentList( in );
+ attachments = CollectionUtils.readAttachmentList( in );
+
+ }
+
public Status getStatus() {
return status;
}
Deleted: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskPresentationElements.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskPresentationElements.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskPresentationElements.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,83 +0,0 @@
-package org.drools.task;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.List;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Embeddable;
-import javax.persistence.JoinColumn;
-import javax.persistence.Lob;
-import javax.persistence.OneToMany;
-
-import org.drools.task.utils.CollectionUtils;
-
- at Embeddable
-public class TaskPresentationElements implements Serializable {
- @OneToMany(cascade = CascadeType.ALL)
- @JoinColumn(name = "TaskPresentationElements_Names_Id", nullable = true)
- private List<I18NText> names = Collections.emptyList();
-
- @OneToMany(cascade = CascadeType.ALL)
- @JoinColumn(name = "TaskPresentationElements_Subjects_Id", nullable = true)
- private List<I18NText> subjects = Collections.emptyList();
-
- @OneToMany(cascade = CascadeType.ALL)
- @JoinColumn(name = "TaskPresentationElements_Descriptions_Id", nullable = true)
- @Lob
- private List<I18NText> descriptions = Collections.emptyList();
-
- public TaskPresentationElements() {
-
- }
-
-
- public List<I18NText> getNames() {
- return names;
- }
-
- public void setNames(List<I18NText> names) {
- this.names = names;
- }
-
- public List<I18NText> getSubjects() {
- return subjects;
- }
-
- public void setSubjects(List<I18NText> subjects) {
- this.subjects = subjects;
- }
-
- public List<I18NText> getDescriptions() {
- return descriptions;
- }
-
- public void setDescriptions(List<I18NText> descriptions) {
- this.descriptions = descriptions;
- }
-
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + CollectionUtils.hashCode( descriptions );
- result = prime * result + CollectionUtils.hashCode( names );
- result = prime * result + CollectionUtils.hashCode( subjects );
- return result;
- }
-
-
- @Override
- public boolean equals(Object obj) {
- if ( this == obj ) return true;
- if ( obj == null ) return false;
- if ( !(obj instanceof TaskPresentationElements) ) return false;
- TaskPresentationElements other = (TaskPresentationElements) obj;
-
- return CollectionUtils.equals( descriptions, other.descriptions ) && CollectionUtils.equals( names, other.names )
- && CollectionUtils.equals( subjects, other.subjects );
- }
-
-
-}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskSummary.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskSummary.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskSummary.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,10 +1,14 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Date;
-public class TaskSummary implements Serializable {
+public class TaskSummary implements Externalizable {
private long id;
private String name;
@@ -59,8 +63,40 @@
}
public TaskSummary() {
-
}
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeLong( id );
+ out.writeUTF( name );
+ out.writeUTF( subject );
+ out.writeUTF( description );
+ out.writeUTF( status.toString() );
+ out.writeInt( priority );
+ out.writeBoolean( skipable );
+ actualOwner.writeExternal( out );
+ createdBy.writeExternal( out );
+ out.writeLong( createdOn.getTime() );
+ out.writeLong( activationTime.getTime() );
+ out.writeLong( expirationTime.getTime() );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ id = in.readLong();
+ name = in.readUTF();
+ subject = in.readUTF();
+ description = in.readUTF();
+ status = Status.valueOf( in.readUTF() );
+ priority = in.readInt();
+ skipable = in.readBoolean();
+ actualOwner = new User();
+ actualOwner.readExternal( in );
+ createdBy = new User();
+ createdBy.readExternal( in );
+ createdOn = new Date( in.readLong() );
+ activationTime = new Date( in.readLong() );
+ expirationTime = new Date( in.readLong() );
+ }
public long getId() {
return id;
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/User.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/User.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/User.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,5 +1,9 @@
package org.drools.task;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.io.Serializable;
import javax.persistence.Entity;
@@ -10,7 +14,7 @@
import javax.persistence.Table;
@Entity
-public class User extends OrganizationalEntity implements Serializable {
+public class User extends OrganizationalEntity implements Externalizable{
private String displayName;
public User() {
@@ -22,6 +26,18 @@
this.displayName = displayName;
}
+ public void writeExternal(ObjectOutput out) throws IOException {
+ super.writeExternal( out );
+ out.writeUTF( displayName );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ super.readExternal( in );
+ displayName = in.readUTF();
+
+ }
+
public String getDisplayName() {
return displayName;
}
Copied: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service (from rev 21945, labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/server)
Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service
___________________________________________________________________
Name: svn:mergeinfo
+
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/Command.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/Command.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/Command.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -0,0 +1,48 @@
+package org.drools.task.service;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class Command implements Serializable {
+
+ private int id;
+
+ private CommandName name;
+
+ private List<Object> arguments;
+
+ public Command(int id, CommandName name, List<Object> arguments) {
+ super();
+ this.id = id;
+ this.arguments = arguments;
+ this.name = name;
+ }
+
+
+
+ public int getId() {
+ return id;
+ }
+
+
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+
+
+ public CommandName getName() {
+ return name;
+ }
+ public void setName(CommandName name) {
+ this.name = name;
+ }
+ public List<Object> getArguments() {
+ return arguments;
+ }
+ public void setArguments(List<Object> arguments) {
+ this.arguments = arguments;
+ }
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/CommandName.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -0,0 +1,7 @@
+package org.drools.task.service;
+
+public enum CommandName {
+ AddTaskRequest,
+ AllOpenTasksForUserRequest,
+ AllOpenTasksForUserResponse;
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskClient.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -0,0 +1,111 @@
+package org.drools.task.service;
+
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.mina.core.future.ConnectFuture;
+import org.apache.mina.core.service.IoHandler;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.filter.codec.ProtocolCodecFilter;
+import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
+import org.apache.mina.filter.codec.serialization.ObjectSerializationEncoder;
+import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
+import org.apache.mina.transport.socket.SocketConnector;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.drools.task.Task;
+import org.drools.task.service.TaskClientHandler.AllOpenTasksForUseResponseHandler;
+
+public class MinaTaskClient
+{
+ private final TaskClientHandler handler;
+
+ private final String name;
+
+ private IoSession session;
+
+ private int counter;
+
+ public static void main(String[] args) throws Exception {
+ MinaTaskClient client = new MinaTaskClient("test client", new TaskClientHandler() );
+ NioSocketConnector connector = new NioSocketConnector();
+ SocketAddress address = new InetSocketAddress( "127.0.0.1", 9123 );
+ client.connect( connector, address );
+ }
+
+ public MinaTaskClient(String name, TaskClientHandler handler) {
+ if (name == null) {
+ throw new IllegalArgumentException("Name can not be null");
+ }
+ this.name = name;
+ this.handler = handler;
+ }
+
+ public boolean connect(SocketConnector connector, SocketAddress address) {
+ if (session != null && session.isConnected()) {
+ throw new IllegalStateException(
+ "Already connected. Disconnect first.");
+ }
+
+ connector.setHandler( this.handler );
+
+ try {
+// SocketConnectorConfig config = new SocketConnectorConfig();
+// if (useSsl) {
+// SSLContext sslContext = BogusSSLContextFactory
+// .getInstance(false);
+// SSLFilter sslFilter = new SSLFilter(sslContext);
+// sslFilter.setUseClientMode(true);
+// config.getFilterChain().addLast("sslFilter", sslFilter);
+// }
+
+ //connector.setHandler( arg0 );
+
+ connector.getFilterChain().addLast(
+ "codec",
+ new ProtocolCodecFilter(
+ new ObjectSerializationCodecFactory()));
+
+ ConnectFuture future1 = connector.connect( address );
+ future1.join();
+ if (!future1.isConnected()) {
+ return false;
+ }
+ session = future1.getSession();
+ //session.write("LOGIN " + name);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public void disconnect() {
+ if ( session!= null && session.isConnected() ) {
+ session.close();
+ session.getCloseFuture().join();
+ }
+ }
+
+ public void addTask(Task task) {
+ List args = new ArrayList( 1 );
+ args.add( task );
+ Command cmd = new Command( counter++, CommandName.AddTaskRequest, args);
+
+ session.write( cmd );
+ }
+
+ public void getAllOpenTasksForUser(long userId, String language, AllOpenTasksForUseResponseHandler responseHandler) {
+ List args = new ArrayList( 2 );
+ args.add( userId );
+ args.add( language );
+ Command cmd = new Command( counter++, CommandName.AllOpenTasksForUserRequest, args);
+ handler.addResponseHandler( cmd.getId(), responseHandler );
+
+ session.write( cmd );
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskServer.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskServer.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/MinaTaskServer.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -0,0 +1,78 @@
+package org.drools.task.service;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.nio.charset.Charset;
+
+import org.apache.mina.core.service.IoAcceptor;
+import org.apache.mina.core.session.IdleStatus;
+import org.apache.mina.filter.codec.ProtocolCodecFilter;
+import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
+import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
+import org.apache.mina.filter.logging.LoggingFilter;
+import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+
+public class MinaTaskServer
+ implements
+ Runnable {
+ private static final int PORT = 9123;
+
+ TaskServerHandler handler;
+
+ IoAcceptor acceptor;
+
+ volatile boolean running;
+
+ public MinaTaskServer(TaskService service) {
+ handler = new TaskServerHandler( service );
+ }
+
+ public void run() {
+ try {
+ start();
+ while ( running ) {
+ Thread.sleep( 100 );
+ }
+ } catch ( Exception e ) {
+ throw new RuntimeException( "Task Service Exception: ",
+ e );
+ }
+ }
+
+ public void start() throws IOException {
+ running = true;
+
+ acceptor = new NioSocketAcceptor();
+
+ acceptor.getFilterChain().addLast( "logger",
+ new LoggingFilter() );
+ acceptor.getFilterChain().addLast( "codec",
+ new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
+
+ acceptor.setHandler( handler );
+ acceptor.getSessionConfig().setReadBufferSize( 2048 );
+ acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE,
+ 10 );
+ acceptor.bind( new InetSocketAddress( PORT ) );
+ }
+
+ public void stop() {
+ acceptor.dispose();
+ running = false;
+ }
+
+ public static void main(String[] args) throws IOException {
+ // IoAcceptor acceptor = new NioSocketAcceptor();
+ //
+ // acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );
+ // acceptor.getFilterChain().addLast(
+ // "codec",
+ // new ProtocolCodecFilter(
+ // new ObjectSerializationCodecFactory()));
+ //
+ // acceptor.setHandler( new TaskServerHandler() );
+ // acceptor.getSessionConfig().setReadBufferSize( 2048 );
+ // acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 );
+ // acceptor.bind( new InetSocketAddress(PORT) );
+ }
+}
\ No newline at end of file
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -0,0 +1,85 @@
+package org.drools.task.service;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+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.TaskSummary;
+
+public class TaskClientHandler extends IoHandlerAdapter
+{
+ private MinaTaskClient client;
+ private Map<Integer, ResponseHandler> responseHandlers;
+
+ public TaskClientHandler() {
+ responseHandlers = new HashMap<Integer, ResponseHandler>();
+ }
+
+ public void addResponseHandler(int id, ResponseHandler responseHandler) {
+ responseHandlers.put( id, responseHandler );
+ }
+
+ public MinaTaskClient getClient() {
+ return client;
+ }
+
+ public void setClient(MinaTaskClient client) {
+ this.client = client;
+ }
+
+ @Override
+ public void exceptionCaught( IoSession session, Throwable cause ) throws Exception
+ {
+ cause.printStackTrace();
+ }
+
+ @Override
+ public void messageReceived(IoSession session,
+ Object message) throws Exception {
+ Command cmd = (Command) message;
+ switch ( cmd.getName() ) {
+ case AllOpenTasksForUserResponse : {
+ List<TaskSummary> results = ( List<TaskSummary> ) cmd.getArguments().get( 0 );
+ AllOpenTasksForUseResponseHandler responseHandler = ( AllOpenTasksForUseResponseHandler ) responseHandlers.remove( cmd.getId() );
+ if ( responseHandler != null ) {
+ responseHandler.execute( results );
+ }
+ }
+ }
+ }
+
+ @Override
+ public void messageSent(IoSession session, Object message)
+ {
+ String str = message.toString();
+ if( str.trim().equalsIgnoreCase("quit") ) {
+ session.close();
+ return;
+ }
+
+ Date date = new Date();
+ //session.write( date.toString() );
+ System.out.println("Message written : " + str + " : " + date);
+ }
+
+ @Override
+ public void sessionIdle( IoSession session, IdleStatus status ) throws Exception
+ {
+ System.out.println( "IDLE " + session.getIdleCount( status ));
+ }
+
+
+ public static interface ResponseHandler {
+
+ }
+
+ public static interface AllOpenTasksForUseResponseHandler extends ResponseHandler {
+ public void execute(List<TaskSummary> results);
+
+ public List<TaskSummary> getResults();
+ }
+}
\ No newline at end of file
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -0,0 +1,61 @@
+package org.drools.task.service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+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.Task;
+import org.drools.task.TaskSummary;
+
+public class TaskServerHandler extends IoHandlerAdapter {
+ private TaskService service;
+
+ public TaskServerHandler(TaskService service) {
+ this.service = service;
+ }
+
+ @Override
+ public void exceptionCaught(IoSession session,
+ Throwable cause) throws Exception {
+ cause.printStackTrace();
+ }
+
+ @Override
+ public void messageReceived(IoSession session,
+ Object message) throws Exception {
+ Command cmd = (Command) message;
+ switch ( cmd.getName() ) {
+ case AddTaskRequest : {
+ service.addTask( (Task) cmd.getArguments().get( 0 ) );
+ break;
+ }
+ case AllOpenTasksForUserRequest : {
+ List<TaskSummary> results = service.getAllOpenTasksForUser( (Long) cmd.getArguments().get( 0 ),
+ (String) cmd.getArguments().get( 1 ) );
+ List args = new ArrayList( 1 );
+ args.add( results );
+ Command resultsCmnd = new Command( cmd.getId(),
+ CommandName.AllOpenTasksForUserResponse,
+ args );
+ session.write( resultsCmnd );
+ break;
+ }
+ default : {
+ // unknown command
+ }
+ }
+
+ Date date = new Date();
+ System.out.println( "Message written : " + cmd.getName() + " : " + date );
+ }
+
+ @Override
+ public void sessionIdle(IoSession session,
+ IdleStatus status) throws Exception {
+ System.out.println( "IDLE " + session.getIdleCount( status ) );
+ }
+}
\ No newline at end of file
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/server/TaskService.java 2008-08-28 04:10:14 UTC (rev 21945)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskService.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,4 +1,4 @@
-package org.drools.task.server;
+package org.drools.task.service;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -53,7 +53,7 @@
return em.find( Task.class, taskId );
}
- public List<TaskSummary> getAllOpenTasks(long userId, String language) {
+ public List<TaskSummary> getAllOpenTasksForUser(long userId, String language) {
allOpenTasks.setParameter( "currentUser", userId );
allOpenTasks.setParameter( "language", language );
List<TaskSummary> list = ( List<TaskSummary> ) allOpenTasks.getResultList();
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/utils/CollectionUtils.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/utils/CollectionUtils.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/utils/CollectionUtils.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -1,12 +1,32 @@
package org.drools.task.utils;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import javax.persistence.CascadeType;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
import javax.print.attribute.HashAttributeSet;
+import org.drools.task.Attachment;
+import org.drools.task.BooleanExpression;
+import org.drools.task.Comment;
+import org.drools.task.Deadline;
+import org.drools.task.Deadlines;
+import org.drools.task.Escalation;
+import org.drools.task.Group;
+import org.drools.task.I18NText;
+import org.drools.task.Notification;
+import org.drools.task.OrganizationalEntity;
+import org.drools.task.Reassignment;
+import org.drools.task.User;
+
public class CollectionUtils {
public static boolean equals(List list1, List list2) {
if ( list1 == null && list2 == null ) {
@@ -49,5 +69,182 @@
result = prime * result + it.next().hashCode();
}
return result;
+ }
+
+ public static void writeCommentList(List<Comment> list, ObjectOutput out) throws IOException {
+ out.writeInt( list.size() );
+ for( Comment item : list ) {
+ item.writeExternal( out );
+ }
+ }
+
+ public static List<Comment> readCommentList(ObjectInput in) throws IOException, ClassNotFoundException {
+ int size = in.readInt();
+ List<Comment> list = new ArrayList<Comment>(size);
+ for ( int i = 0; i < size; i++ ) {
+ Comment item = new Comment();
+ item.readExternal( in );
+ list.add( item );
+ }
+ return list;
+ }
+
+
+ public static void writeAttachmentList(List<Attachment> list, ObjectOutput out) throws IOException {
+ out.writeInt( list.size() );
+ for( Attachment item : list ) {
+ item.writeExternal( out );
+ }
+ }
+
+ public static List<Attachment> readAttachmentList(ObjectInput in) throws IOException, ClassNotFoundException {
+ int size = in.readInt();
+ List<Attachment> list = new ArrayList<Attachment>(size);
+ for ( int i = 0; i < size; i++ ) {
+ Attachment item = new Attachment();
+ item.readExternal( in );
+ list.add( item );
+ }
+ return list;
+ }
+
+ public static void writeBooleanExpressionList(List<BooleanExpression> list, ObjectOutput out) throws IOException {
+ out.writeInt( list.size() );
+ for( BooleanExpression item : list ) {
+ item.writeExternal( out );
+ }
+ }
+
+ public static List<BooleanExpression> readBooleanExpressionList(ObjectInput in) throws IOException, ClassNotFoundException {
+ int size = in.readInt();
+ List<BooleanExpression> list = new ArrayList<BooleanExpression>(size);
+ for ( int i = 0; i < size; i++ ) {
+ BooleanExpression item = new BooleanExpression();
+ item.readExternal( in );
+ list.add( item );
+ }
+ return list;
+ }
+
+
+ public static void writeNotificationList(List<Notification> list, ObjectOutput out) throws IOException {
+ out.writeInt( list.size() );
+ for( Notification item : list ) {
+ item.writeExternal( out );
+ }
+ }
+
+ public static List<Notification> readNotificationList(ObjectInput in) throws IOException, ClassNotFoundException {
+ int size = in.readInt();
+ List<Notification> list = new ArrayList<Notification>(size);
+ for ( int i = 0; i < size; i++ ) {
+ Notification item = new Notification();
+ item.readExternal( in );
+ list.add( item );
+ }
+ return list;
+ }
+
+
+ public static void writeReassignmentList(List<Reassignment> list, ObjectOutput out) throws IOException {
+ out.writeInt( list.size() );
+ for( Reassignment item : list ) {
+ item.writeExternal( out );
+ }
+ }
+
+ public static List<Reassignment> readReassignmentList(ObjectInput in) throws IOException, ClassNotFoundException {
+ int size = in.readInt();
+ List<Reassignment> list = new ArrayList<Reassignment>(size);
+ for ( int i = 0; i < size; i++ ) {
+ Reassignment item = new Reassignment();
+ item.readExternal( in );
+ list.add( item );
+ }
+ return list;
+ }
+
+ public static void writeDeadlineList(List<Deadline> list, ObjectOutput out) throws IOException {
+ out.writeInt( list.size() );
+ for( Deadline item : list ) {
+ item.writeExternal( out );
+ }
+ }
+
+ public static List<Deadline> readDeadlinesList(ObjectInput in) throws IOException, ClassNotFoundException {
+ int size = in.readInt();
+ List<Deadline> list = new ArrayList<Deadline>(size);
+ for ( int i = 0; i < size; i++ ) {
+ Deadline item = new Deadline();
+ item.readExternal( in );
+ list.add( item );
+ }
+ return list;
+ }
+
+ public static void writeEscalationList(List<Escalation> list, ObjectOutput out) throws IOException {
+ out.writeInt( list.size() );
+ for( Escalation item : list ) {
+ item.writeExternal( out );
+ }
+ }
+
+ public static List<Escalation> readIEscalationList(ObjectInput in) throws IOException, ClassNotFoundException {
+ int size = in.readInt();
+ List<Escalation> list = new ArrayList<Escalation>(size);
+ for ( int i = 0; i < size; i++ ) {
+ Escalation item = new Escalation();
+ item.readExternal( in );
+ list.add( item );
+ }
+ return list;
+ }
+
+ public static void writeI18NTextList(List<I18NText> list, ObjectOutput out) throws IOException {
+ out.writeInt( list.size() );
+ for( I18NText item : list ) {
+ item.writeExternal( out );
+ }
+ }
+
+ public static List<I18NText> readI18NTextList(ObjectInput in) throws IOException, ClassNotFoundException {
+ int size = in.readInt();
+ List<I18NText> list = new ArrayList<I18NText>(size);
+ for ( int i = 0; i < size; i++ ) {
+ I18NText item = new I18NText();
+ item.readExternal( in );
+ list.add( item );
+ }
+ return list;
}
+
+ public static void writeOrganizationalEntityList(List<OrganizationalEntity> list, ObjectOutput out) throws IOException {
+ out.writeInt( list.size() );
+ for( OrganizationalEntity item : list ) {
+ if ( item instanceof User ) {
+ out.writeShort( 0 );
+ } else {
+ out.writeShort( 1 );
+ }
+ item.writeExternal( out );
+ }
+ }
+
+ public static List<OrganizationalEntity> readOrganizationalEntityList(ObjectInput in) throws IOException, ClassNotFoundException {
+ int size = in.readInt();
+ List<OrganizationalEntity> list = new ArrayList<OrganizationalEntity>(size);
+ for ( int i = 0; i < size; i++ ) {
+ short type = in.readShort();
+ if ( type == 0 ) {
+ User user = new User();
+ user.readExternal( in );
+ list.add( user );
+ } else {
+ Group group = new Group();
+ group.readExternal( in );
+ list.add( group );
+ }
+ }
+ return list;
+ }
}
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-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/persistence.xml 2008-08-28 20:48:21 UTC (rev 21972)
@@ -27,9 +27,9 @@
<property name="hibernate.connection.url" value="jdbc:h2:mem:mydb" />
<!-- property name="hibernate.connection.url" value="jdbc:h2:file:\dev\drools\trunk7\drools-process\drools-process-task\mydb"/ -->
- <!-- property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
- <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
- <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/postgres"/-->
+<!-- <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>-->
+<!-- <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/> -->
+<!-- <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/postgres"/>-->
<property name="hibernate.connection.username" value="sa"/>
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/BaseTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/BaseTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/BaseTest.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -0,0 +1,136 @@
+package org.drools.task;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.Serializable;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import javax.persistence.Query;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.drools.task.Attachment;
+import org.drools.task.BooleanExpression;
+import org.drools.task.Comment;
+import org.drools.task.Deadline;
+import org.drools.task.Deadlines;
+import org.drools.task.Delegation;
+import org.drools.task.Escalation;
+import org.drools.task.Group;
+import org.drools.task.I18NText;
+import org.drools.task.Notification;
+import org.drools.task.OrganizationalEntity;
+import org.drools.task.PeopleAssignments;
+import org.drools.task.Reassignment;
+import org.drools.task.Status;
+import org.drools.task.Task;
+import org.drools.task.TaskData;
+import org.drools.task.User;
+import org.drools.task.service.TaskService;
+import org.drools.task.utils.CollectionUtils;
+import org.mvel.MVEL;
+import org.mvel.ParserContext;
+import org.mvel.compiler.ExpressionCompiler;
+import org.mvel.util.MVELClassLoader;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.PrettyPrintWriter;
+
+import junit.framework.TestCase;
+
+public class BaseTest extends TestCase {
+ protected EntityManagerFactory emf;
+ protected EntityManager em;
+
+ protected Map<String, User> users;
+ protected Map<String, Group> groups;
+
+ protected TaskService taskService;
+
+ protected void setUp() throws Exception {
+ // Use persistence.xml configuration
+ emf = Persistence.createEntityManagerFactory( "org.drools.task" );
+ em = emf.createEntityManager(); // Retrieve an application managed entity manager
+
+ taskService = new TaskService( em );
+
+ Map vars = new HashedMap();
+ //vars.put( "em", em );
+
+ Reader reader = new InputStreamReader( BaseTest.class.getResourceAsStream( "LoadUsers.mvel" ) );
+ users = ( Map<String, User> ) eval( reader, vars );
+ for ( User user : users.values() ) {
+ taskService.addUser( user );
+ }
+
+ reader = new InputStreamReader( BaseTest.class.getResourceAsStream( "LoadGroups.mvel" ) );
+ groups = ( Map<String, Group> ) eval( reader, vars );
+ for ( Group group : groups.values() ) {
+ taskService.addGroup( group );
+ }
+ }
+
+ protected void tearDown() throws Exception {
+ em.close();
+ emf.close();
+ }
+
+ public Object eval(Reader reader, Map vars) {
+ try {
+ return eval( toString( reader ), vars );
+ } catch ( IOException e ) {
+ throw new RuntimeException( "Exception Thrown",
+ e );
+ }
+ }
+
+ public String toString(Reader reader) throws IOException {
+ int charValue = 0;
+ StringBuffer sb = new StringBuffer( 1024 );
+ while ( (charValue = reader.read()) != -1 ) {
+ //result = result + (char) charValue;
+ sb.append( (char) charValue );
+ }
+ return sb.toString();
+ }
+
+ public Object eval(String str, Map vars) {
+ ExpressionCompiler compiler = new ExpressionCompiler( str.trim() );
+
+ ParserContext context = new ParserContext();
+ context.addPackageImport( "org.drools.task" );
+ context.addPackageImport( "java.util" );
+
+ context.addImport( "AccessType", AccessType.class );
+ context.addImport( "Allowed", Allowed.class );
+ context.addImport( "Attachment", Attachment.class );
+ context.addImport( "BooleanExpression", BooleanExpression.class );
+ context.addImport( "Comment", Comment.class );
+ context.addImport( "Deadline", Deadline.class );
+ context.addImport( "Deadlines", Deadlines.class );
+ context.addImport( "Delegation", Delegation.class );
+ context.addImport( "Escalation", Escalation.class );
+ context.addImport( "Group", Group.class );
+ context.addImport( "I18NText", I18NText.class );
+ context.addImport( "Notification", Notification.class );
+ context.addImport( "OrganizationalEntity", OrganizationalEntity.class );
+ context.addImport( "PeopleAssignments", PeopleAssignments.class );
+ context.addImport( "Reassignment", Reassignment.class );
+ context.addImport( "Status", Status.class );
+ context.addImport( "Task", Task.class );
+ context.addImport( "TaskData", TaskData.class );
+ context.addImport( "User", User.class );
+
+ return MVEL.executeExpression( compiler.compile( context ), vars );
+ }
+}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/TestModelPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/TestModelPersistence.java 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/TestModelPersistence.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -29,16 +29,14 @@
import org.drools.task.Group;
import org.drools.task.I18NText;
import org.drools.task.Notification;
-import org.drools.task.NotificationPresentationElements;
import org.drools.task.OrganizationalEntity;
import org.drools.task.PeopleAssignments;
import org.drools.task.Reassignment;
-import org.drools.task.TaskPresentationElements;
import org.drools.task.Status;
import org.drools.task.Task;
import org.drools.task.TaskData;
import org.drools.task.User;
-import org.drools.task.server.TaskService;
+import org.drools.task.service.TaskService;
import org.drools.task.utils.CollectionUtils;
import org.mvel.MVEL;
import org.mvel.ParserContext;
@@ -50,91 +48,16 @@
import junit.framework.TestCase;
-public class TestModelPersistence extends TestCase {
- EntityManagerFactory emf;
- EntityManager em;
+public class TestModelPersistence extends BaseTest {
- private Map<String, User> users;
- private Map<String, Group> groups;
-
- private TaskService taskService;
-
protected void setUp() throws Exception {
- // Use persistence.xml configuration
- emf = Persistence.createEntityManagerFactory( "org.drools.task" );
- em = emf.createEntityManager(); // Retrieve an application managed entity manager
-
- taskService = new TaskService( em );
-
- Map vars = new HashedMap();
- //vars.put( "em", em );
-
- Reader reader = new InputStreamReader( getClass().getResourceAsStream( "LoadUsers.mvel" ) );
- users = ( Map<String, User> ) eval( reader, vars );
- for ( User user : users.values() ) {
- taskService.addUser( user );
- }
-
- reader = new InputStreamReader( getClass().getResourceAsStream( "LoadGroups.mvel" ) );
- groups = ( Map<String, Group> ) eval( reader, vars );
- for ( Group group : groups.values() ) {
- taskService.addGroup( group );
- }
-
-
+ super.setUp();
}
-
- public Object eval(Reader reader, Map vars) {
- try {
- return eval( toString( reader ), vars );
- } catch ( IOException e ) {
- throw new RuntimeException( "Exception Thrown",
- e );
- }
- }
- public String toString(Reader reader) throws IOException {
- int charValue = 0;
- StringBuffer sb = new StringBuffer( 1024 );
- while ( (charValue = reader.read()) != -1 ) {
- //result = result + (char) charValue;
- sb.append( (char) charValue );
- }
- return sb.toString();
+ protected void tearDown() throws Exception {
+ super.tearDown();
}
-
- public Object eval(String str, Map vars) {
- ExpressionCompiler compiler = new ExpressionCompiler( str.trim() );
-
- ParserContext context = new ParserContext();
- context.addPackageImport( "org.drools.task" );
- context.addPackageImport( "java.util" );
-
- context.addImport( "AccessType", AccessType.class );
- context.addImport( "Allowed", Allowed.class );
- context.addImport( "Attachment", Attachment.class );
- context.addImport( "BooleanExpression", BooleanExpression.class );
- context.addImport( "Comment", Comment.class );
- context.addImport( "Deadline", Deadline.class );
- context.addImport( "Deadlines", Deadlines.class );
- context.addImport( "Delegation", Delegation.class );
- context.addImport( "Escalation", Escalation.class );
- context.addImport( "Group", Group.class );
- context.addImport( "I18NText", I18NText.class );
- context.addImport( "Notification", Notification.class );
- context.addImport( "NotificationPresentationElements", NotificationPresentationElements.class );
- context.addImport( "OrganizationalEntity", OrganizationalEntity.class );
- context.addImport( "PeopleAssignments", PeopleAssignments.class );
- context.addImport( "Reassignment", Reassignment.class );
- context.addImport( "Status", Status.class );
- context.addImport( "Task", Task.class );
- context.addImport( "TaskData", TaskData.class );
- context.addImport( "TaskPresentationElements", TaskPresentationElements.class );
- context.addImport( "User", User.class );
-
- return MVEL.executeExpression( compiler.compile( context ), vars );
- }
-
+
public void testfullHibernateRoundtripWithAdditionalMVELCheck() throws Exception {
Task task1 = new Task();
@@ -218,14 +141,12 @@
comment.setText( "this is a loooooooooooooooooooooooooooooooooooooooooooooooong comment" );
comments.add( comment );
- TaskPresentationElements tpresentationElements = new TaskPresentationElements();
- task1.setTaskPresentationElements( tpresentationElements );
List<I18NText> names = new ArrayList<I18NText>();
- tpresentationElements.setNames( names );
+ task1.setNames( names );
List<I18NText> subjects = new ArrayList<I18NText>();
- tpresentationElements.setSubjects( subjects );
+ task1.setSubjects( subjects );
List<I18NText> descriptions = new ArrayList<I18NText>();
- tpresentationElements.setDescriptions( descriptions );
+ task1.setDescriptions( descriptions );
names.add( new I18NText( "en-UK",
"This is my task name" ) );
@@ -300,14 +221,12 @@
recipients.add( users.get( "tony" ) );
recipients.add( users.get( "darth" ) );
- NotificationPresentationElements npresentationElements = new NotificationPresentationElements();
- notification.setNotificationPresentationElements( npresentationElements );
names = new ArrayList<I18NText>();
- npresentationElements.setNames( names );
+ notification.setNames( names );
subjects = new ArrayList<I18NText>();
- npresentationElements.setSubjects( subjects );
+ notification.setSubjects( subjects );
descriptions = new ArrayList<I18NText>();
- npresentationElements.setDescriptions( descriptions );
+ notification.setDescriptions( descriptions );
names.add( new I18NText( "en-UK",
"This is my start notification name" ) );
@@ -381,14 +300,12 @@
recipients.add( users.get( "liz" ) );
recipients.add( users.get( "jane" ) );
- npresentationElements = new NotificationPresentationElements();
- notification.setNotificationPresentationElements( npresentationElements );
names = new ArrayList<I18NText>();
- npresentationElements.setNames( names );
+ notification.setNames( names );
subjects = new ArrayList<I18NText>();
- npresentationElements.setSubjects( subjects );
+ notification.setSubjects( subjects );
descriptions = new ArrayList<I18NText>();
- npresentationElements.setDescriptions( descriptions );
+ notification.setDescriptions( descriptions );
names.add( new I18NText( "en-UK",
"This is my end notification name" ) );
@@ -445,9 +362,6 @@
task3 );
assertEquals( task1,
task3 );
-
- em.close();
- emf.close();
}
public void testQuery() throws Exception {
@@ -466,15 +380,15 @@
reader = new InputStreamReader( getClass().getResourceAsStream( "QueryResultsInEnglish.mvel" ) );
Map<String, List<TaskSummary>> expected = ( Map<String, List<TaskSummary>> ) eval( reader, vars );
- List actual = taskService.getAllOpenTasks( users.get( "peter" ).getId(), "en-UK" );
+ List actual = taskService.getAllOpenTasksForUser( users.get( "peter" ).getId(), "en-UK" );
assertEquals( 3, actual.size() );
assertTrue( CollectionUtils.equals( expected.get( "peter" ), actual ) );
- actual = taskService.getAllOpenTasks( users.get( "steve" ).getId(), "en-UK" );
+ actual = taskService.getAllOpenTasksForUser( users.get( "steve" ).getId(), "en-UK" );
assertEquals( 2, actual.size() );
assertTrue( CollectionUtils.equals( expected.get( "steve" ), actual ) );
- actual = taskService.getAllOpenTasks( users.get( "darth" ).getId(), "en-UK" );
+ actual = taskService.getAllOpenTasksForUser( users.get( "darth" ).getId(), "en-UK" );
assertEquals( 1, actual.size() );
assertTrue( CollectionUtils.equals( expected.get( "darth" ), actual ) );
@@ -482,20 +396,17 @@
reader = new InputStreamReader( getClass().getResourceAsStream( "QueryResultsInGerman.mvel" ) );
expected = ( Map<String, List<TaskSummary>> ) eval( reader, vars );
- actual = taskService.getAllOpenTasks( users.get( "peter" ).getId(), "en-DK" );
+ actual = taskService.getAllOpenTasksForUser( users.get( "peter" ).getId(), "en-DK" );
assertEquals( 3, actual.size() );
assertTrue( CollectionUtils.equals( expected.get( "peter" ), actual ) );
- actual = taskService.getAllOpenTasks( users.get( "steve" ).getId(), "en-DK" );
+ actual = taskService.getAllOpenTasksForUser( users.get( "steve" ).getId(), "en-DK" );
assertEquals( 2, actual.size() );
assertTrue( CollectionUtils.equals( expected.get( "steve" ), actual ) );
- actual = taskService.getAllOpenTasks( users.get( "darth" ).getId(), "en-DK" );
+ actual = taskService.getAllOpenTasksForUser( users.get( "darth" ).getId(), "en-DK" );
assertEquals( 1, actual.size() );
- assertTrue( CollectionUtils.equals( expected.get( "darth" ), actual ) );
-
- em.close();
- emf.close();
+ assertTrue( CollectionUtils.equals( expected.get( "darth" ), actual ) );
}
}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java 2008-08-28 20:48:21 UTC (rev 21972)
@@ -0,0 +1,131 @@
+package org.drools.task.service;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.drools.task.BaseTest;
+import org.drools.task.Task;
+import org.drools.task.TaskSummary;
+import org.drools.task.TestModelPersistence;
+import org.drools.task.service.TaskClientHandler.AllOpenTasksForUseResponseHandler;
+import org.drools.task.utils.CollectionUtils;
+
+import junit.framework.TestCase;
+
+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();
+
+ 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 testQuery() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+
+ //Reader reader;
+ Reader reader = new InputStreamReader( getClass().getResourceAsStream( "../AllOpenTasksData.mvel" ) );
+ List<Task> tasks = ( List<Task> ) eval( reader, vars );
+ for ( Task task : tasks) {
+ client.addTask( task );
+ }
+
+ // Test UK I18N
+ reader = new InputStreamReader( getClass().getResourceAsStream( "../QueryResultsInEnglish.mvel" ) );
+ Map<String, List<TaskSummary>> expected = ( Map<String, List<TaskSummary>> ) eval( reader, vars );
+
+
+ AllOpenTasksForUseResponseHandler responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getAllOpenTasksForUser( 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.getAllOpenTasksForUser( 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.getAllOpenTasksForUser( 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( "../QueryResultsInGerman.mvel" ) );
+ expected = ( Map<String, List<TaskSummary>> ) eval( reader, vars );
+
+ responseHandler = new BlockingAllOpenTasksForUseResponseHandler();
+ client.getAllOpenTasksForUser( 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.getAllOpenTasksForUser( 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.getAllOpenTasksForUser( users.get( "darth" ).getId(), "en-DK", responseHandler );
+ actual = responseHandler.getResults();
+ assertEquals( 1, actual.size() );
+ assertTrue( CollectionUtils.equals( expected.get( "darth" ), actual ) );
+ }
+
+
+ public static class BlockingAllOpenTasksForUseResponseHandler implements AllOpenTasksForUseResponseHandler {
+ private volatile List<TaskSummary> results;
+
+ public synchronized void execute(List<TaskSummary> results) {
+ this.results = results;
+ notifyAll();
+ }
+
+ public synchronized List<TaskSummary> getResults() {
+ if ( results == null ) {
+ try {
+ wait( 3000 );
+ } catch ( InterruptedException e ) {
+ e.printStackTrace();
+ }
+ }
+
+ if ( results == null ) {
+ 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/AllOpenTasksData.mvel
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/AllOpenTasksData.mvel 2008-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/AllOpenTasksData.mvel 2008-08-28 20:48:21 UTC (rev 21972)
@@ -11,14 +11,12 @@
expirationTime = format.parse( "25/Jan/2008" ),
status = Status.Created,
}),
- taskPresentationElements = (with ( new TaskPresentationElements() ) {
- names = [ new I18NText( "en-UK", "This is my task name Jan" ),
- new I18NText( "en-DK", "Dies ist mein task Name Jan" )],
- subjects = [ new I18NText( "en-UK", "This is my task subject Jan" ),
- new I18NText( "en-DK", "Das ist mein task Thema Jan" ) ],
- descriptions = [ new I18NText( "en-UK", "This is my task description Jan" ),
- new I18NText( "en-DK", "Das ist mein task Beschreibung Jan" ) ]
- })
+ names = [ new I18NText( "en-UK", "This is my task name Jan" ),
+ new I18NText( "en-DK", "Dies ist mein task Name Jan" )],
+ subjects = [ new I18NText( "en-UK", "This is my task subject Jan" ),
+ new I18NText( "en-DK", "Das ist mein task Thema Jan" ) ],
+ descriptions = [ new I18NText( "en-UK", "This is my task description Jan" ),
+ new I18NText( "en-DK", "Das ist mein task Beschreibung Jan" ) ]
}),
(with ( new Task() ) {
priority = 150,
@@ -30,14 +28,12 @@
expirationTime = format.parse( "25/Feb/2008" ),
status = Status.Created,
}),
- taskPresentationElements = (with ( new TaskPresentationElements() ) {
- names = [ new I18NText( "en-UK", "This is my task name Feb" ),
- new I18NText( "en-DK", "Dies ist mein task Name Feb" )],
- subjects = [ new I18NText( "en-UK", "This is my task subject Feb" ),
- new I18NText( "en-DK", "Das ist mein task Thema Feb" ) ],
- descriptions = [ new I18NText( "en-UK", "This is my task description Feb" ),
- new I18NText( "en-DK", "Das ist mein task Beschreibung Feb" ) ]
- })
+ names = [ new I18NText( "en-UK", "This is my task name Feb" ),
+ new I18NText( "en-DK", "Dies ist mein task Name Feb" )],
+ subjects = [ new I18NText( "en-UK", "This is my task subject Feb" ),
+ new I18NText( "en-DK", "Das ist mein task Thema Feb" ) ],
+ descriptions = [ new I18NText( "en-UK", "This is my task description Feb" ),
+ new I18NText( "en-DK", "Das ist mein task Beschreibung Feb" ) ]
}),
(with ( new Task() ) {
priority = 90,
@@ -49,14 +45,12 @@
expirationTime = format.parse( "25/Mar/2008" ),
status = Status.Created,
}),
- taskPresentationElements = (with ( new TaskPresentationElements() ) {
- names = [ new I18NText( "en-UK", "This is my task name Mar" ),
- new I18NText( "en-DK", "Dies ist mein task Name Mar" )],
- subjects = [ new I18NText( "en-UK", "This is my task subject Mar" ),
- new I18NText( "en-DK", "Das ist mein task Thema Mar" ) ],
- descriptions = [ new I18NText( "en-UK", "This is my task description Mar" ),
- new I18NText( "en-DK", "Das ist mein task Beschreibung Mar" ) ]
- })
+ names = [ new I18NText( "en-UK", "This is my task name Mar" ),
+ new I18NText( "en-DK", "Dies ist mein task Name Mar" )],
+ subjects = [ new I18NText( "en-UK", "This is my task subject Mar" ),
+ new I18NText( "en-DK", "Das ist mein task Thema Mar" ) ],
+ descriptions = [ new I18NText( "en-UK", "This is my task description Mar" ),
+ new I18NText( "en-DK", "Das ist mein task Beschreibung Mar" ) ]
}),
(with ( new Task() ) {
priority = 20,
@@ -68,14 +62,12 @@
expirationTime = format.parse( "25/Apr/2008" ),
status = Status.Created,
}),
- taskPresentationElements = (with ( new TaskPresentationElements() ) {
- names = [ new I18NText( "en-UK", "This is my task name Apr" ),
- new I18NText( "en-DK", "Dies ist mein task Name Apr" )],
- subjects = [ new I18NText( "en-UK", "This is my task subject Apr" ),
- new I18NText( "en-DK", "Das ist mein task Thema Apr" ) ],
- descriptions = [ new I18NText( "en-UK", "This is my task description Apr" ),
- new I18NText( "en-DK", "Das ist mein task Beschreibung Apr" ) ]
- })
+ names = [ new I18NText( "en-UK", "This is my task name Apr" ),
+ new I18NText( "en-DK", "Dies ist mein task Name Apr" )],
+ subjects = [ new I18NText( "en-UK", "This is my task subject Apr" ),
+ new I18NText( "en-DK", "Das ist mein task Thema Apr" ) ],
+ descriptions = [ new I18NText( "en-UK", "This is my task description Apr" ),
+ new I18NText( "en-DK", "Das ist mein task Beschreibung Apr" ) ]
}),
(with ( new Task() ) {
priority = 20,
@@ -87,14 +79,12 @@
expirationTime = format.parse( "25/May/2008" ),
status = Status.Created,
}),
- taskPresentationElements = (with ( new TaskPresentationElements() ) {
- names = [ new I18NText( "en-UK", "This is my task name May" ),
- new I18NText( "en-DK", "Dies ist mein task Name May" )],
- subjects = [ new I18NText( "en-UK", "This is my task subject May" ),
- new I18NText( "en-DK", "Das ist mein task Thema May" ) ],
- descriptions = [ new I18NText( "en-UK", "This is my task description May" ),
- new I18NText( "en-DK", "Das ist mein task Beschreibung May" ) ]
- })
+ names = [ new I18NText( "en-UK", "This is my task name May" ),
+ new I18NText( "en-DK", "Dies ist mein task Name May" )],
+ subjects = [ new I18NText( "en-UK", "This is my task subject May" ),
+ new I18NText( "en-DK", "Das ist mein task Thema May" ) ],
+ descriptions = [ new I18NText( "en-UK", "This is my task description May" ),
+ new I18NText( "en-DK", "Das ist mein task Beschreibung May" ) ]
}),
(with ( new Task() ) {
priority = 15,
@@ -106,14 +96,12 @@
expirationTime = format.parse( "25/Jun/2008" ),
status = Status.Created,
}),
- taskPresentationElements = (with ( new TaskPresentationElements() ) {
- names = [ new I18NText( "en-UK", "This is my task name Jun" ),
- new I18NText( "en-DK", "Dies ist mein task Name Jun" )],
- subjects = [ new I18NText( "en-UK", "This is my task subject Jun" ),
- new I18NText( "en-DK", "Das ist mein task Thema Jun" ) ],
- descriptions = [ new I18NText( "en-UK", "This is my task description Jun" ),
- new I18NText( "en-DK", "Das ist mein task Beschreibung Jun" ) ]
- })
+ names = [ new I18NText( "en-UK", "This is my task name Jun" ),
+ new I18NText( "en-DK", "Dies ist mein task Name Jun" )],
+ subjects = [ new I18NText( "en-UK", "This is my task subject Jun" ),
+ new I18NText( "en-DK", "Das ist mein task Thema Jun" ) ],
+ descriptions = [ new I18NText( "en-UK", "This is my task description Jun" ),
+ new I18NText( "en-DK", "Das ist mein task Beschreibung Jun" ) ]
})
]
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-08-28 20:42:10 UTC (rev 21971)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.mvel 2008-08-28 20:48:21 UTC (rev 21972)
@@ -46,14 +46,12 @@
})
]
}),
- taskPresentationElements = (with ( new TaskPresentationElements() ) {
- names = [ new I18NText( "en-UK", "This is my task name" ),
- new I18NText( "en-DK", "Dies ist mein task Name" )],
- subjects = [ new I18NText( "en-UK", "This is my task subject" ),
- new I18NText( "en-DK", "Das ist mein task Thema" ) ],
- descriptions = [ new I18NText( "en-UK", "This is my task description" ),
- new I18NText( "en-DK", "Das ist mein task Beschreibung" ) ]
- }),
+ names = [ new I18NText( "en-UK", "This is my task name" ),
+ new I18NText( "en-DK", "Dies ist mein task Name" )],
+ subjects = [ new I18NText( "en-UK", "This is my task subject" ),
+ new I18NText( "en-DK", "Das ist mein task Thema" ) ],
+ descriptions = [ new I18NText( "en-UK", "This is my task description" ),
+ new I18NText( "en-DK", "Das ist mein task Beschreibung" ) ],
delegation = ( with( new Delegation() ) {
allowed = Allowed.PotentialOwners,
delegates = [ groups['crusaders' ], groups['knightsTempler' ] ]
@@ -74,14 +72,12 @@
new I18NText( "en-DK", "Start Anmeldung Dokumentation" ) ],
businessAdministrators = [ users['bruce' ], users['peter' ] ],
recipients = [ users['tony' ], users['darth' ] ],
- notificationPresentationElements = (with (new NotificationPresentationElements()) {
- names = [ new I18NText( "en-UK", "This is my start notification name" ),
- new I18NText( "en-DK", "Dies ist mein start anmeldung Name" ) ],
- subjects = [ new I18NText( "en-UK", "This is my start notification subject" ),
- new I18NText( "en-DK", "Das ist mein start anmeldung Thema" ) ],
- descriptions = [new I18NText( "en-UK", "This is my start notification description" ),
- new I18NText( "en-DK", "Das ist mein start anmeldung Beschreibung" ) ]
- })
+ names = [ new I18NText( "en-UK", "This is my start notification name" ),
+ new I18NText( "en-DK", "Dies ist mein start anmeldung Name" ) ],
+ subjects = [ new I18NText( "en-UK", "This is my start notification subject" ),
+ new I18NText( "en-DK", "Das ist mein start anmeldung Thema" ) ],
+ descriptions = [new I18NText( "en-UK", "This is my start notification description" ),
+ new I18NText( "en-DK", "Das ist mein start anmeldung Beschreibung" ) ]
})
],
reassignments = [
@@ -111,14 +107,12 @@
new I18NText( "en-DK", "Ende Anmeldung Dokumentation" ) ],
businessAdministrators = [ users['bobba' ], users['darth' ] ],
recipients = [ users['liz' ], users['jane' ] ],
- notificationPresentationElements = (with (new NotificationPresentationElements()) {
- names = [ new I18NText( "en-UK", "This is my end notification name" ),
- new I18NText( "en-DK", "Dies ist mein ende anmeldung Name" ) ],
- subjects = [ new I18NText( "en-UK", "This is my end notification subject" ),
- new I18NText( "en-DK", "Das ist mein ende anmeldung Thema" ) ],
- descriptions = [new I18NText( "en-UK", "This is my end notification description" ),
- new I18NText( "en-DK", "Das ist mein ende anmeldung Beschreibung" ) ]
- })
+ names = [ new I18NText( "en-UK", "This is my end notification name" ),
+ new I18NText( "en-DK", "Dies ist mein ende anmeldung Name" ) ],
+ subjects = [ new I18NText( "en-UK", "This is my end notification subject" ),
+ new I18NText( "en-DK", "Das ist mein ende anmeldung Thema" ) ],
+ descriptions = [new I18NText( "en-UK", "This is my end notification description" ),
+ new I18NText( "en-DK", "Das ist mein ende anmeldung Beschreibung" ) ]
})
],
reassignments = [
Copied: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/service (from rev 21945, labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/server)
Property changes on: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/service
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/service/AllOpenTasks.txt
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/server/AllOpenTasks.txt 2008-08-28 04:10:14 UTC (rev 21945)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/service/AllOpenTasks.txt 2008-08-28 20:48:21 UTC (rev 21972)
@@ -19,9 +19,9 @@
I18NText descriptions
where
t.taskData.actualOwner.id = :currentUser and
- names in elements( t.taskPresentationElements.names) and
+ names in elements( t.names) and
names.language = :language and
- subjects in elements( t.taskPresentationElements.subjects) and
+ subjects in elements( t.subjects) and
subjects.language = :language and
- descriptions in elements( t.taskPresentationElements.descriptions) and
+ descriptions in elements( t.descriptions) and
descriptions.language = :language
\ No newline at end of file
More information about the jboss-svn-commits
mailing list