Author: cwiklik Date: Thu Feb 10 18:47:21 2011 New Revision: 1069521 URL: http://svn.apache.org/viewvc?rev=1069521&view=rev Log: UIMA-2044 Modified getComponentName() to handle missing name in the AE descriptor
Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java?rev=1069521&r1=1069520&r2=1069521&view=diff ============================================================================== --- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java (original) +++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java Thu Feb 10 18:47:21 2011 @@ -248,6 +248,8 @@ public abstract class BaseAnalysisEngine // Holds destination names of clients known to be dead protected ConcurrentHashMap<String,String> deadClientDestinationMap = new ConcurrentHashMap<String, String>(); + private String serviceName=null; + public BaseAnalysisEngineController() { } @@ -308,7 +310,6 @@ public abstract class BaseAnalysisEngine endpointName = anEndpointName; delegateKey = anEndpointName; - if (this instanceof AggregateAnalysisEngineController) { ConcurrentHashMap endpoints = new ConcurrentHashMap(); endpoints.putAll(aDestinationMap); @@ -930,12 +931,48 @@ public abstract class BaseAnalysisEngine public boolean isTopLevelComponent() { return (parentController == null); } - + 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); + } + return implementationName; + } else { + return "Top Level Aggregate Service"; + } + } else { + try { + UimaContext childContext = parentController.getChildUimaContext(endpointName); + String qualifiedName = ((UimaContextAdmin)childContext).getQualifiedContextName(); + if ( qualifiedName != null ) { + if ( qualifiedName.startsWith("/")) { + qualifiedName = qualifiedName.substring(1); + qualifiedName = qualifiedName.replaceAll("/", "_"); // normalize + if ( qualifiedName.endsWith("_")) { + qualifiedName = qualifiedName.substring(0, qualifiedName.length()-1); + } + } + } + } catch( Exception e){} + return delegateKey; + } + } else { + return serviceName; + } + } /** * Returns the name of the component. The name comes from the analysis engine descriptor */ public String getComponentName() { - return ((ResourceCreationSpecifier) resourceSpecifier).getMetaData().getName(); + if ( serviceName == null ) { + serviceName = setupName(); + } + return serviceName; } /**