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