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

Rajini Sivaram updated TUSCANY-1940:
------------------------------------

    Attachment: osgi-dynamic-wiring-test.jar
                tuscany-modules-patch.txt

> Dynamic Wiring for implementation.osgi
> --------------------------------------
>
>                 Key: TUSCANY-1940
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1940
>             Project: Tuscany
>          Issue Type: New Feature
>          Components: Java SCA OSGi Integration
>            Reporter: Rajini Sivaram
>         Attachments: osgi-dynamic-wiring-test.jar, tuscany-modules-patch.txt
>
>
> This is a placeholder for the work required to support Distributed-OSGi using 
> SCA metadata and the Tuscany runtime. This is not expected to be committed 
> into Tuscany until the changes are discussed and finalized on the mailing 
> list.  Graham Charters will be following this up in the new year.
> The attached patch supports the following scenarios (based on the BeerOrder 
> example from RFC 119 for Distributed-OSGi):
>     <component name="BeerOrderComponent">
>        <implementation.osgi..../>
>        <reference name="warehouse" wiredByImpl="true" requires="integrity">
>     </component>
> 1) There are two Warehouse Services in the SCA domain. Proxies to both 
> services are installed by Tuscany in the OSGi registry. One of the services 
> is chosen by OSGi for BeerOrderComponent/warehouse. At the moment, OSGi 
> properties of the service are not set on the proxy, but this will be added 
> once the component description of the service component can be obtained from 
> the SCA domain. Property matching will be done by OSGi.
> 2) The warehouse service that the BeerOrderComponent is wired to is removed 
> from the SCA domain. The proxy corresponding to that warehouse service is 
> removed from the OSGi registry. OSGi service listener will be used by the 
> application to rewire to the other warehouse service.
> 3) The second warehouse service is also removed from the SCA domain. The 
> second proxy is removed, and the OSGi application's service listener is 
> notified. Any attempt to use cached proxies will throw an exception.
> 4) A new warehouse service is added to the SCA domain. A new proxy is 
> installed in the OSGi registry, and the application's service listener can 
> wire to this service.
> 5) Another warehouse service is added to the SCA domain. Another proxy is 
> installed in the OSGi registry, and the application is notified. But the 
> proxy to the previously installed service can be used without any disruption.
> The changes to the Tuscany runtime to support these scenarios:
> 1) For references marked wiredByImpl inside a component using 
> implementation.osgi, the implementation.osgi provider is notified whenever a 
> matching service becomes available or unavailable. Proxies are 
> registered/unregistered into the OSGi registry by  implementation.osgi. 
> Matching of interfaces/intents/policies is done by Tuscany, property matching 
> using OSGi filters is done by OSGi. OSGi applications will be notified when 
> matching services are available/removed. 
> 2) If a service being used by an OSGi reference becomes unavailable, the OSGi 
> application will be notified (as long the SCA domain knows about the change). 
> It is upto the application to wire to a different service. 
> implementation.osgi registers/unregisters all matching services for 
> references in the service registry whenever the domain is updated. The rest 
> is handled by OSGi. For OSGi procedural services, services provided by the 
> bundle will not be affected if references are not satisfied. For OSGi 
> declarative services, the component will be deactivated by OSGi if mandatory 
> references are not satisfied. 
> 3) If an additional matching service becomes available, references to other 
> services should work without exception. And there should be no impact on 
> services provided by the component. The bundle  should not be restarted. 
> Tuscany will add new wires to the new service, but the wires to previously 
> installed services will not be modified. This is different from the way 
> non-OSGi components are handled, where changes to domain cause whole 
> components to be restarted (causing disruption as well as restarting the 
> scope).
>    

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to