You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2007/02/15 23:29:04 UTC

svn commit: r508207 - in /ofbiz/trunk/framework/service: dtd/service-eca.xsd src/org/ofbiz/service/GenericDispatcher.java src/org/ofbiz/service/eca/ServiceEcaAction.java

Author: jaz
Date: Thu Feb 15 14:29:03 2007
New Revision: 508207

URL: http://svn.apache.org/viewvc?view=rev&rev=508207
Log:
ECA actions can now specify to run in a new transaction

Modified:
    ofbiz/trunk/framework/service/dtd/service-eca.xsd
    ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcher.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaAction.java

Modified: ofbiz/trunk/framework/service/dtd/service-eca.xsd
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/dtd/service-eca.xsd?view=diff&rev=508207&r1=508206&r2=508207
==============================================================================
--- ofbiz/trunk/framework/service/dtd/service-eca.xsd (original)
+++ ofbiz/trunk/framework/service/dtd/service-eca.xsd Thu Feb 15 14:29:03 2007
@@ -212,6 +212,14 @@
         </xs:attribute>
         <xs:attribute type="xs:string" name="runAsUser"/>
         <xs:attribute type="xs:string" name="result-map-name"/>
+        <xs:attribute name="new-transaction" default="false">
+            <xs:simpleType>
+                <xs:restriction base="xs:token">
+                    <xs:enumeration value="true"/>
+                    <xs:enumeration value="false"/>
+                </xs:restriction>
+            </xs:simpleType>    
+        </xs:attribute>
         <xs:attribute name="result-to-context" default="true">
             <xs:simpleType>
                 <xs:restriction base="xs:token">

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcher.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcher.java?view=diff&rev=508207&r1=508206&r2=508207
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcher.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcher.java Thu Feb 15 14:29:03 2007
@@ -121,7 +121,9 @@
         // clone the model service for updates
         ModelService cloned = new ModelService(service);
         cloned.requireNewTransaction = requireNewTransaction;
-        cloned.transactionTimeout = transactionTimeout;
+        if (transactionTimeout != -1) {
+            cloned.transactionTimeout = transactionTimeout;
+        }
         return dispatcher.runSync(this.name, cloned, context);
     }
 
@@ -141,7 +143,9 @@
         // clone the model service for updates
         ModelService cloned = new ModelService(service);
         cloned.requireNewTransaction = requireNewTransaction;
-        cloned.transactionTimeout = transactionTimeout;
+        if (transactionTimeout != -1) {
+            cloned.transactionTimeout = transactionTimeout;
+        }
         dispatcher.runSyncIgnore(this.name, cloned, context);
     }
 
@@ -153,7 +157,9 @@
         // clone the model service for updates
         ModelService cloned = new ModelService(service);
         cloned.requireNewTransaction = requireNewTransaction;
-        cloned.transactionTimeout = transactionTimeout;
+        if (transactionTimeout != -1) {
+            cloned.transactionTimeout = transactionTimeout;
+        }
         dispatcher.runAsync(this.name, cloned, context, requester, persist);
     }
 

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaAction.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaAction.java?view=diff&rev=508207&r1=508206&r2=508207
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaAction.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaAction.java Thu Feb 15 14:29:03 2007
@@ -43,9 +43,10 @@
     protected String resultMapName = null;
     protected String runAsUser = null;
 
+    protected boolean newTransaction = false;
     protected boolean resultToContext = true;
     protected boolean ignoreFailure = false;
-    protected boolean ignoreError = false;
+    protected boolean ignoreError = false;    
     protected boolean persist = false;
 
     protected ServiceEcaAction() {}
@@ -59,6 +60,7 @@
         
         // default is true, so anything but false is true
         this.resultToContext = !"false".equals(action.getAttribute("result-to-context"));
+        this.newTransaction = !"false".equals(action.getAttribute("new-transaction"));
         this.ignoreFailure = !"false".equals(action.getAttribute("ignore-failure"));
         this.ignoreError = !"false".equals(action.getAttribute("ignore-error"));
         this.persist = "true".equals(action.getAttribute("persist"));
@@ -94,7 +96,10 @@
         } else {
             // standard ECA
             if (serviceMode.equals("sync")) {
-                actionResult = dispatcher.runSync(serviceName, actionContext);
+                if (newTransaction)
+                    actionResult = dispatcher.runSync(serviceName, actionContext, -1, true);
+                else
+                    actionResult = dispatcher.runSync(serviceName, actionContext);
             } else if (serviceMode.equals("async")) {
                 dispatcher.runAsync(serviceName, actionContext, persist);
             }