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

Mario Juric commented on UIMA-6214:
-----------------------------------

I agree that the best in this case is to rename the methods despite loss of 
backward compatibility, but the name change will also help distinguish between 
what those different methods do, since they are not just overloads for the same 
thing.

> Method signature class 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)

Reply via email to