svn commit: r1621696 [9/12] - in /ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23: ./ applications/order/webapp/ordermgr/WEB-INF/actions/return/ applications/party/webapp/partymgr/party/contactmechtemplates/ applications/party/widget/partymgr/...

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

svn commit: r1621696 [9/12] - in /ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23: ./ applications/order/webapp/ordermgr/WEB-INF/actions/return/ applications/party/webapp/partymgr/party/contactmechtemplates/ applications/party/widget/partymgr/...

jleroux@apache.org
Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/ServiceErrorUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/ServiceErrorUiLabels.xml?rev=1621696&r1=1621695&r2=1621696&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/ServiceErrorUiLabels.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/ServiceErrorUiLabels.xml Mon Sep  1 07:29:23 2014
@@ -30,7 +30,7 @@
         <value xml:lang="ro">Parametrul Cerut lipseste:</value>
         <value xml:lang="th">กรุณากรอกข้อมูลให้ครบถ้วน</value>
         <value xml:lang="zh">找不到下列必须的参数:</value>
-        <value xml:lang="zh_TW">找不到下列必須的參數:</value>
+        <value xml:lang="zh_TW">找不到下列必要的參數:</value>
     </property>
     <property key="serviceUtil.no_permission_to_operation">
         <value xml:lang="de">Sie haben keine Berechtigung, diese Aktion für diesen Akteur auszuführen</value>
@@ -69,7 +69,7 @@
         <value xml:lang="ro">Cod Subiect Lipseste</value>
         <value xml:lang="th">ไม่ได้ใส่รหัสกลุ่มผู้ใช้</value>
         <value xml:lang="zh">找不到会员标识</value>
-        <value xml:lang="zh_TW">無該成員ID</value>
+        <value xml:lang="zh_TW">無該夥伴代號</value>
     </property>
     <property key="serviceUtil.unable_to_cancel_job">
         <value xml:lang="de">Job kann nicht abgebrochen werden</value>
@@ -102,155 +102,181 @@
         <value xml:lang="it">Errore mentre faceva l'operazione entity-auto per l'entità ${entityName} nel servizio ${serviceName}: ${errorString}</value>
         <value xml:lang="ja">サービス ${serviceName} で、エンティティ ${entityName} にエンティティ自動操作実行中にエラー: ${errorString}</value>
         <value xml:lang="zh">进行实体自动操作时出错,实体 ${entityName}、服务 ${serviceName}:${errorString}</value>
+        <value xml:lang="zh_TW">進行個體自動操作時出錯,個體 ${entityName}、服務 ${serviceName}:${errorString}</value>
     </property>
     <property key="ServiceParameterValueNotValid">
         <value xml:lang="en">The ID value in the parameter ${parameterName} was not valid: ${errorDetails}</value>
         <value xml:lang="it">Il valore ID nel parametro ${parameterName} non è valido: ${errorDetails}</value>
         <value xml:lang="ja">パラメータ ${parameterName} の中のIDが正しくありません: ${errorDetails}</value>
         <value xml:lang="zh">参数 ${parameterName} 中的标识(ID)值无效:${errorDetails}</value>
+        <value xml:lang="zh_TW">参数 ${parameterName} 中的代號(ID)值無效:${errorDetails}</value>
     </property>
     <property key="ServiceTestDeadLockError">
         <value xml:lang="en">Error running deadlock test services: ${errorString}</value>
         <value xml:lang="it">Errore durante il test del servizio deadlock: ${errorString}</value>
         <value xml:lang="ja">デッドロックテストサービス実行中にエラー: ${errorString}</value>
         <value xml:lang="zh">运行死锁测试服务时出错:${errorString}</value>
+        <value xml:lang="zh_TW">執行鎖死測試服務時出錯:${errorString}</value>
     </property>
     <property key="ServiceTestDeadLockRetry">
         <value xml:lang="en">Error(s) running sub-services in testServiceDeadLockRetry</value>
         <value xml:lang="it">Errore(i) durante l'esecuzione dei sotto-servizi in testServiceDeadLockRetry</value>
         <value xml:lang="ja">testServiceDeadLockRetryの中のサブサービス実行中にエラー</value>
         <value xml:lang="zh">运行测试服务死锁重试(testServiceDeadLockRetry)中的子服务时出错</value>
+        <value xml:lang="zh_TW">執行鎖死測試服務時重試(testServiceDeadLockRetry)中的子服務時出錯</value>
     </property>
     <property key="ServiceTestDeadLockThreadA">
         <value xml:lang="en">Error running testServiceDeadLockRetryThreadA: ${errorString}</value>
         <value xml:lang="it">Errore durante l'esecuzione di testServiceDeadLockRetryThreadA: ${errorString}</value>
         <value xml:lang="ja">testServiceDeadLockRetryThreadAの実行中にエラー: ${errorString}</value>
         <value xml:lang="zh">运行测试服务死锁重试线程A(testServiceDeadLockRetryThreadA)时出错:${errorString}</value>
+        <value xml:lang="zh_TW">執行鎖死測試服務時重試執行緒A(testServiceDeadLockRetryThreadA)時出錯:${errorString}</value>
     </property>
     <property key="ServiceTestDeadLockThreadB">
         <value xml:lang="en">Error running testServiceDeadLockRetryThreadB: ${errorString}</value>
         <value xml:lang="it">Errore durante l'esecuzione di testServiceDeadLockRetryThreadB: ${errorString}</value>
         <value xml:lang="ja">testServiceDeadLockRetryThreadBの実行中にエラー: ${errorString}</value>
         <value xml:lang="zh">运行测试服务死锁重试线程B(testServiceDeadLockRetryThreadB)时出错:${errorString}</value>
+        <value xml:lang="zh_TW">執行鎖死測試服務時重試執行緒B(testServiceDeadLockRetryThreadB)時出錯:${errorString}</value>
     </property>
     <property key="ServiceTestEntityEngineError">
         <value xml:lang="en">Entity Engine Exception: ${errorString}</value>
         <value xml:lang="it">Eccezione Entity Engine: ${errorString}</value>
         <value xml:lang="ja">エンティティエンジン例外: ${errorString}</value>
         <value xml:lang="zh">实体引擎出现异常:${errorString}</value>
+        <value xml:lang="zh_TW">個體引擎出現異常:${errorString}</value>
     </property>
     <property key="ServiceTestEntityEngineExceptionThreadA">
         <value xml:lang="en">Entity Engine Exception running dead lock test thread A: ${errorString}</value>
         <value xml:lang="it">Eccezione Entity Engine durante l'esecuzione del test dead lock thread A: ${errorString}</value>
         <value xml:lang="ja">デッドロックテストスレッドA実行中にエンティティエンジン例外: ${errorString}</value>
         <value xml:lang="zh">运行死锁测试线程A时发生实体引擎异常:${errorString}</value>
