[ 
https://issues.apache.org/jira/browse/TUSCANY-3998?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Greg Dritschler reopened TUSCANY-3998:
--------------------------------------


I discovered a problem with the original patch.
EquinoxServiceDiscover$ServiceDeclarationImpl.getResource() uses 
Bundle.getResource() to find a resource.  This looks at imported packages 
first.  Since it is likely the embedder's jar is importing the Tuscany package, 
this will get the Tuscany version of the resource which is exactly what we 
don't want.

I have updated the patch with a change to 
EquinoxServiceDiscover$ServiceDeclarationImpl.getResource() to use 
Bundle.getEntry() which looks in the bundle only.  If that fails, then it tries 
Bundle.getResource() for compatibility.
                
> Provide a way to override Tuscany "system" definition.xml documents
> -------------------------------------------------------------------
>
>                 Key: TUSCANY-3998
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-3998
>             Project: Tuscany
>          Issue Type: Improvement
>    Affects Versions: Java-SCA-2.0
>            Reporter: Greg Dritschler
>            Assignee: ant elder
>            Priority: Minor
>         Attachments: TUSCANY-3998.patch
>
>
> A Tuscany embedder may need to change certain system definitions, e.g. a 
> bindingType or an implementationType.
> System definitions are found using the ServiceDiscovery mechanism.  
> DefaultDefinitionsExtensionPoint looks for jars/bundles that have a 
> META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions file.
>             definitionsDeclarations = 
> registry.getServiceDiscovery().getServiceDeclarations(DEFINITIONS_FILE);
> This collects all definitions documents in the runtime.  There is no way to 
> override one definitions document with another.
> I am attaching a patch to address this.  It changes the 
> getServiceDeclarations() call to get declarations in ranked order.  When 
> processing the returned declarations, it now processes only the first 
> resource with a given path.
> The embedder's service declaration must use the same resource name as the 
> Tuscany definition it replaces and it must have a higher ranking attribute.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to