You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ad...@apache.org on 2012/07/24 12:46:09 UTC
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
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());
}
}