Hlavní menu

Nástroje

OSGiBundleCompatibilityChecking / HomePage

View (print) - Edit page | Recent changes - Page history

Updated 10 March 2009, 17:13 by PremekBrada

OSGiBundleCompatibilityChecking.HomePage History

Hide minor edits - Show changes to markup

10 March 2009, 17:13 by PremekBrada -
Added lines 7-16:

How to obtain package and service bindings

Available interfaces and services in OSGi are

org.osgi.framework BundleContext :: getBundles() -> Bundle[] org.osgi.framework.Bundle :: getRegisteredServices() and getServicesInUse() org.osgi.service.packageadmin PackageAdmin :: getExportedPackages(Bundle bundle) -> ExportedPackage[] and getRequiredBundles(java.lang.String symbolicName) -> RequiredBundle[]

28 February 2009, 15:53 by PremekBrada -
Changed lines 21-23 from:

Version spec and matching: For capabilities, one of their property types is "version". For requirements, LDAP filters are used (example in section 5.5.7 of the OBR RFC shows it, sec 5.6.3 mandates filter syntax to be enhanced by version ranges). The OSGi suggested scheme is to be used.

to:

Version spec and matching:

  • For capabilities, one of their property types is "version".
  • For requirements, LDAP filters are used (example in section 5.5.7 of the OBR RFC shows it, sec 5.6.3 mandates filter syntax to be enhanced by version ranges).
  • The OSGi suggested scheme is to be used.
28 February 2009, 15:48 by PremekBrada -
Changed lines 21-23 from:

Version spec and matching: For capabilities, one of their property types is "version". For requirements, LDAP filters are used (example in section 5.5.7 of the OBR RFC shows it). The OSGi suggested scheme is to be used.

to:

Version spec and matching: For capabilities, one of their property types is "version". For requirements, LDAP filters are used (example in section 5.5.7 of the OBR RFC shows it, sec 5.6.3 mandates filter syntax to be enhanced by version ranges). The OSGi suggested scheme is to be used.

28 February 2009, 15:45 by PremekBrada -
Added line 13:
Changed lines 17-21 from:

Bundle Repository (OBR)

In OBR terminology, the exported features are called "capabilities" (and imported ones "requirements")

to:

Bundle Repository (OBR) -- http://www.osgi.org/Repository/HomePage

Exported features are called "capabilities". Imported ones ("requirements") are actually named filter expressions.

Version spec and matching: For capabilities, one of their property types is "version". For requirements, LDAP filters are used (example in section 5.5.7 of the OBR RFC shows it). The OSGi suggested scheme is to be used.

28 February 2009, 15:30 by PremekBrada -
Changed lines 16-20 from:
to:

Bundle Repository (OBR)

In OBR terminology, the exported features are called "capabilities" (and imported ones "requirements")

28 February 2009, 15:24 by PremekBrada -
Changed lines 13-19 from:
  • sec 112.3.4 Selecting target svc is constrained by svc name and props, but exported services do not declare versions as first-class citizens (cf 112.4.6) so only the general mechanism of properties can be used (but these are on component, not service, level). Since the properties use LDAP syntax which allows wildcards, $\leq$ and $\geq$ operators, it should be possible to specify version range matching with the limitation that

it would use string comparison.

  • Explanation of R4 section 112.6 item 3: the rather complicated language says (if I understand correctly) that the target filter of a reference is available as the enclosing component's property with name (key in the property map) reference_name.target. E.g. for <reference name="factory"

interface="f.q.name" target="(creation.method=shallow-copy)"> the filter is manifested in the enclosing component as property (112.3.4) factory.target="(creation.method=shallow-copy)". Thus we could have <reference name="xyz" \ldots target="(interface.version>=1.3.0)"> resulting in component's property xyz.target="(interface.version>=1.3.0).

to:
  • sec 112.3.4 Selecting target svc is constrained by svc name and props, but exported services do not declare versions as first-class citizens (cf 112.4.6) so only the general mechanism of properties can be used (but these are on component, not service, level). Since the properties use LDAP syntax which allows wildcards, $\leq$ and $\geq$ operators, it should be possible to specify version range matching with the limitation that it would use string comparison.
  • Explanation of R4 section 112.6 item 3: the rather complicated language says (if I understand correctly) that the target filter of a reference is available as the enclosing component's property with name (key in the property map) reference_name.target. E.g. for <reference name="factory" interface="f.q.name" target="(creation.method=shallow-copy)"> the filter is manifested in the enclosing component as property (112.3.4) factory.target="(creation.method=shallow-copy)". Thus we could have <reference name="xyz" \ldots target="(interface.version>=1.3.0)"> resulting in component's property xyz.target="(interface.version>=1.3.0).
28 February 2009, 15:23 by PremekBrada -
Changed lines 12-13 from:

sec 112.3.4 Selecting target svc is constrained by svc name and props, but exported services do not declare versions as first-class citizens (cf 112.4.6) so only the general mechanism of properties can be used (but these are on component, not service, level). Since the properties use LDAP syntax which allows wildcards, $\leq$ and $\geq$ operators, it should be possible to specify version range matching with the limitation that

to:

Use of properties for version specification and matching:

  • sec 112.3.4 Selecting target svc is constrained by svc name and props, but exported services do not declare versions as first-class citizens (cf 112.4.6) so only the general mechanism of properties can be used (but these are on component, not service, level). Since the properties use LDAP syntax which allows wildcards, $\leq$ and $\geq$ operators, it should be possible to specify version range matching with the limitation that
Changed lines 15-16 from:
to:
  • Explanation of R4 section 112.6 item 3: the rather complicated language says (if I understand correctly) that the target filter of a reference is available as the enclosing component's property with name (key in the property map) reference_name.target. E.g. for <reference name="factory"

interface="f.q.name" target="(creation.method=shallow-copy)"> the filter is manifested in the enclosing component as property (112.3.4) factory.target="(creation.method=shallow-copy)". Thus we could have <reference name="xyz" \ldots target="(interface.version>=1.3.0)"> resulting in component's property xyz.target="(interface.version>=1.3.0).

Deleted lines 27-33:

Explanation of R4 section 112.6 item 3: the rather complicated language says (if I understand correctly) that the target filter of a reference is available as the enclosing component's property with name (key in the property map) reference_name.target. E.g. for @@<reference name="factory" interface="f.q.name" target="(creation.method=shallow-copy)"> the filter is manifested in the enclosing component as property (112.3.4) factory.target="(creation.method=shallow-copy)"@@. Thus we could have <reference name="xyz" \ldots target="(interface.version>=1.3.0)"> resulting in component's property xyz.target="(interface.version>=1.3.0).

28 February 2009, 15:22 by PremekBrada -
Added lines 5-6:

Mostly with respect to compatibility evaluation, type matching.

Changed lines 10-11 from:
  • SCR uses term ``satisfied for analogous state what in std osgi is ``resolved.
to:
  • SCR uses term ``satisfied" for analogous state what in std osgi is ``resolved".

sec 112.3.4 Selecting target svc is constrained by svc name and props, but exported services do not declare versions as first-class citizens (cf 112.4.6) so only the general mechanism of properties can be used (but these are on component, not service, level). Since the properties use LDAP syntax which allows wildcards, $\leq$ and $\geq$ operators, it should be possible to specify version range matching with the limitation that it would use string comparison.

28 February 2009, 15:20 by PremekBrada -
Added lines 18-24:

Explanation of R4 section 112.6 item 3: the rather complicated language says (if I understand correctly) that the target filter of a reference is available as the enclosing component's property with name (key in the property map) reference_name.target. E.g. for @@<reference name="factory" interface="f.q.name" target="(creation.method=shallow-copy)"> the filter is manifested in the enclosing component as property (112.3.4) factory.target="(creation.method=shallow-copy)"@@. Thus we could have <reference name="xyz" \ldots target="(interface.version>=1.3.0)"> resulting in component's property xyz.target="(interface.version>=1.3.0).

28 February 2009, 15:05 by PremekBrada -
Changed lines 12-13 from:

OSGi filters use LDAP filter syntax (RFC 4515) and matching rules (RFC 4517)

to:

OSGi filters use LDAP filter syntax (RFC 4515) and matching rules (RFC 4517, partially explained in OpenDS wiki)

28 February 2009, 14:52 by PremekBrada -
Changed lines 12-13 from:

OSGi filters use LDAP filter syntax (RFC 4515)

to:

OSGi filters use LDAP filter syntax (RFC 4515) and matching rules (RFC 4517)

28 February 2009, 14:43 by PremekBrada -
Changed lines 10-15 from:
to:

Related resources

OSGi filters use LDAP filter syntax (RFC 4515)

Miscellanea

28 February 2009, 12:14 by PremekBrada -
Changed line 7 from:
  • SCR allows re-binding to a different svc if it is available and the currently bound svc is shut down (sec 112.3.3)
to:
  • SCR allows re-binding to a different svc if it is available and the currently bound svc is shut down (sec 112.3.3, 112.5.10)
28 February 2009, 12:05 by PremekBrada -
Changed lines 8-10 from:
to:
  • SCR uses term ``satisfied for analogous state what in std osgi is ``resolved.
28 February 2009, 12:02 by PremekBrada -
Added lines 3-10:

Co víme o součástech OSGi

Declarative Services Specification (SCR, after Service Component Runtime)

  • SCR allows re-binding to a different svc if it is available and the currently bound svc is shut down (sec 112.3.3)

Aside: SCR uses ``event strategy'' for binding services which is in fact dependency injection - the component declares setter and unsetter methods to bind and unbind a reference, these are called by the SCR ie the framework

28 February 2009, 12:01 by PremekBrada - založení stránky
Added lines 1-4:

OSGi Bundle Compatibility Checking - projekt na verifikaci typové kompatibility OSGi komponent a jejich vazeb. Viz oficiální stránky na skupině DSS.


Patří do KategorieProjekty.