uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Eckart de Castilho (JIRA)" <...@uima.apache.org>
Subject [jira] [Commented] (UIMA-3776) Delegate AEs no longer serialized to XML after resolving imports on aggregate
Date Thu, 24 Apr 2014 16:59:14 GMT

    [ https://issues.apache.org/jira/browse/UIMA-3776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13979956#comment-13979956
] 

Richard Eckart de Castilho commented on UIMA-3776:
--------------------------------------------------

MetaDataObject_impl.getAttributes() does not automatically detect the attribute "delegateAnalysisEngineSpecifiers"
because it has no setter. AnalysisEngineDescription_impl.getAdditionalAttributes() does not
return "delegateAnalysisEngineSpecifiers", only "delegateAnalysisEngineSpecifiersWithImports".
However, AnalysisEngineDescription_impl.writePropertyAsElement(PropertyXmlInfo, String, ContentHandler)
has the following logic:

{noformat}
String propName = PROP_DELEGATE_ANALYSIS_ENGINE_SPECIFIERS;
      if (mDelegateAnalysisEngineSpecifiers.isEmpty()) {
        propName = PROP_DELEGATE_ANALYSIS_ENGINE_SPECIFIERS_WITH_IMPORTS;
      }
      writeMapPropertyToXml(propName, ELEM_DELEGATE_ANALYSIS_ENGINE_SPECIFIERS, "key",
              "delegateAnalysisEngine", aPropInfo.omitIfNull, aNamespace, aContentHandler);
{noformat}

Note that writeMapPropertyToXml uses MetaDataObject_impl.getAttributes() internally. Thus,
after resolving imports and thus causing mDelegateAnalysisEngineSpecifiers not to be empty
anymore, the delegates are no longer serialized because writeMapPropertyToXml has no access
to "delegateAnalysisEngineSpecifiers".

It should be save to e add a read-only attribute for delegateAnalysisEngineSpecifiers to AnalysisEngineDescription_impl
using getDelegateAnalysisEngineSpecifiers() as a getter method. 

> Delegate AEs no longer serialized to XML after resolving imports on aggregate
> -----------------------------------------------------------------------------
>
>                 Key: UIMA-3776
>                 URL: https://issues.apache.org/jira/browse/UIMA-3776
>             Project: UIMA
>          Issue Type: Bug
>          Components: Core Java Framework
>            Reporter: Richard Eckart de Castilho
>             Fix For: 2.6.0SDK
>
>
> This is a regression in the UIMA SDK 2.6.0 RC 1 and worked in UIMA SDK 2.5.0.
> * Add a full delegate description to an AAE.
> * Serialize to XML: delegate description is serialized.
> * Call resolveImports()
> * Serialize to XML: delegate description is no longer serialized.
> {noformat}
>   public void testNoDelegatesToResolve() throws Exception {
>     ResourceSpecifierFactory f = UIMAFramework.getResourceSpecifierFactory();
>     AnalysisEngineDescription outer = f.createAnalysisEngineDescription();
>     AnalysisEngineDescription inner = f.createAnalysisEngineDescription();
>     outer.getDelegateAnalysisEngineSpecifiersWithImports().put("inner", inner);
>     StringWriter outerXml = new StringWriter();
>     outer.toXML(outerXml);
>     
>     // Resolving the imports removes the inner AE description
>     outer.resolveImports(UIMAFramework.newDefaultResourceManager());
>     
>     StringWriter outerXml2 = new StringWriter();
>     outer.toXML(outerXml2);
>     Assert.assertEquals(outerXml.toString(), outerXml2.toString());
>   }
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message