|
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()); } } |
| Free forum by Nabble | Edit this page |