+        <value xml:lang="zh_TW">執行鎖死測試服務時執行緒A時發生個體引擎異常:${errorString}</value>
     </property>
     <property key="ServiceTestEntityEngineExceptionThreadB">
         <value xml:lang="en">Entity Engine Exception running dead lock test thread B: ${errorString}</value>
         <value xml:lang="it">Eccezione Entity Engine durante l'esecuzione del test dead lock thread B: ${errorString}</value>
         <value xml:lang="ja">デッドロックテストスレッドB実行中にエンティティエンジン例外: ${errorString}</value>
         <value xml:lang="zh">运行死锁测试线程B时发生实体引擎异常:${errorString}</value>
+        <value xml:lang="zh_TW">執行鎖死測試服務時執行緒B時發生個體引擎異常:${errorString}</value>
     </property>
     <property key="ServiceTestEntityEngineWaitInterruptedExceptionThreadA">
         <value xml:lang="en">Entity Engine Exception running dead lock test thread A: ${errorString}</value>
         <value xml:lang="it">Eccezione Entity Engine durante l'esecuzione del test dead lock thread A: ${errorString}</value>
         <value xml:lang="ja">デッドロックテストスレッドA実行中にエンティティエンジン例外: ${errorString}</value>
         <value xml:lang="zh">运行死锁测试线程A时发生实体引擎异常:${errorString}</value>
+        <value xml:lang="zh_TW">執行鎖死測試服務時執行緒A時發生個體引擎異常:${errorString}</value>
     </property>
     <property key="ServiceTestEntityEngineWaitInterruptedExceptionThreadB">
         <value xml:lang="en">Entity Engine Exception running dead lock test thread B: ${errorString}</value>
         <value xml:lang="it">Eccezione Entity Engine durante l'esecuzione del test dead lock thread B: ${errorString}</value>
         <value xml:lang="ja">デッドロックテストスレッドB実行中にエンティティエンジン例外: ${errorString}</value>
         <value xml:lang="zh">运行死锁测试线程B时发生实体引擎异常:${errorString}</value>
+        <value xml:lang="zh_TW">執行鎖死測試服務時執行緒B時發生個體引擎異常:${errorString}</value>
     </property>
     <property key="ServiceTestLockWaitTimeoutRetry">
         <value xml:lang="en">Error(s) running sub-services in testServiceLockWaitTimeoutRetry</value>
         <value xml:lang="it">Errore(i) durante l'esecuzione dei sotto-servizi in testServiceLockWaitTimeoutRetry</value>
         <value xml:lang="ja">testServiceLockWaitTimeoutRetryの中のサブサービス実行中にエラー</value>
         <value xml:lang="zh">运行测试服务锁等待超时重试(testServiceLockWaitTimeoutRetry)服务时出错</value>
+        <value xml:lang="zh_TW">執行鎖等待超時重試(testServiceLockWaitTimeoutRetry)服務時出錯</value>
     </property>
     <property key="ServiceTestLockWaitTimeoutRetryGrabber">
         <value xml:lang="en">Entity Engine Exception running lock wait timeout test Grabber thread: ${errorString}</value>
         <value xml:lang="it">Eccezione Entity Engine durante l'esecuzione del lock wait timeout test Grabber thread: ${errorString}</value>
         <value xml:lang="ja">ロック待タイムアウトテスト獲得スレッド実行中にエンティティエンジン例外: ${errorString}</value>
         <value xml:lang="zh">运行锁等待超时测试采集程序线程时发生实体引擎意外:${errorString}</value>
+        <value xml:lang="zh_TW">執行鎖等待超時測試採集程序綫程時發生個體引擎意外:${errorString}</value>
     </property>
     <property key="ServiceTestLockWaitTimeoutRetryWaiter">
         <value xml:lang="en">Entity Engine Exception running lock wait timeout test Grabber thread: ${errorString}</value>
         <value xml:lang="it">Eccezione Entity Engine durante l'esecuzione del lock wait timeout test Grabber thread: ${errorString}</value>
         <value xml:lang="ja">ロック待タイムアウトテスト待機スレッド実行中にエンティティエンジン例外: ${errorString}</value>
         <value xml:lang="zh">运行锁等待超时测试采集程序线程时发生实体引擎意外:${errorString}</value>
+        <value xml:lang="zh_TW">執行鎖等待超時測試採集程序綫程時發生個體引擎意外:${errorString}</value>
     </property>
     <property key="ServiceTestLockInterruptedExceptionRetryGrabber">
         <value xml:lang="en">Wait Interrupted Exception running lock wait timeout test Grabber thread: ${errorString}</value>
         <value xml:lang="it">Eccezione Wait Interrupted Exception durante l'esecuzione del lock wait timeout test Grabber thread: ${errorString}</value>
         <value xml:lang="ja">ロック待タイムアウトテスト獲得スレッド実行中にウェイト割込例外: ${errorString}</value>
         <value xml:lang="zh">运行锁等待超时测试采集程序线程时发生等待中断意外:${errorString}</value>
+        <value xml:lang="zh_TW">執行鎖等待超時測試採集程序綫程時發生等待中斷意外:${errorString}</value>
     </property>
     <property key="ServiceTestLockInterruptedExceptionRetryWaiter">
         <value xml:lang="en">Wait Interrupted Exception running lock wait timeout test Waiter thread: ${errorString}</value>
         <value xml:lang="it">Eccezione Wait Interrupted Exception durante l'esecuzione del lock wait timeout test Waiter thread: ${errorString}</value>
         <value xml:lang="ja">ロック待タイムアウトテスト待機スレッド実行中にウェイト割込例外: ${errorString}</value>
         <value xml:lang="zh">运行锁等待超时测试等待程序线程时发生等待中断意外:${errorString}</value>
+        <value xml:lang="zh_TW">執行鎖等待超時測試等待程序綫程時發生等待中斷意外:${errorString}</value>
     </property>
     <property key="ServiceTestLockWaitTimeoutRetryCantRecoverWaiter">
         <value xml:lang="en">Error running testServiceLockWaitTimeoutRetryCantRecoverWaiter</value>
         <value xml:lang="it">Errore durante l'esecuzione di testServiceLockWaitTimeoutRetryCantRecoverWaiter</value>
         <value xml:lang="ja">testServiceLockWaitTimeoutRetryCantRecoverWaiter実行中にエラー</value>
         <value xml:lang="zh">运行测试服务锁等待程序超时重试不能恢复等待(testServiceLockWaitTimeoutRetryCantRecoverWaiter)时出错</value>
