That's odd, I don't have any uncommitted changes, but my blueprint-core bundle 
has the following export package list, which does include the blueprint utils:


Export-Package: org.apache.aries.blueprint;version="0.4";uses:="org.os
 gi.service.blueprint.reflect,org.osgi.framework,org.w3c.dom",org.apac
 he.aries.blueprint.mutable;version="0.3.2";uses:="org.osgi.service.bl
 ueprint.reflect,org.apache.aries.blueprint,org.osgi.framework",org.ap
 ache.aries.blueprint.ext.evaluator;version="0.3.2",org.apache.aries.b
 lueprint.services;version="0.4";uses:="org.osgi.framework,org.apache.
 aries.blueprint,org.osgi.service.blueprint.container",org.apache.arie
 s.blueprint.utils;version="0.4.0";uses:="org.osgi.framework,org.apach
 e.aries.blueprint,org.osgi.service.blueprint.reflect,org.apache.aries
 .blueprint.mutable,org.osgi.service.blueprint.container,org.slf4j,org
 .apache.aries.blueprint.ext.evaluator,org.apache.aries.blueprint.serv
 ices",org.osgi.service.blueprint;version="1.0.0"

I don't see the core bundle exporting either of the blueprint API packages 
(org.osgi.service.blueprint.container or org.osgi.service.blueprint.reflect), 
but it does export the empty package org.osgi.service.blueprint, which I think 
is spec mandated to come from the blueprint implementation. I'll check that one 
to be sure.

As for property placeholder support, my understanding (based on the cm 
implementation) was that people who wanted property placeholders either used or 
subclassed PropertyPlaceHolder (which is currently still possible), and that 
the AbstractPropertyPlaceHolder was for internal use by blueprint. I could be 
wrong with my understanding of the API here, and if so I have no problem 
working to improve/correct it.

My main aim with the packaging changes is to make sure that the blueprint 
bundles use good OSGi practice and therefore define a proper API. Previous 
versions of blueprint have exposed every package, including classes that I 
definitely wouldn't expect to be API (for example the recipes or the internal 
parser implementation). I do want it to be possible to write functional 
namespace handlers, but I don't expect them to be able to change the internal 
behaviour of blueprint (for example how beans are instantiated, or injected 
with dependencies) unless they are either the ext namespace (which is internal 
and a bit special) or built as fragments that add to the core blueprint 
function. 

When making this change I was careful to make sure that any existing namespace 
handlers I knew of (JPA, TX, CM) were able to keep working. This did require 
some changes to the CM bundle, which had numerous (and some unnecessary) 
couplings to the blueprint internals, but not to the others. Is there something 
else from blueprint that we should make part of the API, or perhaps expose as a 
service, to help other namespaces?

Regards,

Tim


> Date: Thu, 10 Nov 2011 03:26:39 -0800
> Subject: Re: Problems deploying blueprint-cm ?
> From: [email protected]
> To: [email protected]
> 
> Actually, it's not exported by blueprint-core either even if the pom says
> so for some reason. Here's the list of exported packages by blueprint-core
> from its manifest:
> 
> Export-Package: org.apache.aries.blueprint;version="0.4";uses:="org.os
>  gi.service.blueprint.reflect,org.osgi.framework,org.w3c.dom",org.apac
>  he.aries.blueprint.mutable;version="0.3.2";uses:="org.osgi.service.bl
>  ueprint.reflect,org.apache.aries.blueprint,org.osgi.framework",org.ap
>  ache.aries.blueprint.ext.evaluator;version="0.3.2",org.apache.aries.b
>  lueprint.services;version="0.4";uses:="org.osgi.framework,org.apache.
>  aries.blueprint,org.osgi.service.blueprint.container",org.osgi.servic
>  e.blueprint;version="1.0.0"
> 
> 
> Also blueprint-core seems to export blueprint-api (I thought only the full
> blueprint bundle was supposed to aggregate those).
> So given the util package isn't exported at all, blueprint-core +
> blueprint-cm seems unusable to me.
> 
> As for the util package itself, exporting it is actually not sufficient.
>  The PlaceholderUtils is using the AbstractPropertyPlaceholder to check the
> consistency of placeholders, but that class isn't exported anymore, so
> downstream namespace handlers can't use it.   Even if we fix blueprint-core
> to export the utils package, that class need to be made available somehow
> so that it can be extended, so I suppose it'd have to be moved to utils too.
> 
> 
> On Thu, Nov 10, 2011 at 03:17, Timothy Ward <[email protected]> wrote:
> 
> >
> > Hi Guillaume,
> >
> > org.apache.aries.blueprint.utils is exported by the blueprint core bundle
> > at version 0.4. As you identified in another thread it should also be being
> > exported by the blueprint-bundle, but isn't. As for deploying blueprint-cm,
> > I believe it's possible if you install blueprint-api and blueprint-core,
> > but as another approach, doesn't the blueprint-bundle contain the
> > blueprint-cm function by default? I think that should deploy fine as it's
> > what's used in the CM itests.
> >
> > I hope this is helpful.
> >
> > Tim
> >
> > > Date: Wed, 9 Nov 2011 15:10:44 -0800
> > > Subject: Problems deploying blueprint-cm ?
> > > From: [email protected]
> > > To: [email protected]
> > >
> > > Can someone point me to a process for deploying blueprint-cm ?
> > > It seems that bundle requires org.apache.aries.blueprint.utils package
> > > which isn't exported by any bundle afaik.
> > >
> > > It really looks like the most recent changes in blueprint completely
> > broke
> > > the bundles ....
> > > Thoughts welcome ( before I get really pissed ;-) )
> > >
> > > --
> > > ------------------------
> > > Guillaume Nodet
> > > ------------------------
> > > Blog: http://gnodet.blogspot.com/
> > > ------------------------
> > > Open Source SOA
> > > http://fusesource.com
> >
> >
> 
> 
> 
> -- 
> ------------------------
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
                                          

Reply via email to