[OFBiz] SVN: r4944 - in trunk/framework/shark: . config dtd entitydef lib servicedef src/org/enhydra/shark src/org/ofbiz/shark src/org/ofbiz/shark/audit src/org/ofbiz/shark/container src/org/ofbiz/shark/expression src/org/ofbiz/shark/instance src/org/ofbiz/shark/logging src/org/ofbiz/shark/mapping src/org/ofbiz/shark/repository src/org/ofbiz/shark/requester src/org/ofbiz/shark/service src/org/ofbiz/shark/transaction src/org/ofbiz/shark/user webapp/shark/WEB-INF/actions/process webapp/shark/WEB-INF/actions/repository webapp/shark/WEB-INF/pagedefs/process webapp/shark/process webapp/shark/repository

jaz at svn.ofbiz.org jaz at svn.ofbiz.org
Tue May 3 09:40:40 EDT 2005


Author: jaz
Date: 2005-05-03 08:39:15 -0500 (Tue, 03 May 2005)
New Revision: 4944

Added:
   trunk/framework/shark/dtd/
   trunk/framework/shark/dtd/TC-1025_schema_10_xpdl.xsd
   trunk/framework/shark/lib/sharkassignment-xpdlstraightparticipantmapping.jar
   trunk/framework/shark/lib/sharkauthentication-ldap.jar
   trunk/framework/shark/lib/sharkeventaudit-smtp.jar
   trunk/framework/shark/lib/sharkinteroperability-wfxml.jar
   trunk/framework/shark/lib/sharklimitagent-standard.jar
   trunk/framework/shark/lib/sharkusergroup-ldap.jar
   trunk/framework/shark/lib/sharkutilities-common.jar
   trunk/framework/shark/lib/sharkwebservice-asap.jar
   trunk/framework/shark/lib/sharkwebservice-asapapi.jar
   trunk/framework/shark/lib/sharkwebservice-asaputils.jar
   trunk/framework/shark/lib/sharkwebservice-wfxml.jar
   trunk/framework/shark/lib/sharkwebservice-wfxmlapi.jar
   trunk/framework/shark/lib/sharkwebservice-wfxmlutils.jar
   trunk/framework/shark/lib/wrd.jar
   trunk/framework/shark/servicedef/
   trunk/framework/shark/servicedef/services_test.xml
   trunk/framework/shark/src/org/ofbiz/shark/audit/AuditEntityObject.java
   trunk/framework/shark/src/org/ofbiz/shark/expression/
   trunk/framework/shark/src/org/ofbiz/shark/expression/ActivityIteratorCondExprBldr.java
   trunk/framework/shark/src/org/ofbiz/shark/expression/AssignmentIteratorCondExprBldr.java
   trunk/framework/shark/src/org/ofbiz/shark/expression/BaseEntityCondExprBldr.java
   trunk/framework/shark/src/org/ofbiz/shark/expression/ExpressionBuilderMgr.java
   trunk/framework/shark/src/org/ofbiz/shark/expression/ProcessIteratorCondExprBldr.java
   trunk/framework/shark/src/org/ofbiz/shark/expression/ProcessMgrIteratorCondExprBldr.java
   trunk/framework/shark/src/org/ofbiz/shark/expression/ResourceIteratorCondExprBldr.java
   trunk/framework/shark/src/org/ofbiz/shark/instance/InstanceEntityObject.java
   trunk/framework/shark/src/org/ofbiz/shark/requester/MailRequester.java
   trunk/framework/shark/src/org/ofbiz/shark/requester/SimpleRequester.java
   trunk/framework/shark/src/org/ofbiz/shark/user/PartyUserGroupMgr.java
Removed:
   trunk/framework/shark/src/org/ofbiz/shark/requester/PersistentRequester.java
   trunk/framework/shark/src/org/ofbiz/shark/requester/PersistentRequesterException.java
   trunk/framework/shark/src/org/ofbiz/shark/requester/RequesterFactory.java
Modified:
   trunk/framework/shark/build.xml
   trunk/framework/shark/config/shark.properties
   trunk/framework/shark/entitydef/entitymodel.xml
   trunk/framework/shark/lib/sharkassignment-historyrelated.jar
   trunk/framework/shark/lib/sharkassignment-standard.jar
   trunk/framework/shark/lib/sharkcaching-lru.jar
   trunk/framework/shark/lib/sharkclientapi.jar
   trunk/framework/shark/lib/sharkcommonapi.jar
   trunk/framework/shark/lib/sharkcorbaclientapi.jar
   trunk/framework/shark/lib/sharkcorbaserver.jar
   trunk/framework/shark/lib/sharkinternalapi.jar
   trunk/framework/shark/lib/sharkkernel-standard.jar
   trunk/framework/shark/lib/sharklimitagent-timer.jar
   trunk/framework/shark/lib/sharklogging-standard.jar
   trunk/framework/shark/lib/sharkprocesslocking-memory.jar
   trunk/framework/shark/lib/sharkrepositorypersistence-filesystem.jar
   trunk/framework/shark/lib/sharkscripting-standard.jar
   trunk/framework/shark/lib/sharksecurity-standard.jar
   trunk/framework/shark/lib/sharktoolagent-standard.jar
   trunk/framework/shark/lib/sharkutilities-map.jar
   trunk/framework/shark/lib/sharkutilities-misc.jar
   trunk/framework/shark/lib/sharkxpdl-standard.jar
   trunk/framework/shark/ofbiz-component.xml
   trunk/framework/shark/src/org/enhydra/shark/ThreadedToolAgentManager.java
   trunk/framework/shark/src/org/ofbiz/shark/audit/AssignmentEventAudit.java
   trunk/framework/shark/src/org/ofbiz/shark/audit/CreateProcessEventAudit.java
   trunk/framework/shark/src/org/ofbiz/shark/audit/DataEventAudit.java
   trunk/framework/shark/src/org/ofbiz/shark/audit/EntityAuditMgr.java
   trunk/framework/shark/src/org/ofbiz/shark/audit/EventAudit.java
   trunk/framework/shark/src/org/ofbiz/shark/audit/StateEventAudit.java
   trunk/framework/shark/src/org/ofbiz/shark/container/SharkContainer.java
   trunk/framework/shark/src/org/ofbiz/shark/instance/Activity.java
   trunk/framework/shark/src/org/ofbiz/shark/instance/ActivityVariable.java
   trunk/framework/shark/src/org/ofbiz/shark/instance/AndJoinEntry.java
   trunk/framework/shark/src/org/ofbiz/shark/instance/Assignment.java
   trunk/framework/shark/src/org/ofbiz/shark/instance/Deadline.java
   trunk/framework/shark/src/org/ofbiz/shark/instance/EntityPersistentMgr.java
   trunk/framework/shark/src/org/ofbiz/shark/instance/Process.java
   trunk/framework/shark/src/org/ofbiz/shark/instance/ProcessMgr.java
   trunk/framework/shark/src/org/ofbiz/shark/instance/ProcessVariable.java
   trunk/framework/shark/src/org/ofbiz/shark/instance/Resource.java
   trunk/framework/shark/src/org/ofbiz/shark/logging/DebugLoggingManager.java
   trunk/framework/shark/src/org/ofbiz/shark/mapping/EntityApplicationMap.java
   trunk/framework/shark/src/org/ofbiz/shark/mapping/EntityParticipantMap.java
   trunk/framework/shark/src/org/ofbiz/shark/mapping/EntityParticipantMappingMgr.java
   trunk/framework/shark/src/org/ofbiz/shark/repository/EntityRepositoryMgr.java
   trunk/framework/shark/src/org/ofbiz/shark/requester/AbstractRequester.java
   trunk/framework/shark/src/org/ofbiz/shark/requester/LoggingRequester.java
   trunk/framework/shark/src/org/ofbiz/shark/requester/ServiceRequester.java
   trunk/framework/shark/src/org/ofbiz/shark/service/SharkServiceEngine.java
   trunk/framework/shark/src/org/ofbiz/shark/transaction/JtaSharkTransactionFactory.java
   trunk/framework/shark/src/org/ofbiz/shark/transaction/JtaTransaction.java
   trunk/framework/shark/src/org/ofbiz/shark/user/GenericUserGroupMgr.java
   trunk/framework/shark/webapp/shark/WEB-INF/actions/process/processDetailList.bsh
   trunk/framework/shark/webapp/shark/WEB-INF/actions/process/processList.bsh
   trunk/framework/shark/webapp/shark/WEB-INF/actions/repository/showRepository.bsh
   trunk/framework/shark/webapp/shark/WEB-INF/pagedefs/process/processList.xml
   trunk/framework/shark/webapp/shark/process/processDetailList.ftl
   trunk/framework/shark/webapp/shark/process/processList.ftl
   trunk/framework/shark/webapp/shark/repository/showRepository.ftl
Log:
updated shark libs; fixed integrations; added first pass of expression builder (still in progress)


Modified: trunk/framework/shark/build.xml
===================================================================
--- trunk/framework/shark/build.xml	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/build.xml	2005-05-03 13:39:15 UTC (rev 4944)
@@ -30,22 +30,24 @@
     <!-- Initialization of all property settings                            -->
     <!-- ================================================================== -->
 
-    <target name="init">                
+    <target name="init">
         <property environment="env"/>
         <property name="desc" value="Shark Component"/>
         <property name="name" value="ofbiz-shark"/>
         <property name="src.dir" value="src"/>
         <property name="dtd.dir" value="dtd"/>
-        <property name="lib.dir" value="lib"/>        
-        <property name="build.dir" value="build"/>        
+        <property name="lib.dir" value="lib"/>
+        <property name="build.dir" value="build"/>
     </target>
 
-    <target name="classpath">		        
+    <target name="classpath">
         <path id="local.class.path">
             <fileset dir="${lib.dir}" includes="*.jar"/>
-            <fileset dir="../../base/lib" includes="*.jar"/>          
+            <fileset dir="../../base/lib" includes="*.jar"/>
+            <fileset dir="../../base/lib/commons" includes="*.jar"/>
             <fileset dir="../../base/lib/scripting" includes="*.jar"/>
             <fileset dir="../../base/build/lib" includes="*.jar"/>
+            <fileset dir="../minerva/lib" includes="*.jar"/>
             <fileset dir="../entity/lib" includes="*.jar"/>
             <fileset dir="../entity/build/lib" includes="*.jar"/>
             <fileset dir="../security/build/lib" includes="*.jar"/>
