tcalmant / ipopo

iPOPO: a Service-Oriented Component Model for Python
https://ipopo.readthedocs.io/
Apache License 2.0
69 stars 28 forks source link

Support new remote services control properties #45

Closed tcalmant closed 9 years ago

tcalmant commented 9 years ago

Currently, Pelix Remote Services supports the pelix.remote.export.reject property to reject the export of a specific interface when using remote services, even if it has been indicated in the service.exported.interfaces property.

The main use case is when a component provides multiple services but disallows the export of only some of them, like local-only services (shell commands, ...). This is useful when a component is instantiated manually, with the services.exported.interfaces property set to * (all).

Two other properties should be defined to ease the description of those constraints:

pelix.remote.export.none is the top-priority property: when set all others are ignored. If both export.onlyand export.reject properties are set, the exported interfaces those in export.only minus those of export.reject. if the result is an empty set, then the export is aborted.