You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Arek Kita (JIRA)" <ji...@apache.org> on 2016/08/29 17:58:20 UTC
[jira] [Created] (SLING-6014) [ServiceBlacklister] Allow to
blacklist OSGi services given a generic criteria to prevent finding them in
OSGi container
Arek Kita created SLING-6014:
--------------------------------
Summary: [ServiceBlacklister] Allow to blacklist OSGi services given a generic criteria to prevent finding them in OSGi container
Key: SLING-6014
URL: https://issues.apache.org/jira/browse/SLING-6014
Project: Sling
Issue Type: New Feature
Components: Extensions
Reporter: Arek Kita
h3. Case study
The OSGi container gives an ability for specific {{InterfaceAB}} to find a service that implements given interface. Sometimes more services might implement and satisfy this interface, i.e. {{ServiceA}} and {{ServiceB}}. Based on service ranking (if present) services are used in specific order.
h3. The purpose
The goal of service blacklister is to *exclude* i.e. {{ServiceB}} from finding in OSGi container so always {{ServiceA}} gets used no matter what service ranking is specified.
h3. Typical use cases
Imagine that {{ServiceB}} gets deprecated and it should be no longer used and referenced, however it is widespread and there is no easy way of identifying its bundle (multiple bundles or in other words bundles with different symbolic names may provide it) or it can be installed using many ways and for existing Sling instances there no easy way of disabling it by changing service ranking or uninstalling unknown bundle.
The service blacklister idea accepts the fact that the service might live still in OSGi container but using a service-related (service-oriented) generic criteria and [FindHook|https://osgi.org/javadoc/r4v42/org/osgi/framework/hooks/service/FindHook.html] API the service might be excluded from OSGi service find operations which effectively prevents this service from being referenced.
h3. The idea
The idea would be to create a generic *{{ServiceBlacklister}}* OSGi component that allows to specify OSGi configurations through configuration factory defining a generic criteria (i.e. LDAP-like search query criteria) for blacklisting services.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)