+        <value xml:lang="zh_TW">執行測試服務鎖等待程序超時重試不能恢復等待(testServiceLockWaitTimeoutRetryCantRecoverWaiter)時出錯</value>
     </property>
     <property key="ServiceTestOwnTxError">
         <value xml:lang="en">Error running sub-service with own tx: ${errorString}</value>
         <value xml:lang="it">Errore durante l'esecuzione del sotto-servizio con proprie transazione: ${errorString}</value>
         <value xml:lang="ja">自Txでサブサービス実行中にエラー: ${errorString}</value>
         <value xml:lang="zh">运行带有事务处理的子服务时出错:${errorString}</value>
+        <value xml:lang="zh_TW">執行帶有事務處理的子服務時出錯:${errorString}</value>
     </property>
     <property key="ServiceTestOwnTxSubServiceAfterSetRollbackOnlyInParentErrorCatchWrapper">
         <value xml:lang="en">Error running ServiceTestOwnTxSubServiceAfterSetRollbackOnlyInParentErrorCatchWrapper</value>
         <value xml:lang="it">Errore durante l'esecuzione di ServiceTestOwnTxSubServiceAfterSetRollbackOnlyInParentErrorCatchWrapper</value>
         <value xml:lang="ja">ServiceTestOwnTxSubServiceAfterSetRollbackOnlyInParentErrorCatchWrapper実行中にエラー</value>
         <value xml:lang="zh">运行在上级错误捕获程序中在设置了仅回滚后的带有事务处理子服务的服务测试(ServiceTestOwnTxSubServiceAfterSetRollbackOnlyInParentErrorCatchWrapper)时出错</value>
+        <value xml:lang="zh_TW">執行在上級錯誤捕捉序中在設置了僅回轉後的帶有事務處理子服務的服務測試(ServiceTestOwnTxSubServiceAfterSetRollbackOnlyInParentErrorCatchWrapper)時出錯</value>
     </property>
     <property key="ServiceTestOwnTxSubServiceAfterSetRollbackOnlyInParent">
         <value xml:lang="en">Error running sub-service in testServiceOwnTxSubServiceAfterSetRollbackOnlyInParent</value>
         <value xml:lang="it">Errore durante l'esecuzione di testServiceOwnTxSubServiceAfterSetRollbackOnlyInParent</value>
         <value xml:lang="ja">testServiceOwnTxSubServiceAfterSetRollbackOnlyInParentの中のサブサービス実行中にエラー</value>
         <value xml:lang="zh">运行在上级服务中设置了仅回滚后的带有事务处理子服务的测试服务(testServiceOwnTxSubServiceAfterSetRollbackOnlyInParent)中的子服务时出错</value>
+        <value xml:lang="zh_TW">執行在上級服務中設置了僅回轉後的帶有事務處理子服務的服務測試(testServiceOwnTxSubServiceAfterSetRollbackOnlyInParent)中的子服務時出錯</value>
     </property>
     <property key="ServiceTestRollback">
         <value xml:lang="en">Intentional rollback to test global-rollback</value>
         <value xml:lang="it">Rollback intenzionale per testare il global-rollback</value>
         <value xml:lang="ja">グローバル・ロールバックのテストのため意図的なロールバック</value>
         <value xml:lang="zh">故意回滚以测试全局回滚</value>
+        <value xml:lang="zh_TW">故意回轉以測試全局回轉</value>
     </property>
     <property key="ServiceTestSubServiceError">
         <value xml:lang="en">Error calling sub-service, it should return an error but not throw an exception, so something went wrong: ${errorString}</value>
         <value xml:lang="it">Errore durante l'esecuzione del sotto-servizio, dovrebbe restituire un'errore ma non generare un'eccezione, così qualcosa è andato male: ${errorString}</value>
         <value xml:lang="ja">サブサービス呼び出し中にエラー。エラーを戻しましたが例外がスローされませんでした。なにか誤りがあります: ${errorString}</value>
         <value xml:lang="zh">调用子服务时出错,它应该返回一个错误,而不是抛出一个意外,因此发生了错误:${errorString}</value>
+        <value xml:lang="zh_TW">呼叫子服務時出錯,它應該回傳一個錯誤,而不是抛出一個異常外,因此發生了錯誤:${errorString}</value>
     </property>
     <property key="ServiceTestXmlRpcCalculationOK">
         <value xml:lang="en">adding integer 125 to 365 yields </value>
         <value xml:lang="it">aggiungere intero 125 a 365 yields </value>
         <value xml:lang="ja">整数 125 ~ 365 の加算が生じます </value>
         <value xml:lang="zh">把整数125加到365,生成</value>
+        <value xml:lang="zh_TW">把整數125加到365,生成</value>
     </property>
     <property key="ServiceTestXmlRpcCalculationKO">
         <value xml:lang="en">calcul is wrong ! Why ?</value>
         <value xml:lang="it">calcolo è errato ! Perchè ?</value>
         <value xml:lang="ja">計算に誤りがあります!なぜ?</value>
         <value xml:lang="zh">计算错误!为什么?</value>
+        <value xml:lang="zh_TW">計算錯誤!為什麼?</value>
     </property>
     <property key="ServiceTestXmlRpcMissingParameters">
         <value xml:lang="en">missing parameters</value>
         <value xml:lang="it">parametri mancanti</value>
         <value xml:lang="ja">パラメータが正しくありません</value>
         <value xml:lang="zh">缺少参数</value>
+        <value xml:lang="zh_TW">缺少参數</value>
     </property>
     <property key="ServiceValueNotFound">
         <value xml:lang="en">Value not found, cannot update</value>
         <value xml:lang="it">Valore non troavato, non è possibile aggiornare</value>
         <value xml:lang="ja">値が見つかりません。更新できません</value>
         <value xml:lang="zh">没有找到值,无法更新</value>
+        <value xml:lang="zh_TW">没有找到值,無法更新</value>
     </property>
 </resource>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/DispatchContext.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/DispatchContext.java?rev=1621696&r1=1621695&r2=1621696&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/DispatchContext.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/DispatchContext.java Mon Sep  1 07:29:23 2014
@@ -19,6 +19,8 @@
 package org.ofbiz.service;
 
 import java.io.Serializable;
+import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -28,9 +30,6 @@ import java.util.concurrent.Future;
 
 import javax.wsdl.WSDLException;
 
-import javolution.util.FastList;
-import javolution.util.FastMap;
-
 import org.ofbiz.base.component.ComponentConfig;
 import org.ofbiz.base.concurrent.ExecutionPool;
 import org.ofbiz.base.config.GenericConfigException;
