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

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

Thinking more about the situation, I now believe that the direct flow of 
information from Java to descriptors actually circumvents the uimaFIT idea of 
keeping descriptor data in Java annotations. uimaFIT annotations are available 
at runtime, so if all information is there, we do not need to access the source 
anymore. uimaFIT provides annotations for parameter descriptions, so these 
should be filled. Otherwise, there could be information in the XML descriptor 
which is not available via reflection.

The way to do this is to create a second "enhance" goal for the uimaFIT maven 
plugin which extracts information from JavaDoc (description) and from the Maven 
context (vendor, version, etc.) and weaves that into the compiled class files. 
It will be necessary to create new uimaFIT annotations for that, because 
information like vendor or version is currently not covered.

During a Maven build, the "enhance" goal would run before the "generate" goal. 
This way, the "generate" can rely purely on information already contained in 
Java annotations - it does not have to access any information from the source 
or project context anymore. 
                
> Fill description of component and parameters from JavaDoc
> ---------------------------------------------------------
>
>                 Key: UIMA-2599
>                 URL: https://issues.apache.org/jira/browse/UIMA-2599
>             Project: UIMA
>          Issue Type: Technical task
>          Components: uimafit
>            Reporter: Richard Eckart de Castilho
>            Assignee: Richard Eckart de Castilho
>             Fix For: 2.0.0uimaFIT
>
>
> Since the maven plugin runs at at build time and has access to the sources, 
> this is a unique opportunity to extract descriptions of components and 
> parameters from JavaDoc. The @ConfigurationParameter annotation provides for 
> a description, but I always found it inconvenient to maintain the description 
> twice, once in JavaDoc and once in the annotation. uimaFIT currently has no 
> support for component descriptions.
> Often, the JavaDoc in uimaFIT components is not added do the parameter 
> variable, but rather to the parameter name constant. So auto-completion in 
> the IDE is use on PARAM_<ctrl-space>, it lists all the parameters along with 
> their explanation. 
> {code}
> /**
>  * A user-definable value.
>  */
> public static final String PARAM_VALUE = "value";
> @ConfigurationParameter(name=PARAM_VALUE)
> private String value;
> {code}
> For this reason, the maven plugin should support looking for parameter 
> documentation not on a field, but rather look for a constant field in the 
> component that starts with PARAM and has as value the name of the field - if 
> such a constant is found, its JavaDoc should be used.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to