uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mario Juric (Jira)" <...@uima.apache.org>
Subject [jira] [Commented] (UIMA-6214) Method signature class in ExternalResourceFactory
Date Sat, 04 Apr 2020 19:41:00 GMT

    [ 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)

Mime
View raw message