You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jo...@apache.org on 2007/03/09 03:45:57 UTC

svn commit: r516271 - in /ofbiz/trunk: applications/accounting/src/org/ofbiz/accounting/thirdparty/clearcommerce/ applications/product/src/org/ofbiz/shipment/packing/ applications/product/src/org/ofbiz/shipment/thirdparty/usps/ framework/entity/ framew...

Author: jonesde
Date: Thu Mar  8 18:45:55 2007
New Revision: 516271

URL: http://svn.apache.org/viewvc?view=rev&rev=516271
Log:
Cleanup of LocalDispatcher creation through the GenericDispatcher object; consolidates a bunch of code and hopefully simplifies a things; should also more permanently fix the weird problem we were having with the testing services a bit ago

Modified:
    ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/clearcommerce/CCServicesTest.java
    ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java
    ofbiz/trunk/applications/product/src/org/ofbiz/shipment/thirdparty/usps/UspsServicesTests.java
    ofbiz/trunk/framework/entity/ofbiz-component.xml
    ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/EntityServiceFactory.java
    ofbiz/trunk/framework/guiapp/src/org/ofbiz/guiapp/xui/XuiContainer.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcher.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/WebAppDispatcher.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/jms/AbstractJmsListener.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/mail/JavaMailContainer.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/rmi/RmiServiceContainer.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEngineTests.java
    ofbiz/trunk/framework/testtools/src/org/ofbiz/testtools/ModelTestSuite.java
    ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/CoreEvents.java
    ofbiz/trunk/framework/workflow/src/org/ofbiz/workflow/impl/WfExecutionObjectImpl.java

