[jboss-svn-commits] JBL Code SVN: r21937 - in labs/jbossrules/trunk/drools-process/drools-process-task: src/main/java/org/drools/task and 5 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Aug 27 12:32:17 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-08-27 12:32:17 -0400 (Wed, 27 Aug 2008)
New Revision: 21937
Added:
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/server/
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/server/TaskService.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/TaskSummaryResults.mvel
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/server/
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/server/AllOpenTasks.txt
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/Comment.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/NotificationPresentationElements.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/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/TaskPresentationElements.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/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/FullyPopulatedTask.mvel
Log:
JBRULES-1745 WS-Human-Task
-Changed User/Group to only have displayName
-created a TaskService class that handles all DB interactions
-added addTask and getAllOpenTasks to TaskService
-Added initial test for getAllOpenTasks.
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/.classpath 2008-08-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/.classpath 2008-08-27 16:32:17 UTC (rev 21937)
@@ -23,4 +23,5 @@
<classpathentry kind="var" path="M2_REPO/javassist/javassist/3.4.GA/javassist-3.4.GA.jar"/>
<classpathentry kind="var" path="M2_REPO/org/mvel/mvel/2.0-dp4/mvel-2.0-dp4.jar"/>
<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-jdk14/1.5.2/slf4j-jdk14-1.5.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/postgresql/postgresql/8.3-603.jdbc3/postgresql-8.3-603.jdbc3.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml 2008-08-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml 2008-08-27 16:32:17 UTC (rev 21937)
@@ -40,6 +40,14 @@
<version>1.0.77</version>
<scope>test</scope>
</dependency>
+
+ <!-- PGSQL -->
+ <dependency>
+ <groupId>postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <version>8.3-603.jdbc3</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>com.thoughtworks.xstream</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-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Attachment.java 2008-08-27 16:32:17 UTC (rev 21937)
@@ -9,6 +9,7 @@
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
@Entity
@@ -34,7 +35,7 @@
private Date attachedAt;
- @OneToOne
+ @ManyToOne()
private User attachedBy;
@Lob
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-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Comment.java 2008-08-27 16:32:17 UTC (rev 21937)
@@ -8,6 +8,7 @@
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
@Entity
@@ -21,7 +22,7 @@
private Date addedDate;
- @OneToOne
+ @ManyToOne()
private User addedBy;
public Long getId() {
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-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Group.java 2008-08-27 16:32:17 UTC (rev 21937)
@@ -12,29 +12,30 @@
@Entity
public class Group extends OrganizationalEntity implements Serializable {
- private String name;
+ private String displayName;
public Group() {
-
+ super();
}
- public Group(String name) {
- this.name = name;
+ public Group(String displayName) {
+ super();
+ this.displayName = displayName;
}
- public String getName() {
- return name;
+ public String getDisplayName() {
+ return displayName;
}
- public void setName(String name) {
- this.name = name;
+ public void setDisplayName(String displayName) {
+ this.displayName = displayName;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + ((displayName == null) ? 0 : displayName.hashCode());
return result;
}
@@ -44,9 +45,9 @@
if ( obj == null ) return false;
if ( !(obj instanceof Group) ) return false;
Group other = (Group) obj;
- if ( name == null ) {
- if ( other.name != null ) return false;
- } else if ( !name.equals( other.name ) ) return false;
+ if ( displayName == null ) {
+ if ( other.displayName != null ) return false;
+ } else if ( !displayName.equals( other.displayName ) ) return false;
return true;
}
Modified: 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-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/NotificationPresentationElements.java 2008-08-27 16:32:17 UTC (rev 21937)
@@ -28,6 +28,7 @@
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "NotificationPresentationElements_Descriptions_Id", nullable = true)
+ @Lob
private List<IL8NText> descriptions = Collections.emptyList();
public NotificationPresentationElements() {
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-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/PeopleAssignments.java 2008-08-27 16:32:17 UTC (rev 21937)
@@ -7,6 +7,7 @@
import javax.persistence.Embeddable;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
+import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
@@ -14,7 +15,7 @@
@Embeddable
public class PeopleAssignments implements Serializable {
- @OneToOne
+ @ManyToOne()
private User taskInitiator;
@OneToMany
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-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Task.java 2008-08-27 16:32:17 UTC (rev 21937)
@@ -32,7 +32,7 @@
private Delegation delegation;
@Embedded
- private TaskPresentationElements presentationElements;
+ private TaskPresentationElements taskPresentationElements;
@Embedded
private TaskData taskData;
@@ -77,11 +77,11 @@
public TaskPresentationElements getTaskPresentationElements() {
- return presentationElements;
+ return taskPresentationElements;
}
public void setTaskPresentationElements(TaskPresentationElements presentationElements) {
- this.presentationElements = presentationElements;
+ this.taskPresentationElements = presentationElements;
}
public TaskData getTaskData() {
@@ -107,7 +107,7 @@
result = prime * result + ((deadlines == null) ? 0 : deadlines.hashCode());
result = prime * result + ((delegation == null) ? 0 : delegation.hashCode());
result = prime * result + ((peopleAssignments == null) ? 0 : peopleAssignments.hashCode());
- result = prime * result + ((presentationElements == null) ? 0 : presentationElements.hashCode());
+ result = prime * result + ((taskPresentationElements == null) ? 0 : taskPresentationElements.hashCode());
result = prime * result + priority;
result = prime * result + ((taskData == null) ? 0 : taskData.hashCode());
return result;
@@ -128,9 +128,9 @@
if ( peopleAssignments == null ) {
if ( other.peopleAssignments != null ) return false;
} else if ( !peopleAssignments.equals( other.peopleAssignments ) ) return false;
- if ( presentationElements == null ) {
- if ( other.presentationElements != null ) return false;
- } else if ( !presentationElements.equals( other.presentationElements ) ) return false;
+ if ( taskPresentationElements == null ) {
+ if ( other.taskPresentationElements != null ) return false;
+ } else if ( !taskPresentationElements.equals( other.taskPresentationElements ) ) return false;
if ( priority != other.priority ) return false;
if ( taskData == null ) {
if ( other.taskData != null ) return false;
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-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskData.java 2008-08-27 16:32:17 UTC (rev 21937)
@@ -10,7 +10,9 @@
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
import org.drools.task.utils.CollectionUtils;
@@ -18,6 +20,12 @@
public class TaskData implements Serializable {
@Enumerated(EnumType.STRING)
private Status status = Status.Created; // initial default state
+
+ @ManyToOne()
+ private User actualOwner;
+
+ @ManyToOne()
+ private User createdBy;
private Date createdOn;
@@ -25,7 +33,7 @@
private Date expirationTime;
- private boolean isSkipable;
+ private boolean skipable;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "TaskData_Comments_Id", nullable = true)
@@ -42,7 +50,23 @@
public void setStatus(Status status) {
this.status = status;
}
-
+
+ public User getActualOwner() {
+ return actualOwner;
+ }
+
+ public void setActualOwner(User actualOwner) {
+ this.actualOwner = actualOwner;
+ }
+
+ public User getCreatedBy() {
+ return createdBy;
+ }
+
+ public void setCreatedBy(User createdBy) {
+ this.createdBy = createdBy;
+ }
+
public Date getCreatedOn() {
return createdOn;
}
@@ -68,11 +92,11 @@
}
public boolean isSkipable() {
- return isSkipable;
+ return skipable;
}
public void setSkipable(boolean isSkipable) {
- this.isSkipable = isSkipable;
+ this.skipable = isSkipable;
}
public List<Comment> getComments() {
@@ -100,7 +124,7 @@
result = prime * result + CollectionUtils.hashCode( comments );
result = prime * result + ((createdOn == null) ? 0 : createdOn.hashCode());
result = prime * result + ((expirationTime == null) ? 0 : expirationTime.hashCode());
- result = prime * result + (isSkipable ? 1231 : 1237);
+ result = prime * result + (skipable ? 1231 : 1237);
result = prime * result + ((status == null) ? 0 : status.hashCode());
return result;
}
@@ -112,14 +136,25 @@
if ( !(obj instanceof TaskData) ) return false;
TaskData other = (TaskData) obj;
+ if ( actualOwner == null ) {
+ if ( other.actualOwner != null ) return false;
+ } else if ( !actualOwner.equals( other.actualOwner) ) {
+ return false;
+ }
+
+ if ( createdBy == null ) {
+ if ( other.createdBy != null ) return false;
+ } else if ( !createdBy.equals( other.createdBy) ) {
+ return false;
+ }
+
if ( createdOn == null ) {
- if ( other.createdOn != null ) return false;
-
+ if ( other.createdOn != null ) return false;
} else if ( createdOn.getTime() != other.createdOn.getTime() ) return false;
if ( expirationTime == null ) {
if ( other.expirationTime != null ) return false;
} else if ( expirationTime.getTime() != other.expirationTime.getTime() ) return false;
- if ( isSkipable != other.isSkipable ) return false;
+ if ( skipable != other.skipable ) return false;
if ( status == null ) {
if ( other.status != null ) return false;
} else if ( !status.equals( other.status ) ) return false;
Modified: 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-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskPresentationElements.java 2008-08-27 16:32:17 UTC (rev 21937)
@@ -28,6 +28,7 @@
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "TaskPresentationElements_Descriptions_Id", nullable = true)
+ @Lob
private List<IL8NText> descriptions = Collections.emptyList();
public TaskPresentationElements() {
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskSummary.java 2008-08-27 16:32:17 UTC (rev 21937)
@@ -0,0 +1,219 @@
+package org.drools.task;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+public class TaskSummary implements Serializable {
+ private long id;
+
+ private String name;
+
+ private String subject;
+
+ private String description;
+
+ private Status status;
+
+ private int priority;
+
+ private boolean skipable;
+
+ private User actualOwner;
+
+ private User createdBy;
+
+ private Date createdOn;
+
+ private Date activationTime;
+
+ private Date expirationTime;
+
+
+
+ public TaskSummary(long id,
+ String name,
+ String subject,
+ String description,
+ Status status,
+ int priority,
+ boolean skipable,
+ User actualOwner,
+ User createdBy,
+ Date createdOn,
+ Date activationTime,
+ Date expirationTime) {
+ super();
+ this.id = id;
+ this.name = name;
+ this.subject = subject;
+ this.description = description;
+ this.status = status;
+ this.priority = priority;
+ this.skipable = skipable;
+ this.actualOwner = actualOwner;
+ this.createdBy = createdBy;
+ this.createdOn = createdOn;
+ this.activationTime = activationTime;
+ this.expirationTime = expirationTime;
+ }
+
+ public TaskSummary() {
+
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getSubject() {
+ return subject;
+ }
+
+ public void setSubject(String subject) {
+ this.subject = subject;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Status getStatus() {
+ return status;
+ }
+
+ public void setStatus(Status status) {
+ this.status = status;
+ }
+
+ public int getPriority() {
+ return priority;
+ }
+
+ public void setPriority(int priority) {
+ this.priority = priority;
+ }
+
+ public boolean isSkipable() {
+ return skipable;
+ }
+
+ public void setSkipable(boolean skipable) {
+ this.skipable = skipable;
+ }
+
+ public User getActualOwner() {
+ return actualOwner;
+ }
+
+ public void setActualOwner(User actualOwner) {
+ this.actualOwner = actualOwner;
+ }
+
+ public User getCreatedBy() {
+ return createdBy;
+ }
+
+ public void setCreatedBy(User createdBy) {
+ this.createdBy = createdBy;
+ }
+
+ public Date getCreatedOn() {
+ return createdOn;
+ }
+
+ public void setCreatedOn(Date createdOn) {
+ this.createdOn = createdOn;
+ }
+
+ public Date getActivationTime() {
+ return activationTime;
+ }
+
+ public void setActivationTime(Date activationTime) {
+ this.activationTime = activationTime;
+ }
+
+ public Date getExpirationTime() {
+ return expirationTime;
+ }
+
+ public void setExpirationTime(Date expirationTime) {
+ this.expirationTime = expirationTime;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((activationTime == null) ? 0 : activationTime.hashCode());
+ result = prime * result + ((actualOwner == null) ? 0 : actualOwner.hashCode());
+ result = prime * result + ((createdBy == null) ? 0 : createdBy.hashCode());
+ result = prime * result + ((createdOn == null) ? 0 : createdOn.hashCode());
+ result = prime * result + ((description == null) ? 0 : description.hashCode());
+ result = prime * result + ((expirationTime == null) ? 0 : expirationTime.hashCode());
+ result = prime * result + (int) (id ^ (id >>> 32));
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + priority;
+ result = prime * result + (skipable ? 1231 : 1237);
+ result = prime * result + ((status == null) ? 0 : status.hashCode());
+ result = prime * result + ((subject == null) ? 0 : subject.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof TaskSummary) ) return false;
+ TaskSummary other = (TaskSummary) obj;
+ if ( activationTime == null ) {
+ if ( other.activationTime != null ) return false;
+ } else if ( !activationTime.equals( other.activationTime ) ) return false;
+ if ( actualOwner == null ) {
+ if ( other.actualOwner != null ) return false;
+ } else if ( !actualOwner.equals( other.actualOwner ) ) return false;
+ if ( createdBy == null ) {
+ if ( other.createdBy != null ) return false;
+ } else if ( !createdBy.equals( other.createdBy ) ) return false;
+ if ( createdOn == null ) {
+ if ( other.createdOn != null ) return false;
+ } else if ( !createdOn.equals( other.createdOn ) ) return false;
+ if ( description == null ) {
+ if ( other.description != null ) return false;
+ } else if ( !description.equals( other.description ) ) return false;
+ if ( expirationTime == null ) {
+ if ( other.expirationTime != null ) return false;
+ } else if ( !expirationTime.equals( other.expirationTime ) ) return false;
+ if ( id != other.id ) return false;
+ if ( name == null ) {
+ if ( other.name != null ) return false;
+ } else if ( !name.equals( other.name ) ) return false;
+ if ( priority != other.priority ) return false;
+ if ( skipable != other.skipable ) return false;
+ if ( status == null ) {
+ if ( other.status != null ) return false;
+ } else if ( !status.equals( other.status ) ) return false;
+ if ( subject == null ) {
+ if ( other.subject != null ) return false;
+ } else if ( !subject.equals( other.subject ) ) return false;
+ return true;
+ }
+
+}
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-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/User.java 2008-08-27 16:32:17 UTC (rev 21937)
@@ -11,37 +11,29 @@
@Entity
public class User extends OrganizationalEntity implements Serializable {
- private String firstName;
- private String lastName;
+ private String displayName;
public User() {
-
+ super();
}
- public User(String firstName, String lastName) {
- this.firstName = firstName;
- this.lastName = lastName;
+ public User(String displayName) {
+ super();
+ this.displayName = displayName;
}
- public String getFirstName() {
- return firstName;
+ public String getDisplayName() {
+ return displayName;
}
- public void setFirstName(String firstName) {
- this.firstName = firstName;
+ public void setDisplayName(String displayName) {
+ this.displayName = displayName;
}
- public String getLastName() {
- return lastName;
- }
- public void setLastName(String lastName) {
- this.lastName = lastName;
- }
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + ((firstName == null) ? 0 : firstName.hashCode());
- result = prime * result + ((lastName == null) ? 0 : lastName.hashCode());
+ result = prime * result + ((displayName == null) ? 0 : displayName.hashCode());
return result;
}
@@ -51,12 +43,9 @@
if ( obj == null ) return false;
if ( !(obj instanceof User) ) return false;
User other = (User) obj;
- if ( firstName == null ) {
- if ( other.firstName != null ) return false;
- } else if ( !firstName.equals( other.firstName ) ) return false;
- if ( lastName == null ) {
- if ( other.lastName != null ) return false;
- } else if ( !lastName.equals( other.lastName ) ) return false;
+ if ( displayName == null ) {
+ if ( other.displayName != null ) return false;
+ } else if ( !displayName.equals( other.displayName ) ) return false;
return true;
}
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/server/TaskService.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/server/TaskService.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/server/TaskService.java 2008-08-27 16:32:17 UTC (rev 21937)
@@ -0,0 +1,72 @@
+package org.drools.task.server;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import javax.persistence.Query;
+
+import org.drools.task.Group;
+import org.drools.task.Task;
+import org.drools.task.TaskSummary;
+import org.drools.task.User;
+
+public class TaskService {
+ EntityManager em;
+
+ Query allOpenTasks;
+
+ public TaskService(EntityManager em) {
+ this.em = em;
+
+ Reader reader = new InputStreamReader( getClass().getResourceAsStream( "AllOpenTasks.txt" ) );
+ try {
+ allOpenTasks = em.createQuery( toString( reader ) );
+ } catch (IOException e) {
+ throw new RuntimeException( "Unable to inialize TaskService, could not load query 'AllOpenTasks'" );
+ }
+ }
+
+ public void addUser(User user) {
+ em.getTransaction().begin();
+ em.persist( user );
+ em.getTransaction().commit();
+ }
+
+ public void addUser(Group group) {
+ em.getTransaction().begin();
+ em.persist( group );
+ em.getTransaction().commit();
+ }
+
+ public void addTask(Task task) {
+ em.getTransaction().begin();
+ em.persist( task );
+ em.getTransaction().commit();
+ }
+
+ public Task getTask(long taskId) {
+ return em.find( Task.class, taskId );
+ }
+
+ public List<TaskSummary> getAllOpenTasks(long userId, String language) {
+ allOpenTasks.setParameter( "currentUser", userId );
+ allOpenTasks.setParameter( "language", "en-UK" );
+ List<TaskSummary> list = ( List<TaskSummary> ) allOpenTasks.getResultList();
+ return list;
+ }
+
+ public static 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();
+ }
+}
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-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/persistence.xml 2008-08-27 16:32:17 UTC (rev 21937)
@@ -22,14 +22,20 @@
<class>org.drools.task.TaskData</class>
<properties>
- <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
- <property name="hibernate.connection.driver_class" value="org.h2.Driver"/>
- <property name="hibernate.connection.username" value="sa"/>
- <property name="hibernate.connection.password" value=""/>
+ <!-- property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
+ <property name="hibernate.connection.driver_class" value="org.h2.Driver"/>
+ <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.connection.url" value="jdbc:h2:mem: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.connection.username" value="sa"/>
+ <property name="hibernate.connection.password" value="sasa"/>
<property name="hibernate.max_fetch_depth" value="3"/>
- <property name="hibernate.hbm2ddl.auto" value="create"/>
+ <!-- property name="hibernate.hbm2ddl.auto" value="create" /-->
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>
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-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/TestModelPersistence.java 2008-08-27 16:32:17 UTC (rev 21937)
@@ -9,12 +9,14 @@
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;
@@ -36,6 +38,8 @@
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.utils.CollectionUtils;
import org.mvel.MVEL;
import org.mvel.ParserContext;
import org.mvel.compiler.ExpressionCompiler;
@@ -47,21 +51,37 @@
import junit.framework.TestCase;
public class TestModelPersistence extends TestCase {
+ EntityManagerFactory emf;
+ EntityManager em;
+
+ 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 );
+ }
public Object eval(Reader reader, Map vars) {
try {
- int charValue = 0;
- StringBuffer sb = new StringBuffer( 1024 );
- while ( (charValue = reader.read()) != -1 ) {
- //result = result + (char) charValue;
- sb.append( (char) charValue );
- }
- return eval( sb.toString(), vars );
+ 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() );
@@ -96,85 +116,72 @@
}
public void testfullHibernateRoundtripWithAdditionalMVELCheck() throws Exception {
- // Use persistence.xml configuration
- EntityManagerFactory emf = Persistence.createEntityManagerFactory( "org.drools.task" );
- EntityManager em = emf.createEntityManager(); // Retrieve an application managed entity manager
- em.getTransaction().begin();
-
Task task1 = new Task();
task1.setPriority( 100 );
PeopleAssignments peopleAssignments = new PeopleAssignments();
task1.setPeopleAssignments( peopleAssignments );
- User darth = new User( "Darth",
- "Vader" );
+ User darth = new User( "Darth Vader" );
peopleAssignments.setTaskInitiator( darth );
em.persist( darth );
List<OrganizationalEntity> potentialOwners = new ArrayList<OrganizationalEntity>();
peopleAssignments.setPotentialOwners( potentialOwners );
- User bobba = new User( "Bobba",
- "Fet" );
+ User bobba = new User( "Bobba Fet" );
potentialOwners.add( bobba );
- em.persist( bobba );
+ taskService.addUser( bobba );
- User jabba = new User( "Jabba",
- "Hutt" );
+ User jabba = new User( "Jabba Hutt" );
potentialOwners.add( jabba );
- em.persist( jabba );
+ taskService.addUser( jabba );
List<OrganizationalEntity> excludedOwners = new ArrayList<OrganizationalEntity>();
peopleAssignments.setExcludedOwners( excludedOwners );
- User dalai = new User( "Dalai",
- "Lama" );
+ User dalai = new User( "Dalai Lama" );
excludedOwners.add( dalai );
- em.persist( dalai );
+ taskService.addUser( dalai );
- User christoper = new User( "Christoper",
- "Columbus" );
+ User christoper = new User( "Christoper Columbus" );
excludedOwners.add( christoper );
- em.persist( christoper );
+ taskService.addUser( christoper );
List<OrganizationalEntity> stakeholders = new ArrayList<OrganizationalEntity>();
peopleAssignments.setTaskStakeholders( stakeholders );
- User stuart = new User( "Stuart",
- "Little" );
+ User stuart = new User( "Stuart Little" );
stakeholders.add( stuart );
- em.persist( stuart );
+ taskService.addUser( stuart );
- User jane = new User( "Jane",
- "Austin" );
+ User jane = new User( "Jane Austin" );
stakeholders.add( jane );
- em.persist( jane );
+ taskService.addUser( jane );
List<OrganizationalEntity> businessAdmin = new ArrayList<OrganizationalEntity>();
peopleAssignments.setBusinessAdministrators( businessAdmin );
- User peter = new User( "Peter",
- "Parker" );
+ User peter = new User( "Peter Parker" );
businessAdmin.add( peter );
- em.persist( peter );
+ taskService.addUser( peter );
- User steve = new User( "Steve",
- "Rogers" );
+ User steve = new User( "Steve Rogers" );
businessAdmin.add( steve );
- em.persist( steve );
+ taskService.addUser( steve );
List<OrganizationalEntity> recipients = new ArrayList<OrganizationalEntity>();
peopleAssignments.setRecipients( recipients );
- User sly = new User( "Sly",
- "Stalone" );
+ User sly = new User( "Sly Stalone" );
recipients.add( sly );
- em.persist( sly );
+ taskService.addUser( sly );
- User liz = new User( "Elizabeth",
- "Windsor" );
+ User liz = new User( "Elizabeth Windsor" );
recipients.add( liz );
- em.persist( liz );
+ taskService.addUser( liz );
TaskData taskData = new TaskData();
task1.setTaskData( taskData );
+
+ taskData.setActualOwner( liz );
+ taskData.setCreatedBy( sly );
taskData.setActivationTime( new Date( 10000000 ) );
taskData.setCreatedOn( new Date( 10000000 ) );
@@ -247,11 +254,11 @@
List<OrganizationalEntity> groups = new ArrayList<OrganizationalEntity>();
delegation.setDelegates( groups );
Group crusaders = new Group( "Crusaders" );
- em.persist( crusaders );
+ taskService.addUser( crusaders );
groups.add( crusaders );
Group knightsTempler = new Group( "Knights Templer" );
- em.persist( knightsTempler );
+ taskService.addUser( knightsTempler );
groups.add( knightsTempler );
Deadlines deadlines = new Deadlines();
@@ -295,18 +302,16 @@
businessAdmin = new ArrayList<OrganizationalEntity>();
notification.setBusinessAdministrators( businessAdmin );
- User bruce = new User( "Bruce",
- "Wayne " );
+ User bruce = new User( "Bruce Wayne" );
businessAdmin.add( bruce );
- em.persist( bruce );
+ taskService.addUser( bruce );
businessAdmin.add( peter );
recipients = new ArrayList<OrganizationalEntity>();
notification.setRecipients( recipients );
- User tony = new User( "Tony",
- "Stark" );
+ User tony = new User( "Tony Stark" );
recipients.add( tony );
- em.persist( tony );
+ taskService.addUser( tony );
recipients.add( darth );
NotificationPresentationElements npresentationElements = new NotificationPresentationElements();
@@ -342,12 +347,10 @@
potentialOwners = new ArrayList<OrganizationalEntity>();
reassignment.setPotentialOwners( potentialOwners );
potentialOwners.add( bobba );
- User cage = new User( "Luke",
- "Cage " );
+ User cage = new User( "Luke Cage" );
potentialOwners.add( cage );
- em.persist( cage );
+ taskService.addUser( cage );
-////////////////
List<Deadline> endDeadlines = new ArrayList<Deadline>();
deadlines.setEndDeadlines( endDeadlines );
deadline = new Deadline();
@@ -427,17 +430,14 @@
potentialOwners = new ArrayList<OrganizationalEntity>();
reassignment.setPotentialOwners( potentialOwners );
potentialOwners.add( stuart );
- potentialOwners.add( dalai );
-////////////////////
+ potentialOwners.add( dalai );
-
- em.persist( task1 );
-
- em.flush();
+ taskService.addTask( task1 );
+
em.clear();
-
- Task task2 = em.find( Task.class,
- task1.getId() );
+
+ Task task2 = taskService.getTask( task1.getId( ) );
+
assertNotSame( task1,
task2 );
// assertEquals( task1,
@@ -463,5 +463,18 @@
em.close();
emf.close();
}
+
+ public void testQuery() throws Exception {
+ List actual = taskService.getAllOpenTasks( 11L, "en-UK" );
+
+ Reader reader = new InputStreamReader( getClass().getResourceAsStream( "TaskSummaryResults.mvel" ) );
+ List<TaskSummary> expected = ( List<TaskSummary> ) eval( reader, new HashMap() );
+
+ CollectionUtils.equals( actual, expected );
+
+ em.close();
+ emf.close();
+
+ }
}
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-27 15:20:41 UTC (rev 21936)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.mvel 2008-08-27 16:32:17 UTC (rev 21937)
@@ -1,11 +1,11 @@
-users = [ 'darth' : new User('Darth', 'Vader'),
- 'bobba' : new User( 'Bobba', 'Fet'), 'jabba' : new User('Jabba', 'Hutt'),
- 'dalai' : new User('Dalai', 'Lama'), 'christoper' : new User('Christoper', 'Columbus'),
- 'stuart' : new User('Stuart', 'Little'), 'jane' : new User('Jane', 'Austin'),
- 'peter' : new User('Peter', 'Parker'), 'steve' : new User("Steve", "Rogers"),
- 'sly' : new User('Sly', 'Stalone'), 'liz' : new User("Elizabeth", "Windsor"),
- 'bruce' : new User( "Bruce", "Wayne " ), 'tony' : new User("Tony", "Stark"),
- 'luke' : new User( "Luke", "Cage " )
+users = [ 'darth' : new User('Darth Vader'),
+ 'bobba' : new User( 'Bobba Fet'), 'jabba' : new User('Jabba Hutt'),
+ 'dalai' : new User('Dalai Lama'), 'christoper' : new User('Christoper Columbus'),
+ 'stuart' : new User('Stuart Little'), 'jane' : new User('Jane Austin'),
+ 'peter' : new User('Peter Parker'), 'steve' : new User('Steve Rogers'),
+ 'sly' : new User('Sly Stalone'), 'liz' : new User('Elizabeth Windsor'),
+ 'bruce' : new User('Bruce Wayne' ), 'tony' : new User('Tony Stark'),
+ 'luke' : new User('Luke Cage')
];
groups = [ 'knightsTempler' : new Group( "Knights Templer" ),
'crusaders' : new Group( "Crusaders" )
@@ -24,6 +24,8 @@
recipients = [users.get('sly'), users.get('liz')]
}),
taskData = (with ( new TaskData() ) {
+ actualOwner = users.get( 'liz' ),
+ createdBy = users.get( 'sly' ),
activationTime = new Date( 10000000 ),
createdOn = new Date( 10000000 ),
expirationTime = new Date( 10000000 ),
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/TaskSummaryResults.mvel
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/TaskSummaryResults.mvel (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/TaskSummaryResults.mvel 2008-08-27 16:32:17 UTC (rev 21937)
@@ -0,0 +1,17 @@
+users = [ 'darth' : new User('Darth Vader'),
+ 'bobba' : new User( 'Bobba Fet'), 'jabba' : new User('Jabba Hutt'),
+ 'dalai' : new User('Dalai Lama'), 'christoper' : new User('Christoper Columbus'),
+ 'stuart' : new User('Stuart Little'), 'jane' : new User('Jane Austin'),
+ 'peter' : new User('Peter Parker'), 'steve' : new User('Steve Rogers'),
+ 'sly' : new User('Sly Stalone'), 'liz' : new User('Elizabeth Windsor'),
+ 'bruce' : new User('Bruce Wayne' ), 'tony' : new User('Tony Stark'),
+ 'luke' : new User('Luke Cage')
+ ];
+groups = [ 'knightsTempler' : new Group( "Knights Templer" ),
+ 'crusaders' : new Group( "Crusaders" )
+ ];
+
+[ new TaskSummary( 1, 'This is my task name', 'This is my task subject', 'This is my task Description',
+ Status.Created, 100, false, users.get( 'liz' ), users.get( 'sly' ),
+ new Date( 10000000 ), new Date( 10000000 ), new Date( 10000000 ) )
+]
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/server/AllOpenTasks.txt
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/server/AllOpenTasks.txt (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/server/AllOpenTasks.txt 2008-08-27 16:32:17 UTC (rev 21937)
@@ -0,0 +1,27 @@
+select
+ new org.drools.task.TaskSummary(
+ t.id,
+ names.text,
+ subjects.text,
+ descriptions.text,
+ t.taskData.status,
+ t.priority,
+ t.taskData.skipable,
+ t.taskData.actualOwner,
+ t.taskData.createdBy,
+ t.taskData.createdOn,
+ t.taskData.activationTime,
+ t.taskData.expirationTime)
+from
+ Task t,
+ IL8NText names,
+ IL8NText subjects,
+ IL8NText descriptions
+where
+ t.taskData.actualOwner.id = :currentUser and
+ names in elements( t.taskPresentationElements.names) and
+ names.language = :language and
+ subjects in elements( t.taskPresentationElements.subjects) and
+ subjects.language = :language and
+ descriptions in elements( t.taskPresentationElements.descriptions) and
+ descriptions.language = :language
\ No newline at end of file
More information about the jboss-svn-commits
mailing list