[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