This is an automated email from the ASF dual-hosted git repository. rec pushed a commit to branch bugfix/UIMA-6446-Complexities-around-enhancing-classes-with-their-resource-name in repository https://gitbox.apache.org/repos/asf/uima-uimafit.git
commit 5527a04fb02bbb9c191446bbc76fd4cefd53af11 Author: Richard Eckart de Castilho <[email protected]> AuthorDate: Mon May 9 17:26:31 2022 +0200 [UIMA-6446] Complexities around enhancing classes with their resource name - Do not inherit ResourceMetaData annotation from parent class - Added test - Fixed reference to UIMAJ JavaDoc --- pom.xml | 2 +- .../uima/fit/factory/ResourceMetaDataFactory.java | 3 +-- .../fit/factory/AnalysisEngineFactoryTest.java | 23 ++++++++++++++++++++-- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index a5c1639..2c2e350 100644 --- a/pom.xml +++ b/pom.xml @@ -89,7 +89,7 @@ <windowtitle>Apache uimaFIT ${project.version} User-Level API Documentation</windowtitle> <notimestamp>true</notimestamp> <links> - <link>http://uima.apache.org/d/uimaj-${uima.version}/apidocs/</link> + <link>https://uima.apache.org/d/uimaj-${uima-version}/apidocs/</link> </links> <groups> <group> diff --git a/uimafit-core/src/main/java/org/apache/uima/fit/factory/ResourceMetaDataFactory.java b/uimafit-core/src/main/java/org/apache/uima/fit/factory/ResourceMetaDataFactory.java index 2f95a99..4738970 100644 --- a/uimafit-core/src/main/java/org/apache/uima/fit/factory/ResourceMetaDataFactory.java +++ b/uimafit-core/src/main/java/org/apache/uima/fit/factory/ResourceMetaDataFactory.java @@ -44,8 +44,7 @@ public final class ResourceMetaDataFactory { public static void configureResourceMetaData(ResourceMetaData aMetaData, Class<?> aComponentClass) { org.apache.uima.fit.descriptor.ResourceMetaData componentAnno = ReflectionUtil - .getInheritableAnnotation(org.apache.uima.fit.descriptor.ResourceMetaData.class, - aComponentClass); + .getAnnotation(aComponentClass, org.apache.uima.fit.descriptor.ResourceMetaData.class); if (componentAnno == null) { // Default handling if no annotation is present. diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java b/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java index 26a3c04..42512b7 100644 --- a/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java +++ b/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java @@ -461,8 +461,7 @@ public class AnalysisEngineFactoryTest extends ComponentTestBase { @Test public void testResourceMetaData() throws Exception { - AnalysisEngineDescription desc = AnalysisEngineFactory - .createEngineDescription(AnnotatorWithMetaDataClass.class); + AnalysisEngineDescription desc = createEngineDescription(AnnotatorWithMetaDataClass.class); org.apache.uima.resource.metadata.ResourceMetaData meta = desc.getMetaData(); @@ -473,6 +472,26 @@ public class AnalysisEngineFactoryTest extends ComponentTestBase { assertEquals("uimaFIT", meta.getVendor()); } + @Test + public void testResourceMetaDataOnParentIgnored() throws Exception { + AnalysisEngineDescription desc = createEngineDescription(AnnotatorWithMetaDataClassOnParent.class); + + org.apache.uima.resource.metadata.ResourceMetaData meta = desc.getMetaData(); + + assertThat(meta.getName()).isEqualTo(AnnotatorWithMetaDataClassOnParent.class.getName()); + assertThat(meta.getVersion()).isEqualTo("unknown"); + assertThat(meta.getDescription()).isEqualTo("Descriptor automatically generated by uimaFIT"); + assertThat(meta.getCopyright()).isNull(); + assertThat(meta.getVendor()).isEqualTo("org.apache.uima.fit.factory"); + } + + public static class AnnotatorWithMetaDataClassOnParent extends AnnotatorWithMetaDataClass { + @Override + public void process(JCas aJCas) throws AnalysisEngineProcessException { + // Dummy + } + } + @ResourceMetaData(name = "dummy", version = "1.0", description = "Just a dummy", copyright = "ASL 2.0", vendor = "uimaFIT") public static class AnnotatorWithMetaDataClass extends JCasAnnotator_ImplBase { @Override