@@ -54,67 +56,79 @@
             <fileset dir="../entityext/build/lib" includes="*.jar"/>
         </path>
     </target>
-    
+
     <!-- ================================================================== -->
     <!-- Removes all created files and directories                          -->
     <!-- ================================================================== -->
 
     <target name="clean" depends="clean-lib">
-        <delete dir="${build.dir}"/>               
+        <delete dir="${build.dir}"/>
     </target>
 
     <target name="clean-lib" depends="init">
         <delete dir="${build.dir}/lib"/>
     </target>
-    
+
     <!-- ================================================================== -->
     <!-- Makes sure the needed directory structure is in place              -->
     <!-- ================================================================== -->
 
     <target name="prepare" depends="clean-lib">
-        <mkdir dir="${build.dir}/classes"/>         
+        <mkdir dir="${build.dir}/classes"/>
         <mkdir dir="${build.dir}/lib"/>
     </target>
-    
+
     <target name="prepare-docs" depends="init">
-        <mkdir dir="${build.dir}/javadocs"/>        
+        <mkdir dir="${build.dir}/javadocs"/>
     </target>
-    
+
     <!-- ================================================================== -->
     <!-- Compilation of the source files                                                                                                                         -->
-    <!-- ================================================================== -->               
+    <!-- ================================================================== -->
 
     <target name="classes" depends="prepare,classpath">
     	<javac debug="on" deprecation="on" destdir="${build.dir}/classes">
             <classpath>
-                <path refid="local.class.path"/>                
+                <path refid="local.class.path"/>
             </classpath>
             <src path="${src.dir}"/>
             <exclude name="org/ofbiz/shark/SharkGuiContainer.java"/>
         </javac>
-        <!-- also put the DTDs in the jar file... -->       
+        <!-- also put the DTDs in the jar file... -->
         <copy todir="${build.dir}/classes">
             <!--<fileset dir="${dtd.dir}" includes="*.dtd"/>-->
             <fileset dir="${src.dir}" includes="**/*.properties,**/*.xml,**/*.bsh,**/*.logic,**/*.js,**/*.jacl,**/*.py"/>
         </copy>
     </target>
-    
+
     <target name="jar" depends="classes">
-        <jar jarfile="${build.dir}/lib/${name}.jar" basedir="${build.dir}/classes"/>         
-    </target>    
-    
+        <jar jarfile="${build.dir}/lib/${name}.jar" basedir="${build.dir}/classes"/>
+    </target>
+
     <!-- ================================================================== -->
     <!-- Build JavaDoc                                                      -->
     <!-- ================================================================== -->
 
     <target name="docs" depends="prepare-docs,classpath">
-        <javadoc packagenames="org.ofbiz.shark.*" 
+        <javadoc packagenames="org.ofbiz.shark.*"
                  classpathref="local.class.path"
-                 destdir="${build.dir}/javadocs" 
+                 destdir="${build.dir}/javadocs"
                  Windowtitle="Open for Business - ${desc}">
-            <sourcepath path="${src.dir}"/>            
+            <sourcepath path="${src.dir}"/>
         </javadoc>
     </target>
-    
-    <target name="all" depends="jar,docs"/>   
+
+    <target name="all" depends="jar,docs"/>
+
+    <!-- ================================================================== -->
+    <!-- Copy Libs                                                          -->
+    <!-- ================================================================== -->
+
+    <target name="copyLibs">
+        <copy todir="lib" flatten="true">
+            <fileset dir="../../../Shark/output/Shark/lib/wrapper" includes="*.jar" excludes="**/*-dods.jar"/>
+            <fileset dir="../../../Shark/output/Shark/lib/engine" includes="*.jar" excludes="**/*-dods.jar"/>
+            <fileset dir="../../../Shark/output/Shark/lib" includes="*.jar" excludes="**/*-dods.jar"/>
+        </copy>
+    </target>
 </project>

Modified: trunk/framework/shark/config/shark.properties
===================================================================
--- trunk/framework/shark/config/shark.properties	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/config/shark.properties	2005-05-03 13:39:15 UTC (rev 4944)
@@ -15,17 +15,20 @@
 ParticipantMapPersistenceManagerClassName=org.ofbiz.shark.mapping.EntityParticipantMappingMgr
 ApplicationMapPersistenceManagerClassName=org.ofbiz.shark.mapping.EntityApplicationMappingMgr
 ScriptMapPersistenceManagerClassName=org.ofbiz.shark.mapping.EntityScriptMappingMgr
-UserGroupManagerClassName=org.ofbiz.shark.user.GenericUserGroupMgr
+UserGroupManagerClassName=org.ofbiz.shark.user.PartyUserGroupMgr
 AuthenticationManagerClassName=org.ofbiz.shark.auth.OfbizAuthenticationMgr
 TransactionManagerClassName=org.ofbiz.shark.transaction.JtaSharkTransactionFactory
 UserTransactionManagerClassName=org.ofbiz.shark.transaction.JtaUserTransactionFactory
-LoggingManagerClassName=org.ofbiz.shark.logging.DebugLoggingManager
+#LoggingManagerClassName=org.ofbiz.shark.logging.DebugLoggingManager
 
 #------------------------- Shark defaults -------------------------
 SecurityManagerClassName=org.enhydra.shark.security.StandardSecurityManager
 ScriptingManagerClassName=org.enhydra.shark.scripting.StandardScriptingManager
 LimitAgentManagerClassName=org.enhydra.shark.limitagent.TimerLimitAgentManager
 ToolAgentFactoryClassName=org.enhydra.shark.toolagent.ToolAgentFactoryImpl
+SecurityManagerClassName=org.enhydra.shark.security.StandardSecurityManager
+ScriptingManagerClassName=org.enhydra.shark.scripting.StandardScriptingManager
+LoggingManagerClassName=org.enhydra.shark.logging.StandardLoggingManager
 
 # Kernel configuration - OFBiz threaded kernel
 ToolAgentManagerClassName=org.enhydra.shark.ThreadedToolAgentManager
@@ -56,6 +59,10 @@
 ToolAgent.JavaScriptToolAgent=org.enhydra.shark.toolagent.JavaScriptToolAgent
 ToolAgent.BshToolAgent=org.enhydra.shark.toolagent.BshToolAgent
 ToolAgent.RuntimeApplicationToolAgent=org.enhydra.shark.toolagent.RuntimeApplicationToolAgent
-#ToolAgent.SOAPToolAgent=org.enhydra.shark.toolagent.SOAPToolAgent
+ToolAgent.MailToolAgent=org.enhydra.shark.toolagent.MailToolAgent
+ToolAgent.SOAPToolAgent=org.enhydra.shark.toolagent.SOAPToolAgent
+DefaultToolAgent=org.enhydra.shark.toolagent.DefaultToolAgent
 
-DefaultToolAgent=org.enhydra.shark.toolagent.DefaultToolAgent
+# Settings
+Deadlines.pollingTime=300000
+Limits.pollingTime=60000
\ No newline at end of file

