You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "Richard Eckart de Castilho (Jira)" <de...@uima.apache.org> on 2022/05/09 11:02:00 UTC

[jira] [Created] (UIMA-6446) Complexities around enhancing classes with their resource name

Richard Eckart de Castilho created UIMA-6446:
------------------------------------------------

             Summary: Complexities around enhancing classes with their resource name
                 Key: UIMA-6446
                 URL: https://issues.apache.org/jira/browse/UIMA-6446
             Project: UIMA
          Issue Type: Bug
          Components: uimaFIT-Maven-Plugin
            Reporter: Richard Eckart de Castilho
            Assignee: Richard Eckart de Castilho


The uimaFIT Maven Plugin contains a mojo called {{enhance}}. This mojo adds a {{ResourceMetaData}} annotation to every class that does not already have one.
In that case, it also sets the {{name}} field using the resource class name.

Now consider the following scenario:
* component class {{Child}} inherits from (abstract) component class {{Parent}}
* for some reason, the class {{Parent}} has been enhanced and therefore carries an auto-generated {{ResourceMetaData("Parent")}} annotation
* for some reason, the class {{Child}} has not been enhanced and also does not carry a {{ResourceMetaData}} annotation

When generating a descriptor for the component now, e.g. using {{createEngineDescription(Child.class}}, the name of the resulting component will be {{Parent}}.

It would seem the approach to solve this problem is to only consider the {{ResourceMetaData.name}} field when it is defined directly on a component. However, for the other fields like {{copyright, description, vendor, version}} it would likewise seem problematic to look them up in parent classes. In many cases, the parent and the child will be in the same project - but in many other cases, they may also not be.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)