Modified: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/clearcommerce/CCServicesTest.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/clearcommerce/CCServicesTest.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/clearcommerce/CCServicesTest.java (original)
+++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/clearcommerce/CCServicesTest.java Thu Mar  8 18:45:55 2007
@@ -66,7 +66,7 @@
 
     protected void setUp() throws Exception {
         this.delegator = GenericDelegator.getGenericDelegator(DELEGATOR_NAME);
-        dispatcher = new GenericDispatcher(DISPATCHER_NAME, delegator);
+        this.dispatcher = GenericDispatcher.getLocalDispatcher(DISPATCHER_NAME, delegator);
 
         // populate test data
         configFile = new String("paymentTest.properties");

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java Thu Mar  8 18:45:55 2007
@@ -449,11 +449,7 @@
 
     public LocalDispatcher getDispatcher() {
         if (_dispatcher == null) {
-            try {
-                _dispatcher = GenericDispatcher.getLocalDispatcher(dispatcherName, this.getDelegator());
-            } catch (GenericServiceException e) {
-                throw new RuntimeException(e);
-            }
+            _dispatcher = GenericDispatcher.getLocalDispatcher(dispatcherName, this.getDelegator());
         }
         return _dispatcher;
     }

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/shipment/thirdparty/usps/UspsServicesTests.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/shipment/thirdparty/usps/UspsServicesTests.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/shipment/thirdparty/usps/UspsServicesTests.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/shipment/thirdparty/usps/UspsServicesTests.java Thu Mar  8 18:45:55 2007
@@ -54,7 +54,7 @@
 
     protected void setUp() throws Exception {
         delegator = GenericDelegator.getGenericDelegator(DELEGATOR_NAME);
-        dispatcher = new GenericDispatcher(DISPATCHER_NAME, delegator);
+        dispatcher = GenericDispatcher.getLocalDispatcher(DISPATCHER_NAME, delegator);
     }
 
     protected void tearDown() throws Exception {

Modified: ofbiz/trunk/framework/entity/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/ofbiz-component.xml?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/entity/ofbiz-component.xml (original)
+++ ofbiz/trunk/framework/entity/ofbiz-component.xml Thu Mar  8 18:45:55 2007
@@ -34,5 +34,5 @@
     <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel_test.xml"/>
     <entity-resource type="group" reader-name="main" loader="main" location="entitydef/entitygroup_test.xml"/>
     
-    <test-suite loader="main" location="testdef/entitytests.xml"/>
+    <!-- <test-suite loader="main" location="testdef/entitytests.xml"/> -->
 </ofbiz-component>

Modified: ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/EntityServiceFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/EntityServiceFactory.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/EntityServiceFactory.java (original)
+++ ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/EntityServiceFactory.java Thu Mar  8 18:45:55 2007
@@ -18,8 +18,6 @@
  *******************************************************************************/
 package org.ofbiz.entityext;
 
-import java.util.HashMap;
-
 import org.ofbiz.entity.GenericDelegator;
 import org.ofbiz.service.DispatchContext;
 import org.ofbiz.service.GenericDispatcher;
@@ -32,20 +30,8 @@
 
     public static final String module = EntityServiceFactory.class.getName();
 
-    public static HashMap delegatorDispatchers = new HashMap();    
-    
     public static LocalDispatcher getLocalDispatcher(GenericDelegator delegator) {
-        String delegatorName = delegator.getDelegatorName();
-        GenericDispatcher dispatcher = (GenericDispatcher) delegatorDispatchers.get(delegatorName);
-        if (dispatcher == null) {
-            synchronized (EntityServiceFactory.class) {
-                dispatcher = (GenericDispatcher) delegatorDispatchers.get(delegatorName);
-                if (dispatcher == null) {
-                    dispatcher = new GenericDispatcher("entity-" + delegatorName, delegator);
-                    delegatorDispatchers.put(delegatorName, dispatcher);
-                }
-            }
-        }
+        LocalDispatcher dispatcher = GenericDispatcher.getLocalDispatcher("entity-" + delegator.getDelegatorName(), delegator);
         return dispatcher;
     }
     

Modified: ofbiz/trunk/framework/guiapp/src/org/ofbiz/guiapp/xui/XuiContainer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/guiapp/src/org/ofbiz/guiapp/xui/XuiContainer.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/guiapp/src/org/ofbiz/guiapp/xui/XuiContainer.java (original)
+++ ofbiz/trunk/framework/guiapp/src/org/ofbiz/guiapp/xui/XuiContainer.java Thu Mar  8 18:45:55 2007
@@ -67,12 +67,7 @@
 
         // get the dispatcher
         String dispatcherName = ContainerConfig.getPropertyValue(cc, "dispatcher-name", "xui-dispatcher");
-        LocalDispatcher dispatcher = null;
-        try {
-            dispatcher = GenericDispatcher.getLocalDispatcher(dispatcherName, delegator);
-        } catch (GenericServiceException e) {
-            throw new ContainerException(e);
-        }
+        LocalDispatcher dispatcher = GenericDispatcher.getLocalDispatcher(dispatcherName, delegator);
 
         // get the pre-defined session ID
         String xuiSessionId = ContainerConfig.getPropertyValue(cc, "xui-session-id", null);

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=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcher.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcher.java Thu Mar  8 18:45:55 2007
@@ -20,7 +20,10 @@
 
 import java.util.Map;
 
+import javolution.util.FastMap;
+
 import org.ofbiz.entity.GenericDelegator;
+import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.base.util.Debug;
 
 /**
@@ -29,14 +32,78 @@
 public class GenericDispatcher extends GenericAbstractDispatcher {
 
     public static final String module = GenericDispatcher.class.getName();
+    
+    protected static Map dispatcherCache = FastMap.newInstance();
+    
+    public static LocalDispatcher getLocalDispatcher(String dispatcherName, GenericDelegator delegator) {
+        return getLocalDispatcher(dispatcherName, delegator, null, null);
+    }
 
-    public GenericDispatcher() {}
+    public static LocalDispatcher getLocalDispatcher(String dispatcherName, GenericDelegator delegator, ClassLoader loader) {
+        return getLocalDispatcher(dispatcherName, delegator, loader, null);
+    }
+    
+    public static LocalDispatcher getLocalDispatcher(String dispatcherName, GenericDelegator delegator, ClassLoader loader, ServiceDispatcher serviceDispatcher) {
+        if (dispatcherName == null) {
+            dispatcherName = "default";
+            Debug.logWarning("Got a getGenericDelegator call with a null dispatcherName, assuming default for the name.", module);
+        }
+        LocalDispatcher dispatcher = (LocalDispatcher) dispatcherCache.get(dispatcherName);
 
-    public GenericDispatcher(String name, GenericDelegator delegator) {
-        this(name, delegator, null);
+        if (dispatcher == null) {
+            synchronized (GenericDelegator.class) {
+                // must check if null again as one of the blocked threads can still enter
+                dispatcher = (GenericDispatcher) dispatcherCache.get(dispatcherName);
+                if (dispatcher == null) {
+                    if (Debug.infoOn()) Debug.logInfo("Creating new dispatcher [" + dispatcherName + "] (" + Thread.currentThread().getName() + ")", module);
+                    //Debug.logInfo(new Exception(), "Showing stack where new dispatcher is being created...", module);
+                    
+                    if (delegator == null && serviceDispatcher != null) {
+                        delegator = serviceDispatcher.getDelegator();
+                    }
+                    
+                    if (loader == null) {
+                        loader = GenericDispatcher.class.getClassLoader();
+                    }
+                    
+                    ServiceDispatcher sd = serviceDispatcher != null? serviceDispatcher : ServiceDispatcher.getInstance(dispatcherName, delegator);
+                    LocalDispatcher thisDispatcher = null;
+                    if (sd != null) {
+                        dispatcher = sd.getLocalDispatcher(dispatcherName);
+                    }
+                    if (thisDispatcher == null) {
+                        dispatcher = new GenericDispatcher(dispatcherName, delegator, loader, sd);
+                    }
+
+                    if (dispatcher != null) {
+                        dispatcherCache.put(dispatcherName, dispatcher);
+                    } else {
+                        Debug.logError("Could not create dispatcher with name " + dispatcherName + ", constructor failed (got null value) not sure why/how.", module);
+                    }
+                }
+            }
+        }
+        return dispatcher;
     }
 
-    public GenericDispatcher(String name, GenericDelegator delegator, ClassLoader loader) {
+    /** special method to obtain a new 'unique' reference with a variation on parameters */
+    public static LocalDispatcher newInstance(String name, GenericDelegator delegator, boolean enableJM, boolean enableJMS, boolean enableSvcs) throws GenericServiceException {
+        ServiceDispatcher sd = new ServiceDispatcher(delegator, enableJM, enableJMS, enableSvcs);
+        ClassLoader loader = null;
+        try {
+            loader = Thread.currentThread().getContextClassLoader();
+        } catch (SecurityException e) {
+            loader = GenericDispatcher.class.getClassLoader();
+        }
+        return new GenericDispatcher(name, delegator, loader, sd);        
+    }
+
+    protected GenericDispatcher() {}
+
+    protected GenericDispatcher(String name, GenericDelegator delegator, ClassLoader loader, ServiceDispatcher serviceDispatcher) {
+        if (serviceDispatcher != null) {
+            this.dispatcher = serviceDispatcher;
+        }
         if (loader == null) {
             try {
                 loader = Thread.currentThread().getContextClassLoader();
@@ -48,20 +115,6 @@
         init(name, delegator, dc);
     }
 
-    public GenericDispatcher(DispatchContext ctx, GenericDelegator delegator) {
-        init(ctx.getName(), delegator, ctx);
-    }
-
-    public GenericDispatcher(DispatchContext ctx, ServiceDispatcher dispatcher) {
-        this.dispatcher = dispatcher;
-        this.ctx = ctx;
-        this.name = ctx.getName();
-
-        ctx.setDispatcher(this);
-        ctx.loadReaders();
-        dispatcher.register(name, ctx);
-    }
-
     protected void init(String name, GenericDelegator delegator, DispatchContext ctx) {
         if (name == null || name.length() == 0)
             throw new IllegalArgumentException("The name of a LocalDispatcher cannot be a null or empty String");
@@ -73,36 +126,6 @@
         ctx.setDispatcher(this);
         ctx.loadReaders();
         if (Debug.infoOn()) Debug.logInfo("[LocalDispatcher] : Created Dispatcher for: " + name, module);
-    }
-
-    public static LocalDispatcher getLocalDispatcher(String name, GenericDelegator delegator) throws GenericServiceException {
-        ServiceDispatcher sd = ServiceDispatcher.getInstance(name, delegator);
-        LocalDispatcher thisDispatcher = null;
-        if (sd != null) {
-            thisDispatcher = sd.getLocalDispatcher(name);
-        }
-        if (thisDispatcher == null) {
-            thisDispatcher = new GenericDispatcher(name, delegator);
-        }
-
-        if (thisDispatcher != null) {
-            return thisDispatcher;
-        } else {
-            throw new GenericServiceException("Unable to load dispatcher for name : " + name + " with delegator : " + delegator.getDelegatorName());
-        }
-    }
-
-    // special method to obtain a new 'unique' reference
-    public static LocalDispatcher newInstance(String name, GenericDelegator delegator, boolean enableJM, boolean enableJMS, boolean enableSvcs) throws GenericServiceException {
-        ServiceDispatcher sd = new ServiceDispatcher(delegator, enableJM, enableJMS, enableSvcs);
-        ClassLoader loader = null;
-        try {
-            loader = Thread.currentThread().getContextClassLoader();
-        } catch (SecurityException e) {
-            loader = GenericDispatcher.class.getClassLoader();
-        }
-        DispatchContext dc = new DispatchContext(name, null, loader, null);
-        return new GenericDispatcher(dc, sd);        
     }
 
     /**

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/WebAppDispatcher.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/WebAppDispatcher.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/WebAppDispatcher.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/WebAppDispatcher.java Thu Mar  8 18:45:55 2007
@@ -45,10 +45,4 @@
         DispatchContext dc = new DispatchContext(name, readerURLs, loader, null);
         init(name, delegator, dc);
     }
-
-    public WebAppDispatcher(DispatchContext ctx, GenericDelegator delegator) {   
-        super(ctx, delegator);        
-    }
-    
 }
-

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/jms/AbstractJmsListener.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/jms/AbstractJmsListener.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/jms/AbstractJmsListener.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/jms/AbstractJmsListener.java Thu Mar  8 18:45:55 2007
@@ -44,9 +44,8 @@
      * Initializes the LocalDispatcher for this service listener.
      * @param dispatcher
      */
-    protected AbstractJmsListener(ServiceDispatcher dispatcher) {
-        DispatchContext dctx = new DispatchContext("JMSDispatcher", null, this.getClass().getClassLoader(), null);
-        this.dispatcher = new GenericDispatcher(dctx, dispatcher);
+    protected AbstractJmsListener(ServiceDispatcher serviceDispatcher) {
+        this.dispatcher = GenericDispatcher.getLocalDispatcher("JMSDispatcher", null, this.getClass().getClassLoader(), serviceDispatcher);
     }
 
     /**

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java Thu Mar  8 18:45:55 2007
@@ -19,22 +19,22 @@
 package org.ofbiz.service.job;
 
 import java.io.IOException;
+import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.sql.Timestamp;
 
 import javolution.util.FastMap;
 
 import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.GeneralRuntimeException;
 import org.ofbiz.base.util.UtilDateTime;
 import org.ofbiz.base.util.UtilMisc;
 import org.ofbiz.base.util.UtilProperties;
 import org.ofbiz.base.util.UtilValidate;
-import org.ofbiz.base.util.GeneralRuntimeException;
 import org.ofbiz.entity.GenericDelegator;
 import org.ofbiz.entity.GenericEntityException;
 import org.ofbiz.entity.GenericValue;
@@ -48,7 +48,6 @@
 import org.ofbiz.entity.transaction.TransactionUtil;
 import org.ofbiz.service.DispatchContext;
 import org.ofbiz.service.GenericDispatcher;
-import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.LocalDispatcher;
 import org.ofbiz.service.calendar.RecurrenceInfo;
 import org.ofbiz.service.calendar.RecurrenceInfoException;
@@ -90,12 +89,7 @@
 
     /** Returns the ServiceDispatcher. */
     public LocalDispatcher getDispatcher() {
-        LocalDispatcher thisDispatcher = null;
-        try {
-            thisDispatcher = GenericDispatcher.getLocalDispatcher(dispatcherName, delegator);
-        } catch (GenericServiceException e) {
-            Debug.logError(e, module);
-        }
+        LocalDispatcher thisDispatcher = GenericDispatcher.getLocalDispatcher(dispatcherName, delegator);
         return thisDispatcher;
     }
 

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/mail/JavaMailContainer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/mail/JavaMailContainer.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/mail/JavaMailContainer.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/mail/JavaMailContainer.java Thu Mar  8 18:45:55 2007
@@ -93,7 +93,7 @@
         }
         
         this.delegator = GenericDelegator.getGenericDelegator(delegatorName);
-        this.dispatcher = new GenericDispatcher(dispatcherName, delegator);
+        this.dispatcher = GenericDispatcher.getLocalDispatcher(dispatcherName, delegator);
         this.timerDelay = (long) ContainerConfig.getPropertyValue(cfg, "poll-delay", 300000);
         this.maxSize = (long) ContainerConfig.getPropertyValue(cfg, "maxSize", 1000000); // maximum size in bytes
 

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/rmi/RmiServiceContainer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/rmi/RmiServiceContainer.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/rmi/RmiServiceContainer.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/rmi/RmiServiceContainer.java Thu Mar  8 18:45:55 2007
@@ -115,7 +115,7 @@
         GenericDelegator delegator = GenericDelegator.getGenericDelegator(delegatorProp.value);
 
         // create the LocalDispatcher
-        LocalDispatcher dispatcher = new GenericDispatcher(name, delegator);
+        LocalDispatcher dispatcher = GenericDispatcher.getLocalDispatcher(name, delegator);
 
         // create the RemoteDispatcher
         try {

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEngineTests.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEngineTests.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEngineTests.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEngineTests.java Thu Mar  8 18:45:55 2007
@@ -30,7 +30,7 @@
 public class ServiceEngineTests extends TestCase {
 
     public static final String DELEGATOR_NAME = "test";
-    public static final String DISPATCHER_NAME = "se-test-dispatcher";
+    public static final String DISPATCHER_NAME = "test-dispatcher";
 
     private LocalDispatcher dispatcher = null;
 
@@ -40,11 +40,10 @@
 
     protected void setUp() throws Exception {
         GenericDelegator delegator = GenericDelegator.getGenericDelegator(DELEGATOR_NAME);
-        dispatcher = new GenericDispatcher(DISPATCHER_NAME, delegator);
+        dispatcher = GenericDispatcher.getLocalDispatcher(DISPATCHER_NAME, delegator);
     }
 
     protected void tearDown() throws Exception {
-        dispatcher.deregister();
     }
 
     public void testBasicJavaInvocation() throws Exception {

Modified: ofbiz/trunk/framework/testtools/src/org/ofbiz/testtools/ModelTestSuite.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/testtools/src/org/ofbiz/testtools/ModelTestSuite.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/testtools/src/org/ofbiz/testtools/ModelTestSuite.java (original)
+++ ofbiz/trunk/framework/testtools/src/org/ofbiz/testtools/ModelTestSuite.java Thu Mar  8 18:45:55 2007
@@ -61,7 +61,7 @@
         if (UtilValidate.isEmpty(this.dispatcherName)) this.dispatcherName = "test-dispatcher";
         
         this.delegator = GenericDelegator.getGenericDelegator(this.delegatorName);
-        this.dispatcher = new GenericDispatcher(this.dispatcherName, delegator);
+        this.dispatcher = GenericDispatcher.getLocalDispatcher(this.dispatcherName, delegator);
         
         List testCaseElementList = UtilXml.childElementList(mainElement, "test-case");
         Iterator testCaseElementIter = testCaseElementList.iterator();

Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/CoreEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/CoreEvents.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/CoreEvents.java (original)
+++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/CoreEvents.java Thu Mar  8 18:45:55 2007
@@ -41,18 +41,18 @@
 import org.ofbiz.base.util.UtilHttp;
 import org.ofbiz.base.util.UtilProperties;
 import org.ofbiz.base.util.UtilValidate;
-import org.ofbiz.webapp.control.RequestHandler;
 import org.ofbiz.entity.GenericDelegator;
 import org.ofbiz.entity.GenericEntity;
 import org.ofbiz.entity.GenericValue;
 import org.ofbiz.security.Security;
 import org.ofbiz.service.DispatchContext;
+import org.ofbiz.service.GenericDispatcher;
 import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.LocalDispatcher;
 import org.ofbiz.service.ModelService;
 import org.ofbiz.service.ServiceDispatcher;
-import org.ofbiz.service.WebAppDispatcher;
 import org.ofbiz.service.calendar.RecurrenceRule;
+import org.ofbiz.webapp.control.RequestHandler;
 
 /**
  * CoreEvents - WebApp Events Related To Framework pieces
@@ -138,12 +138,7 @@
             return "error";
         }
 
-        ServiceDispatcher sd = ServiceDispatcher.getInstance(dispatcherName, delegator);
-
-        if (sd == null)
-            dispatcher = new WebAppDispatcher(dctx, delegator);
-        else
-            dispatcher = sd.getLocalContext(dispatcherName).getDispatcher();
+        dispatcher = GenericDispatcher.getLocalDispatcher(dispatcherName, delegator);
 
         request.getSession().setAttribute("delegator", delegator);
         request.getSession().setAttribute("dispatcher", dispatcher);

Modified: ofbiz/trunk/framework/workflow/src/org/ofbiz/workflow/impl/WfExecutionObjectImpl.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/workflow/src/org/ofbiz/workflow/impl/WfExecutionObjectImpl.java?view=diff&rev=516271&r1=516270&r2=516271
==============================================================================
--- ofbiz/trunk/framework/workflow/src/org/ofbiz/workflow/impl/WfExecutionObjectImpl.java (original)
+++ ofbiz/trunk/framework/workflow/src/org/ofbiz/workflow/impl/WfExecutionObjectImpl.java Thu Mar  8 18:45:55 2007
@@ -41,7 +41,6 @@
 import org.ofbiz.entity.serialize.XmlSerializer;
 import org.ofbiz.service.DispatchContext;
 import org.ofbiz.service.GenericDispatcher;
-import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.LocalDispatcher;
 import org.ofbiz.workflow.AlreadySuspended;
 import org.ofbiz.workflow.CannotResume;
@@ -593,11 +592,7 @@
      * @throws WfException
      */
     protected LocalDispatcher getDispatcher() throws WfException {
-        try {
-            return GenericDispatcher.getLocalDispatcher(dispatcherName, getDelegator());
-        } catch (GenericServiceException e) {
-            throw new WfException("No workflow service dispatcher", e);
-        }
+        return GenericDispatcher.getLocalDispatcher(dispatcherName, getDelegator());
     }
 
     private Map getContext() throws WfException {