Added: trunk/framework/shark/dtd/TC-1025_schema_10_xpdl.xsd
===================================================================
--- trunk/framework/shark/dtd/TC-1025_schema_10_xpdl.xsd	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/dtd/TC-1025_schema_10_xpdl.xsd	2005-05-03 13:39:15 UTC (rev 4944)
@@ -0,0 +1,691 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema targetNamespace="http://www.wfmc.org/2002/XPDL1.0" xmlns:xpdl="http://www.wfmc.org/2002/XPDL1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+   <xsd:element name="Activities">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Activity" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Activity">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Description" minOccurs="0"/>
+            <xsd:element ref="xpdl:Limit" minOccurs="0"/>
+            <xsd:choice>
+               <xsd:element ref="xpdl:Route"/>
+               <xsd:element ref="xpdl:Implementation"/>
+               <xsd:element ref="xpdl:BlockActivity"/>
+            </xsd:choice>
+            <xsd:element ref="xpdl:Performer" minOccurs="0"/>
+            <xsd:element ref="xpdl:StartMode" minOccurs="0"/>
+            <xsd:element ref="xpdl:FinishMode" minOccurs="0"/>
+            <xsd:element ref="xpdl:Priority" minOccurs="0"/>
+            <xsd:element ref="xpdl:Deadline" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element ref="xpdl:SimulationInformation" minOccurs="0"/>
+            <xsd:element ref="xpdl:Icon" minOccurs="0"/>
+            <xsd:element ref="xpdl:Documentation" minOccurs="0"/>
+            <xsd:element ref="xpdl:TransitionRestrictions" minOccurs="0"/>
+            <xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="Name" type="xsd:string"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="ActivitySet">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Activities" minOccurs="0"/>
+            <xsd:element ref="xpdl:Transitions" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="ActivitySets">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:ActivitySet" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="ActualParameter" type="xsd:string"/>
+   <xsd:element name="ActualParameters">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:ActualParameter" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Application">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Description" minOccurs="0"/>
+            <xsd:choice>
+               <xsd:element ref="xpdl:FormalParameters"/>
+               <xsd:element ref="xpdl:ExternalReference" minOccurs="0"/>
+            </xsd:choice>
+            <xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="Name" type="xsd:string"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Applications">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Application" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="ArrayType">
+      <xsd:complexType>
+         <xsd:group ref="xpdl:DataTypes"/>
+         <xsd:attribute name="LowerIndex" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="UpperIndex" type="xsd:NMTOKEN" use="required"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Author" type="xsd:string"/>
+   <xsd:element name="Automatic">
+      <xsd:complexType/>
+   </xsd:element>
+   <xsd:element name="BasicType">
+      <xsd:complexType>
+         <xsd:attribute name="Type" use="required">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="STRING"/>
+                  <xsd:enumeration value="FLOAT"/>
+                  <xsd:enumeration value="INTEGER"/>
+                  <xsd:enumeration value="REFERENCE"/>
+                  <xsd:enumeration value="DATETIME"/>
+                  <xsd:enumeration value="BOOLEAN"/>
+                  <xsd:enumeration value="PERFORMER"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="BlockActivity">
+      <xsd:complexType>
+         <xsd:attribute name="BlockId" type="xsd:NMTOKEN" use="required"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Codepage" type="xsd:string"/>
+   <xsd:element name="Condition">
+      <xsd:complexType mixed="true">
+         <xsd:choice minOccurs="0" maxOccurs="unbounded">
+            <xsd:element ref="xpdl:Xpression"/>
+         </xsd:choice>
+         <xsd:attribute name="Type">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="CONDITION"/>
+                  <xsd:enumeration value="OTHERWISE"/>
+                  <xsd:enumeration value="EXCEPTION"/>
+                  <xsd:enumeration value="DEFAULTEXCEPTION"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="ConformanceClass">
+      <xsd:complexType>
+         <xsd:attribute name="GraphConformance">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="FULL_BLOCKED"/>
+                  <xsd:enumeration value="LOOP_BLOCKED"/>
+                  <xsd:enumeration value="NON_BLOCKED"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Cost" type="xsd:string"/>
+   <xsd:element name="CostUnit" type="xsd:string"/>
+   <xsd:element name="Countrykey" type="xsd:string"/>
+   <xsd:element name="Created" type="xsd:string"/>
+   <xsd:element name="DataField">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:DataType"/>
+            <xsd:element ref="xpdl:InitialValue" minOccurs="0"/>
+            <xsd:element ref="xpdl:Length" minOccurs="0"/>
+            <xsd:element ref="xpdl:Description" minOccurs="0"/>
+            <xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="Name" type="xsd:string"/>
+         <xsd:attribute name="IsArray" default="FALSE">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="TRUE"/>
+                  <xsd:enumeration value="FALSE"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="DataFields">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:DataField" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="DataType">
+      <xsd:complexType>
+         <xsd:group ref="xpdl:DataTypes"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:group name="DataTypes">
+      <xsd:choice>
+         <xsd:element ref="xpdl:BasicType"/>
+         <xsd:element ref="xpdl:DeclaredType"/>
+         <xsd:element ref="xpdl:SchemaType"/>
+         <xsd:element ref="xpdl:ExternalReference"/>
+         <xsd:element ref="xpdl:RecordType"/>
+         <xsd:element ref="xpdl:UnionType"/>
+         <xsd:element ref="xpdl:EnumerationType"/>
+         <xsd:element ref="xpdl:ArrayType"/>
+         <xsd:element ref="xpdl:ListType"/>
+      </xsd:choice>
+   </xsd:group>
+   <xsd:element name="Deadline">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element name="DeadlineCondition" minOccurs="1" maxOccurs="1"/>
+            <xsd:element name="ExceptionName" minOccurs="1" maxOccurs="1"/>
+         </xsd:sequence>
+         <xsd:attribute name="Execution">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="ASYNCHR"/>
+                  <xsd:enumeration value="SYNCHR"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="DeclaredType">
+      <xsd:complexType>
+         <xsd:attribute name="Id" type="xsd:IDREF" use="required"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Description" type="xsd:string"/>
+   <xsd:element name="Documentation" type="xsd:string"/>
+   <xsd:element name="Duration" type="xsd:string"/>
+   <xsd:element name="EnumerationType">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:EnumerationValue" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="EnumerationValue">
+      <xsd:complexType>
+         <xsd:attribute name="Name" type="xsd:NMTOKEN" use="required"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="ExtendedAttribute">
+      <xsd:complexType mixed="true">
+         <xsd:choice minOccurs="0" maxOccurs="unbounded">
+            <xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:choice>
+         <xsd:attribute name="Name" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="Value" type="xsd:string"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="ExtendedAttributes">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:ExtendedAttribute" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="ExternalPackage">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="href" type="xsd:string"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="ExternalPackages">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:ExternalPackage" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="ExternalReference">
+      <xsd:complexType>
+         <xsd:attribute name="xref" type="xsd:NMTOKEN" use="optional"/>
+         <xsd:attribute name="location" type="xsd:anyURI" use="required"/>
+         <xsd:attribute name="namespace" type="xsd:anyURI" use="optional"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="FinishMode">
+      <xsd:complexType>
+         <xsd:choice>
+            <xsd:element ref="xpdl:Automatic"/>
+            <xsd:element ref="xpdl:Manual"/>
+         </xsd:choice>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="FormalParameter">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:DataType"/>
+            <xsd:element ref="xpdl:Description" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="Index" type="xsd:NMTOKEN"/>
+         <xsd:attribute name="Mode" default="IN">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="IN"/>
+                  <xsd:enumeration value="OUT"/>
+                  <xsd:enumeration value="INOUT"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="FormalParameters">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:FormalParameter" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Icon" type="xsd:string"/>
+   <xsd:element name="Implementation">
+      <xsd:complexType>
+         <xsd:choice>
+            <xsd:element ref="xpdl:No"/>
+            <xsd:element ref="xpdl:Tool" maxOccurs="unbounded"/>
+            <xsd:element ref="xpdl:SubFlow"/>
+         </xsd:choice>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="InitialValue" type="xsd:string"/>
+   <xsd:element name="Join">
+      <xsd:complexType>
+         <xsd:attribute name="Type">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="AND"/>
+                  <xsd:enumeration value="XOR"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Length" type="xsd:string"/>
+   <xsd:element name="Limit" type="xsd:string"/>
+   <xsd:element name="ListType">
+      <xsd:complexType>
+         <xsd:group ref="xpdl:DataTypes"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Manual">
+      <xsd:complexType/>
+   </xsd:element>
+   <xsd:element name="Member">
+      <xsd:complexType>
+         <xsd:group ref="xpdl:DataTypes"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="No">
+      <xsd:complexType/>
+   </xsd:element>
+   <xsd:element name="Package">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:PackageHeader"/>
+            <xsd:element ref="xpdl:RedefinableHeader" minOccurs="0"/>
+            <xsd:element ref="xpdl:ConformanceClass" minOccurs="0"/>
+            <xsd:element ref="xpdl:Script" minOccurs="0"/>
+            <xsd:element ref="xpdl:ExternalPackages" minOccurs="0"/>
+            <xsd:element ref="xpdl:TypeDeclarations" minOccurs="0"/>
+            <xsd:element ref="xpdl:Participants" minOccurs="0"/>
+            <xsd:element ref="xpdl:Applications" minOccurs="0"/>
+            <xsd:element ref="xpdl:DataFields" minOccurs="0"/>
+            <xsd:element ref="xpdl:WorkflowProcesses" minOccurs="0"/>
+            <xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="Name" type="xsd:string"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="PackageHeader">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:XPDLVersion"/>
+            <xsd:element ref="xpdl:Vendor"/>
+            <xsd:element ref="xpdl:Created"/>
+            <xsd:element ref="xpdl:Description" minOccurs="0"/>
+            <xsd:element ref="xpdl:Documentation" minOccurs="0"/>
+            <xsd:element ref="xpdl:PriorityUnit" minOccurs="0"/>
+            <xsd:element ref="xpdl:CostUnit" minOccurs="0"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Participant">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:ParticipantType"/>
+            <xsd:element ref="xpdl:Description" minOccurs="0"/>
+            <xsd:element ref="xpdl:ExternalReference" minOccurs="0"/>
+            <xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="Name" type="xsd:string"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="ParticipantType">
+      <xsd:complexType>
+         <xsd:attribute name="Type" use="required">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="RESOURCE_SET"/>
+                  <xsd:enumeration value="RESOURCE"/>
+                  <xsd:enumeration value="ROLE"/>
+                  <xsd:enumeration value="ORGANIZATIONAL_UNIT"/>
+                  <xsd:enumeration value="HUMAN"/>
+                  <xsd:enumeration value="SYSTEM"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Participants">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Participant" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Performer" type="xsd:string"/>
+   <xsd:element name="Priority" type="xsd:string"/>
+   <xsd:element name="PriorityUnit" type="xsd:string"/>
+   <xsd:element name="ProcessHeader">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Created" minOccurs="0"/>
+            <xsd:element ref="xpdl:Description" minOccurs="0"/>
+            <xsd:element ref="xpdl:Priority" minOccurs="0"/>
+            <xsd:element ref="xpdl:Limit" minOccurs="0"/>
+            <xsd:element ref="xpdl:ValidFrom" minOccurs="0"/>
+            <xsd:element ref="xpdl:ValidTo" minOccurs="0"/>
+            <xsd:element ref="xpdl:TimeEstimation" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="DurationUnit">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="Y"/>
+                  <xsd:enumeration value="M"/>
+                  <xsd:enumeration value="D"/>
+                  <xsd:enumeration value="h"/>
+                  <xsd:enumeration value="m"/>
+                  <xsd:enumeration value="s"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="RecordType">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Member" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="RedefinableHeader">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Author" minOccurs="0"/>
+            <xsd:element ref="xpdl:Version" minOccurs="0"/>
+            <xsd:element ref="xpdl:Codepage" minOccurs="0"/>
+            <xsd:element ref="xpdl:Countrykey" minOccurs="0"/>
+            <xsd:element ref="xpdl:Responsibles" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="PublicationStatus">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="UNDER_REVISION"/>
+                  <xsd:enumeration value="RELEASED"/>
+                  <xsd:enumeration value="UNDER_TEST"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Responsible" type="xsd:string"/>
+   <xsd:element name="Responsibles">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Responsible" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Route">
+      <xsd:complexType/>
+   </xsd:element>
+   <xsd:element name="SchemaType">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Script">
+      <xsd:complexType>
+         <xsd:attribute name="Type" type="xsd:string" use="required"/>
+         <xsd:attribute name="Version" type="xsd:string" use="optional"/>
+         <xsd:attribute name="Grammar" type="xsd:anyURI" use="optional"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="SimulationInformation">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Cost"/>
+            <xsd:element ref="xpdl:TimeEstimation"/>
+         </xsd:sequence>
+         <xsd:attribute name="Instantiation">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="ONCE"/>
+                  <xsd:enumeration value="MULTIPLE"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Split">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:TransitionRefs" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Type">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="AND"/>
+                  <xsd:enumeration value="XOR"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="StartMode">
+      <xsd:complexType>
+         <xsd:choice>
+            <xsd:element ref="xpdl:Automatic"/>
+            <xsd:element ref="xpdl:Manual"/>
+         </xsd:choice>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="SubFlow">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:ActualParameters" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Id" type="xsd:string" use="required"/>
+         <xsd:attribute name="Execution">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="ASYNCHR"/>
+                  <xsd:enumeration value="SYNCHR"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="TimeEstimation">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:WaitingTime" minOccurs="0"/>
+            <xsd:element ref="xpdl:WorkingTime" minOccurs="0"/>
+            <xsd:element ref="xpdl:Duration" minOccurs="0"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Tool">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:ActualParameters" minOccurs="0"/>
+            <xsd:element ref="xpdl:Description" minOccurs="0"/>
+            <xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="Type">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="APPLICATION"/>
+                  <xsd:enumeration value="PROCEDURE"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Transition">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Condition" minOccurs="0"/>
+            <xsd:element ref="xpdl:Description" minOccurs="0"/>
+            <xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="From" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="To" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="Name" type="xsd:string"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="TransitionRef">
+      <xsd:complexType>
+         <xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="TransitionRefs">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:TransitionRef" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="TransitionRestriction">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Join" minOccurs="0"/>
+            <xsd:element ref="xpdl:Split" minOccurs="0"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="TransitionRestrictions">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:TransitionRestriction" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="Transitions">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Transition" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="TypeDeclaration">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:group ref="xpdl:DataTypes"/>
+            <xsd:element ref="xpdl:Description" minOccurs="0"/>
+            <xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Id" type="xsd:ID" use="required"/>
+         <xsd:attribute name="Name" type="xsd:string"/>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="TypeDeclarations">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:TypeDeclaration" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="UnionType">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:Member" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="ValidFrom" type="xsd:string"/>
+   <xsd:element name="ValidTo" type="xsd:string"/>
+   <xsd:element name="Vendor" type="xsd:string"/>
+   <xsd:element name="Version" type="xsd:string"/>
+   <xsd:element name="WaitingTime" type="xsd:string"/>
+   <xsd:element name="WorkflowProcess">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:ProcessHeader"/>
+            <xsd:element ref="xpdl:RedefinableHeader" minOccurs="0"/>
+            <xsd:element ref="xpdl:FormalParameters" minOccurs="0"/>
+            <xsd:element ref="xpdl:DataFields" minOccurs="0"/>
+            <xsd:element ref="xpdl:Participants" minOccurs="0"/>
+            <xsd:element ref="xpdl:Applications" minOccurs="0"/>
+            <xsd:element ref="xpdl:ActivitySets" minOccurs="0"/>
+            <xsd:element ref="xpdl:Activities" minOccurs="0"/>
+            <xsd:element ref="xpdl:Transitions" minOccurs="0"/>
+            <xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
+         <xsd:attribute name="Name" type="xsd:string"/>
+         <xsd:attribute name="AccessLevel">
+            <xsd:simpleType>
+               <xsd:restriction base="xsd:NMTOKEN">
+                  <xsd:enumeration value="PUBLIC"/>
+                  <xsd:enumeration value="PRIVATE"/>
+               </xsd:restriction>
+            </xsd:simpleType>
+         </xsd:attribute>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="WorkflowProcesses">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element ref="xpdl:WorkflowProcess" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+   <xsd:element name="WorkingTime" type="xsd:string"/>
+   <xsd:element name="XPDLVersion" type="xsd:string"/>
+   <xsd:element name="Xpression">
+      <xsd:complexType mixed="true">
+         <xsd:choice minOccurs="0" maxOccurs="unbounded">
+            <xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+         </xsd:choice>
+      </xsd:complexType>
+   </xsd:element>
+</xsd:schema>

