I think one really big problem with the OSGi specs is that only people working for an OSGi alliance member can work on specs. Especially in the open source world there are a lot of motivated people with good knowledge but if their employer is not an OSGi member these people can not work on any spec. So while I can understand that only the OSGi members decide about the specs in the end I think the OSGi alliance must open itself more for individuals who are offering to help. Only in this way
the OSGi alliance can keep up with the dynamics of open source.

Having saig all this I am not sure though if it would really help with blueprint. In the case of blueprint my impression is that it has grown too complex while still having some severe drawbacks in practice.

So I myself are currently looking more into DS as it is simpler and has less issues with all the OSGi dynamics. I think DS might need a defined extension model but in its core I really like that
it kept being quite simple.

Christian

On 08.07.2016 12:37, David Bosschaert wrote:
Hi Brad,

On the 'Blueprint is dead' discussion... There are a number of RFCs in OSGi about improving blueprint [1][2][3][4][5], but they have not made it to the specs yet because those pushing them forward ended up being reassigned to other work. Anyone who is a member of OSGi can certainly pick those up and bring 'Blueprint back to life'... OTOH a lot of work has gone into Declarative Services over the recent past so if someone was to start from scratch it would make most sense to use DS today...

Best regards,

David

[1] https://github.com/osgi/design/tree/master/rfcs/rfc0155
[2] https://github.com/osgi/design/tree/master/rfcs/rfc0156
[3] https://github.com/osgi/design/tree/master/rfcs/rfc0164
[4] https://github.com/osgi/design/tree/master/rfcs/rfc0166
[5] https://github.com/osgi/design/tree/master/rfcs/rfc0184

On 8 July 2016 at 11:24, Brad Johnson <[email protected] <mailto:[email protected]>> wrote:

    David B,

    Thanks.  Part of the reason I brought this to this thread was
    another gentleman on the Camel mailing list was trying to figure
    out how to share configurations across his bundles and wondered if
    the PID mechanics of blueprint were usable or if there were a way
    to do it via blueprint.  David J pointed out that the
    multilocation mechanism was the way.  But I hadn't heard of that
    being implemented or available via blueprint. That's when the
    "blueprint is dead" discussion started.

    Brad

    On Fri, Jul 8, 2016 at 3:50 AM, David Bosschaert
    <[email protected] <mailto:[email protected]>>
    wrote:

        Hi Brad,

        In OSGi currently the concept of a Configurator is being
        developed. It's orthogonal to Blueprint or DS and can be used
        with either of them. It might touch on the ideas that you
        mentioned here. You can find the current configurator design
        in RFC 218:
        https://github.com/osgi/design/tree/master/rfcs/rfc0218
        Maybe this might be something that could be of use.

        Additionally, the OSGi ConfigAdmin spec permits the same
        configuration to be consumed by multiple bundles. That might
        also be of use to you if you want to share configurations. The
        bundle location for the configuration should be set to '?' in
        that case (see Config Admin spec 104.4.1).

        Cheers,

        David

        PS feedback on the RFC is appreciated, see here:
        https://github.com/osgi/design

        On 7 July 2016 at 18:53, Brad Johnson
        <[email protected]
        <mailto:[email protected]>> wrote:

            As I work in more environments now that want to use
            microservices the limitations of the blueprint properties
            mechanics become a bit hairier.  I commonly find that I
            have bundles that have common properties shared across
            them and I can't find a good solution other than creating
            my own OSGi service for serving them up for such
            crosscutting concerns.

            I'm not an expert on the specification and implementations
            of compendium or blueprint libraries so don't know how
            feasible something like this would be but I would find the
            following terribly useful.

            A properties hierarchy much like Maven that permits you to
            specify a parent that you inherit from and then can add to
            or override.

            com.foo.parent.cfg
            com.foo.child.cfg

            The child cfg file might have a #! directive at the top
            specifying com.foo.parent PID. And if another one was

            com.foo.grandchild.cfg

            it might specify com.foo.child as its parent.  Then the CM
            would load parent, override it with child and finally
            override that grahdchild.

            Yes, I'd still have to specify

            <cm:property-placeholder persistent-id="com.foo.granchild"
            update-strategy="reload">

            in my bundle and that would still be bound to that single
            bundle but this could alleviate the need for replication
            of properties across a lot of bundles.

            Technically that is all rather straightforward but I'm not
            sure how well that would align with the specifications or
            goals of CM.

            Brad






--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply via email to