svn commit: r1364972 - in /ofbiz/trunk/framework/service: ofbiz-component.xml src/org/ofbiz/service/GenericDispatcherFactory.java src/org/ofbiz/service/LocalDispatcherFactory.java src/org/ofbiz/service/ServiceContainer.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1364972 - in /ofbiz/trunk/framework/service: ofbiz-component.xml src/org/ofbiz/service/GenericDispatcherFactory.java src/org/ofbiz/service/LocalDispatcherFactory.java src/org/ofbiz/service/ServiceContainer.java

adrianc
Author: adrianc
Date: Tue Jul 24 10:46:08 2012
New Revision: 1364972

URL: http://svn.apache.org/viewvc?rev=1364972&view=rev
Log:
Code cleanups/fixups and JavaDocs for the new service component classes.

Modified:
    ofbiz/trunk/framework/service/ofbiz-component.xml
    ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcherFactory.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/LocalDispatcherFactory.java
    ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceContainer.java

Modified: ofbiz/trunk/framework/service/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/ofbiz-component.xml?rev=1364972&r1=1364971&r2=1364972&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/ofbiz-component.xml (original)
+++ ofbiz/trunk/framework/service/ofbiz-component.xml Tue Jul 24 10:46:08 2012
@@ -47,6 +47,7 @@ under the License.
     <container name="service-container" loaders="main,rmi,pos,install,test" class="org.ofbiz.service.ServiceContainer">
         <property name="dispatcher-factory" value="org.ofbiz.service.GenericDispatcherFactory"/>
     </container>
+
     <!-- RMI Service Dispatcher -->
     <container name="rmi-dispatcher" loaders="rmi" class="org.ofbiz.service.rmi.RmiServiceContainer">
         <property name="bound-name" value="RMIDispatcher"/>

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcherFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcherFactory.java?rev=1364972&r1=1364971&r2=1364972&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcherFactory.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/GenericDispatcherFactory.java Tue Jul 24 10:46:08 2012
@@ -20,7 +20,11 @@ package org.ofbiz.service;
 
 import org.ofbiz.entity.Delegator;
 
+/**
+ * A default {@link LocalDispatcherFactory} implementation.
+ */
 public class GenericDispatcherFactory implements LocalDispatcherFactory {
+    @Override
     public LocalDispatcher createLocalDispatcher(String name, Delegator delegator) {
         // attempts to retrieve an already registered DispatchContext with the name "name"
         LocalDispatcher dispatcher = ServiceDispatcher.getLocalDispatcher(name, delegator);

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/LocalDispatcherFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/LocalDispatcherFactory.java?rev=1364972&r1=1364971&r2=1364972&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/LocalDispatcherFactory.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/LocalDispatcherFactory.java Tue Jul 24 10:46:08 2012
@@ -20,6 +20,16 @@ package org.ofbiz.service;
 
 import org.ofbiz.entity.Delegator;
 
+/**
+ * A {@link LocalDispatcher} factory. Implementations register themselves in the ofbiz-component.xml file.
+ */
 public interface LocalDispatcherFactory {
+    /**
+     * Creates a <code>LocalDispatcher</code> instance based on <code>name</code> and <code>delegator</code>.
+     * If a matching <code>LocalDispatcher</code> was already created, then it will be returned.
+     *
+     * @param name
+     * @param delegator
+     */
     public LocalDispatcher createLocalDispatcher(String name, Delegator delegator);
 }

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceContainer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceContainer.java?rev=1364972&r1=1364971&r2=1364972&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceContainer.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceContainer.java Tue Jul 24 10:46:08 2012
@@ -25,22 +25,26 @@ import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.entity.Delegator;
 
+import java.util.Collections;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
+/**
+ * A container for the service engine.
+ */
 public class ServiceContainer implements Container {
     private static final String module = ServiceContainer.class.getName();
-    private static ConcurrentHashMap<String, LocalDispatcher> dispatcherCache = new ConcurrentHashMap<String, LocalDispatcher>();
+    private static final ConcurrentHashMap<String, LocalDispatcher> dispatcherCache = new ConcurrentHashMap<String, LocalDispatcher>();
     private static LocalDispatcherFactory dispatcherFactory;
 
     private String name;
 
+    @Override
     public void init(String[] args, String name, String configFile) throws ContainerException {
         this.name = name;
         // initialize the LocalDispatcherFactory
         ContainerConfig.Container cfg = ContainerConfig.getContainer(name, configFile);
         ContainerConfig.Container.Property dispatcherFactoryProperty = cfg.getProperty("dispatcher-factory");
-
         if (dispatcherFactoryProperty == null || UtilValidate.isEmpty(dispatcherFactoryProperty.value)) {
             throw new ContainerException("Unable to initialize container " + name + ": dispatcher-factory property is not set");
         }
@@ -53,17 +57,20 @@ public class ServiceContainer implements
         }
     }
 
+    @Override
     public boolean start() throws ContainerException {
         return true;
     }
 
+    @Override
     public void stop() throws ContainerException {
         Set<String> dispatcherNames = getAllDispatcherNames();
         for (String dispatcherName: dispatcherNames) {
-            ServiceContainer.deregister(dispatcherName);
+            deregister(dispatcherName);
         }
     }
 
+    @Override
     public String getName() {
         return name;
     }
@@ -71,16 +78,17 @@ public class ServiceContainer implements
     public static LocalDispatcher getLocalDispatcher(String dispatcherName, Delegator delegator) {
         if (dispatcherName == null) {
             dispatcherName = delegator.getDelegatorName();
-            Debug.logWarning("Got a getLocalDispatcher call with a null dispatcherName, assuming default for the name.", module);
+            Debug.logWarning("ServiceContainer.getLocalDispatcher method called with a null dispatcherName, defaulting to delegator name.", module);
         }
         if (UtilValidate.isNotEmpty(delegator.getDelegatorTenantId())) {
-            dispatcherName += "#" + delegator.getDelegatorTenantId();
+            dispatcherName = dispatcherName.concat("#").concat(delegator.getDelegatorTenantId());
         }
         LocalDispatcher dispatcher = dispatcherCache.get(dispatcherName);
         if (dispatcher == null) {
-            if (Debug.infoOn()) Debug.logInfo("Creating new dispatcher [" + dispatcherName + "] (" + Thread.currentThread().getName() + ")", module);
             dispatcher = dispatcherFactory.createLocalDispatcher(dispatcherName, delegator);
             dispatcherCache.putIfAbsent(dispatcherName, dispatcher);
+            dispatcher = dispatcherCache.get(dispatcherName);
+            if (Debug.infoOn()) Debug.logInfo("Created new dispatcher [" + dispatcherName + "] (" + Thread.currentThread().getName() + ")", module);
         }
         return dispatcher;
     }
@@ -98,6 +106,6 @@ public class ServiceContainer implements
     }
 
     public static Set<String> getAllDispatcherNames() {
-        return dispatcherCache.keySet();
+        return Collections.unmodifiableSet(dispatcherCache.keySet());
     }
 }