Modified: trunk/framework/shark/entitydef/entitymodel.xml
===================================================================
--- trunk/framework/shark/entitydef/entitymodel.xml	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/entitydef/entitymodel.xml	2005-05-03 13:39:15 UTC (rev 4944)
@@ -29,7 +29,7 @@
  */
 -->
 
-<entitymodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+<entitymodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/entitymodel.xsd">
   <!-- ========================================================= -->
   <!-- ======================== Defaults ======================= -->
@@ -149,8 +149,9 @@
       <field name="processId" type="id-vlong"></field>
       <field name="setDefinitionId" type="id-long"></field>
       <field name="definitionId" type="id-long"></field>
-      <field name="subFlowId" type="id-long"></field>
-      <field name="blockId" type="id-long"></field>
+      <field name="subFlowId" type="id-vlong"></field>
+      <field name="blockId" type="id-vlong"></field>
+      <field name="isSubAsync" type="indicator"></field>
       <field name="resourceUser" type="long-varchar"></field>
       <field name="activityName" type="long-varchar"></field>
       <field name="description" type="long-varchar"></field>
@@ -160,6 +161,12 @@
       <field name="acceptedTime" type="date-time"></field>
       <field name="lastStateTime" type="date-time"></field>
       <prim-key field="activityId"/>
+      <relation type="one" fk-name="WF_ACT_PROC" rel-entity-name="WfProcess">
+          <key-map field-name="processId"/>
+      </relation>
+      <relation type="one" fk-name="WF_ACT_SUBF" rel-entity-name="WfProcess">
+          <key-map field-name="subFlowId" rel-field-name="processId"/>
+      </relation>
     </entity>
     <entity entity-name="WfActivityVariable"
             package-name="org.ofbiz.shark.instance"
@@ -167,7 +174,11 @@
       <field name="activityVariableId" type="id"></field>
       <field name="activityId" type="id-vlong"></field>
       <field name="definitionId" type="id-long"></field>
-      <field name="varValue" type="blob"></field>
+      <field name="valueField" type="name"></field>
+      <field name="strValue" type="very-long"></field>
+      <field name="numValue" type="numeric"></field>
+      <field name="dblValue" type="floating-point"></field>
+      <field name="objValue" type="blob"></field>
       <field name="isModified" type="indicator"></field>
       <prim-key field="activityVariableId"/>
     </entity>
@@ -187,8 +198,15 @@
       <field name="activityId" type="id-vlong"></field>
       <field name="processId" type="id-vlong"></field>
       <field name="userName" type="id-vlong"></field>
+      <field name="isValid" type="indicator"></field>
       <prim-key field="activityId"/>
       <prim-key field="userName"/>
+      <relation type="one" fk-name="WF_ASSIGN_PROC" rel-entity-name="WfProcess">
+          <key-map field-name="processId"/>
+      </relation>
+      <relation type="one" fk-name="WF_ASSIGN_ACT" rel-entity-name="WfActivity">
+          <key-map field-name="activityId"/>
+      </relation>
     </entity>
     <entity entity-name="WfDeadline"
             package-name="org.ofbiz.shark.instance"
@@ -198,13 +216,22 @@
       <field name="activityId" type="id-vlong"></field>
       <field name="exceptionName" type="long-varchar"></field>
       <field name="timeLimit" type="numeric"></field>
+      <field name="isExecuted" type="indicator"></field>
       <field name="isSync" type="indicator"></field>
       <prim-key field="deadlineId"/>
+      <relation type="one" fk-name="WF_DEADLINE_PROC" rel-entity-name="WfProcess">
+          <key-map field-name="processId"/>
+      </relation>
+      <relation type="one" fk-name="WF_DEADLINE_ACT" rel-entity-name="WfActivity">
+          <key-map field-name="activityId"/>
+      </relation>
     </entity>
     <entity entity-name="WfProcess"
             package-name="org.ofbiz.shark.instance"
             title="">
       <field name="processId" type="id-vlong"></field>
+      <field name="packageId" type="id-long"></field>
+      <field name="packageVer" type="long-varchar"></field>
       <field name="mgrName" type="id-vlong"></field>
       <field name="definitionId" type="id-long"></field>
       <field name="activityReqProcessId" type="id-long"></field>
@@ -214,17 +241,22 @@
       <field name="description" type="long-varchar"></field>
       <field name="currentState" type="long-varchar"></field>
       <field name="priority" type="numeric"></field>
+      <field name="externalReq" type="blob"></field>
+      <field name="createdTime" type="date-time"></field>
       <field name="startedTime" type="date-time"></field>
       <field name="lastStateTime" type="date-time"></field>
       <prim-key field="processId"/>
+      <relation type="one" fk-name="WF_PROC_MGR" rel-entity-name="WfProcessMgr">
+          <key-map field-name="mgrName"/>
+      </relation>
     </entity>
     <entity entity-name="WfProcessMgr"
             package-name="org.ofbiz.shark.instance"
             title="">
       <field name="mgrName" type="id-vlong"></field>
       <field name="packageId" type="id-long"></field>
+      <field name="packageVer" type="long-varchar"></field>
       <field name="definitionId" type="id-long"></field>
-      <field name="procVersion" type="long-varchar"></field>
       <field name="created" type="long-varchar"></field>
       <field name="currentState" type="numeric"></field>
       <prim-key field="mgrName"/>
@@ -235,7 +267,11 @@
       <field name="processVariableId" type="id"></field>
       <field name="processId" type="id-vlong"></field>
       <field name="definitionId" type="id-long"></field>
-      <field name="varValue" type="blob"></field>      
+      <field name="valueField" type="name"></field>
+      <field name="strValue" type="very-long"></field>
+      <field name="numValue" type="numeric"></field>
+      <field name="dblValue" type="floating-point"></field>
+      <field name="objValue" type="blob"></field>
       <prim-key field="processVariableId"/>
     </entity>
     <entity entity-name="WfResource"

Modified: trunk/framework/shark/lib/sharkassignment-historyrelated.jar
===================================================================
(Binary files differ)

Modified: trunk/framework/shark/lib/sharkassignment-standard.jar
===================================================================
(Binary files differ)

Added: trunk/framework/shark/lib/sharkassignment-xpdlstraightparticipantmapping.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharkassignment-xpdlstraightparticipantmapping.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/framework/shark/lib/sharkauthentication-ldap.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharkauthentication-ldap.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/framework/shark/lib/sharkcaching-lru.jar
===================================================================
(Binary files differ)

Modified: trunk/framework/shark/lib/sharkclientapi.jar
===================================================================
(Binary files differ)

Modified: trunk/framework/shark/lib/sharkcommonapi.jar
===================================================================
(Binary files differ)

Modified: trunk/framework/shark/lib/sharkcorbaclientapi.jar
===================================================================
(Binary files differ)

Modified: trunk/framework/shark/lib/sharkcorbaserver.jar
===================================================================
(Binary files differ)

Added: trunk/framework/shark/lib/sharkeventaudit-smtp.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharkeventaudit-smtp.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/framework/shark/lib/sharkinternalapi.jar
===================================================================
(Binary files differ)

Added: trunk/framework/shark/lib/sharkinteroperability-wfxml.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharkinteroperability-wfxml.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/framework/shark/lib/sharkkernel-standard.jar
===================================================================
(Binary files differ)

Added: trunk/framework/shark/lib/sharklimitagent-standard.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharklimitagent-standard.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/framework/shark/lib/sharklimitagent-timer.jar
===================================================================
(Binary files differ)

