You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by si...@apache.org on 2008/01/24 19:08:47 UTC
svn commit: r614949 - in
/ofbiz/trunk/framework/service/src/org/ofbiz/service:
GenericDispatcher.java LocalDispatcher.java eca/ServiceEcaAction.java
Author: sichen
Date: Thu Jan 24 10:08:45 2008
New Revision: 614949
URL: http://svn.apache.org/viewvc?rev=614949&view=rev
Log:
OFBIZ-1594 ability of dispatcher to disable SECAs
Modified:
ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcher.java
ofbiz/trunk/framework/service/src/org/ofbiz/service/LocalDispatcher.java
ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaAction.java
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?rev=614949&r1=614948&r2=614949&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcher.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcher.java Thu Jan 24 10:08:45 2008
@@ -32,7 +32,8 @@
public class GenericDispatcher extends GenericAbstractDispatcher {
public static final String module = GenericDispatcher.class.getName();
-
+
+ protected static boolean ecasDisabled = false;
protected static Map<String, LocalDispatcher> dispatcherCache = FastMap.newInstance();
public static LocalDispatcher getLocalDispatcher(String dispatcherName, GenericDelegator delegator) {
@@ -126,6 +127,18 @@
ctx.setDispatcher(this);
ctx.loadReaders();
if (Debug.infoOn()) Debug.logInfo("[LocalDispatcher] : Created Dispatcher for: " + name, module);
+ }
+
+ public void disableEcas(){
+ this.ecasDisabled = true;
+ }
+
+ public void enableEcas() {
+ this.ecasDisabled = false;
+ }
+
+ public boolean isEcasDisabled() {
+ return this.ecasDisabled;
}
/**
Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/LocalDispatcher.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/LocalDispatcher.java?rev=614949&r1=614948&r2=614949&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/LocalDispatcher.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/LocalDispatcher.java Thu Jan 24 10:08:45 2008
@@ -31,6 +31,25 @@
public interface LocalDispatcher {
/**
+ * Disables running of Service Engine Condition Actions (SECAs). Intended to be turned off temporarily.
+ * @throws GenericServiceException
+ */
+ public void disableEcas();
+
+ /**
+ * Reenables running of Service Engine Condition Actions (SECAs).
+ * @throws GenericServiceException
+ */
+ public void enableEcas();
+
+ /**
+ * Returns whether Service Engine Condition Actions (SECAs) are disabled or not.
+ * @return
+ * @throws GenericServiceException
+ */
+ public boolean isEcasDisabled();
+
+ /**
* Run the service synchronously and return the result.
* @param serviceName Name of the service to run.
* @param context Map of name, value pairs composing the context.
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?rev=614949&r1=614948&r2=614949&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaAction.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaAction.java Thu Jan 24 10:08:45 2008
@@ -26,6 +26,7 @@
import org.ofbiz.base.util.UtilGenerics;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.base.util.Debug;
import org.ofbiz.service.DispatchContext;
import org.ofbiz.service.GenericServiceException;
import org.ofbiz.service.LocalDispatcher;
@@ -88,6 +89,11 @@
Map<String, Object> actionResult = null;
LocalDispatcher dispatcher = dctx.getDispatcher();
+ // if SECAs have been turned off, then just return true which has same effect as if secas ran successfully
+ if (dispatcher.isEcasDisabled()) {
+ Debug.logWarning("SECAs have been disabled on purpose and will not be run for [" + serviceName + "]", module);
+ return true;
+ }
if (eventName.startsWith("global-")) {
// XA resource ECA