You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2020/06/10 13:14:51 UTC

[uima-async-scaleout] 07/34: UIMA-5750 Fixed ClassCastException when delegate specifies Jms Service Descriptor in async aggregate

This is an automated email from the ASF dual-hosted git repository.

cwiklik pushed a commit to branch uima-as-3
in repository https://gitbox.apache.org/repos/asf/uima-async-scaleout.git

commit 914bbd5caa20f5db7ac2952d783f1041523ae532
Author: cwiklik <cwiklik>
AuthorDate: Tue Mar 20 14:09:04 2018 +0000

    UIMA-5750 Fixed ClassCastException when delegate specifies Jms Service Descriptor in async aggregate
---
 .../controller/BaseAnalysisEngineController.java   | 101 +++++++++++++--------
 1 file changed, 62 insertions(+), 39 deletions(-)

diff --git a/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java b/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java
index 0f3e618..329e105 100644
--- a/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java
+++ b/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java
@@ -93,6 +93,7 @@ import org.apache.uima.as.client.Listener;
 import org.apache.uima.as.client.Listener.Type;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.collection.CollectionReaderDescription;
+import org.apache.uima.resource.CustomResourceSpecifier;
 import org.apache.uima.resource.PearSpecifier;
 import org.apache.uima.resource.Resource;
 import org.apache.uima.resource.ResourceCreationSpecifier;
@@ -1002,46 +1003,68 @@ public abstract class BaseAnalysisEngineController extends Resource_ImplBase imp
   public boolean isTopLevelComponent() {
     return (parentController == null);
   }
+   
+  private String getDelegateServiceName() {
+	  String svcName = null;
+		try {
+			UimaContext childContext = parentController.getChildUimaContext(endpointName);
+			svcName = ((UimaContextAdmin) childContext).getQualifiedContextName();
+			if (svcName != null) {
+				if (svcName.startsWith("/")) {
+					svcName = svcName.substring(1);
+					svcName = svcName.replaceAll("/", "_"); // normalize
+					if (svcName.endsWith("_")) {
+						svcName = svcName.substring(0, serviceName.length() - 1);
+					}
+				}
+			}
+		} catch (Exception e) {
+			svcName = delegateKey;
+		}
+		return svcName;
+  }
+  private String getTopLevelServiceName() {
+	  String svcName = null;
+		if (isPrimitive()) {
+			String implementationName = "";
+			if (resourceSpecifier instanceof ResourceCreationSpecifier) {
+				implementationName = ((ResourceCreationSpecifier) resourceSpecifier).getImplementationName();
+			} else if (resourceSpecifier instanceof CustomResourceSpecifier) {
+				implementationName = ((CustomResourceSpecifier) resourceSpecifier).getResourceClassName();
+			}
+
+			if (implementationName.indexOf(".") > 0) {
+				implementationName = implementationName.substring(implementationName.lastIndexOf(".") + 1);
+			}
+			svcName = implementationName;
+		} else {
+			svcName = "Top Level Aggregate Service";
+		}
+		return svcName;
+  }
   private String setupName() {
-    //return ((ResourceCreationSpecifier) resourceSpecifier).getMetaData().getName();
-    String serviceName = ((ResourceCreationSpecifier) resourceSpecifier).getMetaData().getName();
-    if ( serviceName == null || serviceName.trim().length() == 0 ) {
-      
-      if ( isTopLevelComponent() ) {
-        if ( isPrimitive() ) {
-          String implementationName = ((ResourceCreationSpecifier) resourceSpecifier).getImplementationName();
-          if ( implementationName.indexOf(".") > 0) {
-            implementationName = implementationName.substring(implementationName.lastIndexOf(".")+1);
-          }
-          serviceName = implementationName;
-        } else {
-          serviceName = "Top Level Aggregate Service";
-        }
-      } else {
-        try {
-          UimaContext childContext = parentController.getChildUimaContext(endpointName);
-          serviceName = ((UimaContextAdmin)childContext).getQualifiedContextName();
-          if ( serviceName != null ) {
-            if ( serviceName.startsWith("/")) {
-              serviceName = serviceName.substring(1);
-              serviceName = serviceName.replaceAll("/", "_"); // normalize
-              if ( serviceName.endsWith("_")) {
-                serviceName = serviceName.substring(0, serviceName.length()-1);
-              }
-            }
-          }
-        } catch( Exception e){
-          serviceName = delegateKey;
-        }
-      }
-      if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.INFO)) {
-        UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, CLASS_NAME.getName(),
-                "setupName", UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE,
-                "UIMAEE_using_generated_name_INFO", new Object[] { serviceName });
-      }
-    
-    } 
-    return serviceName;
+		String svcName = null;
+
+		if (!(resourceSpecifier instanceof CustomResourceSpecifier)) {
+			svcName = ((ResourceCreationSpecifier) resourceSpecifier).getMetaData().getName();
+		}
+
+		if (svcName == null || svcName.trim().length() == 0) {
+
+			if (isTopLevelComponent()) {
+				svcName = getTopLevelServiceName();
+			} else {
+				svcName = getDelegateServiceName();
+			}
+
+		}
+
+		if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.INFO)) {
+			UIMAFramework.getLogger(CLASS_NAME).logrb(Level.INFO, CLASS_NAME.getName(), "setupName",
+					UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE, "UIMAEE_using_generated_name_INFO",
+					new Object[] { svcName });
+		}
+		return svcName;
   }
   /**
    * Returns the name of the component. The name comes from the analysis engine descriptor