Modified: trunk/framework/shark/lib/sharklogging-standard.jar
===================================================================
(Binary files differ)

Modified: trunk/framework/shark/lib/sharkprocesslocking-memory.jar
===================================================================
(Binary files differ)

Modified: trunk/framework/shark/lib/sharkrepositorypersistence-filesystem.jar
===================================================================
(Binary files differ)

Modified: trunk/framework/shark/lib/sharkscripting-standard.jar
===================================================================
(Binary files differ)

Modified: trunk/framework/shark/lib/sharksecurity-standard.jar
===================================================================
(Binary files differ)

Modified: trunk/framework/shark/lib/sharktoolagent-standard.jar
===================================================================
(Binary files differ)

Added: trunk/framework/shark/lib/sharkusergroup-ldap.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharkusergroup-ldap.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/framework/shark/lib/sharkutilities-common.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharkutilities-common.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/framework/shark/lib/sharkutilities-map.jar
===================================================================
(Binary files differ)

Modified: trunk/framework/shark/lib/sharkutilities-misc.jar
===================================================================
(Binary files differ)

Added: trunk/framework/shark/lib/sharkwebservice-asap.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharkwebservice-asap.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/framework/shark/lib/sharkwebservice-asapapi.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharkwebservice-asapapi.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/framework/shark/lib/sharkwebservice-asaputils.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharkwebservice-asaputils.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/framework/shark/lib/sharkwebservice-wfxml.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharkwebservice-wfxml.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/framework/shark/lib/sharkwebservice-wfxmlapi.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharkwebservice-wfxmlapi.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/framework/shark/lib/sharkwebservice-wfxmlutils.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/sharkwebservice-wfxmlutils.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/framework/shark/lib/sharkxpdl-standard.jar
===================================================================
(Binary files differ)

Added: trunk/framework/shark/lib/wrd.jar
===================================================================
(Binary files differ)


Property changes on: trunk/framework/shark/lib/wrd.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/framework/shark/ofbiz-component.xml
===================================================================
--- trunk/framework/shark/ofbiz-component.xml	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/ofbiz-component.xml	2005-05-03 13:39:15 UTC (rev 4944)
@@ -31,6 +31,7 @@
     <classpath type="jar" location="build/lib/*"/>
     <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel.xml"/>
     <entity-resource type="group" reader-name="main" loader="main" location="entitydef/entitygroup.xml"/>
+    <service-resource type="model" loader="main" location="servicedef/services_test.xml"/>
     <webapp name="shark"
         title="Shark"
         server="default-server"

Added: trunk/framework/shark/servicedef/services_test.xml
===================================================================
--- trunk/framework/shark/servicedef/services_test.xml	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/servicedef/services_test.xml	2005-05-03 13:39:15 UTC (rev 4944)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ *  Copyright (c) 2001-2005 The Open For Business Project - www.ofbiz.org
+ *
+ *  Permission is hereby granted, free of charge, to any person obtaining a
+ *  copy of this software and associated documentation files (the "Software"),
+ *  to deal in the Software without restriction, including without limitation
+ *  the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ *  and/or sell copies of the Software, and to permit persons to whom the
+ *  Software is furnished to do so, subject to the following conditions:
+ *
+ *  The above copyright notice and this permission notice shall be included
+ *  in all copies or substantial portions of the Software.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ *  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ *  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+ *  OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+ *  THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-->
+
+<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/services.xsd">
+    <description>OFBIZ Shark Test Services</description>
+    <vendor>OFBiz</vendor>
+    <version>1.0</version>
+
+    <service name="sharkTest" engine="workflow" export="true" use-transaction="false" 
+            location="ofb_test" invoke="Test1">
+        <description>Shark Workflow Test Service</description>
+    </service>
+</services>
\ No newline at end of file


Property changes on: trunk/framework/shark/servicedef/services_test.xml
___________________________________________________________________
Name: svn:mime-type
   + text/xml
Name: svn:keywords
   + "Id Rev Author"
Name: svn:eol-style
   + native