@@ -237,7 +236,7 @@ public class DispatchContext implements
     private Callable<Map<String, ModelService>> createServiceReaderCallable(final ResourceHandler handler) {
         return new Callable<Map<String, ModelService>>() {
             public Map<String, ModelService> call() throws Exception {
-                return ModelServiceReader.getModelServiceMap(handler, DispatchContext.this);
+                return ModelServiceReader.getModelServiceMap(handler, DispatchContext.this.getDelegator());
             }
         };
     }
@@ -245,9 +244,9 @@ public class DispatchContext implements
     private Map<String, ModelService> getGlobalServiceMap() {
         Map<String, ModelService> serviceMap = modelServiceMapByModel.get(this.model);
         if (serviceMap == null) {
-            serviceMap = FastMap.newInstance();
+            serviceMap = new HashMap<String, ModelService>();
 
-            List<Future<Map<String, ModelService>>> futures = FastList.newInstance();
+            List<Future<Map<String, ModelService>>> futures = new LinkedList<Future<Map<String, ModelService>>>();
             List<GlobalServices> globalServicesList = null;
             try {
                 globalServicesList = ServiceConfigUtil.getServiceEngine().getGlobalServices();

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/GenericDispatcherFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/GenericDispatcherFactory.java?rev=1621696&r1=1621695&r2=1621696&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/GenericDispatcherFactory.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/GenericDispatcherFactory.java Mon Sep  1 07:29:23 2014
@@ -45,6 +45,7 @@ public class GenericDispatcherFactory im
         return dispatcher;
     }
 
+    // The default LocalDispatcher implementation.
     private class GenericDispatcher extends GenericAbstractDispatcher {
 
         private GenericDispatcher(String name, Delegator delegator) {
@@ -56,6 +57,10 @@ public class GenericDispatcherFactory im
             }
             this.name = name;
             this.dispatcher = ServiceDispatcher.getInstance(delegator);
+            /*
+             * FIXME: "this" reference escape. DispatchContext constructor uses
+             * this object before it is fully constructed.
+             */
             DispatchContext ctx = new DispatchContext(name, loader, this);
             this.dispatcher.register(ctx);
             this.ctx = ctx;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/LocalDispatcher.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/LocalDispatcher.java?rev=1621696&r1=1621695&r2=1621696&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/LocalDispatcher.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/LocalDispatcher.java Mon Sep  1 07:29:23 2014
@@ -26,7 +26,11 @@ import org.ofbiz.service.jms.JmsListener
 import org.ofbiz.service.job.JobManager;
 
 /**
- * Generic Services Local Dispatcher
+ * A local service dispatcher. This is the main API for the service engine.
+ * <p>Instances of <code>LocalDispatcher</code> are based on a {@link org.ofbiz.entity.Delegator}
+ * instance and an entity model reader name. You can get a <code>LocalDispatcher</code> instance
+ * by calling the {@link org.ofbiz.service.ServiceDispatcher#getLocalDispatcher(String, Delegator)}
+ * factory method.</p>
  */
 public interface LocalDispatcher {
 
@@ -34,20 +38,20 @@ public interface LocalDispatcher {
      * Disables running of Service Engine Condition Actions (SECAs).  Intended to be turned off temporarily.
      * @throws GenericServiceException
      */
-    public void disableEcas();
+    void disableEcas();
 
     /**
      * Reenables running of Service Engine Condition Actions (SECAs).
      * @throws GenericServiceException
      */
-    public void enableEcas();
+    void enableEcas();
 
     /**
      * Returns whether Service Engine Condition Actions (SECAs) are disabled or not.
      * @return returns whether Service Engine Condition Actions (SECAs) are disabled or not.
      * @throws GenericServiceException
      */
-    public boolean isEcasDisabled();
+    boolean isEcasDisabled();
 
     /**
      * Run the service synchronously and return the result.
@@ -58,7 +62,7 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public Map<String, Object> runSync(String serviceName, Map<String, ? extends Object> context) throws GenericServiceException;
+    Map<String, Object> runSync(String serviceName, Map<String, ? extends Object> context) throws GenericServiceException;
 
     /**
      * Run the service synchronously with a specified timeout and return the result.
@@ -71,8 +75,8 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public Map<String, Object> runSync(String serviceName, Map<String, ? extends Object> context, int transactionTimeout, boolean requireNewTransaction) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
-    public Map<String, Object> runSync(String serviceName, int transactionTimeout, boolean requireNewTransaction, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    Map<String, Object> runSync(String serviceName, Map<String, ? extends Object> context, int transactionTimeout, boolean requireNewTransaction) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    Map<String, Object> runSync(String serviceName, int transactionTimeout, boolean requireNewTransaction, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
 
     /**
      * Run the service synchronously and IGNORE the result.
@@ -82,7 +86,7 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public void runSyncIgnore(String serviceName, Map<String, ? extends Object> context) throws GenericServiceException;
+    void runSyncIgnore(String serviceName, Map<String, ? extends Object> context) throws GenericServiceException;
 
     /**
      * Run the service synchronously with a specified timeout and IGNORE the result.
@@ -94,8 +98,8 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public void runSyncIgnore(String serviceName, Map<String, ? extends Object> context, int transactionTimeout, boolean requireNewTransaction) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
-    public void runSyncIgnore(String serviceName, int transactionTimeout, boolean requireNewTransaction, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    void runSyncIgnore(String serviceName, Map<String, ? extends Object> context, int transactionTimeout, boolean requireNewTransaction) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    void runSyncIgnore(String serviceName, int transactionTimeout, boolean requireNewTransaction, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
 
     /**
      * Run the service asynchronously, passing an instance of GenericRequester that will receive the result.
@@ -109,8 +113,8 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public void runAsync(String serviceName, Map<String, ? extends Object> context, GenericRequester requester, boolean persist, int transactionTimeout, boolean requireNewTransaction) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
-    public void runAsync(String serviceName, GenericRequester requester, boolean persist, int transactionTimeout, boolean requireNewTransaction, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    void runAsync(String serviceName, Map<String, ? extends Object> context, GenericRequester requester, boolean persist, int transactionTimeout, boolean requireNewTransaction) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    void runAsync(String serviceName, GenericRequester requester, boolean persist, int transactionTimeout, boolean requireNewTransaction, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
 
     /**
      * Run the service asynchronously, passing an instance of GenericRequester that will receive the result.
@@ -122,8 +126,8 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public void runAsync(String serviceName, Map<String, ? extends Object> context, GenericRequester requester, boolean persist) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
-    public void runAsync(String serviceName, GenericRequester requester, boolean persist, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    void runAsync(String serviceName, Map<String, ? extends Object> context, GenericRequester requester, boolean persist) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    void runAsync(String serviceName, GenericRequester requester, boolean persist, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
 
     /**
      * Run the service asynchronously, passing an instance of GenericRequester that will receive the result.
@@ -135,8 +139,8 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public void runAsync(String serviceName, Map<String, ? extends Object> context, GenericRequester requester) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
-    public void runAsync(String serviceName, GenericRequester requester, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    void runAsync(String serviceName, Map<String, ? extends Object> context, GenericRequester requester) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    void runAsync(String serviceName, GenericRequester requester, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
 
     /**
      * Run the service asynchronously and IGNORE the result.
@@ -147,8 +151,8 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public void runAsync(String serviceName, Map<String, ? extends Object> context, boolean persist) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
-    public void runAsync(String serviceName, boolean persist, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    void runAsync(String serviceName, Map<String, ? extends Object> context, boolean persist) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    void runAsync(String serviceName, boolean persist, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
 
     /**
      * Run the service asynchronously and IGNORE the result. This method WILL persist the job.
@@ -158,7 +162,7 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public void runAsync(String serviceName, Map<String, ? extends Object> context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    void runAsync(String serviceName, Map<String, ? extends Object> context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
 
     /**
      * Run the service asynchronously.
@@ -170,8 +174,8 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public GenericResultWaiter runAsyncWait(String serviceName, Map<String, ? extends Object> context, boolean persist) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
-    public GenericResultWaiter runAsyncWait(String serviceName, boolean persist, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    GenericResultWaiter runAsyncWait(String serviceName, Map<String, ? extends Object> context, boolean persist) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    GenericResultWaiter runAsyncWait(String serviceName, boolean persist, Object... context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
 
     /**
      * Run the service asynchronously. This method WILL persist the job.
@@ -182,14 +186,14 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public GenericResultWaiter runAsyncWait(String serviceName, Map<String, ? extends Object> context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
+    GenericResultWaiter runAsyncWait(String serviceName, Map<String, ? extends Object> context) throws ServiceAuthException, ServiceValidationException, GenericServiceException;
 
     /**
      * Register a callback listener on a specific service.
      * @param serviceName Name of the service to link callback to.
      * @param cb The callback implementation.
      */
-    public void registerCallback(String serviceName, GenericServiceCallback cb);
+    void registerCallback(String serviceName, GenericServiceCallback cb);
 
     /**
      * Schedule a service to run asynchronously at a specific start time.
@@ -206,8 +210,8 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public void schedule(String poolName, String serviceName, Map<String, ? extends Object> context, long startTime, int frequency, int interval, int count, long endTime, int maxRetry) throws GenericServiceException;
-    public void schedule(String poolName, String serviceName, long startTime, int frequency, int interval, int count, long endTime, int maxRetry, Object... context) throws GenericServiceException;
+    void schedule(String poolName, String serviceName, Map<String, ? extends Object> context, long startTime, int frequency, int interval, int count, long endTime, int maxRetry) throws GenericServiceException;
+    void schedule(String poolName, String serviceName, long startTime, int frequency, int interval, int count, long endTime, int maxRetry, Object... context) throws GenericServiceException;
 
     /**
      * Schedule a service to run asynchronously at a specific start time.
@@ -225,8 +229,8 @@ public interface LocalDispatcher {
      * @throws ServiceValidationException
      * @throws GenericServiceException
      */
-    public void schedule(String jobName, String poolName, String serviceName, Map<String, ? extends Object> context, long startTime, int frequency, int interval, int count, long endTime, int maxRetry) throws GenericServiceException;
-    public void schedule(String jobName, String poolName, String serviceName, long startTime, int frequency, int interval, int count, long endTime, int maxRetry, Object... context) throws GenericServiceException;
+    void schedule(String jobName, String poolName, String serviceName, Map<String, ? extends Object> context, long startTime, int frequency, int interval, int count, long endTime, int maxRetry) throws GenericServiceException;
+    void schedule(String jobName, String poolName, String serviceName, long startTime, int frequency, int interval, int count, long endTime, int maxRetry, Object... context) throws GenericServiceException;
 
 
     /**
@@ -240,8 +244,8 @@ public interface LocalDispatcher {
      * @param endTime The time in milliseconds the service should expire
      * @throws GenericServiceException
      */
-    public void schedule(String serviceName, Map<String, ? extends Object> context, long startTime, int frequency, int interval, int count, long endTime) throws GenericServiceException;
-    public void schedule(String serviceName, long startTime, int frequency, int interval, int count, long endTime, Object... context) throws GenericServiceException;
+    void schedule(String serviceName, Map<String, ? extends Object> context, long startTime, int frequency, int interval, int count, long endTime) throws GenericServiceException;
+    void schedule(String serviceName, long startTime, int frequency, int interval, int count, long endTime, Object... context) throws GenericServiceException;
 
     /**
      * Schedule a service to run asynchronously at a specific start time.
@@ -253,8 +257,8 @@ public interface LocalDispatcher {
      * @param count The number of times to repeat.
      * @throws GenericServiceException
      */
-    public void schedule(String serviceName, Map<String, ? extends Object> context, long startTime, int frequency, int interval, int count) throws GenericServiceException;
-    public void schedule(String serviceName, long startTime, int frequency, int interval, int count, Object... context) throws GenericServiceException;
+    void schedule(String serviceName, Map<String, ? extends Object> context, long startTime, int frequency, int interval, int count) throws GenericServiceException;
+    void schedule(String serviceName, long startTime, int frequency, int interval, int count, Object... context) throws GenericServiceException;
 
     /**
      * Schedule a service to run asynchronously at a specific start time.
@@ -266,8 +270,8 @@ public interface LocalDispatcher {
      * @param endTime The time in milliseconds the service should expire
      * @throws GenericServiceException
      */
-    public void schedule(String serviceName, Map<String, ? extends Object> context, long startTime, int frequency, int interval, long endTime) throws GenericServiceException;
-    public void schedule(String serviceName, long startTime, int frequency, int interval, long endTime, Object... context) throws GenericServiceException;
+    void schedule(String serviceName, Map<String, ? extends Object> context, long startTime, int frequency, int interval, long endTime) throws GenericServiceException;
+    void schedule(String serviceName, long startTime, int frequency, int interval, long endTime, Object... context) throws GenericServiceException;
 
     /**
      * Schedule a service to run asynchronously at a specific start time.
@@ -276,8 +280,8 @@ public interface LocalDispatcher {
      * @param startTime The time to run this service.
      * @throws GenericServiceException
      */
-    public void schedule(String serviceName, Map<String, ? extends Object> context, long startTime) throws GenericServiceException;
-    public void schedule(String serviceName, long startTime, Object... context) throws GenericServiceException;
+    void schedule(String serviceName, Map<String, ? extends Object> context, long startTime) throws GenericServiceException;
+    void schedule(String serviceName, long startTime, Object... context) throws GenericServiceException;
 
 
     /**
@@ -287,8 +291,8 @@ public interface LocalDispatcher {
      * @param persist
      * @throws GenericServiceException
      */
-    public void addRollbackService(String serviceName, Map<String, ? extends Object> context, boolean persist) throws GenericServiceException;
-    public void addRollbackService(String serviceName, boolean persist, Object... context) throws GenericServiceException;
+    void addRollbackService(String serviceName, Map<String, ? extends Object> context, boolean persist) throws GenericServiceException;
+    void addRollbackService(String serviceName, boolean persist, Object... context) throws GenericServiceException;
 
     /**
      * Adds a commit service to the current TX using ServiceSynchronization
@@ -297,49 +301,49 @@ public interface LocalDispatcher {
      * @param persist
      * @throws GenericServiceException
      */
-    public void addCommitService(String serviceName, Map<String, ? extends Object> context, boolean persist) throws GenericServiceException;
-    public void addCommitService(String serviceName, boolean persist, Object... context) throws GenericServiceException;
+    void addCommitService(String serviceName, Map<String, ? extends Object> context, boolean persist) throws GenericServiceException;
+    void addCommitService(String serviceName, boolean persist, Object... context) throws GenericServiceException;
 
     /**
      * Gets the JobManager associated with this dispatcher
      * @return JobManager that is associated with this dispatcher
      */
-    public JobManager getJobManager();
+    JobManager getJobManager();
 
     /**
      * Gets the JmsListenerFactory which holds the message listeners.
      * @return JmsListenerFactory
      */
-    public JmsListenerFactory getJMSListeneFactory();
+    JmsListenerFactory getJMSListeneFactory();
 
     /**
      * Gets the GenericEntityDelegator associated with this dispatcher
      * @return GenericEntityDelegator associated with this dispatcher
      */
-    public Delegator getDelegator();
+    Delegator getDelegator();
 
 
     /**
      * Gets the Security object associated with this dispatcher
      * @return Security object associated with this dispatcher
      */
-    public Security getSecurity();
+    Security getSecurity();
 
     /**
      * Returns the Name of this local dispatcher
      * @return String representing the name of this local dispatcher
      */
-    public String getName();
+    String getName();
 
     /**
      * Returns the DispatchContext created by this dispatcher
      * @return DispatchContext created by this dispatcher
      */
-    public DispatchContext getDispatchContext();
+    DispatchContext getDispatchContext();
 
     /**
      * De-Registers this LocalDispatcher
      */
-    public void deregister();
+    void deregister();
 }
 

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/ModelServiceReader.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/ModelServiceReader.java?rev=1621696&r1=1621695&r2=1621696&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/ModelServiceReader.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/ModelServiceReader.java Mon Sep  1 07:29:23 2014
@@ -65,28 +65,28 @@ public class ModelServiceReader implemen
     protected boolean isFromURL;
     protected URL readerURL = null;
     protected ResourceHandler handler = null;
-    protected DispatchContext dctx = null;
+    protected Delegator delegator = null;
 
-    public static Map<String, ModelService> getModelServiceMap(URL readerURL, DispatchContext dctx) {
+    public static Map<String, ModelService> getModelServiceMap(URL readerURL, Delegator delegator) {
         if (readerURL == null) {
             Debug.logError("Cannot add reader with a null reader URL", module);
             return null;
         }
 
-        ModelServiceReader reader = new ModelServiceReader(true, readerURL, null, dctx);
+        ModelServiceReader reader = new ModelServiceReader(true, readerURL, null, delegator);
         return reader.getModelServices();
     }
 
-    public static Map<String, ModelService> getModelServiceMap(ResourceHandler handler, DispatchContext dctx) {
-        ModelServiceReader reader = new ModelServiceReader(false, null, handler, dctx);
+    public static Map<String, ModelService> getModelServiceMap(ResourceHandler handler, Delegator delegator) {
+        ModelServiceReader reader = new ModelServiceReader(false, null, handler, delegator);
         return reader.getModelServices();
     }
 
-    private ModelServiceReader(boolean isFromURL, URL readerURL, ResourceHandler handler, DispatchContext dctx) {
+    private ModelServiceReader(boolean isFromURL, URL readerURL, ResourceHandler handler, Delegator delegator) {
         this.isFromURL = isFromURL;
         this.readerURL = readerURL;
         this.handler = handler;
-        this.dctx = dctx;
+        this.delegator = delegator;
     }
 
     private Map<String, ModelService> getModelServices() {
@@ -437,8 +437,6 @@ public class ModelServiceReader implemen
         boolean includePk = "pk".equals(includeType) || "all".equals(includeType);
         boolean includeNonPk = "nonpk".equals(includeType) || "all".equals(includeType);
 
-        // need a delegator for this
-        Delegator delegator = dctx.getDelegator();
         if (delegator == null) {
             Debug.logWarning("Cannot use auto-attribute fields with a null delegator", module);
         }

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/ServiceDispatcher.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/ServiceDispatcher.java?rev=1621696&r1=1621695&r2=1621696&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/ServiceDispatcher.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/ServiceDispatcher.java Mon Sep  1 07:29:23 2014
@@ -18,15 +18,15 @@
  *******************************************************************************/
 package org.ofbiz.service;
 
+import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import javax.transaction.Transaction;
 
-import javolution.util.FastList;
-import javolution.util.FastMap;
-
 import org.ofbiz.base.config.GenericConfigException;
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.GeneralRuntimeException;
@@ -46,7 +46,7 @@ import org.ofbiz.security.Security;
 import org.ofbiz.security.SecurityConfigurationException;
 import org.ofbiz.security.SecurityFactory;
 import org.ofbiz.service.config.ServiceConfigUtil;
-import org.ofbiz.service.config.model.*;
+import org.ofbiz.service.config.model.StartupService;
 import org.ofbiz.service.eca.ServiceEcaRule;
 import org.ofbiz.service.eca.ServiceEcaUtil;
 import org.ofbiz.service.engine.GenericEngine;
@@ -60,7 +60,8 @@ import org.ofbiz.service.semaphore.Servi
 import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap;
 
 /**
- * Global Service Dispatcher
+ * The global service dispatcher. This is the "engine" part of the
+ * Service Engine.
  */
 public class ServiceDispatcher {
 
@@ -69,7 +70,7 @@ public class ServiceDispatcher {
     public static final int LOCK_RETRIES = 3;
 
     protected static final Map<RunningService, ServiceDispatcher> runLog = new ConcurrentLinkedHashMap.Builder<RunningService, ServiceDispatcher>().maximumWeightedCapacity(lruLogSize).build();
-    protected static Map<String, ServiceDispatcher> dispatchers = FastMap.newInstance();
+    protected static ConcurrentHashMap<String, ServiceDispatcher> dispatchers = new ConcurrentHashMap<String, ServiceDispatcher>();
     // FIXME: These fields are not thread-safe. They are modified by EntityDataLoadContainer.
     // We need a better design - like have this class query EntityDataLoadContainer if data is being loaded.
     protected static boolean enableJM = true;
@@ -79,8 +80,8 @@ public class ServiceDispatcher {
     protected Delegator delegator = null;
     protected GenericEngineFactory factory = null;
     protected Security security = null;
-    protected Map<String, DispatchContext> localContext = null;
-    protected Map<String, List<GenericServiceCallback>> callbacks = null;
+    protected Map<String, DispatchContext> localContext = new HashMap<String, DispatchContext>();
+    protected Map<String, List<GenericServiceCallback>> callbacks = new HashMap<String, List<GenericServiceCallback>>();
     protected JobManager jm = null;
     protected JmsListenerFactory jlf = null;
 
@@ -90,8 +91,6 @@ public class ServiceDispatcher {
         ServiceEcaUtil.readConfig();
 
         this.delegator = delegator;
-        this.localContext = FastMap.newInstance();
-        this.callbacks = FastMap.newInstance();
 
         if (delegator != null) {
             try {
@@ -165,14 +164,11 @@ public class ServiceDispatcher {
         String dispatcherKey = delegator != null ? delegator.getDelegatorName() : "null";
         sd = dispatchers.get(dispatcherKey);
         if (sd == null) {
-            synchronized (ServiceDispatcher.class) {
-                if (Debug.verboseOn()) Debug.logVerbose("[ServiceDispatcher.getInstance] : No instance found (" + dispatcherKey + ").", module);
-                sd = dispatchers.get(dispatcherKey);
-                if (sd == null) {
-                    sd = new ServiceDispatcher(delegator);
-                    dispatchers.put(dispatcherKey, sd);
-                }
-            }
+            if (Debug.verboseOn())
+                Debug.logVerbose("[ServiceDispatcher.getInstance] : No instance found (" + dispatcherKey + ").", module);
+            sd = new ServiceDispatcher(delegator);
+            dispatchers.putIfAbsent(dispatcherKey, sd);
+            sd = dispatchers.get(dispatcherKey);
         }
         return sd;
     }
@@ -204,7 +200,7 @@ public class ServiceDispatcher {
     public synchronized void registerCallback(String serviceName, GenericServiceCallback cb) {
         List<GenericServiceCallback> callBackList = callbacks.get(serviceName);
         if (callBackList == null) {
-            callBackList = FastList.newInstance();
+            callBackList = new LinkedList<GenericServiceCallback>();
         }
         callBackList.add(cb);
         callbacks.put(serviceName, callBackList);
@@ -254,7 +250,7 @@ public class ServiceDispatcher {
      */
     public Map<String, Object> runSync(String localName, ModelService modelService, Map<String, ? extends Object> params, boolean validateOut) throws ServiceAuthException, ServiceValidationException, GenericServiceException {
         long serviceStartTime = System.currentTimeMillis();
-        Map<String, Object> result = FastMap.newInstance();
+        Map<String, Object> result = new HashMap<String, Object>();
         ServiceSemaphore lock = null;
         Map<String, List<ServiceEcaRule>> eventMap = null;
         Map<String, Object> ecaContext = null;
@@ -277,7 +273,7 @@ public class ServiceDispatcher {
                     "/" + modelService.invoke + "] (" + modelService.engineName + ")", module);
             }
 
-            Map<String, Object> context = FastMap.newInstance();
+            Map<String, Object> context = new HashMap<String, Object>();
             if (params != null) {
                 context.putAll(params);
             }
@@ -451,7 +447,7 @@ public class ServiceDispatcher {
                                 needsLockRetry = true;
 
                                 // reset state variables
-                                result = FastMap.newInstance();
+                                result = new HashMap<String, Object>();
                                 isFailure = false;
                                 isError = false;
 
@@ -470,7 +466,7 @@ public class ServiceDispatcher {
                 } while (needsLockRetry && lockRetriesRemaining > 0);
 
                 // create a new context with the results to pass to ECA services; necessary because caller may reuse this context
-                ecaContext = FastMap.newInstance();
+                ecaContext = new HashMap<String, Object>();
                 ecaContext.putAll(context);
                 // copy all results: don't worry parameters that aren't allowed won't be passed to the ECA services
                 ecaContext.putAll(result);
@@ -629,12 +625,12 @@ public class ServiceDispatcher {
                 "] (" + service.engineName + ")", module);
         }
 
-        Map<String, Object> context = FastMap.newInstance();
+        Map<String, Object> context = new HashMap<String, Object>();
         if (params != null) {
             context.putAll(params);
         }
         // setup the result map
-        Map<String, Object> result = FastMap.newInstance();
+        Map<String, Object> result = new HashMap<String, Object>();
         boolean isFailure = false;
         boolean isError = false;
 
@@ -946,8 +942,7 @@ public class ServiceDispatcher {
 
     // gets a value object from name/password pair
     private GenericValue getLoginObject(String service, String localName, String username, String password, Locale locale) throws GenericServiceException {
-        Map<String, Object> context = FastMap.newInstance();
-        context.putAll(UtilMisc.toMap("login.username", username, "login.password", password, "isServiceAuth", true, "locale", locale));
+        Map<String, Object> context = UtilMisc.toMap("login.username", username, "login.password", password, "isServiceAuth", true, "locale", locale);
 
         if (Debug.verboseOn()) Debug.logVerbose("[ServiceDispathcer.authenticate] : Invoking UserLogin Service", module);
 

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/config/WebappEntityLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/config/WebappEntityLabels.xml?rev=1621696&r1=1621695&r2=1621696&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/config/WebappEntityLabels.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/config/WebappEntityLabels.xml Mon Sep  1 07:29:23 2014
@@ -30,7 +30,7 @@
         <value xml:lang="ru">Сущность</value>
         <value xml:lang="th">เอกลักษณ์</value>
         <value xml:lang="zh">实体</value>
-        <value xml:lang="zh_TW">實體</value>
+        <value xml:lang="zh_TW">個體</value>
     </property>
     <property key="ServerHitType.description.EVENT">
         <value xml:lang="de">Event</value>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/config/WebappUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/config/WebappUiLabels.xml?rev=1621696&r1=1621695&r2=1621696&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/config/WebappUiLabels.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/config/WebappUiLabels.xml Mon Sep  1 07:29:23 2014
@@ -85,7 +85,7 @@
         <value xml:lang="th">ผิดพลาด ! ในการค้นหา ModelService สำหรับ serviceName
         </value>
         <value xml:lang="zh">为服务名称查找ModelService时出错</value>
-        <value xml:lang="zh_TW">為服務名稱查找ModelService時出錯</value>
+        <value xml:lang="zh_TW">為服務名稱尋找ModelService時出錯</value>
     </property>
     <property key="coreEvents.invalid_format_count">
         <value xml:lang="de">Falsches Format für SERVICE_COUNT</value>
@@ -163,7 +163,7 @@
         <value xml:lang="ru">Вы должны указать 'serviceName', и не объязательно 'mode' (sync или async, обычное значение sync)</value>
         <value xml:lang="th">คุณต้องระบุ 'serviceName', และเลือก 'mode' (sync หรือ async, ค่ามาตรฐานถึง sync)</value>
         <value xml:lang="zh">你必须指定一个'服务名称','状态'可选 (同步或异步,缺省是同步)</value>
-        <value xml:lang="zh_TW">你必須指定一個'服務名稱','狀態'可選 (同步或異步,缺省是同步)</value>
+        <value xml:lang="zh_TW">你必須指定一個'服務名稱','狀態'可選 (同步或非同步,預設是同步)</value>
     </property>
     <property key="coreEvents.no_delegator_name_defined">
         <value xml:lang="de">Kein Delegator definiert mit diesem Namen</value>
@@ -191,7 +191,7 @@
         <value xml:lang="th">ไม่มีการส่งของด้วยชื่อที่ลงทะเบียนนี้
         </value>
         <value xml:lang="zh">已注册的执行程序中没有那个名字</value>
-        <value xml:lang="zh_TW">已注冊的執行程式中沒有那個名字</value>
+        <value xml:lang="zh_TW">已註冊的執行程式中沒有那個名字</value>
     </property>
     <property key="coreEvents.no_fields_in_session">
         <value xml:lang="de">Keine 'previous fields' auf der Session gefunden</value>
@@ -203,7 +203,7 @@
         <value xml:lang="th">ไม่พบข้อมูลก่อนหน้านี้ใน session
         </value>
         <value xml:lang="zh">会话中没有找到以前的数据项</value>
-        <value xml:lang="zh_TW">會話中沒有找到以前的資料項</value>
+        <value xml:lang="zh_TW">會話中沒有找到以前的欄位</value>
     </property>
     <property key="coreEvents.not_authorized_to_call">
         <value xml:lang="de">Sie sind nicht berechtigt, diesen 'non-exported' Service aufzurufen. Sie müssen sich am System anmelden und die Sicherheitsberechtigung SERVICE_INVOKE_ANY besitzen.</value>
@@ -217,7 +217,7 @@
         <value xml:lang="th">คุณไม่สามารถเรียก service ออกมาได้ คุณต้องเข้าสู่ระบบและได้รับอนุญาตจาก SERVICE_INVOKE_ANY ก่อน
         </value>
         <value xml:lang="zh">你无权调用这个非输出的服务,你必须登录,并具有SERVICE_INVOKE_ANY权限才行</value>
-        <value xml:lang="zh_TW">你無權調用這個非輸出的服務,你必須登錄,並具有SERVICE_INVOKE_ANY權限才行</value>
+        <value xml:lang="zh_TW">你無權呼叫這個非輸出的服務,你必須登入,並具有SERVICE_INVOKE_ANY權限才行</value>
     </property>
     <property key="coreEvents.not_authorized_use_fct">
         <value xml:lang="de">Sie sind nicht berechtigt, diese Funktion zu verwenden</value>
@@ -243,7 +243,7 @@
         <value xml:lang="ru">Диспетчер служб вызвал исключение: </value>
         <value xml:lang="th">Service dispatcher threw an exception: </value>
         <value xml:lang="zh">服务执行程序抛出一个意外错误: </value>
-        <value xml:lang="zh_TW">服務執行程式拋出一個意外錯誤: </value>
+        <value xml:lang="zh_TW">服務執行程式拋出一個異常</value>
     </property>
     <property key="coreEvents.service_eventhandler_exception">
         <value xml:lang="de">Der ServiceEventHandler hat eine Exception geworfen</value>
@@ -256,7 +256,7 @@
         <value xml:lang="ru">ServiceEventHandler вызвал исключение</value>
         <value xml:lang="th">ข้อยกเว้นของ ServiceEventHandler</value>
         <value xml:lang="zh">ServiceEventHandler抛出一个意外错误</value>
-        <value xml:lang="zh_TW">ServiceEventHandler拋出一個意外錯誤</value>
+        <value xml:lang="zh_TW">ServiceEventHandler拋出一個異常</value>
     </property>
     <property key="coreEvents.service_name_not_find">
         <value xml:lang="de">Ein Service mit diesem Namen wurde nicht gefunden</value>
@@ -282,7 +282,7 @@
         <value xml:lang="ru">Служба запланирована</value>
         <value xml:lang="th">Service มีการทำรายการ</value>
         <value xml:lang="zh">服务已列入计划</value>
-        <value xml:lang="zh_TW">服務已列入計劃</value>
+        <value xml:lang="zh_TW">服務已列入排程</value>
     </property>
     <property key="coreEvents.service_time_already_passed">
         <value xml:lang="de">SERVICE_TIME ist bereits vorbei</value>
@@ -324,7 +324,7 @@
         <value xml:lang="ru">Ошибка вызова события</value>
         <value xml:lang="th">เกิดความผิดพลาดในการเรียกเหตุการณ์</value>
         <value xml:lang="zh">调用事件时出错</value>
-        <value xml:lang="zh_TW">調用事件時出錯</value>
+        <value xml:lang="zh_TW">呼叫事件時出錯</value>
     </property>
     <property key="requestHandler.InsecureFormPostToSecureRequest">
         <value xml:lang="en">Not accepting insecure form data posted to a secure request</value>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/SOAPEventHandler.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/SOAPEventHandler.java?rev=1621696&r1=1621695&r2=1621696&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/SOAPEventHandler.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/SOAPEventHandler.java Mon Sep  1 07:29:23 2014
@@ -47,7 +47,7 @@ import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilGenerics;
 import org.ofbiz.base.util.UtilProperties;
 import org.ofbiz.base.util.UtilXml;
-import org.ofbiz.entity.GenericDelegator;
+import org.ofbiz.entity.Delegator;
 import org.ofbiz.service.DispatchContext;
 import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.LocalDispatcher;
@@ -77,7 +77,7 @@ public class SOAPEventHandler implements
      */
     public String invoke(Event event, RequestMap requestMap, HttpServletRequest request, HttpServletResponse response) throws EventHandlerException {
         LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
-        GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
+        Delegator delegator = (Delegator) request.getAttribute("delegator");
 
         // first check for WSDL request
         String wsdlReq = request.getParameter("wsdl");