[ https://issues.apache.org/jira/browse/UIMA-6214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17080446#comment-17080446 ]
Richard Eckart de Castilho commented on UIMA-6214: -------------------------------------------------- The actual changes made differ slightly from the proposal above - in particular there are two kinds of {{bindResourcesOnce}} - one with and one without binding of nested resources. The ones without nested resources have been renamed to {{bindResourcesOnceWithoutNested}}. Also, another {{bindResources}} call taking a URL as the last argument was deprecated and renamed to {{bindResourcesUsingUrl}}. The migration section of the documentation describes the changes in detail. > Method signature clash in ExternalResourceFactory > ------------------------------------------------- > > Key: UIMA-6214 > URL: https://issues.apache.org/jira/browse/UIMA-6214 > Project: UIMA > Issue Type: Bug > Components: uimaFIT > Affects Versions: 3.0.0uimaFIT > Reporter: Richard Eckart de Castilho > Assignee: Richard Eckart de Castilho > Priority: Major > Fix For: 3.1.0uimaFIT > > > The renaming of methods in the ExternalResourceFactory between uimaFIT v2 and > v3 was designed to remove ambiguities between the method signatures. However, > it has introduced a new set of ambiguities... > There are a few methods meant do bind a resource to one particular thing > (resource manager, component, other resource) > * {{void bindResource(ResourceCreationSpecifier aDesc, String aBindTo, > ExternalResourceDescription aRes)}} > * {{void bindResource(ResourceCreationSpecifier aDesc, String aBindTo, String > aRes)}} > * {{void bindResource(ResourceManagerConfiguration aResMgrCfg, String > aBindTo, String aRes)}} > * {{void bindResource(ExternalResourceDescription aRes, String aBindTo, > ExternalResourceDescription aNestedRes)}} > * {{void bindResource(ResourceManagerConfiguration aResMgrCfg, String > aBindTo, ExternalResourceDescription aRes)}} > Then, there is another bunch of methods meant to scan objects recursively and > bind resources wherever applicable: > * {{void bindResource(ResourceSpecifier aDesc, String aKey, > ExternalResourceDescription aResDesc)}} > * {{void bindResource(ResourceSpecifier aDesc, String aKey, String aUrl)}} > * {{void bindResource(ResourceSpecifier aDesc, Class<? extends Resource> > aRes, String... aParams)}} > * {{void bindResource(ResourceSpecifier aDesc, Class<?> aApi, Class<? extends > Resource> aRes, String... aParams)}} > * {{void bindResource(ResourceSpecifier aDesc, ExternalResourceDescription > aResDesc)}} > * {{void bindResource(ResourceSpecifier aDesc, String aKey, Class<? extends > Resource> aRes, String... aParams)}} > * {{void bindResource(ResourceSpecifier aDesc, String aKey, File aFile)}} > * {{void bindResource(ResourceSpecifier aDesc, String aKey, URL aUrl)}} > * {{void bindResourceUsingUrl(ResourceSpecifier aDesc, Class<? extends > SharedResourceObject> aRes, String aUrl, Object... aParams)}} > * {{void bindResourceUsingUrl(ResourceSpecifier aDesc, Class<?> aApi, Class<? > extends SharedResourceObject> aRes, String aUrl, Object... aParams)}} > * {{void bindResourceUsingUrl(ResourceSpecifier aDesc, String aKey, Class<? > extends SharedResourceObject> aRes, String aUrl, Object... aParams)}} > There is in particular a conflict between these pairs because > {{ResourceCreationSpecifier}} is a subclass of {{ResourceSpecifier}} > *Pair 1* > * bind specifically: {{void bindResource(ResourceCreationSpecifier aDesc, > String aBindTo, ExternalResourceDescription aRes)}} > * scan recursively: {{void bindResource(ResourceSpecifier aDesc, String aKey, > ExternalResourceDescription aResDesc)}} > *Pair 2* > * bind specifically: {{void bindResource(ResourceCreationSpecifier aDesc, > String aBindTo, String aRes)}} > * scan recursively: {{void bindResource(ResourceSpecifier aDesc, String aKey, > String aUrl)}} -- This message was sent by Atlassian Jira (v8.3.4#803005)