Modified: trunk/framework/shark/src/org/enhydra/shark/ThreadedToolAgentManager.java
===================================================================
--- trunk/framework/shark/src/org/enhydra/shark/ThreadedToolAgentManager.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/enhydra/shark/ThreadedToolAgentManager.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -44,7 +44,7 @@
 /**
  * @author     <a href="mailto:jaz at ofbiz.org">Andy Zeneski</a>
  * @version    $Rev$
- * @since      Mar 30, 2004
+ * @since      3.2
  */
 public class ThreadedToolAgentManager implements ToolAgentManager {
 

Modified: trunk/framework/shark/src/org/ofbiz/shark/audit/AssignmentEventAudit.java
===================================================================
--- trunk/framework/shark/src/org/ofbiz/shark/audit/AssignmentEventAudit.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/ofbiz/shark/audit/AssignmentEventAudit.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -45,10 +45,8 @@
     protected GenericValue assignmentEventAudit = null;
     private boolean newValue = false;
 
-    protected AssignmentEventAudit() {}
-
-    public AssignmentEventAudit(GenericDelegator delegator, String eventAuditId) {
-        super(delegator, eventAuditId);
+    public AssignmentEventAudit(EntityAuditMgr mgr, GenericDelegator delegator, String eventAuditId) {
+        super(mgr, delegator, eventAuditId);
         if (this.delegator != null) {
             try {
                 this.assignmentEventAudit = delegator.findByPrimaryKey("WfAssignmentEventAudit", UtilMisc.toMap("eventAuditId", eventAuditId));
@@ -60,14 +58,14 @@
         }
     }
 
-    public AssignmentEventAudit(GenericDelegator delegator) {
-        super(delegator);
+    public AssignmentEventAudit(EntityAuditMgr mgr, GenericDelegator delegator) {
+        super(mgr, delegator);
         this.newValue = true;
         this.assignmentEventAudit = delegator.makeValue("WfAssignmentEventAudit", UtilMisc.toMap("eventAuditId", this.eventAuditId));
     }
 
-    public AssignmentEventAudit(GenericValue assignmentEventAudit) {
-        super(assignmentEventAudit.getDelegator(), assignmentEventAudit.getString("eventAuditId"));
+    public AssignmentEventAudit(EntityAuditMgr mgr, GenericValue assignmentEventAudit) {
+        super(mgr, assignmentEventAudit.getDelegator(), assignmentEventAudit.getString("eventAuditId"));
         this.assignmentEventAudit = assignmentEventAudit;
     }
 

Added: trunk/framework/shark/src/org/ofbiz/shark/audit/AuditEntityObject.java
===================================================================
--- trunk/framework/shark/src/org/ofbiz/shark/audit/AuditEntityObject.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/ofbiz/shark/audit/AuditEntityObject.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -0,0 +1,65 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001-2005 The Open For Business Project - www.ofbiz.org
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+ * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+package org.ofbiz.shark.audit;
+
+import org.ofbiz.entity.GenericDelegator;
+import org.ofbiz.entity.GenericEntityException;
+
+/**
+ * 
+ * @author     <a href="mailto:jaz at ofbiz.org">Andy Zeneski</a>
+ * @version    $Rev:$
+ * @since      3.3
+ */
+
+public abstract class AuditEntityObject {
+
+    protected transient GenericDelegator delegator = null;
+    protected EntityAuditMgr mgr = null;
+    protected String delegatorName = null;
+
+    public AuditEntityObject(EntityAuditMgr mgr, GenericDelegator delegator) {
+        this.delegatorName = delegator.getDelegatorName();
+        this.delegator = delegator;
+        this.mgr = mgr;
+    }
+
+    public EntityAuditMgr getAuditManager() {
+        return this.mgr;
+    }
+
+    public GenericDelegator getGenericDelegator() {
+        if (this.delegator == null && delegatorName != null) {
+            this.delegator = GenericDelegator.getGenericDelegator(delegatorName);
+        }
+        return this.delegator;
+    }
+
+    public abstract void store() throws GenericEntityException;
+
+    public abstract void reload() throws GenericEntityException;
+
+    public abstract void remove() throws GenericEntityException;
+}


Property changes on: trunk/framework/shark/src/org/ofbiz/shark/audit/AuditEntityObject.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:keywords
   + "Id Rev Author"
Name: svn:eol-style
   + native

Modified: trunk/framework/shark/src/org/ofbiz/shark/audit/CreateProcessEventAudit.java
===================================================================
--- trunk/framework/shark/src/org/ofbiz/shark/audit/CreateProcessEventAudit.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/ofbiz/shark/audit/CreateProcessEventAudit.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -45,10 +45,8 @@
     protected GenericValue createProcessEventAudit = null;
     private boolean newValue = false;
 
-    protected CreateProcessEventAudit() {}
-
-    public CreateProcessEventAudit(GenericDelegator delegator, String eventAuditId) {
-        super(delegator, eventAuditId);
+    public CreateProcessEventAudit(EntityAuditMgr mgr, GenericDelegator delegator, String eventAuditId) {
+        super(mgr, delegator, eventAuditId);
         if (this.delegator != null) {
             try {
                 this.createProcessEventAudit = delegator.findByPrimaryKey("WfCreateProcessEventAudit", UtilMisc.toMap("eventAuditId", eventAuditId));
@@ -60,14 +58,14 @@
         }
     }
 
-    public CreateProcessEventAudit(GenericDelegator delegator) {
-        super(delegator);
+    public CreateProcessEventAudit(EntityAuditMgr mgr, GenericDelegator delegator) {
+        super(mgr, delegator);
         this.newValue = true;
         this.createProcessEventAudit = delegator.makeValue("WfCreateProcessEventAudit", UtilMisc.toMap("eventAuditId", this.eventAuditId));
     }
 
-    public CreateProcessEventAudit(GenericValue createProcessEventAudit) {
-        super(createProcessEventAudit.getDelegator(), createProcessEventAudit.getString("eventAuditId"));
+    public CreateProcessEventAudit(EntityAuditMgr mgr, GenericValue createProcessEventAudit) {
+        super(mgr, createProcessEventAudit.getDelegator(), createProcessEventAudit.getString("eventAuditId"));
         this.createProcessEventAudit = createProcessEventAudit;
     }
 
@@ -119,6 +117,14 @@
         return createProcessEventAudit.getString("pActivityDefId");
     }
 
+    public void setPActivitySetDefinitionId(String s) {
+        // TODO: Implement Me!
+    }
+
+    public String getPActivitySetDefinitionId() {
+        return null;  // TODO: Implement Me!
+    }
+
     public void setPProcessDefinitionId(String ppdId) {
         createProcessEventAudit.set("pProcessDefId", ppdId);
     }

Modified: trunk/framework/shark/src/org/ofbiz/shark/audit/DataEventAudit.java
===================================================================
--- trunk/framework/shark/src/org/ofbiz/shark/audit/DataEventAudit.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/ofbiz/shark/audit/DataEventAudit.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -52,10 +52,8 @@
     protected GenericValue dataEventAudit = null;
     private boolean newValue = false;
 
-    protected DataEventAudit() {}
-
-    public DataEventAudit(GenericDelegator delegator, String eventAuditId) {
-        super(delegator, eventAuditId);
+    public DataEventAudit(EntityAuditMgr mgr, GenericDelegator delegator, String eventAuditId) {
+        super(mgr, delegator, eventAuditId);
         if (this.delegator != null) {
             try {
                 this.dataEventAudit = delegator.findByPrimaryKey("WfDataEventAudit", UtilMisc.toMap("eventAuditId", eventAuditId));
@@ -67,14 +65,14 @@
         }
     }
 
-    public DataEventAudit(GenericDelegator delegator) {
-        super(delegator);
+    public DataEventAudit(EntityAuditMgr mgr, GenericDelegator delegator) {
+        super(mgr, delegator);
         this.newValue = true;
         this.dataEventAudit = delegator.makeValue("WfDataEventAudit", UtilMisc.toMap("eventAuditId", this.eventAuditId));
     }
 
-    public DataEventAudit(GenericValue dataEventAudit) {
-        super(dataEventAudit.getDelegator(), dataEventAudit.getString("eventAuditId"));
+    public DataEventAudit(EntityAuditMgr mgr, GenericValue dataEventAudit) {
+        super(mgr, dataEventAudit.getDelegator(), dataEventAudit.getString("eventAuditId"));
         this.dataEventAudit = dataEventAudit;
     }
         

Modified: trunk/framework/shark/src/org/ofbiz/shark/audit/EntityAuditMgr.java
===================================================================
--- trunk/framework/shark/src/org/ofbiz/shark/audit/EntityAuditMgr.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/ofbiz/shark/audit/EntityAuditMgr.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -43,19 +43,19 @@
 
     // create (new) methods
     public AssignmentEventAuditPersistenceInterface createAssignmentEventAudit() {
-        return new AssignmentEventAudit(SharkContainer.getDelegator());
+        return new AssignmentEventAudit(this, SharkContainer.getDelegator());
     }
 
     public CreateProcessEventAuditPersistenceInterface createCreateProcessEventAudit() {
-        return new CreateProcessEventAudit(SharkContainer.getDelegator());
+        return new CreateProcessEventAudit(this, SharkContainer.getDelegator());
     }
 
     public DataEventAuditPersistenceInterface createDataEventAudit() {
-        return new DataEventAudit(SharkContainer.getDelegator());
+        return new DataEventAudit(this, SharkContainer.getDelegator());
     }
 
     public StateEventAuditPersistenceInterface createStateEventAudit() {
-        return new StateEventAudit(SharkContainer.getDelegator());
+        return new StateEventAudit(this, SharkContainer.getDelegator());
     }
 
     // persist (store) methods
@@ -174,7 +174,7 @@
             while (i.hasNext()) {
                 GenericValue v = (GenericValue) i.next();
                 if (v != null) {
-                    createProcessEvents.add(new CreateProcessEventAudit(delegator, v.getString("eventAuditId")));
+                    createProcessEvents.add(new CreateProcessEventAudit(this, delegator, v.getString("eventAuditId")));
                 }
             }
         }
@@ -197,7 +197,7 @@
             while (i.hasNext()) {
                 GenericValue v = (GenericValue) i.next();
                 if (v != null) {
-                    stateEvents.add(new StateEventAudit(delegator, v.getString("eventAuditId")));
+                    stateEvents.add(new StateEventAudit(this, delegator, v.getString("eventAuditId")));
                 }
             }
         }
@@ -220,7 +220,7 @@
             while (i.hasNext()) {
                 GenericValue v = (GenericValue) i.next();
                 if (v != null) {
-                    dataEvents.add(new DataEventAudit(delegator, v.getString("eventAuditId")));
+                    dataEvents.add(new DataEventAudit(this, delegator, v.getString("eventAuditId")));
                 }
             }
         }
@@ -244,7 +244,7 @@
             while (i.hasNext()) {
                 GenericValue v = (GenericValue) i.next();
                 if (v != null) {
-                    assignmentEvents.add(new AssignmentEventAudit(delegator, v.getString("eventAuditId")));
+                    assignmentEvents.add(new AssignmentEventAudit(this, delegator, v.getString("eventAuditId")));
                 }
             }
         }
@@ -267,7 +267,7 @@
             while (i.hasNext()) {
                 GenericValue v = (GenericValue) i.next();
                 if (v != null) {
-                    stateEvents.add(new StateEventAudit(delegator, v.getString("eventAuditId")));
+                    stateEvents.add(new StateEventAudit(this, delegator, v.getString("eventAuditId")));
                 }
             }
         }
@@ -290,7 +290,7 @@
             while (i.hasNext()) {
                 GenericValue v = (GenericValue) i.next();
                 if (v != null) {
-                    dataEvents.add(new DataEventAudit(delegator, v.getString("eventAuditId")));
+                    dataEvents.add(new DataEventAudit(this, delegator, v.getString("eventAuditId")));
                 }
             }
         }

Modified: trunk/framework/shark/src/org/ofbiz/shark/audit/EventAudit.java
===================================================================
--- trunk/framework/shark/src/org/ofbiz/shark/audit/EventAudit.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/ofbiz/shark/audit/EventAudit.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -39,19 +39,16 @@
  * @version    $Rev$
  * @since      3.1
  */
-public class EventAudit implements EventAuditPersistenceInterface {
+public class EventAudit extends AuditEntityObject implements EventAuditPersistenceInterface {
 
     public static final String module = EventAudit.class.getName();
 
-    protected GenericDelegator delegator = null;
     protected String eventAuditId = null;
     private GenericValue eventAudit = null;
     private boolean newValue = false;
 
-    protected EventAudit() {}
-
-    public EventAudit(GenericDelegator delegator, String eventAuditId) {
-        this.delegator = delegator;
+    public EventAudit(EntityAuditMgr mgr, GenericDelegator delegator, String eventAuditId) {
+        super(mgr, delegator);
         this.eventAuditId = eventAuditId;
         if (this.delegator != null) {
             try {
@@ -64,18 +61,17 @@
         }
     }
 
-    public EventAudit(GenericDelegator delegator) {
+    public EventAudit(EntityAuditMgr mgr, GenericDelegator delegator) {
+        super(mgr, delegator);
         this.newValue = true;
-        this.delegator = delegator;
-
         this.eventAuditId = delegator.getNextSeqId("WfEventAudit");
         this.eventAudit = delegator.makeValue("WfEventAudit", UtilMisc.toMap("eventAuditId", eventAuditId));
     }
 
-    public EventAudit(GenericValue eventAudit) {
+    public EventAudit(EntityAuditMgr mgr, GenericValue eventAudit) {
+        super(mgr, eventAudit.getDelegator());
         this.eventAuditId = eventAudit.getString("eventAuditId");
         this.eventAudit = eventAudit;
-        this.delegator = eventAudit.getDelegator();
     }
 
     public String getEventAuditId() {
@@ -154,6 +150,14 @@
         return eventAudit.getString("activityDefId");
     }
 
+    public void setActivitySetDefinitionId(String s) {
+        // TODO: Implement Me!
+    }
+
+    public String getActivitySetDefinitionId() {
+        return null;  // TODO: Implement Me!
+    }
+
     public void setProcessDefinitionId(String pdId) {
         eventAudit.set("processDefId", pdId);
     }

Modified: trunk/framework/shark/src/org/ofbiz/shark/audit/StateEventAudit.java
===================================================================
--- trunk/framework/shark/src/org/ofbiz/shark/audit/StateEventAudit.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/ofbiz/shark/audit/StateEventAudit.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -45,10 +45,8 @@
     protected GenericValue stateEventAudit = null;
     private boolean newValue = false;
 
-    protected StateEventAudit() {}
-
-    public StateEventAudit(GenericDelegator delegator, String eventAuditId) {
-        super(delegator, eventAuditId);
+    public StateEventAudit(EntityAuditMgr mgr, GenericDelegator delegator, String eventAuditId) {
+        super(mgr, delegator, eventAuditId);
         if (this.delegator != null) {
             try {
                 this.stateEventAudit = delegator.findByPrimaryKey("WfStateEventAudit", UtilMisc.toMap("eventAuditId", eventAuditId));
@@ -60,14 +58,14 @@
         }
     }
 
-    public StateEventAudit(GenericDelegator delegator) {
-        super(delegator);
+    public StateEventAudit(EntityAuditMgr mgr, GenericDelegator delegator) {
+        super(mgr, delegator);
         this.newValue = true;
         this.stateEventAudit = delegator.makeValue("WfStateEventAudit", UtilMisc.toMap("eventAuditId", this.eventAuditId));
     }
 
-    public StateEventAudit(GenericValue stateEventAudit) {
-        super(stateEventAudit.getDelegator(), stateEventAudit.getString("eventAuditId"));
+    public StateEventAudit(EntityAuditMgr mgr, GenericValue stateEventAudit) {
+        super(mgr, stateEventAudit.getDelegator(), stateEventAudit.getString("eventAuditId"));
         this.stateEventAudit = stateEventAudit;
     }
 

Modified: trunk/framework/shark/src/org/ofbiz/shark/container/SharkContainer.java
===================================================================
--- trunk/framework/shark/src/org/ofbiz/shark/container/SharkContainer.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/ofbiz/shark/container/SharkContainer.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -39,7 +39,6 @@
 import org.ofbiz.entity.GenericDelegator;
 import org.ofbiz.entity.GenericValue;
 import org.ofbiz.entity.GenericEntityException;
-import org.ofbiz.shark.requester.RequesterFactory;
 
 import org.enhydra.shark.Shark;
 import org.enhydra.shark.corba.SharkCORBAServer;
@@ -79,7 +78,7 @@
     public void init(String[] args, String configFile) {
         this.configFile = configFile;
     }
-    
+
     public boolean start() throws ContainerException {
         ContainerConfig.Container cfg = ContainerConfig.getContainer("shark-container", configFile);
         ContainerConfig.Container.Property dispatcherProp = cfg.getProperty("dispatcher-name");
@@ -126,7 +125,7 @@
 
         // make sure the admin user exists
         if (SharkContainer.adminUser == null) {
-            Debug.logWarning("Invalid admi-user; UserLogin not found not starting Shark!", module);
+            Debug.logWarning("Invalid admin-user; UserLogin not found not starting Shark!", module);
             return false;
         }
 
@@ -145,7 +144,7 @@
                     orbThread = new Thread(this);
                     orbThread.setDaemon(false);
                     orbThread.setName(this.getClass().getName());
-                    orbThread.start();                    
+                    orbThread.start();
                     Debug.logInfo("Started Shark CORBA service", module);
                 } catch (IllegalArgumentException e) {
                     throw new ContainerException(e);
@@ -154,11 +153,7 @@
                 }
             }
         }
-
-        // restore the persisted requesters
-        int restored = RequesterFactory.restoreRequesters(adminUser);
-        Debug.logInfo("Restored persisted requesters [" + restored + "]", module);
-
+       
         // re-eval current assignments
         ExecutionAdministration exAdmin = SharkContainer.getAdminInterface().getExecutionAdministration();
         try {
@@ -206,6 +201,10 @@
         return SharkContainer.dispatcher;
     }
 
+    public static GenericValue getAdminUser() {
+        return SharkContainer.adminUser;
+    }
+
     public static AdminInterface getAdminInterface() {
         return shark.getAdminInterface();
     }

Added: trunk/framework/shark/src/org/ofbiz/shark/expression/ActivityIteratorCondExprBldr.java
===================================================================
--- trunk/framework/shark/src/org/ofbiz/shark/expression/ActivityIteratorCondExprBldr.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/ofbiz/shark/expression/ActivityIteratorCondExprBldr.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -0,0 +1,354 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001-2005 The Open For Business Project - www.ofbiz.org
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+ * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+package org.ofbiz.shark.expression;
+
+import java.sql.Timestamp;
+
+import org.enhydra.shark.api.RootException;
+import org.enhydra.shark.api.common.ActivityIteratorExpressionBuilder;
+import org.ofbiz.entity.condition.EntityExpr;
+import org.ofbiz.entity.condition.EntityOperator;
+import org.ofbiz.entity.model.ModelKeyMap;
+
+/**
+ *
+ * @author     <a href="mailto:jaz at ofbiz.org">Andy Zeneski</a>
+ * @version    $Rev:$
+ * @since      3.3
+ */
+public class ActivityIteratorCondExprBldr extends BaseEntityCondExprBldr implements ActivityIteratorExpressionBuilder {
+
+    protected boolean addedProcess = false;
+
+    public ActivityIteratorCondExprBldr() {
+        this.addEntity("WFAC", "WfActivity");
+        this.addAllFields("WFAC");
+    }
+
+    public void addProcess(String field, String fieldAlias) {
+        if (!addedProcess) {
+            this.addEntity("WFPR", "WfProcess");
+            this.addLink("WFAC", "WFAC", false, ModelKeyMap.makeKeyMapList("processId"));
+        }
+        this.addField("WFPR", field, fieldAlias);
+    }
+
+    public ActivityIteratorExpressionBuilder and() {
+        this.setOr(false);
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder or() {
+        this.setOr(true);
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder not() {
+        this.setNot(true);
+        return this;
+    }
+
+    // WfProcess conditions
+
+    public ActivityIteratorExpressionBuilder addPackageIdEquals(String s) {
+        this.addProcess("packageId", "packageId");
+        this.addCondition(new EntityExpr("packageId", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, s));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessDefIdEquals(String s) {
+        this.addProcess("definitionId", "procDefId");
+        this.addCondition(new EntityExpr("procDefId", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, s));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addMgrNameEquals(String s) {
+        this.addProcess("mgrName", "mgrName");
+        this.addCondition(new EntityExpr("mgrName", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, s));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addVersionEquals(String s) {
+        this.addProcess("packageVer", "packageVer");
+        this.addCondition(new EntityExpr("packageVer", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, s));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addIsEnabled() {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessStateEquals(String s) {
+        this.addProcess("packageVer", "packageVer");
+        this.addCondition(new EntityExpr("packageVer", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, s));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessStateStartsWith(String s) {
+        this.addProcess("currentState", "procState");
+        this.addCondition(new EntityExpr("procState", isNotSet ? EntityOperator.NOT_LIKE : EntityOperator.LIKE, s + "%"));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessIdEquals(String s) {
+        this.addCondition(new EntityExpr("processId", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, s));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessNameEquals(String s) {
+        this.addProcess("processName", "processName");
+        this.addCondition(new EntityExpr("processName", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, s));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessPriorityEquals(int i) {
+        this.addProcess("priority", "procPriority");
+        this.addCondition(new EntityExpr("procPriority", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, new Long(i)));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessDescriptionEquals(String s) {
+        this.addProcess("description", "procDesc");
+        this.addCondition(new EntityExpr("procDesc", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, s));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessDescriptionContains(String s) {
+        this.addProcess("description", "procDesc");
+        this.addCondition(new EntityExpr("procDesc", isNotSet ? EntityOperator.NOT_LIKE : EntityOperator.LIKE, "%" + s + "%"));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessRequesterIdEquals(String s) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessStartTimeEquals(long l) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessStartTimeBefore(long l) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessStartTimeAfter(long l) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessLastStateTimeEquals(long l) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessLastStateTimeBefore(long l) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessLastStateTimeAfter(long l) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessVariableEquals(String s, Object o) throws RootException {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessVariableEquals(String s, String s1) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessVariableEquals(String s, long l) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessVariableGreaterThan(String s, long l) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessVariableLessThan(String s, long l) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessVariableEquals(String s, double v) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessVariableGreaterThan(String s, double v) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addProcessVariableLessThan(String s, double v) {
+        return this;
+    }
+
+    // WfActivity Conditions
+
+    public ActivityIteratorExpressionBuilder addStateEquals(String s) {
+        this.addCondition(new EntityExpr("currentState", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, s));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addStateStartsWith(String s) {
+        this.addCondition(new EntityExpr("currentState", isNotSet ? EntityOperator.NOT_LIKE : EntityOperator.LIKE, s + "%"));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addIdEquals(String s) {
+        this.addCondition(new EntityExpr("activityId", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, s));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addNameEquals(String s) {
+        this.addCondition(new EntityExpr("activityName", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, s));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addPriorityEquals(int i) {
+        this.addCondition(new EntityExpr("priority", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, new Long(i)));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addDescriptionEquals(String s) {
+        this.addCondition(new EntityExpr("description", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, s));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addDescriptionContains(String s) {
+        this.addCondition(new EntityExpr("description", isNotSet ? EntityOperator.NOT_LIKE : EntityOperator.LIKE, "%" + s + "%"));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addActivatedTimeEquals(long l) {
+        this.addCondition(new EntityExpr("activatedTime", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, new Timestamp(l)));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addActivatedTimeBefore(long l) {
+        this.addCondition(new EntityExpr("activatedTime", isNotSet ? EntityOperator.LESS_THAN : EntityOperator.GREATER_THAN_EQUAL_TO, new Timestamp(l)));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addActivatedTimeAfter(long l) {
+        this.addCondition(new EntityExpr("activatedTime", isNotSet ? EntityOperator.GREATER_THAN : EntityOperator.LESS_THAN_EQUAL_TO, new Timestamp(l)));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addLastStateTimeEquals(long l) {
+        this.addCondition(new EntityExpr("lastStateTime", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, new Timestamp(l)));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addLastStateTimeBefore(long l) {
+        this.addCondition(new EntityExpr("lastStateTime", isNotSet ? EntityOperator.LESS_THAN : EntityOperator.GREATER_THAN_EQUAL_TO, new Timestamp(l)));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addLastStateTimeAfter(long l) {
+        this.addCondition(new EntityExpr("lastStateTime", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, new Timestamp(l)));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addAcceptedTimeEquals(long l) {
+        this.addCondition(new EntityExpr("acceptedTime", isNotSet ? EntityOperator.NOT_EQUAL : EntityOperator.EQUALS, new Timestamp(l)));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addAcceptedTimeBefore(long l) {
+        this.addCondition(new EntityExpr("acceptedTime", isNotSet ? EntityOperator.LESS_THAN : EntityOperator.GREATER_THAN_EQUAL_TO, new Timestamp(l)));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addAcceptedTimeAfter(long l) {
+        this.addCondition(new EntityExpr("acceptedTime", isNotSet ? EntityOperator.GREATER_THAN : EntityOperator.LESS_THAN_EQUAL_TO, new Timestamp(l)));
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addVariableEquals(String s, Object o) throws RootException {
+        if (o != null) {
+            if (o instanceof String) {
+                return addVariableEquals(s, (String) o);
+            } else if (o instanceof Number) {
+                if (o instanceof Double) {
+                    return addVariableEquals(s, ((Double) o).doubleValue());
+                } else {
+                    return addVariableEquals(s, ((Long) o).longValue());
+                }
+            } else {
+                throw new RootException("Unable to compare database blobs!");
+            }
+        }
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addVariableEquals(String s, String s1) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addVariableEquals(String s, long l) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addVariableGreaterThan(String s, long l) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addVariableLessThan(String s, long l) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addVariableEquals(String s, double v) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addVariableGreaterThan(String s, double v) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addVariableLessThan(String s, double v) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addActivitySetDefId(String s) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addDefinitionId(String s) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addIsAccepted() {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addResourceUsername(String s) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addExpression(String s) {
+        return this;
+    }
+
+    public ActivityIteratorExpressionBuilder addExpression(ActivityIteratorExpressionBuilder eieb) {
+        return this;
+    }
+}


Property changes on: trunk/framework/shark/src/org/ofbiz/shark/expression/ActivityIteratorCondExprBldr.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:keywords
   + "Id Rev Author"
Name: svn:eol-style
   + native

Added: trunk/framework/shark/src/org/ofbiz/shark/expression/AssignmentIteratorCondExprBldr.java
===================================================================
--- trunk/framework/shark/src/org/ofbiz/shark/expression/AssignmentIteratorCondExprBldr.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/ofbiz/shark/expression/AssignmentIteratorCondExprBldr.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -0,0 +1,88 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001-2005 The Open For Business Project - www.ofbiz.org
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+ * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+package org.ofbiz.shark.expression;
+
+import org.enhydra.shark.api.common.AssignmentIteratorExpressionBuilder;
+
+/**
+ *
+ * @author     <a href="mailto:jaz at ofbiz.org">Andy Zeneski</a>
+ * @version    $Rev:$
+ * @since      3.3
+ */
+public class AssignmentIteratorCondExprBldr extends BaseEntityCondExprBldr implements AssignmentIteratorExpressionBuilder {
+
+    public AssignmentIteratorCondExprBldr() {
+        this.addEntity("WFAS", "WfAssignment");
+        this.addAllFields("WFAS");
+    }
+
+    public AssignmentIteratorExpressionBuilder and() {
+        this.setOr(false);
+        return this;
+    }
+
+    public AssignmentIteratorExpressionBuilder or() {
+        this.setOr(true);
+        return this;
+    }
+
+    public AssignmentIteratorExpressionBuilder not() {
+        this.setNot(true);
+        return this;
+    }
+
+    public AssignmentIteratorExpressionBuilder addUsernameEquals(String s) {
+        return null;  // TODO: Implement Me!
+    }
+
+    public AssignmentIteratorExpressionBuilder addProcessIdEquals(String s) {
+        return null;  // TODO: Implement Me!
+    }
+
+    public AssignmentIteratorExpressionBuilder addIsAccepted() {
+        return null;  // TODO: Implement Me!
+    }
+
+    public AssignmentIteratorExpressionBuilder addPackageIdEquals(String s) {
+        return null;  // TODO: Implement Me!
+    }
+
+    public AssignmentIteratorExpressionBuilder addPackageVersionEquals(String s) {
+        return null;  // TODO: Implement Me!
+    }
+
+    public AssignmentIteratorExpressionBuilder addProcessDefEquals(String s) {
+        return null;  // TODO: Implement Me!
+    }
+
+    public AssignmentIteratorExpressionBuilder addActivitySetDefEquals(String s) {
+        return null;  // TODO: Implement Me!
+    }
+
+    public AssignmentIteratorExpressionBuilder addActivityDefEquals(String s) {
+        return null;  // TODO: Implement Me!
+    }
+}


Property changes on: trunk/framework/shark/src/org/ofbiz/shark/expression/AssignmentIteratorCondExprBldr.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:keywords
   + "Id Rev Author"
Name: svn:eol-style
   + native

Added: trunk/framework/shark/src/org/ofbiz/shark/expression/BaseEntityCondExprBldr.java
===================================================================
--- trunk/framework/shark/src/org/ofbiz/shark/expression/BaseEntityCondExprBldr.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/ofbiz/shark/expression/BaseEntityCondExprBldr.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -0,0 +1,230 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001-2005 The Open For Business Project - www.ofbiz.org
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+ * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+package org.ofbiz.shark.expression;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.collections.map.LinkedMap;
+import org.enhydra.shark.api.common.ExpressionBuilder;
+import org.ofbiz.base.util.StringUtil;
+import org.ofbiz.base.util.UtilMisc;
+import org.ofbiz.base.util.UtilObject;
+import org.ofbiz.entity.GenericDelegator;
+import org.ofbiz.entity.GenericEntityException;
+import org.ofbiz.entity.util.EntityListIterator;
+import org.ofbiz.entity.condition.EntityCondition;
+import org.ofbiz.entity.condition.EntityConditionList;
+import org.ofbiz.entity.condition.EntityOperator;
+import org.ofbiz.entity.model.DynamicViewEntity;
+import org.ofbiz.shark.container.SharkContainer;
+
+/**
+ *
+ * @author     <a href="mailto:jaz at ofbiz.org">Andy Zeneski</a>
+ * @version    $Rev:$
+ * @since      Apr 17, 2005
+ */
+public abstract class BaseEntityCondExprBldr implements ExpressionBuilder, Serializable {
+
+    public static final String module = BaseEntityCondExprBldr.class.getName();
+
+    protected EntityCondition condition = null;
+    protected Map entityNames = new LinkedMap();
+    protected Map fieldNames = new LinkedMap();
+    protected List autoFields = new ArrayList();
+    protected List viewLinks = new ArrayList();
+
+    protected boolean isOrSet = false;
+    protected boolean isNotSet = false;
+    protected boolean isComplete = true;
+
+    // ExpressionBuilder Methods
+
+    public boolean isComplete() {
+        return this.isComplete;
+    }
+
+    public String toSQL() {
+        return BaseEntityCondExprBldr.getHexString(this);
+    }
+
+    public String toScript() {
+        return "";
+    }
+
+    public String toExpression() {
+        StringBuffer ret = new StringBuffer();
+        if (!this.isComplete()) {
+            ret.append("/*FORCE*/\n");
+        }
+
+        ret.append(this.toScript());
+        ret.append("\n/*sql ").append(this.toSQL()).append(" sql*/");
+
+        return ret.toString();
+    }
+
+    // Special Purpose Methods
+
+    public EntityCondition getCondition() {
+        return this.condition;
+    }
+
+    public List runQuery() throws GenericEntityException {
+        GenericDelegator delegator = this.getDelegator();
+        DynamicViewEntity view = this.makeView();
+        EntityListIterator eli = null;
+        List result = null;
+        try {
+            eli = delegator.findListIteratorByCondition(view, this.getCondition(), null, null, null, null);
+            result = eli.getCompleteList();
+        } catch (GenericEntityException e) {
+            throw e;
+        } finally {
+            eli.close();
+        }
+        return result;
+    }
+
+    protected void setNot(boolean not) {
+        this.isNotSet = not;
+    }
+
+    protected void setOr(boolean or) {
+        this.isOrSet = or;
+    }
+
+    protected void addCondition(EntityCondition current) {
+        if (condition == null) {
+            condition = current;
+        } else {
+            List condList = UtilMisc.toList(condition, current);
+            if (this.isOrSet) {
+                condition = new EntityConditionList(condList, EntityOperator.OR);
+            } else {
+                condition = new EntityConditionList(condList, EntityOperator.AND);
+            }
+        }
+        // reset the NOT value
+        this.setNot(false);
+    }
+
+    protected synchronized void addEntity(String alias, String entity) {
+        entityNames.put(alias, entity);
+    }
+
+    protected synchronized void addField(String entityAlias, String fieldName, String fieldAlias) {
+        Map fieldAliasMap = (Map) fieldNames.get(entityAlias);
+        if (fieldAliasMap == null) {
+            fieldAliasMap = new HashMap();
+            fieldNames.put(entityAlias, fieldAliasMap);
+        }
+        fieldAliasMap.put(fieldName, fieldAlias);
+    }
+
+    protected synchronized void addAllFields(String entityAlias) {
+        autoFields.add(entityAlias);
+    }
+
+    protected synchronized void addLink(String entityAlias, String relEntityAlias, boolean opt, List keyMap) {
+        this.viewLinks.add(new ViewLink(entityAlias, relEntityAlias, opt, keyMap));
+    }
+    
+    protected GenericDelegator getDelegator() {
+        return SharkContainer.getDelegator();
+    }
+
+    private DynamicViewEntity makeView() {
+        DynamicViewEntity view = new DynamicViewEntity();
+
+
+        // create the members
+        Iterator eni = this.entityNames.entrySet().iterator();
+        while (eni.hasNext()) {
+            Map.Entry entry = (Map.Entry) eni.next();
+            view.addMemberEntity((String) entry.getKey(), (String) entry.getValue());
+        }
+
+        // set alias all fields
+        Iterator aai = autoFields.iterator();
+        while (aai.hasNext()) {
+            String alias = (String) aai.next();
+            view.addAliasAll(alias, "");
+        }
+
+        // create the other field aliases
+        Iterator fni = fieldNames.keySet().iterator();
+        while (fni.hasNext()) {
+            String entityAlias = (String) fni.next();
+            Map fieldMap = (Map) fieldNames.get(entityAlias);
+            Iterator fmi = fieldMap.entrySet().iterator();
+            while (fmi.hasNext()) {
+                Map.Entry entry = (Map.Entry) fmi.next();
+                view.addAlias(entityAlias, (String) entry.getValue(), (String) entry.getKey(), null, null, null, null);
+            }
+        }
+
+        // add the view links
+        Iterator vli = this.viewLinks.iterator();
+        while (vli.hasNext()) {
+            ViewLink vl = (ViewLink) vli.next();
+            view.addViewLink(vl.entityAlias, vl.relEntityAlias, new Boolean(vl.relOptional), vl.keyMaps);
+        }
+
+        return view;
+    }
+
+    // Standard Static Serialization Methods
+
+    public static String getHexString(BaseEntityCondExprBldr builder) {
+        byte[] builderBytes = UtilObject.getBytes(builder);
+        return StringUtil.toHexString(builderBytes);
+    }
+
+    public static BaseEntityCondExprBldr getBuilder(String hexString) {
+        byte[] builderBytes = StringUtil.fromHexString(hexString);
+        return (BaseEntityCondExprBldr) UtilObject.getObject(builderBytes);
+    }
+
+    class ViewLink implements Serializable {
+
+        public String entityAlias;
+        public String relEntityAlias;
+        public boolean relOptional = false;
+        public List keyMaps = new ArrayList();
+
+        public ViewLink(String entityAlias, String relEntityAlias, boolean optional, List keyMaps) {
+            this.entityAlias = entityAlias;
+            this.relEntityAlias = relEntityAlias;
+            this.relOptional = optional;
+            this.keyMaps = keyMaps;
+        }
+    }
+}


Property changes on: trunk/framework/shark/src/org/ofbiz/shark/expression/BaseEntityCondExprBldr.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:keywords
   + "Id Rev Author"
Name: svn:eol-style
   + native

Added: trunk/framework/shark/src/org/ofbiz/shark/expression/ExpressionBuilderMgr.java
===================================================================
--- trunk/framework/shark/src/org/ofbiz/shark/expression/ExpressionBuilderMgr.java	2005-05-03 13:33:45 UTC (rev 4943)
+++ trunk/framework/shark/src/org/ofbiz/shark/expression/ExpressionBuilderMgr.java	2005-05-03 13:39:15 UTC (rev 4944)
@@ -0,0 +1,67 @@
+/*
+ * $Id$
+ *
+ * Copyright (c) 2001-2005 The Open For Business Project - www.ofbiz.org
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies