On Apr 20, 2017 8:04 AM, "Peter Kriens" <peter.kri...@aqute.biz> wrote:

> On 20 Apr 2017, at 14:02, Tim Ward <tim.w...@paremus.com> wrote:
>
> Peter - I assume that you mean that there will be no auto-generated
osgi.service capability. Couldn't that be fixed with an additional
annotation on the component type to add the Provide-Capability to the
manifest?

Yes, that would solve this issue.


Presumably this could be
@aQute.bnd.annotation.headers.ProvideCapability,
or come R7,
@org.osgi.annotation.bundle.Capability .

[I'm assuming that the R7 @Capability Is @Repeatable, which would imply
jdk8 to compile?]

1. Both of these annotations have a "version" parameter, whose value is
constrained to be a String form of an OSGI format Version.

However, capabilities in the osgi.service namespace, are not versioned (and
are not prohibited from using the tag "version" for an uninterrupted String
attribute).

The osgi.contract namespace uses the tag "version" for an attribute of type
 List<Version> (though the api document for the constant contradicts the
text, this appears to be an error).

2. It is not clear what the relationship is between the properties that may
be specified in the standard for registering a service (eg  Driver name for
a DataSourceProvider) and the attributes that should be included in an
advertised capability  for  example, what  attributes are required, and
what typing should be used.

Having to cast values in a filter to the type of a value is inefficient
(iir, typing was/is  implicit in the attribute specification for DAP/LDAP).
This doesn't play well when using an RDBMS.

I haven't quantified this issue yet (the compact index for nexus
repositories doesn't have the capability fields populated, though support
is now included in the index reader libraries).
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to