[jboss-svn-commits] JBL Code SVN: r21900 - in labs/jbossrules/trunk/drools-process/drools-process-task: src/main/java/org/drools and 9 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Aug 26 02:22:52 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-08-26 02:22:51 -0400 (Tue, 26 Aug 2008)
New Revision: 21900
Added:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/AccessType.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Allowed.java
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/IL8NText.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/NotificationPresentationElements.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/Status.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/StatusChange.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/java/org/drools/task/utils/
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/test/java/org/drools/task/
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/
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/
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.xml
Removed:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/ws_ht/
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/resources/META-INF/persistence.xml
Log:
JBRULES-1745 WS-Human-Task
-dumped JAXB/Hyperjaxb as db model was too bad
-Created custom pojo model with full round trip testing
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/.classpath 2008-08-26 05:21:22 UTC (rev 21899)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/.classpath 2008-08-26 06:22:51 UTC (rev 21900)
@@ -5,22 +5,22 @@
<classpathentry kind="src" path="src/test/resources" output="target/test-classes" excluding="**/*.java"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/com/sun/xml/bind/jaxb-impl/2.1.6/jaxb-impl-2.1.6.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
+ <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/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/drools/drools-compiler/5.0.0.SNAPSHOT/drools-compiler-5.0.0.SNAPSHOT.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/drools/drools-core/5.0.0.SNAPSHOT/drools-core-5.0.0.SNAPSHOT.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"/>
+ <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.1/jta-1.1.jar"/>
+ <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/antlr/antlr-runtime/3.0.1/antlr-runtime-3.0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/antlr/stringtemplate/3.1-b1/stringtemplate-3.1-b1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
- <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jvnet/hyperjaxb3/hyperjaxb3-ejb-runtime/0.3/hyperjaxb3-ejb-runtime-0.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jvnet/jaxb2_commons/runtime/0.2.GA/runtime-0.2.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.3/commons-lang-2.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-jdk14/1.5.2/slf4j-jdk14-1.5.2.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-26 05:21:22 UTC (rev 21899)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/pom.xml 2008-08-26 06:22:51 UTC (rev 21900)
@@ -1,72 +1,57 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <artifactId>drools</artifactId>
- <groupId>org.drools</groupId>
- <version>5.0.0.SNAPSHOT</version>
- </parent>
-
- <artifactId>drools-process-task</artifactId>
- <packaging>jar</packaging>
- <name>Drools :: Process :: Task</name>
-
- <repositories>
- <repository>
- <id>maven2-repository.dev.java.net</id>
- <url>http://download.java.net/maven/2</url>
- </repository>
- <repository>
- <id>maven-repository.dev.java.net</id>
- <url>http://download.java.net/maven/1</url>
- <layout>legacy</layout>
- </repository>
- <repository>
- <id>maven2-repository.jboss.com</id>
- <url>http://repository.jboss.com/maven2</url>
- </repository>
- <repository>
- <id>jfrog.org</id>
- <url>http://www.jfrog.org/artifactory/plugins-releases@repo</url>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>maven2-repository.dev.java.net</id>
- <url>http://download.java.net/maven/2</url>
- </pluginRepository>
- <pluginRepository>
- <id>maven-repository.dev.java.net</id>
- <url>http://download.java.net/maven/1</url>
- <layout>legacy</layout>
- </pluginRepository>
- </pluginRepositories>
-
- <dependencies>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-core</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-compiler</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.1.6</version>
- </dependency>
- <dependency>
- <groupId>org.jvnet.hyperjaxb3</groupId>
- <artifactId>hyperjaxb3-ejb-runtime</artifactId>
- <version>0.3</version>
- </dependency>
- </dependencies>
-
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>drools</artifactId>
+ <groupId>org.drools</groupId>
+ <version>5.0.0.SNAPSHOT</version>
+ </parent>
+
+ <artifactId>drools-process-task</artifactId>
+ <packaging>jar</packaging>
+ <name>Drools :: Process :: Task</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-jdk14</artifactId>
+ <version>1.5.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.5.2</version>
+ </dependency>
+
+ <!-- Hibernate -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <version>3.4.0.GA</version>
+ <scope>test</scope>
+ </dependency>
+ <!-- HSQLDB -->
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>1.0.77</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mvel</groupId>
+ <artifactId>mvel</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+</project>
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/AccessType.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/AccessType.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/AccessType.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,8 @@
+/**
+ *
+ */
+package org.drools.task;
+
+public enum AccessType {
+ Inline, Url;
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Allowed.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Allowed.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Allowed.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,8 @@
+/**
+ *
+ */
+package org.drools.task;
+
+public enum Allowed {
+ Anybody, Nobody, PotentialOwners, Other;
+}
\ No newline at end of file
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Attachment.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,140 @@
+package org.drools.task;
+
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Date;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+import javax.persistence.OneToOne;
+
+ at Entity
+public class Attachment implements Serializable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long id;
+
+ /**
+ * Several attachments may have the same name
+ */
+ private String name;
+
+ /**
+ * current "inline" and "URL" are allowed, this is extendable though and others may be added
+ */
+ private AccessType accessType;
+
+ /**
+ * MIME type
+ */
+ private String contentType;
+
+ private Date attachedAt;
+
+ @OneToOne
+ private User attachedBy;
+
+ @Lob
+ private byte[] attachment;
+
+ 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 AccessType getAccessType() {
+ return accessType;
+ }
+
+ public void setAccessType(AccessType accessType) {
+ this.accessType = accessType;
+ }
+
+ public String getContentType() {
+ return contentType;
+ }
+
+ public void setContentType(String contentType) {
+ this.contentType = contentType;
+ }
+
+ public Date getAttachedAt() {
+ return attachedAt;
+ }
+
+ public void setAttachedAt(Date attachedAt) {
+ this.attachedAt = attachedAt;
+ }
+
+ public User getAttachedBy() {
+ return attachedBy;
+ }
+
+ public void setAttachedBy(User attachedBy) {
+ this.attachedBy = attachedBy;
+ }
+
+ public byte[] getAttachment() {
+ return attachment;
+ }
+
+ public void setAttachment(byte[] attachment) {
+ this.attachment = attachment;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((accessType == null) ? 0 : accessType.hashCode());
+ result = prime * result + ((attachedAt == null) ? 0 : attachedAt.hashCode());
+ result = prime * result + ((attachedBy == null) ? 0 : attachedBy.hashCode());
+ result = prime * result + Arrays.hashCode( attachment );
+ result = prime * result + ((contentType == null) ? 0 : contentType.hashCode());
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof Attachment) ) return false;
+ Attachment other = (Attachment) obj;
+ if ( accessType == null ) {
+ if ( other.accessType != null ) return false;
+ } else if ( !accessType.equals( other.accessType ) ) return false;
+ if ( attachedAt == null ) {
+ if ( other.attachedAt != null ) return false;
+ } else if ( attachedAt.getTime() != other.attachedAt.getTime() ) return false;
+ if ( attachedBy == null ) {
+ if ( other.attachedBy != null ) return false;
+ } else if ( !attachedBy.equals( other.attachedBy ) ) return false;
+ if ( !Arrays.equals( attachment,
+ other.attachment ) ) return false;
+ if ( contentType == null ) {
+ if ( other.contentType != null ) return false;
+ } else if ( !contentType.equals( other.contentType ) ) return false;
+ if ( name == null ) {
+ if ( other.name != null ) return false;
+ } else if ( !name.equals( other.name ) ) return false;
+ return true;
+ }
+
+
+
+}
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/BooleanExpression.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/BooleanExpression.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/BooleanExpression.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,79 @@
+package org.drools.task;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+
+ at Entity
+public class BooleanExpression implements Serializable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long id;
+ private String type;
+
+ @Lob
+ private String expression;
+
+ public BooleanExpression() {
+
+ }
+
+ public BooleanExpression(String type, String expression) {
+ this.type = type;
+ this.expression = expression;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getExpression() {
+ return expression;
+ }
+
+ public void setExpression(String expression) {
+ this.expression = expression;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((expression == null) ? 0 : expression.hashCode());
+ result = prime * result + ((type == null) ? 0 : type.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof BooleanExpression) ) return false;
+ BooleanExpression other = (BooleanExpression) obj;
+ if ( expression == null ) {
+ if ( other.expression != null ) return false;
+ } else if ( !expression.equals( other.expression ) ) return false;
+ if ( type == null ) {
+ if ( other.type != null ) return false;
+ } else if ( !type.equals( other.type ) ) return false;
+ return true;
+ }
+
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Comment.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,88 @@
+package org.drools.task;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+import javax.persistence.OneToOne;
+
+ at Entity
+public class Comment implements Serializable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long id;
+
+ @Lob
+ private String text;
+
+ private Date addedDate;
+
+ @OneToOne
+ private User addedBy;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public Date getAddedDate() {
+ return addedDate;
+ }
+
+ public void setAddedDate(Date addedDate) {
+ this.addedDate = addedDate;
+ }
+
+ public User getAddedBy() {
+ return addedBy;
+ }
+
+ public void setAddedBy(User addedBy) {
+ this.addedBy = addedBy;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((addedBy == null) ? 0 : addedBy.hashCode());
+ result = prime * result + ((addedDate == null) ? 0 : addedDate.hashCode());
+ result = prime * result + ((text == null) ? 0 : text.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof Comment) ) return false;
+ Comment other = (Comment) obj;
+ if ( addedBy == null ) {
+ if ( other.addedBy != null ) return false;
+ } else if ( !addedBy.equals( other.addedBy ) ) return false;
+ if ( addedDate == null ) {
+ if ( other.addedDate != null ) return false;
+ } else if ( addedDate.getTime() != other.addedDate.getTime() ) return false;
+ if ( text == null ) {
+ if ( other.text != null ) return false;
+ } else if ( !text.equals( other.text ) ) return false;
+ return true;
+ }
+
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Deadline.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,90 @@
+package org.drools.task;
+
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
+
+import org.drools.task.utils.CollectionUtils;
+
+ at Entity
+public class Deadline implements Serializable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long id;
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Deadline_Documentation_Id", nullable = true)
+ private List<IL8NText> documentation = Collections.emptyList();
+
+ private Date date;
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Deadline_Escalation_Id", nullable = true)
+ private List<Escalation> escalations = Collections.emptyList();
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public List<IL8NText> getDocumentation() {
+ return documentation;
+ }
+
+ public void setDocumentation(List<IL8NText> documentation) {
+ this.documentation = documentation;
+ }
+
+ public Date getDate() {
+ return date;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
+
+ public List<Escalation> getEscalations() {
+ return escalations;
+ }
+
+ public void setEscalations(List<Escalation> escalations) {
+ this.escalations = escalations;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((date == null) ? 0 : date.hashCode());
+ result = prime * result + CollectionUtils.hashCode( documentation );
+ result = prime * result + CollectionUtils.hashCode( escalations );
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof Deadline) ) return false;
+ Deadline other = (Deadline) obj;
+ if ( date == null ) {
+ if ( other.date != null ) return false;
+ } else if ( date.getTime() != other.date.getTime() ) return false;
+
+ return CollectionUtils.equals( documentation, other.documentation ) && CollectionUtils.equals( escalations, other.escalations );
+ }
+
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Deadlines.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,60 @@
+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.OneToMany;
+
+import org.drools.task.utils.CollectionUtils;
+
+ at Embeddable
+public class Deadlines implements Serializable {
+ @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();
+
+ public List<Deadline> getStartDeadlines() {
+ return startDeadlines;
+ }
+
+ public void setStartDeadlines(List<Deadline> startDeadlines) {
+ this.startDeadlines = startDeadlines;
+ }
+
+ public List<Deadline> getEndDeadLines() {
+ return endDeadlines;
+ }
+
+ public void setEndDeadlines(List<Deadline> endDeadlines) {
+ this.endDeadlines = endDeadlines;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + CollectionUtils.hashCode( endDeadlines );
+ result = prime * result + CollectionUtils.hashCode( startDeadlines );
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof Deadlines) ) return false;
+ Deadlines other = (Deadlines) obj;
+
+ return CollectionUtils.equals( endDeadlines, other.endDeadlines ) && CollectionUtils.equals( startDeadlines, other.startDeadlines );
+ }
+
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Delegation.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,67 @@
+package org.drools.task;
+
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.List;
+
+import javax.persistence.Embeddable;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.OneToMany;
+
+import org.drools.task.utils.CollectionUtils;
+
+ at Embeddable
+public class Delegation implements Serializable {
+ @Enumerated(EnumType.STRING)
+ private Allowed allowed;
+
+ @OneToMany
+ @JoinColumn(name = "Delegates_Id", nullable = true)
+ private List<OrganizationalEntity> delegates = Collections.emptyList();
+
+ public Allowed getAllowed() {
+ return allowed;
+ }
+
+ public void setAllowed(Allowed allowed) {
+ this.allowed = allowed;
+ }
+
+ public List<OrganizationalEntity> getDelegates() {
+ return delegates;
+ }
+
+
+ public void setDelegates(List<OrganizationalEntity> delegates) {
+ this.delegates = delegates;
+ }
+
+
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((allowed == null) ? 0 : allowed.hashCode());
+ result = prime * result + CollectionUtils.hashCode( delegates );
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof Delegation) ) return false;
+ Delegation other = (Delegation) obj;
+ if ( allowed == null ) {
+ if ( other.allowed != null ) return false;
+ } else if ( !allowed.equals( other.allowed ) ) return false;
+
+ return CollectionUtils.equals( delegates, other.delegates );
+ }
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Escalation.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,109 @@
+package org.drools.task;
+
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
+
+import org.drools.task.utils.CollectionUtils;
+
+ at Entity
+public class Escalation
+ implements
+ Serializable {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long id;
+
+ private String name;
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Escalation_Constraints_Id", nullable = true)
+ private List<BooleanExpression> constraints = Collections.emptyList();
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Escalation_Notifications_Id", nullable = true)
+ private List<Notification> notifications = Collections.emptyList();
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Escalation_Reassignments_Id", nullable = true)
+ private List<Reassignment> reassignments = Collections.emptyList();
+
+ 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 List<BooleanExpression> getConstraints() {
+ return constraints;
+ }
+
+ public void setConstraints(List<BooleanExpression> constraints) {
+ this.constraints = constraints;
+ }
+
+ public List<Notification> getNotifications() {
+ return notifications;
+ }
+
+ public void setNotifications(List<Notification> notifications) {
+ this.notifications = notifications;
+ }
+
+ public List<Reassignment> getReassignments() {
+ return reassignments;
+ }
+
+ public void setReassignments(List<Reassignment> reassignments) {
+ this.reassignments = reassignments;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + CollectionUtils.hashCode( constraints );
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + CollectionUtils.hashCode( notifications );
+ result = prime * result + CollectionUtils.hashCode( reassignments );
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof Escalation) ) return false;
+ Escalation other = (Escalation) obj;
+
+ if ( name == null ) {
+ if ( other.name != null ) return false;
+ } else if ( !name.equals( other.name ) ) return false;
+
+ return CollectionUtils.equals( constraints,
+ other.constraints ) && CollectionUtils.equals( notifications,
+ other.notifications ) && CollectionUtils.equals( reassignments,
+ other.reassignments );
+
+ }
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Group.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,55 @@
+package org.drools.task;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.ManyToMany;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+ at Entity
+public class Group extends OrganizationalEntity implements Serializable {
+ private String name;
+
+ public Group() {
+
+ }
+
+ public Group(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ 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;
+ return true;
+ }
+
+
+
+}
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/IL8NText.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/IL8NText.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/IL8NText.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,82 @@
+package org.drools.task;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+
+ at Entity
+public class IL8NText implements Serializable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long id;
+
+ private String language;
+
+ @Lob
+ private String text;
+
+ public IL8NText() {
+
+ }
+
+ public IL8NText(String language,
+ String text) {
+ this.language = language;
+ this.text = text;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public String getLanguage() {
+ return language;
+ }
+
+ public void setLanguage(String language) {
+ this.language = language;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((language == null) ? 0 : language.hashCode());
+ result = prime * result + ((text == null) ? 0 : text.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof IL8NText) ) return false;
+ IL8NText other = (IL8NText) obj;
+ if ( language == null ) {
+ if ( other.language != null ) return false;
+ } else if ( !language.equals( other.language ) ) return false;
+ if ( text == null ) {
+ if ( other.text != null ) return false;
+ } else if ( !text.equals( other.text ) ) return false;
+ return true;
+ }
+
+
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Notification.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,119 @@
+package org.drools.task;
+
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.List;
+
+import javax.persistence.AttributeOverride;
+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.OneToMany;
+import javax.persistence.OneToOne;
+import javax.persistence.PrimaryKeyJoinColumn;
+
+import org.drools.task.utils.CollectionUtils;
+
+ at Entity
+public class Notification implements Serializable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long id;
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Notification_Documentation_Id", nullable = true)
+ private List<IL8NText> documentation = Collections.emptyList();
+
+ private int priority;
+
+ @OneToMany
+ @JoinColumn(name = "Notification_Recipients_Id", nullable = true)
+ private List<OrganizationalEntity> recipients = Collections.emptyList();;
+
+ @OneToMany
+ @JoinColumn(name = "Notification_BusinessAdministrators_Id", nullable = true)
+ private List<OrganizationalEntity> businessAdministrators = Collections.emptyList();
+
+ @Embedded
+ private NotificationPresentationElements presentationElements;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public List<IL8NText> getDocumentation() {
+ return documentation;
+ }
+
+ public void setDocumentation(List<IL8NText> documentation) {
+ this.documentation = documentation;
+ }
+
+ public int getPriority() {
+ return priority;
+ }
+
+ public void setPriority(int priority) {
+ this.priority = priority;
+ }
+
+ public List<OrganizationalEntity> getRecipients() {
+ return recipients;
+ }
+
+ public void setRecipients(List<OrganizationalEntity> recipients) {
+ this.recipients = recipients;
+ }
+
+ public List<OrganizationalEntity> getBusinessAdministrators() {
+ return businessAdministrators;
+ }
+
+ public void setBusinessAdministrators(List<OrganizationalEntity> businessAdministrators) {
+ this.businessAdministrators = businessAdministrators;
+ }
+
+ public NotificationPresentationElements getNotificationPresentationElements() {
+ return presentationElements;
+ }
+
+ public void setNotificationPresentationElements(NotificationPresentationElements presentationElements) {
+ this.presentationElements = presentationElements;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ 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 );
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof Notification) ) return false;
+ 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 );
+ }
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/NotificationPresentationElements.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,86 @@
+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.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.Lob;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+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<IL8NText> names = Collections.emptyList();
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "NotificationPresentationElements_Subjects_Id", nullable = true)
+ private List<IL8NText> subjects = Collections.emptyList();
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "NotificationPresentationElements_Descriptions_Id", nullable = true)
+ private List<IL8NText> descriptions = Collections.emptyList();
+
+ public NotificationPresentationElements() {
+
+ }
+
+
+ public List<IL8NText> getNames() {
+ return names;
+ }
+
+ public void setNames(List<IL8NText> names) {
+ this.names = names;
+ }
+
+ public List<IL8NText> getSubjects() {
+ return subjects;
+ }
+
+ public void setSubjects(List<IL8NText> subjects) {
+ this.subjects = subjects;
+ }
+
+ public List<IL8NText> getDescriptions() {
+ return descriptions;
+ }
+
+ public void setDescriptions(List<IL8NText> 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 );
+ }
+
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/OrganizationalEntity.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,23 @@
+package org.drools.task;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+ at Entity
+public abstract class OrganizationalEntity {
+ private long id;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/PeopleAssignments.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,122 @@
+package org.drools.task;
+
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.List;
+
+import javax.persistence.Embeddable;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+
+import org.drools.task.utils.CollectionUtils;
+
+ at Embeddable
+public class PeopleAssignments implements Serializable {
+ @OneToOne
+ private User taskInitiator;
+
+ @OneToMany
+ @JoinColumn(name = "PeopleAssignments_PotentialOwners_Id", nullable = true)
+ private List<OrganizationalEntity> potentialOwners = Collections.emptyList();
+
+ @OneToMany
+ @JoinColumn(name = "PeopleAssignments_ExcludedOwners_Id", nullable = true)
+ private List<OrganizationalEntity> excludedOwners = Collections.emptyList();
+
+ @OneToMany
+ @JoinColumn(name = "PeopleAssignments_TaskStakeholders_Id", nullable = true)
+ private List<OrganizationalEntity> taskStakeholders = Collections.emptyList();
+
+ @OneToMany
+ @JoinColumn(name = "PeopleAssignments_BusinessAdministrators_Id", nullable = true)
+ private List<OrganizationalEntity> businessAdministrators = Collections.emptyList();
+
+ @OneToMany
+ @JoinColumn(name = "PeopleAssignments_Recipients_Id", nullable = true)
+ private List<OrganizationalEntity> recipients = Collections.emptyList();
+
+ public PeopleAssignments() {
+
+ }
+
+ public User getTaskInitiator() {
+ return taskInitiator;
+ }
+
+ public void setTaskInitiator(User taskInitiator) {
+ this.taskInitiator = taskInitiator;
+ }
+
+ public List<OrganizationalEntity> getPotentialOwners() {
+ return potentialOwners;
+ }
+
+ public void setPotentialOwners(List<OrganizationalEntity> potentialOwners) {
+ this.potentialOwners = potentialOwners;
+ }
+
+ public List<OrganizationalEntity> getExcludedOwners() {
+ return excludedOwners;
+ }
+
+ public void setExcludedOwners(List<OrganizationalEntity> excludedOwners) {
+ this.excludedOwners = excludedOwners;
+ }
+
+ public List<OrganizationalEntity> getTaskStakeholders() {
+ return taskStakeholders;
+ }
+
+ public void setTaskStakeholders(List<OrganizationalEntity> taskStakeholders) {
+ this.taskStakeholders = taskStakeholders;
+ }
+
+ public List<OrganizationalEntity> getBusinessAdministrators() {
+ return businessAdministrators;
+ }
+
+ public void setBusinessAdministrators(List<OrganizationalEntity> businessAdministrators) {
+ this.businessAdministrators = businessAdministrators;
+ }
+
+ public List<OrganizationalEntity> getRecipients() {
+ return recipients;
+ }
+
+ public void setRecipients(List<OrganizationalEntity> recipients) {
+ this.recipients = recipients;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + CollectionUtils.hashCode( businessAdministrators );
+ result = prime * result + CollectionUtils.hashCode( excludedOwners );
+ result = prime * result + CollectionUtils.hashCode( potentialOwners );
+ result = prime * result + CollectionUtils.hashCode( recipients );
+ result = prime * result + ((taskInitiator == null) ? 0 : taskInitiator.hashCode());
+ result = prime * result + CollectionUtils.hashCode( taskStakeholders );
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof PeopleAssignments) ) return false;
+ PeopleAssignments other = (PeopleAssignments) obj;
+
+ if ( taskInitiator == null ) {
+ if ( other.taskInitiator != null ) return false;
+ } else if ( !taskInitiator.equals( other.taskInitiator ) ) return false;
+
+ return CollectionUtils.equals( businessAdministrators, other.businessAdministrators ) && CollectionUtils.equals( excludedOwners, other.excludedOwners )
+ && CollectionUtils.equals( potentialOwners, other.potentialOwners ) && CollectionUtils.equals( recipients, other.recipients )
+ && CollectionUtils.equals( taskStakeholders, other.taskStakeholders );
+ }
+
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Reassignment.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,76 @@
+package org.drools.task;
+
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
+
+import org.drools.task.utils.CollectionUtils;
+
+ at Entity
+public class Reassignment implements Serializable {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long id;
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "Reassignment_Documentation_Id", nullable = true)
+ private List<IL8NText> documentation = Collections.emptyList();;
+
+ @OneToMany
+ @JoinColumn(name = "Reassignment_potentialOwners_Id", nullable = true)
+ private List<OrganizationalEntity> potentialOwners = Collections.emptyList();;
+
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public List<IL8NText> getDocumentation() {
+ return documentation;
+ }
+
+ public void setDocumentation(List<IL8NText> documentation) {
+ this.documentation = documentation;
+ }
+
+ public List<OrganizationalEntity> getPotentialOwners() {
+ return potentialOwners;
+ }
+
+ public void setPotentialOwners(List<OrganizationalEntity> potentialOwners) {
+ this.potentialOwners = potentialOwners;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + CollectionUtils.hashCode( documentation );
+ result = prime * result + CollectionUtils.hashCode( potentialOwners );
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof Reassignment) ) return false;
+ Reassignment other = (Reassignment) obj;
+ return CollectionUtils.equals( documentation, other.documentation ) && CollectionUtils.equals( potentialOwners, other.potentialOwners );
+ }
+
+
+
+}
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Status.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Status.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Status.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,7 @@
+package org.drools.task;
+
+import javax.persistence.Entity;
+
+public enum Status {
+ Created, Ready, Reserved, InProgress, Suspended, Completed, Failed, Error, Exited, Obselete;
+}
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/StatusChange.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/StatusChange.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/StatusChange.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,10 @@
+package org.drools.task;
+
+import java.util.Date;
+
+public class StatusChange {
+ private User user;
+
+ private Date date;
+ private Status status;
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Task.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,142 @@
+package org.drools.task;
+
+import java.io.Serializable;
+
+import javax.persistence.Embedded;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+ at Entity
+public class Task implements Serializable {
+ /**
+ * 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.
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long id;
+
+ /**
+ * While WSHT says this is an expression, it always resolves to an integer, so resolve before setting
+ * default value is 0.
+ */
+ private int priority;
+
+ @Embedded
+ private PeopleAssignments peopleAssignments;
+
+
+ @Embedded
+ private Delegation delegation;
+
+ @Embedded
+ private TaskPresentationElements presentationElements;
+
+ @Embedded
+ private TaskData taskData;
+
+ @Embedded
+ private Deadlines deadlines;
+
+ public Task() {
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public int getPriority() {
+ return priority;
+ }
+
+ public void setPriority(int priority) {
+ this.priority = priority;
+ }
+
+ public PeopleAssignments getPeopleAssignments() {
+ return peopleAssignments;
+ }
+
+ public void setPeopleAssignments(PeopleAssignments peopleAssignments) {
+ this.peopleAssignments = peopleAssignments;
+ }
+
+ public Delegation getDelegation() {
+ return delegation;
+ }
+
+ public void setDelegation(Delegation delegation) {
+ this.delegation = delegation;
+ }
+
+
+ public TaskPresentationElements getTaskPresentationElements() {
+ return presentationElements;
+ }
+
+ public void setTaskPresentationElements(TaskPresentationElements presentationElements) {
+ this.presentationElements = presentationElements;
+ }
+
+ public TaskData getTaskData() {
+ return taskData;
+ }
+
+ public void setTaskData(TaskData taskData) {
+ this.taskData = taskData;
+ }
+
+ public Deadlines getDeadlines() {
+ return deadlines;
+ }
+
+ public void setDeadlines(Deadlines deadlines) {
+ this.deadlines = deadlines;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ 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 + priority;
+ result = prime * result + ((taskData == null) ? 0 : taskData.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof Task) ) return false;
+ Task other = (Task) obj;
+ if ( deadlines == null ) {
+ if ( other.deadlines != null ) return false;
+ } else if ( !deadlines.equals( other.deadlines ) ) return false;
+ if ( delegation == null ) {
+ if ( other.delegation != null ) return false;
+ } 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 ( presentationElements == null ) {
+ if ( other.presentationElements != null ) return false;
+ } else if ( !presentationElements.equals( other.presentationElements ) ) 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;
+ }
+
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskData.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,134 @@
+package org.drools.task;
+
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Embeddable;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
+
+import org.drools.task.utils.CollectionUtils;
+
+ at Embeddable
+public class TaskData implements Serializable {
+ @Enumerated(EnumType.STRING)
+ private Status status = Status.Created; // initial default state
+
+ private Date createdOn;
+
+ private Date activationTime;
+
+ private Date expirationTime;
+
+ private boolean isSkipable;
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "TaskData_Comments_Id", nullable = true)
+ private List<Comment> comments = Collections.emptyList();
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "TaskData_Attachments_Id", nullable = true)
+ private List<Attachment> attachments = Collections.emptyList();
+
+ public Status getStatus() {
+ return status;
+ }
+
+ public void setStatus(Status status) {
+ this.status = status;
+ }
+
+ 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;
+ }
+
+ public boolean isSkipable() {
+ return isSkipable;
+ }
+
+ public void setSkipable(boolean isSkipable) {
+ this.isSkipable = isSkipable;
+ }
+
+ public List<Comment> getComments() {
+ return comments;
+ }
+
+ public void setComments(List<Comment> comments) {
+ this.comments = comments;
+ }
+
+ public List<Attachment> getAttachments() {
+ return attachments;
+ }
+
+ public void setAttachments(List<Attachment> attachments) {
+ this.attachments = attachments;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((activationTime == null) ? 0 : activationTime.hashCode());
+ result = prime * result + CollectionUtils.hashCode( attachments );
+ 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 + ((status == null) ? 0 : status.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( !(obj instanceof TaskData) ) return false;
+ TaskData other = (TaskData) obj;
+
+ if ( createdOn == null ) {
+ 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 ( status == null ) {
+ if ( other.status != null ) return false;
+ } else if ( !status.equals( other.status ) ) return false;
+ if ( activationTime == null ) {
+ if ( other.activationTime != null ) return false;
+ } else if ( activationTime.getTime() != other.activationTime.getTime() ) return false;
+
+ return CollectionUtils.equals( attachments, other.attachments ) && CollectionUtils.equals( comments, other.comments );
+ }
+
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/TaskPresentationElements.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,86 @@
+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.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.Lob;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+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<IL8NText> names = Collections.emptyList();
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "TaskPresentationElements_Subjects_Id", nullable = true)
+ private List<IL8NText> subjects = Collections.emptyList();
+
+ @OneToMany(cascade = CascadeType.ALL)
+ @JoinColumn(name = "TaskPresentationElements_Descriptions_Id", nullable = true)
+ private List<IL8NText> descriptions = Collections.emptyList();
+
+ public TaskPresentationElements() {
+
+ }
+
+
+ public List<IL8NText> getNames() {
+ return names;
+ }
+
+ public void setNames(List<IL8NText> names) {
+ this.names = names;
+ }
+
+ public List<IL8NText> getSubjects() {
+ return subjects;
+ }
+
+ public void setSubjects(List<IL8NText> subjects) {
+ this.subjects = subjects;
+ }
+
+ public List<IL8NText> getDescriptions() {
+ return descriptions;
+ }
+
+ public void setDescriptions(List<IL8NText> 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 );
+ }
+
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/User.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,67 @@
+package org.drools.task;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.ManyToMany;
+import javax.persistence.Table;
+
+ at Entity
+public class User extends OrganizationalEntity implements Serializable {
+ private String firstName;
+ private String lastName;
+
+ public User() {
+
+ }
+
+ public User(String firstName, String lastName) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+ 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());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ 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;
+ return true;
+ }
+
+
+
+
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/utils/CollectionUtils.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,53 @@
+package org.drools.task.utils;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.print.attribute.HashAttributeSet;
+
+public class CollectionUtils {
+ public static boolean equals(List list1, List list2) {
+ if ( list1 == null && list2 == null ) {
+ return true;
+ }
+
+ if ( list1.size() != list2.size() ) {
+ return false;
+ }
+
+ if ( list1.isEmpty() && list2.isEmpty() ) {
+ return true;
+ }
+
+
+ for ( Object item1 : list1) {
+ boolean exists = false;
+ for ( Object item2 : list2 ) {
+ if ( item1.equals( item2 )) {
+ exists = true;
+ break;
+ }
+ }
+ if ( !exists ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ public static int hashCode(List list) {
+ if ( list == null ) {
+ return 0;
+ }
+
+ final int prime = 31;
+ int result = 1;
+ for ( Iterator it = list.iterator(); it.hasNext(); ) {
+ result = prime * result + it.next().hashCode();
+ }
+ return result;
+ }
+}
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-26 05:21:22 UTC (rev 21899)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/persistence.xml 2008-08-26 06:22:51 UTC (rev 21900)
@@ -1,151 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persistence version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/persistence">
- <persistence-unit name="org.drools.ws_ht:org.drools.ws_ht.api.xsd:org.drools.ws_ht.api">
- <class>org.drools.ws_ht.api.xsd.Nominate</class>
- <class>org.drools.ws_ht.TNotification</class>
- <class>org.drools.ws_ht.api.xsd.GetFault</class>
- <class>org.drools.ws_ht.api.xsd.GetTaskDescription</class>
- <class>org.drools.ws_ht.api.xsd.GetRenderingTypesResponse</class>
- <class>org.drools.ws_ht.TNotifications</class>
- <class>org.drools.ws_ht.api.xsd.Release</class>
- <class>org.drools.ws_ht.api.xsd.GetFaultResponse</class>
- <class>org.drools.ws_ht.api.xsd.SetPriority</class>
- <class>org.drools.ws_ht.api.xsd.SetOutputResponse</class>
- <class>org.drools.ws_ht.api.xsd.CompleteResponse</class>
- <class>org.drools.ws_ht.api.xsd.Stop</class>
- <class>org.drools.ws_ht.api.xsd.SuspendUntilResponse</class>
- <class>org.drools.ws_ht.api.xsd.Query</class>
- <class>org.drools.ws_ht.TText</class>
- <class>org.drools.ws_ht.api.xsd.Fail</class>
- <class>org.drools.ws_ht.TArgument</class>
- <class>org.drools.ws_ht.api.xsd.Resume</class>
- <class>org.drools.ws_ht.api.xsd.GetTaskInfoResponse</class>
- <class>org.drools.ws_ht.TReassignment</class>
- <class>org.drools.ws_ht.api.xsd.Forward</class>
- <class>org.drools.ws_ht.TGrouplist$GroupItem</class>
- <class>org.drools.ws_ht.TExtension</class>
- <class>org.drools.ws_ht.api.xsd.GetRenderingTypesResponse$RenderingTypeItem</class>
- <class>org.drools.ws_ht.api.xsd.Complete</class>
- <class>org.drools.ws_ht.api.xsd.AddAttachment</class>
- <class>org.drools.ws_ht.api.xsd.GetInput</class>
- <class>org.drools.ws_ht.api.TTask</class>
- <class>org.drools.ws_ht.THumanInteractions</class>
- <class>org.drools.ws_ht.api.xsd.Activate</class>
- <class>org.drools.ws_ht.api.xsd.Suspend</class>
- <class>org.drools.ws_ht.TTaskInterface</class>
- <class>org.drools.ws_ht.TPeopleAssignments$GenericHumanRoleItem</class>
- <class>org.drools.ws_ht.api.xsd.ResumeResponse</class>
- <class>org.drools.ws_ht.TToParts</class>
- <class>org.drools.ws_ht.TPresentationElements</class>
- <class>org.drools.ws_ht.api.xsd.Remove</class>
- <class>org.drools.ws_ht.TDurationExpr</class>
- <class>org.drools.ws_ht.api.xsd.SetOutput</class>
- <class>org.drools.ws_ht.api.xsd.GetAttachmentInfos</class>
- <class>org.drools.ws_ht.api.xsd.GetTaskDescriptionResponse</class>
- <class>org.drools.ws_ht.api.xsd.GetRenderingResponse</class>
- <class>org.drools.ws_ht.TExtensibleMixedContentElements$ContentItem</class>
- <class>org.drools.ws_ht.api.xsd.DelegateResponse</class>
- <class>org.drools.ws_ht.TDeadlines</class>
- <class>org.drools.ws_ht.api.xsd.QueryResponse</class>
- <class>org.drools.ws_ht.TDelegation</class>
- <class>org.drools.ws_ht.api.xsd.GetOutput</class>
- <class>org.drools.ws_ht.api.TTaskQueryResultRow</class>
- <class>org.drools.ws_ht.api.xsd.GetTaskInfo</class>
- <class>org.drools.ws_ht.TExtensibleElements$AnyItem</class>
- <class>org.drools.ws_ht.TLogicalPeopleGroup</class>
- <class>org.drools.ws_ht.api.xsd.ForwardResponse</class>
- <class>org.drools.ws_ht.api.TTaskQueryResultSet</class>
- <class>org.drools.ws_ht.api.xsd.GetMyTaskAbstracts$StatusItem</class>
- <class>org.drools.ws_ht.TExpression</class>
- <class>org.drools.ws_ht.api.xsd.AddCommentResponse</class>
- <class>org.drools.ws_ht.TDocumentation$ContentItem</class>
- <class>org.drools.ws_ht.api.xsd.Skip</class>
- <class>org.drools.ws_ht.api.xsd.StartResponse</class>
- <class>org.drools.ws_ht.api.xsd.AddComment</class>
- <class>org.drools.ws_ht.TExpression$ContentItem</class>
- <class>org.drools.ws_ht.TPresentationParameters</class>
- <class>org.drools.ws_ht.TRenderings</class>
- <class>org.drools.ws_ht.api.xsd.DeleteFaultResponse</class>
- <class>org.drools.ws_ht.api.xsd.GetOutputResponse</class>
- <class>org.drools.ws_ht.api.TComment</class>
- <class>org.drools.ws_ht.TEscalation</class>
- <class>org.drools.ws_ht.api.xsd.GetMyTasksResponse</class>
- <class>org.drools.ws_ht.TDeadline</class>
- <class>org.drools.ws_ht.api.xsd.ClaimResponse</class>
- <class>org.drools.ws_ht.api.xsd.ActivateResponse</class>
- <class>org.drools.ws_ht.TUserlist$UserItem</class>
- <class>org.drools.ws_ht.TUserlist</class>
- <class>org.drools.ws_ht.TPresentationParameter</class>
- <class>org.drools.ws_ht.api.xsd.GetMyTaskAbstracts</class>
- <class>org.drools.ws_ht.TLocalNotification</class>
- <class>org.drools.ws_ht.api.xsd.StopResponse</class>
- <class>org.drools.ws_ht.TTask</class>
- <class>org.drools.ws_ht.api.xsd.Claim</class>
- <class>org.drools.ws_ht.api.xsd.GetMyTasks</class>
- <class>org.drools.ws_ht.TNotificationInterface</class>
- <class>org.drools.ws_ht.api.xsd.Start</class>
- <class>org.drools.ws_ht.api.TTaskAbstract$AnyItem</class>
- <class>org.drools.ws_ht.api.TTaskQueryResultRow$IdOrTaskTypeOrNameItem</class>
- <class>org.drools.ws_ht.api.xsd.NominateResponse</class>
- <class>org.drools.ws_ht.api.xsd.DeleteOutputResponse</class>
- <class>org.drools.ws_ht.TGenericHumanRole</class>
- <class>org.drools.ws_ht.api.xsd.RemoveResponse</class>
- <class>org.drools.ws_ht.api.xsd.GetInputResponse</class>
- <class>org.drools.ws_ht.TTasks</class>
- <class>org.drools.ws_ht.api.xsd.SetGenericHumanRoleResponse</class>
- <class>org.drools.ws_ht.api.xsd.GetRenderingTypes</class>
- <class>org.drools.ws_ht.api.TAttachmentInfo</class>
- <class>org.drools.ws_ht.api.xsd.DeleteFault</class>
- <class>org.drools.ws_ht.TLiteral$ContentItem</class>
- <class>org.drools.ws_ht.api.xsd.DeleteAttachmentsResponse</class>
- <class>org.drools.ws_ht.TFrom</class>
- <class>org.drools.ws_ht.api.TAttachment</class>
- <class>org.drools.ws_ht.TImport</class>
- <class>org.drools.ws_ht.TExtensibleMixedContentElements</class>
- <class>org.drools.ws_ht.TQuery$ContentItem</class>
- <class>org.drools.ws_ht.api.xsd.ReleaseResponse</class>
- <class>org.drools.ws_ht.api.xsd.IllegalState</class>
- <class>org.drools.ws_ht.TToPart</class>
- <class>org.drools.ws_ht.api.xsd.TTime</class>
- <class>org.drools.ws_ht.api.TTask$AnyItem</class>
- <class>org.drools.ws_ht.api.TAttachmentInfo$AnyItem</class>
- <class>org.drools.ws_ht.TDocumentation</class>
- <class>org.drools.ws_ht.api.xsd.SuspendResponse</class>
- <class>org.drools.ws_ht.TGrouplist</class>
- <class>org.drools.ws_ht.api.xsd.SetGenericHumanRole</class>
- <class>org.drools.ws_ht.api.xsd.GetCommentsResposne</class>
- <class>org.drools.ws_ht.TLiteral</class>
- <class>org.drools.ws_ht.TLogicalPeopleGroups</class>
- <class>org.drools.ws_ht.TPriority</class>
- <class>org.drools.ws_ht.TQuery</class>
- <class>org.drools.ws_ht.api.xsd.GetMyTaskAbstractsResponse</class>
- <class>org.drools.ws_ht.api.xsd.DeleteAttachments</class>
- <class>org.drools.ws_ht.TRendering</class>
- <class>org.drools.ws_ht.api.xsd.AddAttachmentResponse</class>
- <class>org.drools.ws_ht.api.TTaskAbstract</class>
- <class>org.drools.ws_ht.TParameter</class>
- <class>org.drools.ws_ht.api.xsd.SkipResponse</class>
- <class>org.drools.ws_ht.TPeopleAssignments</class>
- <class>org.drools.ws_ht.api.xsd.SuspendUntil</class>
- <class>org.drools.ws_ht.TBooleanExpr</class>
- <class>org.drools.ws_ht.api.xsd.GetMyTasks$StatusItem</class>
- <class>org.drools.ws_ht.TDescription</class>
- <class>org.drools.ws_ht.api.TComment$AnyItem</class>
- <class>org.drools.ws_ht.api.xsd.FailResponse</class>
- <class>org.drools.ws_ht.TExtensions</class>
- <class>org.drools.ws_ht.api.xsd.GetAttachmentsResponse</class>
- <class>org.drools.ws_ht.api.xsd.GetRendering</class>
- <class>org.drools.ws_ht.api.xsd.SetFault</class>
- <class>org.drools.ws_ht.api.xsd.GetAttachments</class>
- <class>org.drools.ws_ht.TExtensibleElements</class>
- <class>org.drools.ws_ht.api.xsd.SetFaultResponse</class>
- <class>org.drools.ws_ht.api.xsd.GetAttachmentInfosResponse</class>
- <class>org.drools.ws_ht.TOrganizationalEntity</class>
- <class>org.drools.ws_ht.api.xsd.SetPriorityResponse</class>
- <class>org.drools.ws_ht.api.xsd.Delegate</class>
- <class>org.drools.ws_ht.api.xsd.GetComments</class>
- <class>org.drools.ws_ht.api.xsd.DeleteOutput</class>
- <class>org.drools.ws_ht.TDeadlineExpr</class>
+ <persistence-unit name="org.drools.task">
+ <provider>org.hibernate.ejb.HibernatePersistence</provider>
+ <class>org.drools.task.User</class>
+ <class>org.drools.task.Attachment</class>
+ <class>org.drools.task.BooleanExpression</class>
+ <class>org.drools.task.Comment</class>
+ <class>org.drools.task.Deadline</class>
+ <class>org.drools.task.Comment</class>
+ <class>org.drools.task.Deadline</class>
+ <class>org.drools.task.Delegation</class>
+ <class>org.drools.task.Escalation</class>
+ <class>org.drools.task.Group</class>
+ <class>org.drools.task.IL8NText</class>
+ <class>org.drools.task.Notification</class>
+ <class>org.drools.task.PeopleAssignments</class>
+ <class>org.drools.task.Reassignment</class>
+ <class>org.drools.task.Status</class>
+ <class>org.drools.task.Task</class>
+ <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.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.max_fetch_depth" value="3"/>
+ <property name="hibernate.hbm2ddl.auto" value="create"/>
+ <property name="hibernate.show_sql" value="true" />
+ </properties>
</persistence-unit>
+
</persistence>
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/TestModelPersistence.java 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,467 @@
+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.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+
+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.IL8NText;
+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.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 TestModelPersistence extends TestCase {
+
+ 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 );
+ } catch ( IOException e ) {
+ throw new RuntimeException( "Exception Thrown",
+ e );
+ }
+ }
+
+ 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( "IL8NText", IL8NText.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 fullHibernateRoundtripWithAdditionalMVELCheck() 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" );
+ peopleAssignments.setTaskInitiator( darth );
+ em.persist( darth );
+
+ List<OrganizationalEntity> potentialOwners = new ArrayList<OrganizationalEntity>();
+ peopleAssignments.setPotentialOwners( potentialOwners );
+ User bobba = new User( "Bobba",
+ "Fet" );
+ potentialOwners.add( bobba );
+ em.persist( bobba );
+
+ User jabba = new User( "Jabba",
+ "Hutt" );
+ potentialOwners.add( jabba );
+ em.persist( jabba );
+
+ List<OrganizationalEntity> excludedOwners = new ArrayList<OrganizationalEntity>();
+ peopleAssignments.setExcludedOwners( excludedOwners );
+ User dalai = new User( "Dalai",
+ "Lama" );
+ excludedOwners.add( dalai );
+ em.persist( dalai );
+
+ User christoper = new User( "Christoper",
+ "Columbus" );
+ excludedOwners.add( christoper );
+ em.persist( christoper );
+
+ List<OrganizationalEntity> stakeholders = new ArrayList<OrganizationalEntity>();
+ peopleAssignments.setTaskStakeholders( stakeholders );
+ User stuart = new User( "Stuart",
+ "Little" );
+ stakeholders.add( stuart );
+ em.persist( stuart );
+
+ User jane = new User( "Jane",
+ "Austin" );
+ stakeholders.add( jane );
+ em.persist( jane );
+
+ List<OrganizationalEntity> businessAdmin = new ArrayList<OrganizationalEntity>();
+ peopleAssignments.setBusinessAdministrators( businessAdmin );
+ User peter = new User( "Peter",
+ "Parker" );
+ businessAdmin.add( peter );
+ em.persist( peter );
+
+ User steve = new User( "Steve",
+ "Rogers" );
+ businessAdmin.add( steve );
+ em.persist( steve );
+
+ List<OrganizationalEntity> recipients = new ArrayList<OrganizationalEntity>();
+ peopleAssignments.setRecipients( recipients );
+ User sly = new User( "Sly",
+ "Stalone" );
+ recipients.add( sly );
+ em.persist( sly );
+
+ User liz = new User( "Elizabeth",
+ "Windsor" );
+ recipients.add( liz );
+ em.persist( liz );
+
+ TaskData taskData = new TaskData();
+ task1.setTaskData( taskData );
+
+ taskData.setActivationTime( new Date( 10000000 ) );
+ taskData.setCreatedOn( new Date( 10000000 ) );
+ taskData.setExpirationTime( new Date( 10000000 ) );
+ taskData.setStatus( Status.Created );
+
+ List<Attachment> attachments = new ArrayList<Attachment>();
+ taskData.setAttachments( attachments );
+
+ Attachment attachment = new Attachment();
+ attachment.setAccessType( AccessType.Inline );
+ attachment.setAttachedAt( new Date( 10000000 ) );
+ attachment.setAttachedBy( liz );
+ attachment.setContentType( "text" );
+ attachment.setName( "file.txt" );
+ attachment.setAttachment( new byte[]{1, 0, 0, 1} );
+ attachments.add( attachment );
+
+ attachment = new Attachment();
+ attachment.setAccessType( AccessType.Url );
+ attachment.setAttachedAt( new Date( 10000000 ) );
+ attachment.setAttachedBy( liz );
+ attachment.setContentType( "text" );
+ attachment.setName( "file2.txt" );
+ attachment.setAttachment( new String( "http://domain.org/file.txt" ).getBytes() );
+ attachments.add( attachment );
+
+ List<Comment> comments = new ArrayList<Comment>();
+ taskData.setComments( comments );
+ Comment comment = new Comment();
+ comment.setAddedBy( peter );
+ comment.setAddedDate( new Date( 10000000 ) );
+ comment.setText( "this is a short comment" );
+ comments.add( comment );
+
+ comment = new Comment();
+ comment.setAddedBy( steve );
+ comment.setAddedDate( new Date( 10000000 ) );
+ comment.setText( "this is a loooooooooooooooooooooooooooooooooooooooooooooooong comment" );
+ comments.add( comment );
+
+ TaskPresentationElements tpresentationElements = new TaskPresentationElements();
+ task1.setTaskPresentationElements( tpresentationElements );
+ List<IL8NText> names = new ArrayList<IL8NText>();
+ tpresentationElements.setNames( names );
+ List<IL8NText> subjects = new ArrayList<IL8NText>();
+ tpresentationElements.setSubjects( subjects );
+ List<IL8NText> descriptions = new ArrayList<IL8NText>();
+ tpresentationElements.setDescriptions( descriptions );
+
+ names.add( new IL8NText( "en-UK",
+ "This is my task name" ) );
+ names.add( new IL8NText( "en-DK",
+ "Dies ist mein task Name" ) );
+
+ subjects.add( new IL8NText( "en-UK",
+ "This is my task subject" ) );
+ subjects.add( new IL8NText( "en-DK",
+ "Das ist mein task Thema" ) );
+
+ descriptions.add( new IL8NText( "en-UK",
+ "This is my task description" ) );
+ descriptions.add( new IL8NText( "en-DK",
+ "Das ist mein task Beschreibung" ) );
+
+ Delegation delegation = new Delegation();
+ task1.setDelegation( delegation );
+ delegation.setAllowed( Allowed.PotentialOwners );
+
+ List<OrganizationalEntity> groups = new ArrayList<OrganizationalEntity>();
+ delegation.setDelegates( groups );
+ Group crusaders = new Group( "Crusaders" );
+ em.persist( crusaders );
+ groups.add( crusaders );
+
+ Group knightsTempler = new Group( "Knights Templer" );
+ em.persist( knightsTempler );
+ groups.add( knightsTempler );
+
+ Deadlines deadlines = new Deadlines();
+ task1.setDeadlines( deadlines );
+
+ List<Deadline> startDeadlines = new ArrayList<Deadline>();
+ deadlines.setStartDeadlines( startDeadlines );
+ Deadline deadline = new Deadline();
+ startDeadlines.add( deadline );
+ deadline.setDate( new Date( 10000000 ) );
+ List<IL8NText> docs = new ArrayList<IL8NText>();
+ deadline.setDocumentation( docs );
+ docs.add( new IL8NText( "en-UK",
+ "Start Deadline documentation" ) );
+ docs.add( new IL8NText( "en-DK",
+ "Start Termin Dokumentation" ) );
+
+ List<Escalation> escalations = new ArrayList<Escalation>();
+ deadline.setEscalations( escalations );
+ Escalation escalation = new Escalation();
+ escalations.add( escalation );
+ escalation.setName( "My Start Escalation" );
+
+ List<BooleanExpression> constraints = new ArrayList<BooleanExpression>();
+ escalation.setConstraints( constraints );
+ constraints.add( new BooleanExpression( "mvel",
+ "true" ) );
+
+ List<Notification> notifications = new ArrayList<Notification>();
+ escalation.setNotifications( notifications );
+
+ Notification notification = new Notification();
+ notifications.add( notification );
+ notification.setPriority( 1000 );
+ docs = new ArrayList<IL8NText>();
+ notification.setDocumentation( docs );
+ docs.add( new IL8NText( "en-UK",
+ "Start Notification documentation" ) );
+ docs.add( new IL8NText( "en-DK",
+ "Start Anmeldung Dokumentation" ) );
+
+ businessAdmin = new ArrayList<OrganizationalEntity>();
+ notification.setBusinessAdministrators( businessAdmin );
+ User bruce = new User( "Bruce",
+ "Wayne " );
+ businessAdmin.add( bruce );
+ em.persist( bruce );
+ businessAdmin.add( peter );
+
+ recipients = new ArrayList<OrganizationalEntity>();
+ notification.setRecipients( recipients );
+ User tony = new User( "Tony",
+ "Stark" );
+ recipients.add( tony );
+ em.persist( tony );
+ recipients.add( darth );
+
+ NotificationPresentationElements npresentationElements = new NotificationPresentationElements();
+ notification.setNotificationPresentationElements( npresentationElements );
+ names = new ArrayList<IL8NText>();
+ npresentationElements.setNames( names );
+ subjects = new ArrayList<IL8NText>();
+ npresentationElements.setSubjects( subjects );
+ descriptions = new ArrayList<IL8NText>();
+ npresentationElements.setDescriptions( descriptions );
+
+ names.add( new IL8NText( "en-UK",
+ "This is my start notification name" ) );
+ names.add( new IL8NText( "en-DK",
+ "Dies ist mein start anmeldung Name" ) );
+
+ subjects.add( new IL8NText( "en-UK", "This is my start notification subject" ) );
+ subjects.add( new IL8NText( "en-DK", "Das ist mein start anmeldung Thema" ) );
+
+ descriptions.add( new IL8NText( "en-UK", "This is my start notification description" ) );
+ descriptions.add( new IL8NText( "en-DK", "Das ist mein start anmeldung Beschreibung" ) );
+
+ List<Reassignment> reassignments = new ArrayList<Reassignment>();
+ escalation.setReassignments( reassignments );
+ Reassignment reassignment = new Reassignment();
+ reassignments.add( reassignment );
+
+ docs = new ArrayList<IL8NText>();
+ reassignment.setDocumentation( docs );
+ docs.add( new IL8NText( "en-UK", "Start Reassignment documentation" ) );
+ docs.add( new IL8NText( "en-DK", "Start Neuzuweisung Dokumentation" ) );
+
+ potentialOwners = new ArrayList<OrganizationalEntity>();
+ reassignment.setPotentialOwners( potentialOwners );
+ potentialOwners.add( bobba );
+ User cage = new User( "Luke",
+ "Cage " );
+ potentialOwners.add( cage );
+ em.persist( cage );
+
+////////////////
+ List<Deadline> endDeadlines = new ArrayList<Deadline>();
+ deadlines.setEndDeadlines( endDeadlines );
+ deadline = new Deadline();
+ endDeadlines.add( deadline );
+ deadline.setDate( new Date( 10000000 ) );
+ docs = new ArrayList<IL8NText>();
+ deadline.setDocumentation( docs );
+ docs.add( new IL8NText( "en-UK",
+ "End Deadline documentation" ) );
+ docs.add( new IL8NText( "en-DK",
+ "Ende Termin Dokumentation" ) );
+
+ escalations = new ArrayList<Escalation>();
+ deadline.setEscalations( escalations );
+ escalation = new Escalation();
+ escalations.add( escalation );
+ escalation.setName( "My End Escalation" );
+
+ constraints = new ArrayList<BooleanExpression>();
+ escalation.setConstraints( constraints );
+ constraints.add( new BooleanExpression( "mvel",
+ "true" ) );
+
+ notifications = new ArrayList<Notification>();
+ escalation.setNotifications( notifications );
+
+ notification = new Notification();
+ notifications.add( notification );
+ notification.setPriority( 1000 );
+ docs = new ArrayList<IL8NText>();
+ notification.setDocumentation( docs );
+ docs.add( new IL8NText( "en-UK",
+ "End Notification documentation" ) );
+ docs.add( new IL8NText( "en-DK",
+ "Ende Anmeldung Dokumentation" ) );
+
+ businessAdmin = new ArrayList<OrganizationalEntity>();
+ notification.setBusinessAdministrators( businessAdmin );
+ businessAdmin.add( bobba );
+ businessAdmin.add( darth );
+
+ recipients = new ArrayList<OrganizationalEntity>();
+ notification.setRecipients( recipients );
+ recipients.add( liz );
+ recipients.add( jane );
+
+ npresentationElements = new NotificationPresentationElements();
+ notification.setNotificationPresentationElements( npresentationElements );
+ names = new ArrayList<IL8NText>();
+ npresentationElements.setNames( names );
+ subjects = new ArrayList<IL8NText>();
+ npresentationElements.setSubjects( subjects );
+ descriptions = new ArrayList<IL8NText>();
+ npresentationElements.setDescriptions( descriptions );
+
+ names.add( new IL8NText( "en-UK",
+ "This is my end notification name" ) );
+ names.add( new IL8NText( "en-DK",
+ "Dies ist mein ende anmeldung Name" ) );
+
+ subjects.add( new IL8NText( "en-UK", "This is my end notification subject" ) );
+ subjects.add( new IL8NText( "en-DK", "Das ist mein ende anmeldung Thema" ) );
+
+ descriptions.add( new IL8NText( "en-UK", "This is my end notification description" ) );
+ descriptions.add( new IL8NText( "en-DK", "Das ist mein ende anmeldung Beschreibung" ) );
+
+ reassignments = new ArrayList<Reassignment>();
+ escalation.setReassignments( reassignments );
+ reassignment = new Reassignment();
+ reassignments.add( reassignment );
+
+ docs = new ArrayList<IL8NText>();
+ reassignment.setDocumentation( docs );
+ docs.add( new IL8NText( "en-UK", "End Reassignment documentation" ) );
+ docs.add( new IL8NText( "en-DK", "Ende Neuzuweisung Dokumentation" ) );
+
+ potentialOwners = new ArrayList<OrganizationalEntity>();
+ reassignment.setPotentialOwners( potentialOwners );
+ potentialOwners.add( stuart );
+ potentialOwners.add( dalai );
+////////////////////
+
+
+ em.persist( task1 );
+
+ em.flush();
+ em.clear();
+
+ Task task2 = em.find( Task.class,
+ task1.getId() );
+ assertNotSame( task1,
+ task2 );
+// assertEquals( task1,
+// task2 );
+
+// XStream xstream = new XStream();
+// String xml = xstream.toXML( task1 );
+//
+// System.out.println( xml );
+//
+// Task task3 = (Task) xstream.fromXML( new InputStreamReader( getClass().getResourceAsStream( "FullyPopulatedTask.xml" ) ) );
+
+ Reader reader = new InputStreamReader( getClass().getResourceAsStream( "FullyPopulatedTask.mvel" ) );
+ Map vars = new HashedMap();
+ vars.put( "bytes1", new byte[]{1, 0, 0, 1} );
+ Task task3= (Task) eval( reader, vars );
+
+ assertNotSame( task1,
+ task3 );
+ assertEquals( task1,
+ task3 );
+
+ em.close();
+ emf.close();
+ }
+
+}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.mvel 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,150 @@
+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" )
+ ];
+
+
+with ( new Task() ) {
+ id = 1,
+ priority = 100,
+ peopleAssignments = (with ( new PeopleAssignments() ) {
+ taskInitiator = users.get('darth'),
+ potentialOwners = [users.get('bobba'), users.get('jabba')],
+ excludedOwners = [users.get('dalai'), users.get('christoper')],
+ taskStakeholders = [users.get('stuart'), users.get('jane')],
+ businessAdministrators = [users.get('peter'), users.get('steve')],
+ recipients = [users.get('sly'), users.get('liz')]
+ }),
+ taskData = (with ( new TaskData() ) {
+ activationTime = new Date( 10000000 ),
+ createdOn = new Date( 10000000 ),
+ expirationTime = new Date( 10000000 ),
+ status = Status.Created,
+ attachments = [
+ (with ( new Attachment() ) {
+ accessType = AccessType.Inline,
+ attachedAt = new Date( 10000000 ),
+ attachedBy = users.get('liz'),
+ contentType = "text",
+ name = "file.txt",
+ attachment = bytes1
+ }),
+ (with ( new Attachment() ) {
+ accessType = AccessType.Url,
+ attachedAt = new Date( 10000000 ),
+ attachedBy = users.get('liz'),
+ contentType = "text",
+ name = "file2.txt",
+ attachment = "http://domain.org/file.txt".bytes
+ })
+ ],
+ comments = [
+ (with ( new Comment ) {
+ addedBy = users.get('peter'),
+ addedDate = new Date( 10000000 ),
+ text = "this is a short comment"
+ }),
+ (with ( new Comment ) {
+ addedBy = users.get('steve'),
+ addedDate = new Date( 10000000 ),
+ text = "this is a loooooooooooooooooooooooooooooooooooooooooooooooong comment"
+ })
+ ]
+ }),
+ taskPresentationElements = (with ( new TaskPresentationElements() ) {
+ names = [ new IL8NText( "en-UK", "This is my task name" ),
+ new IL8NText( "en-DK", "Dies ist mein task Name" )],
+ subjects = [ new IL8NText( "en-UK", "This is my task subject" ),
+ new IL8NText( "en-DK", "Das ist mein task Thema" ) ],
+ descriptions = [ new IL8NText( "en-UK", "This is my task description" ),
+ new IL8NText( "en-DK", "Das ist mein task Beschreibung" ) ]
+ }),
+ delegation = ( with( new Delegation() ) {
+ allowed = Allowed.PotentialOwners,
+ delegates = [ groups.get('crusaders'), groups.get('knightsTempler') ]
+ }),
+ deadlines = ( with ( new Deadlines() ) {
+ startDeadlines = [
+ (with (new Deadline()) {
+ date = new Date( 10000000 ),
+ documentation = [ new IL8NText( "en-UK", "Start Deadline documentation" ),
+ new IL8NText( "en-DK", "Start Termin Dokumentation" ) ],
+ escalations = [
+ (with (new Escalation()) {
+ name = "My Start Escalation",
+ constraints = [new BooleanExpression( "mvel", "true" )],
+ notifications = [
+ (with (new Notification()) {
+ documentation = [ new IL8NText( "en-UK", "Start Notification documentation" ),
+ new IL8NText( "en-DK", "Start Anmeldung Dokumentation" ) ],
+ businessAdministrators = [ users.get('bruce'), users.get('peter') ],
+ recipients = [ users.get('tony'), users.get('darth') ],
+ notificationPresentationElements = (with (new NotificationPresentationElements()) {
+ names = [ new IL8NText( "en-UK", "This is my start notification name" ),
+ new IL8NText( "en-DK", "Dies ist mein start anmeldung Name" ) ],
+ subjects = [ new IL8NText( "en-UK", "This is my start notification subject" ),
+ new IL8NText( "en-DK", "Das ist mein start anmeldung Thema" ) ],
+ descriptions = [new IL8NText( "en-UK", "This is my start notification description" ),
+ new IL8NText( "en-DK", "Das ist mein start anmeldung Beschreibung" ) ]
+ })
+ })
+ ],
+ reassignments = [
+ (with (new Reassignment()) {
+ documentation = [ new IL8NText( "en-UK", "Start Reassignment documentation" ),
+ new IL8NText( "en-DK", "Start Neuzuweisung Dokumentation" ) ],
+ potentialOwners = [ users.get('bobba'), users.get('luke') ]
+ })
+ ]
+
+ })
+ ]
+ })
+ ],
+ endDeadlines = [
+ (with (new Deadline()) {
+ date = new Date( 10000000 ),
+ documentation = [ new IL8NText( "en-UK", "End Deadline documentation" ),
+ new IL8NText( "en-DK", "Ende Termin Dokumentation" ) ],
+ escalations = [
+ (with (new Escalation()) {
+ name = "My End Escalation",
+ constraints = [new BooleanExpression( "mvel", "true" )],
+ notifications = [
+ (with (new Notification()) {
+ documentation = [ new IL8NText( "en-UK", "End Notification documentation" ),
+ new IL8NText( "en-DK", "Ende Anmeldung Dokumentation" ) ],
+ businessAdministrators = [ users.get('bobba'), users.get('darth') ],
+ recipients = [ users.get('liz'), users.get('jane') ],
+ notificationPresentationElements = (with (new NotificationPresentationElements()) {
+ names = [ new IL8NText( "en-UK", "This is my end notification name" ),
+ new IL8NText( "en-DK", "Dies ist mein ende anmeldung Name" ) ],
+ subjects = [ new IL8NText( "en-UK", "This is my end notification subject" ),
+ new IL8NText( "en-DK", "Das ist mein ende anmeldung Thema" ) ],
+ descriptions = [new IL8NText( "en-UK", "This is my end notification description" ),
+ new IL8NText( "en-DK", "Das ist mein ende anmeldung Beschreibung" ) ]
+ })
+ })
+ ],
+ reassignments = [
+ (with (new Reassignment()) {
+ documentation = [ new IL8NText( "en-UK", "End Reassignment documentation" ),
+ new IL8NText( "en-DK", "Ende Neuzuweisung Dokumentation" ) ],
+ potentialOwners = [ users.get('stuart'), users.get('dalai') ]
+ })
+ ]
+
+ })
+ ]
+ })
+ ]
+ })
+};
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.xml (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/resources/org/drools/task/FullyPopulatedTask.xml 2008-08-26 06:22:51 UTC (rev 21900)
@@ -0,0 +1,602 @@
+<org.drools.task.Task>
+ <id>1</id>
+ <priority>100</priority>
+ <peopleAssignments>
+ <taskInitiator>
+ <firstName>Darth</firstName>
+ <lastName>Vader</lastName>
+ <id>1</id>
+ </taskInitiator>
+ <potentialOwners class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.User>
+ <firstName>Bobba</firstName>
+ <lastName>Fet</lastName>
+ <id>2</id>
+ </org.drools.task.User>
+ <org.drools.task.User>
+ <firstName>Jabba</firstName>
+ <lastName>Hutt</lastName>
+ <id>3</id>
+ </org.drools.task.User>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.peopleAssignments.potentialOwners</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.User reference="../../bag/org.drools.task.User"/>
+ <org.drools.task.User reference="../../bag/org.drools.task.User[2]"/>
+ </storedSnapshot>
+ </potentialOwners>
+ <excludedOwners class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.User>
+ <firstName>Dalai</firstName>
+ <lastName>Lama</lastName>
+ <id>4</id>
+ </org.drools.task.User>
+ <org.drools.task.User>
+ <firstName>Christoper</firstName>
+ <lastName>Columbus</lastName>
+ <id>5</id>
+ </org.drools.task.User>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.peopleAssignments.excludedOwners</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.User reference="../../bag/org.drools.task.User"/>
+ <org.drools.task.User reference="../../bag/org.drools.task.User[2]"/>
+ </storedSnapshot>
+ </excludedOwners>
+ <taskStakeholders class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.User>
+ <firstName>Stuart</firstName>
+ <lastName>Little</lastName>
+ <id>6</id>
+ </org.drools.task.User>
+ <org.drools.task.User>
+ <firstName>Jane</firstName>
+ <lastName>Austin</lastName>
+ <id>7</id>
+ </org.drools.task.User>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.peopleAssignments.taskStakeholders</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.User reference="../../bag/org.drools.task.User"/>
+ <org.drools.task.User reference="../../bag/org.drools.task.User[2]"/>
+ </storedSnapshot>
+ </taskStakeholders>
+ <businessAdministrators class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.User>
+ <firstName>Peter</firstName>
+ <lastName>Parker </lastName>
+ <id>8</id>
+ </org.drools.task.User>
+ <org.drools.task.User>
+ <firstName>Steve</firstName>
+ <lastName>Rogers</lastName>
+ <id>9</id>
+ </org.drools.task.User>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.peopleAssignments.businessAdministrators</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.User reference="../../bag/org.drools.task.User"/>
+ <org.drools.task.User reference="../../bag/org.drools.task.User[2]"/>
+ </storedSnapshot>
+ </businessAdministrators>
+ <recipients class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.User>
+ <firstName>Sly</firstName>
+ <lastName>Stalone</lastName>
+ <id>10</id>
+ </org.drools.task.User>
+ <org.drools.task.User>
+ <firstName>Elizabeth</firstName>
+ <lastName>Windsor</lastName>
+ <id>11</id>
+ </org.drools.task.User>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.peopleAssignments.recipients</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.User reference="../../bag/org.drools.task.User"/>
+ <org.drools.task.User reference="../../bag/org.drools.task.User[2]"/>
+ </storedSnapshot>
+ </recipients>
+ </peopleAssignments>
+ <delegation>
+ <allowed>PotentialOwners</allowed>
+ <delegates class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.Group>
+ <name>Crusaders</name>
+ <id>12</id>
+ </org.drools.task.Group>
+ <org.drools.task.Group>
+ <name>Knights Templer</name>
+ <id>13</id>
+ </org.drools.task.Group>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.delegation.delegates</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.Group reference="../../bag/org.drools.task.Group"/>
+ <org.drools.task.Group reference="../../bag/org.drools.task.Group[2]"/>
+ </storedSnapshot>
+ </delegates>
+ </delegation>
+ <presentationElements>
+ <names class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.IL8NText>
+ <id>15</id>
+ <language>en-UK</language>
+ <text>This is my task name</text>
+ </org.drools.task.IL8NText>
+ <org.drools.task.IL8NText>
+ <id>16</id>
+ <language>en-DK</language>
+ <text>Dies ist mein task Name</text>
+ </org.drools.task.IL8NText>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.presentationElements.names</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText"/>
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText[2]"/>
+ </storedSnapshot>
+ </names>
+ <subjects class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.IL8NText>
+ <id>17</id>
+ <language>en-UK</language>
+ <text>This is my task subject</text>
+ </org.drools.task.IL8NText>
+ <org.drools.task.IL8NText>
+ <id>18</id>
+ <language>en-DK</language>
+ <text>Das ist mein task Thema</text>
+ </org.drools.task.IL8NText>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.presentationElements.subjects</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText"/>
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText[2]"/>
+ </storedSnapshot>
+ </subjects>
+ <descriptions class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.IL8NText>
+ <id>13</id>
+ <language>en-UK</language>
+ <text>This is my task description</text>
+ </org.drools.task.IL8NText>
+ <org.drools.task.IL8NText>
+ <id>14</id>
+ <language>en-DK</language>
+ <text>Das ist mein task Beschreibung</text>
+ </org.drools.task.IL8NText>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.presentationElements.descriptions</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText"/>
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText[2]"/>
+ </storedSnapshot>
+ </descriptions>
+ </presentationElements>
+ <taskData>
+ <status>Created</status>
+ <createdOn>1970-01-01 02:46:40.0 GMT</createdOn>
+ <activationTime>1970-01-01 02:46:40.0 GMT</activationTime>
+ <expirationTime>1970-01-01 02:46:40.0 GMT</expirationTime>
+ <isSkipable>false</isSkipable>
+ <comments class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.Comment>
+ <id>1</id>
+ <text>this is a short comment</text>
+ <addedDate>1970-01-01 02:46:40.0 GMT</addedDate>
+ <addedBy reference="../../../../../peopleAssignments/businessAdministrators/bag/org.drools.task.User"/>
+ </org.drools.task.Comment>
+ <org.drools.task.Comment>
+ <id>2</id>
+ <text>this is a loooooooooooooooooooooooooooooooooooooooooooooooong comment</text>
+ <addedDate>1970-01-01 02:46:40.0 GMT</addedDate>
+ <addedBy reference="../../../../../peopleAssignments/businessAdministrators/bag/org.drools.task.User[2]"/>
+ </org.drools.task.Comment>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.taskData.comments</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.Comment reference="../../bag/org.drools.task.Comment"/>
+ <org.drools.task.Comment reference="../../bag/org.drools.task.Comment[2]"/>
+ </storedSnapshot>
+ </comments>
+ <attachments class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.Attachment>
+ <id>1</id>
+ <name>file.txt</name>
+ <accessType>Inline</accessType>
+ <contentType>text</contentType>
+ <attachedAt>1970-01-01 02:46:40.0 GMT</attachedAt>
+ <attachedBy reference="../../../../../peopleAssignments/recipients/bag/org.drools.task.User[2]"/>
+ <attachment>AQAAAQ==</attachment>
+ </org.drools.task.Attachment>
+ <org.drools.task.Attachment>
+ <id>2</id>
+ <name>file2.txt</name>
+ <accessType>Url</accessType>
+ <contentType>text</contentType>
+ <attachedAt>1970-01-01 02:46:40.0 GMT</attachedAt>
+ <attachedBy reference="../../../../../peopleAssignments/recipients/bag/org.drools.task.User[2]"/>
+ <attachment>aHR0cDovL2RvbWFpbi5vcmcvZmlsZS50eHQ=</attachment>
+ </org.drools.task.Attachment>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.taskData.attachments</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.Attachment reference="../../bag/org.drools.task.Attachment"/>
+ <org.drools.task.Attachment reference="../../bag/org.drools.task.Attachment[2]"/>
+ </storedSnapshot>
+ </attachments>
+ </taskData>
+ <deadlines>
+ <startDeadlines class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.Deadline>
+ <id>1</id>
+ <documentation class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.IL8NText>
+ <id>1</id>
+ <language>en-UK</language>
+ <text>Start Deadline documentation</text>
+ </org.drools.task.IL8NText>
+ <org.drools.task.IL8NText>
+ <id>2</id>
+ <language>en-DK</language>
+ <text>Start Termin Dokumentation</text>
+ </org.drools.task.IL8NText>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Deadline" reference="../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Deadline.documentation</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText"/>
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText[2]"/>
+ </storedSnapshot>
+ </documentation>
+ <date>1970-01-01 02:46:40.0 GMT</date>
+ <escalations class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.Escalation>
+ <id>1</id>
+ <name>My Escalation</name>
+ <constraints class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.BooleanExpression>
+ <id>1</id>
+ <type>mvel</type>
+ <expression>true</expression>
+ </org.drools.task.BooleanExpression>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Escalation" reference="../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Escalation.constraints</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.BooleanExpression reference="../../bag/org.drools.task.BooleanExpression"/>
+ </storedSnapshot>
+ </constraints>
+ <notifications class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.Notification>
+ <id>1</id>
+ <documentation class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.IL8NText>
+ <id>3</id>
+ <language>en-UK</language>
+ <text>Notification documentation</text>
+ </org.drools.task.IL8NText>
+ <org.drools.task.IL8NText>
+ <id>4</id>
+ <language>en-DK</language>
+ <text>Anmeldung Dokumentation</text>
+ </org.drools.task.IL8NText>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Notification" reference="../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Notification.documentation</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText"/>
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText[2]"/>
+ </storedSnapshot>
+ </documentation>
+ <priority>1000</priority>
+ <recipients class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.User>
+ <firstName>Tony</firstName>
+ <lastName>Stark </lastName>
+ <id>15</id>
+ </org.drools.task.User>
+ <org.drools.task.User reference="../../../../../../../../../../../../../peopleAssignments/taskInitiator"/>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Notification" reference="../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Notification.recipients</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.User reference="../../bag/org.drools.task.User"/>
+ <org.drools.task.User reference="../../../../../../../../../../../../../peopleAssignments/taskInitiator"/>
+ </storedSnapshot>
+ </recipients>
+ <businessAdministrators class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.User>
+ <firstName>Bruce</firstName>
+ <lastName>Wayne </lastName>
+ <id>14</id>
+ </org.drools.task.User>
+ <org.drools.task.User reference="../../../../../../../../../../../../../peopleAssignments/businessAdministrators/bag/org.drools.task.User"/>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Notification" reference="../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Notification.businessAdministrators</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.User reference="../../ba26-Aug-2008 05:50:37 org.hibernate.impl.SessionFactoryImpl close
+INFO: closing
+26-Aug-2008 05:50:37 org.hibernate.connection.DriverManagerConnectionProvider close
+INFO: cleaning up connection pool: jdbc:h2:file:\dev\drools\trunk7\drools-process\drools-process-task\mydb
+g/org.drools.task.User"/>
+ <org.drools.task.User reference="../../../../../../../../../../../../../peopleAssignments/businessAdministrators/bag/org.drools.task.User"/>
+ </storedSnapshot>
+ </businessAdministrators>
+ <presentationElements>
+ <names class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.IL8NText>
+ <id>7</id>
+ <language>en-UK</language>
+ <text>This is my notification name</text>
+ </org.drools.task.IL8NText>
+ <org.drools.task.IL8NText>
+ <id>8</id>
+ <language>en-DK</language>
+ <text>Dies ist mein anmeldung Name</text>
+ </org.drools.task.IL8NText>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Notification" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Notification.presentationElements.names</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText"/>
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText[2]"/>
+ </storedSnapshot>
+ </names>
+ <subjects class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.IL8NText>
+ <id>9</id>
+ <language>en-UK</language>
+ <text>This is my notification subject</text>
+ </org.drools.task.IL8NText>
+ <org.drools.task.IL8NText>
+ <id>10</id>
+ <language>en-DK</language>
+ <text>Das ist mein anmeldung Thema</text>
+ </org.drools.task.IL8NText>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Notification" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Notification.presentationElements.subjects</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText"/>
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText[2]"/>
+ </storedSnapshot>
+ </subjects>
+ <descriptions class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.IL8NText>
+ <id>5</id>
+ <language>en-UK</language>
+ <text>This is my notification description</text>
+ </org.drools.task.IL8NText>
+ <org.drools.task.IL8NText>
+ <id>6</id>
+ <language>en-DK</language>
+ <text>Das ist mein anmeldung Beschreibung</text>
+ </org.drools.task.IL8NText>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Notification" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Notification.presentationElements.descriptions</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText"/>
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText[2]"/>
+ </storedSnapshot>
+ </descriptions>
+ </presentationElements>
+ </org.drools.task.Notification>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Escalation" reference="../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Escalation.notifications</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.Notification reference="../../bag/org.drools.task.Notification"/>
+ </storedSnapshot>
+ </notifications>
+ <reassignments class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.Reassignment>
+ <id>1</id>
+ <documentation class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.IL8NText>
+ <id>11</id>
+ <language>en-UK</language>
+ <text>Reassignment documentation</text>
+ </org.drools.task.IL8NText>
+ <org.drools.task.IL8NText>
+ <id>12</id>
+ <language>en-DK</language>
+ <text>Neuzuweisung Dokumentation</text>
+ </org.drools.task.IL8NText>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Reassignment" reference="../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Reassignment.documentation</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText"/>
+ <org.drools.task.IL8NText reference="../../bag/org.drools.task.IL8NText[2]"/>
+ </storedSnapshot>
+ </documentation>
+ <potentialOwners class="org.hibernate.collection.PersistentBag">
+ <bag>
+ <org.drools.task.User reference="../../../../../../../../../../../../../peopleAssignments/potentialOwners/bag/org.drools.task.User"/>
+ <org.drools.task.User>
+ <firstName>Luke</firstName>
+ <lastName>Cage </lastName>
+ <id>16</id>
+ </org.drools.task.User>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Reassignment" reference="../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Reassignment.potentialOwners</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.User reference="../../../../../../../../../../../../../peopleAssignments/potentialOwners/bag/org.drools.task.User"/>
+ <org.drools.task.User reference="../../bag/org.drools.task.User[2]"/>
+ </storedSnapshot>
+ </potentialOwners>
+ </org.drools.task.Reassignment>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Escalation" reference="../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Escalation.reassignments</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.Reassignment reference="../../bag/org.drools.task.Reassignment"/>
+ </storedSnapshot>
+ </reassignments>
+ </org.drools.task.Escalation>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Deadline" reference="../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Deadline.escalations</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.Escalation reference="../../bag/org.drools.task.Escalation"/>
+ </storedSnapshot>
+ </escalations>
+ </org.drools.task.Deadline>
+ </bag>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.deadlines.startDeadlines</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list">
+ <org.drools.task.Deadline reference="../../bag/org.drools.task.Deadline"/>
+ </storedSnapshot>
+ </startDeadlines>
+ <endDeadlines class="org.hibernate.collection.PersistentBag">
+ <bag class="java.util.Collections$EmptyList"/>
+ <initialized>true</initialized>
+ <owner class="org.drools.task.Task" reference="../../.."/>
+ <cachedSize>-1</cachedSize>
+ <role>org.drools.task.Task.deadlines.endDeadlines</role>
+ <key class="long">1</key>
+ <dirty>false</dirty>
+ <storedSnapshot class="list"/>
+ </endDeadlines>
+ </deadlines>
+</org.drools.task.Task>
\ No newline at end of file
More information about the jboss-svn-commits
mailing list