I'd thought that it was possible since the examples have a SimpleRegistry
and mention using it to register beans. But when I looked at the
AbstractCamelRunner it became obvious that that would not work.
I'm trying something by creating a new SCRRegistry type just for the sake
of experimentation. Internally it has a CompositeRegistry and the
AbstractCamelRunner which I'm modifying uses the new SCRRegistry which has
a setter or on it for both a SimpleRegistry and an OsgiRegistry. If it
finds the bundle context it creates the OSGi service registry and adds it
and in either case adds a SimpleRegistry after it.
protected void createCamelContext(final BundleContext bundleContext,
final Map<String, String> props) {
if (bundleContext != null) {
OsgiServiceRegistry osgiRegistry = new
OsgiServiceRegistry(bundleContext);
context = new OsgiDefaultCamelContext(bundleContext,
osgiRegistry);
// Setup the application context classloader with the bundle
classloader
context.setApplicationContextClassLoader(new
BundleDelegatingClassLoader(bundleContext.getBundle()));
// and make sure the TCCL is our classloader
Thread.currentThread().setContextClassLoader(context.getApplicationContextClassLoader());
this.registry.setOsgiRegistry(osgiRegistry);
}
registry.setSimpleRegistry(new SimpleRegistry());
context = new DefaultCamelContext(registry);
Inside the SCRRegistry it delegates all its Registry interface calls to the
CompositeRegistry but it keeps a handle on the SimpleRegistry. So to
register a class one can do the following:
registry.register(POValidator.class);
In this case it's very simple instantiation of the no-arg constructor and
then looking for EndpointInject annotations and setting it to the
ProducerTemplate and the URI it finds. This is such a quick and naive cut
that I'm not even checking to see if there's an endpoint by that name in
the registry already which I could just use instead. Obviously if I do
anything more with this I'll look at reusing the existing libraries for
annotation processing instead of writing this stuff by hand. I still
haven't tested this by throwing it in karaf with Felix or any other OSGi
implementation.
public void register(Class clazz){
try {
Object o=clazz.newInstance();
for(Field declaredField:clazz.getDeclaredFields())
{
for(EndpointInject endpoint:
declaredField.getAnnotationsByType(EndpointInject.class))
{
declaredField.setAccessible(true);
ProducerTemplate template = camelContext.createProducerTemplate();
template.setDefaultEndpointUri(endpoint.uri());
declaredField.set(o,template);
}
}
this.simpleRegistry.put(clazz.getSimpleName(), o);
} catch (InstantiationException | IllegalAccessException e) {
//TODO log..
}
}
On Mon, Aug 1, 2016 at 6:33 PM, Matt Sicker <[email protected]> wrote:
> Can you even make a semi-private service in DS/SCR? What could the
> equivalent be to a blueprint bean that isn't exported as a service? Or is
> the philosophy to make all services public in DS?
>
> On 1 August 2016 at 18:12, Brad Johnson <[email protected]>
> wrote:
>
>> Tim,
>>
>> After working with DS and SCR a little I can understand its benefits.
>> One obvious advantage was being able to write basic JUnit tests to test my
>> routes without having to fire up CBTS. I've always disliked working in XML
>> so it is odd being in the position like I sound like I'm the one
>> championing it.
>>
>> The main problem right now with Camel is that while SCR handles all the
>> external items there isn't a way to do any injection of "local"
>> dependencies. By that I mean within my own bundle I might have validators,
>> handlers, local data models, etc. that I want to stand up and run in my
>> Camel routes. Camel SCR doesn't have a mechanism for doing that.
>>
>> When one runs it locally in the IDE it fires up a SimpleRegistry and uses
>> that to register everything and in that case you can manually add your own
>> beans before setting up route definitions. If the bundle is running where
>> it has a bundle context it instead fires up an OsgiServiceRegistry(don't
>> recall the full name.) In that case you can't add your local beans.
>>
>> I noted that there is a CompositeRegistry in the AbstractCamelRunner and
>> perhaps that should always be the one used. If one boots up and an OSGi
>> service registry is created both it and the SimpleRegistry are added to the
>> CompositeRegistry but one can access the SimpleRegistry in order to add
>> one's local dependencies for Camel routes.
>>
>> On Wed, Jul 13, 2016 at 3:34 AM, Timothy Ward <[email protected]>
>> wrote:
>>
>>> Hi Brad,
>>>
>>> I’ve been watching this thread for a while, and you’ve finally managed
>>> to draw me in :)
>>>
>>>
>>> On 12 Jul 2016, at 17:42, Brad Johnson <[email protected]>
>>> wrote:
>>>
>>> Guillaume,
>>>
>>> I'm still using Blueprint and have found Camel/SCR to be a pain to work
>>> with. It provides no tangible benefit if one is using Blueprint for routes
>>> and dependency injection anyway as it simply introduces one more way of
>>> configuring things. It was interesting to read the other day that Christian
>>> seems to have the same impression of the complexity of SCR. I remember
>>> when I first tried I thought it looked pretty cool but started running into
>>> problems.
>>>
>>>
>>> So what you’re comparing here isn’t really apples with apples. A long
>>> way back Camel provided a bunch of Spring XML sugar to make configuring
>>> Camel simpler. This was obviously a good thing because setting up Camel was
>>> (and is) hard. To this day people still use the Spring syntax for building
>>> their Camel routes. OSGi blueprint was effectively a move by Spring to
>>> standardise the Spring DM container, and so unsurprisingly blueprint looks
>>> a lot like Spring. Some people did the work to port the Camel Spring
>>> configuration to OSGi blueprint, and that’s why Camel is easy to use in
>>> blueprint.
>>>
>>> If someone actually spent some time putting together a nice integration
>>> with SCR then I’m sure that using SCR would be at least as easy as
>>> blueprint. The problem here is that relatively few SCR developers/users use
>>> Camel, and the ones that do are just told to “use blueprint”.
>>>
>>> That DS is in its second generation and only now getting around to
>>> transactions is telling. Either it has reached its natural boundaries and
>>> is now over-reaching or wasn’t full thought out.
>>>
>>>
>>> DS is actually working on its fifth release, and transactions are
>>> nowhere to be seen. You may be referring to the Transaction Control
>>> specification, which is separate from DS. They can be used together very
>>> effectively, but you could equally use Transaction Control with blueprint.
>>>
>>> DS is actually one of the “good citizens” of the DI world in that it
>>> deliberately does less in order to do it well. There’s no dependency
>>> proxying, no aspects, just the code that you wrote injected with some other
>>> code that someone wrote.
>>>
>>> To me it's a component and service bootstrapping mechanism which
>>> represents a small portion of the world I work in - transforms, routing,
>>> EIPs, etc. I've no reason to embrace it or deny it unless it either makes
>>> my job much easier or I can't live without it. So far adding Camel SCR and
>>> DS into the middleware just results in one more thing I have to deal with.
>>>
>>>
>>> This is a perfectly acceptable viewpoint. If the fundamental limitations
>>> of the blueprint model aren’t a problem for you then switching right now is
>>> almost certainly unnecessary.
>>>
>>>
>>> I think Blueprint works well these days and has come a long way in the
>>> past 3 years. The Aries team is to be commended for some great work.
>>>
>>>
>>> Aries Blueprint has had a lot of extensions and improvements over the
>>> last three years. Sadly the same cannot be said for the specifications or
>>> other implementations. Aries Blueprint is very much the last implementation
>>> standing, and there has been no effort to standardise the new features (or
>>> even to try fixing the problems with the original standard). The set of
>>> RFPs/RFCs for blueprint that have been sitting idle in the OSGi Alliance is
>>> very telling.
>>>
>>> As far as Aries blueprint is concerned, the main reason that it is still
>>> alive seems to be the fact that it was included in Karaf, and that Karaf
>>> provides Camel integration alongside it. Even Karaf itself is starting to
>>> move to use DS internally, offering blueprint as something for applications
>>> to use.
>>>
>>>
>>> I’ve been surprised by the near religious zeal of some of the DS
>>> advocates.
>>>
>>>
>>> Most OSGi developers I know (myself included) who really start to use DS
>>> consider it to be roughly equivalent to magic. The fact that the model can
>>> be as simple as it is and yet still flexible, correct and safe is both
>>> surprising and pleasing. Moving back to “not DS” is usually pretty painful
>>> and reminds people why they love DS so much.
>>>
>>> I'll be interested in seeing the DS semantics and proxies for CDI. Heh.
>>> Proxies are another technology that I don't care about one way or the other
>>> as long as things work well and don't require a lot of configuration. So
>>> it’s great if we can get rid of proxies but not so great if I now have to
>>> trade that off for configuration of start up order on services to make sure
>>> everything is running before Camel routes come up.
>>>
>>>
>>> Actually, this is one of the places where DS really shines. If you write
>>> a DS component properly (i.e. without trying to dig out of the DS
>>> lifecycle) then startup ordering ceases to be an issue.
>>>
>>> Again, someone with a little time and expertise would probably find that
>>> Camel + DS can be a really effective solution. The problem is finding the
>>> person who has the time, expertise and inclination…
>>>
>>> Tim Ward
>>>
>>> Apache Aries PMC Member,
>>> OSGi IoT Expert Group Chair,
>>> Author Enterprise OSGi in Action
>>> [email protected]
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Tue, Jul 12, 2016 at 10:57 AM, Guillaume Nodet <[email protected]>
>>> wrote:
>>>
>>>> I can happily review a patch if you're fancy writing one...
>>>>
>>>> And I disagree with the 'blueprint is dead and nobody cares about it
>>>> anymore'. What's dead is the blueprint osgi specification for blueprint,
>>>> not the Aries Blueprint project. I've recently added a bunch of important
>>>> features related to spring in blueprint.
>>>>
>>>> DS also has some drawbacks as it's not extensible at all : this is
>>>> leading the OSGi Alliance to write a new spec for transaction support !!!
>>>>
>>>> I think the CDI+DS extension I've been working on those past weeks
>>>> could bring the best of both world : strong DS semantics for the OSGi bits,
>>>> but extensibility and support for proxies provided by CDI ;-)
>>>>
>>>>
>>>> 2016-07-12 17:24 GMT+02:00 Brad Johnson <[email protected]>:
>>>>
>>>>> David,
>>>>>
>>>>> I'm all for multilocation support in blueprint. Can't wait for it.
>>>>> But it sounds like your saying blueprint is dead and nobody cares about it
>>>>> anymore so it doesn't seem likely to happen anytime soon. It certainly
>>>>> wouldn't be relevant to Fuse which uses R4 in any case.
>>>>>
>>>>> On Tue, Jul 12, 2016 at 10:21 AM, Brad Johnson <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> The features file can have statements like this:
>>>>>>
>>>>>>
>>>>>> <configfile finalname="/etc/com.foo.cfg"
>>>>>> override="true">mvn:com.confignuration/myrpoject/${project.version}/cfg/com.foo</configfile>
>>>>>> <configfile finalname="/etc/com.bar.cfg"
>>>>>> override="true">mvn:comconfiguration/myproect/${project.version}/cfg/com.bar</configfile>
>>>>>> ....etc....
>>>>>> That's off the top of my head so take it with a grain of salt for
>>>>>> syntax.
>>>>>>
>>>>>> When you run the features install it will overwrite the files in the
>>>>>> etc directory with the ones in the maven bundle which have now been
>>>>>> updated. So instead of modifying configuration files in the etc directory
>>>>>> you modifying them in your Maven configuration project and recompile the
>>>>>> bundle and then pull it from the repo
>>>>>> in order to update the values.
>>>>>>
>>>>>> But you can still modify them in the etc if you wanted. You just have
>>>>>> to make sure you have the cm properties set to reload.
>>>>>>
>>>>>> <cm:property-placeholder persistent-id="com.foo"
>>>>>> update-strategy="reload">
>>>>>>
>>>>>> On Tue, Jul 12, 2016 at 9:45 AM, Pablo Gómez Pérez <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Brad, if I understand your approach too that would lead to not being
>>>>>>> able to dynamically change common properties in a single config place
>>>>>>> during runtime, as the fill made by maven would be only done once at
>>>>>>> build
>>>>>>> time right? But at runtime I would need to that as David mention, still
>>>>>>> n
>>>>>>> times right?
>>>>>>>
>>>>>>> as a use case for instance, with blueprint:cm update-strategy
>>>>>>> configured as 'reload' in combination with felix-fileinstall as
>>>>>>> directory
>>>>>>> watcher, bundles are reloaded automatically so that when I modify at
>>>>>>> anytime during runtime a property e.g with just a text editor the
>>>>>>> bundle is
>>>>>>> initiated again with the new property values which is a quite nice
>>>>>>> feature
>>>>>>>
>>>>>>> best
>>>>>>>
>>>>>>> Pablo
>>>>>>>
>>>>>>> On 12/07/2016 12:31 AM, David Jencks wrote:
>>>>>>>
>>>>>>> I’d like to make sure I understand what you are doing here…. IIUC
>>>>>>> during the build of your project you are generating multiple
>>>>>>> configuration
>>>>>>> files with the same or similar content, and each of these is loaded
>>>>>>> into a
>>>>>>> configuration which is bound to a particular bundle location? So, at
>>>>>>> build
>>>>>>> time you can change all the duplicate properties at once but if you
>>>>>>> need to
>>>>>>> change them later you have to alter n (== number of duplicate configs)
>>>>>>> independently? Whereas if you had multi-location support (and possibly
>>>>>>> multi-pid support such as DS provides) you could share a single
>>>>>>> Configuration and change the property while the framework was running in
>>>>>>> one place?
>>>>>>>
>>>>>>> thanks
>>>>>>> david jencks
>>>>>>>
>>>>>>> On Jul 11, 2016, at 1:42 PM, Brad Johnson <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>> Pablo,
>>>>>>>
>>>>>>> One possible solution to this problem that I'm currently looking at
>>>>>>> is using a configuration bundle along with my features bundle. In the
>>>>>>> configuration bundle I have all the cfg files and use properties
>>>>>>> placeholders ${value} to set the value for key/value.
>>>>>>>
>>>>>>> In the POM I load properties files using the Maven properties plugin
>>>>>>> and that lets me set a global set of properties values that can be used
>>>>>>> in
>>>>>>> filling in the cfg values. So if a port or URI is shared across a large
>>>>>>> number of them that automatically gets filled in. The features file can
>>>>>>> then specify the cfg files to install and what name to install them
>>>>>>> with.
>>>>>>>
>>>>>>> This gets rid of a lot of tedium and by using profiles I should be
>>>>>>> able to switch dev, test and production, and have the properties
>>>>>>> automatically set correctly.
>>>>>>>
>>>>>>> I'd like to modify this a bit so that dev, test and product cfg
>>>>>>> files are all created simultaneously and simply installed in different
>>>>>>> directories inside the configuration bundle. Then by using different
>>>>>>> features installs I can easily switch between the different
>>>>>>> configurations
>>>>>>> without having to tediously edit each configuration file.
>>>>>>>
>>>>>>> Brad
>>>>>>>
>>>>>>> On Sat, Jul 9, 2016 at 11:32 AM, Matt Sicker <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Does Camel/Fuse even support DS? I haven't found any documentation
>>>>>>>> saying otherwise. I've only found camel-scr which uses Felix-specific
>>>>>>>> annotations and not DS.
>>>>>>>>
>>>>>>>> On 7 July 2016 at 14:32, Brad Johnson <[email protected]
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>> David,
>>>>>>>>>
>>>>>>>>> That is some pretty extreme and wild speculation alright. How
>>>>>>>>> does one use blueprint to not use OSGi appropriately? In the 5 years
>>>>>>>>> I've
>>>>>>>>> been consulting with Fuse/Karaf/OSGi and going to various clients not
>>>>>>>>> one
>>>>>>>>> of them used or uses DS. Not one. They all use bundles, services,
>>>>>>>>> and
>>>>>>>>> Camel with blueprint. The last time I worked with DS I didn't find it
>>>>>>>>> provided any serious advantage and added another layer that I'd have
>>>>>>>>> to
>>>>>>>>> teach my clients. Not that I wouldn't consider it or use it if I
>>>>>>>>> found a
>>>>>>>>> real advantage but I haven't.
>>>>>>>>>
>>>>>>>>> Red Hat is still shipping Karaf 2.x with Fuse so it is still in
>>>>>>>>> OSGi 4.x land much less 5 or 6.
>>>>>>>>>
>>>>>>>>> So for Camel are you using the Java DSL?
>>>>>>>>>
>>>>>>>>> Brad
>>>>>>>>>
>>>>>>>>> On Thu, Jul 7, 2016 at 1:56 PM, David Jencks <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> I don’t think karaf is at osgi R4.2 any more, I suggest you look
>>>>>>>>>> at the osgi R5 or R6 config admin spec for “multi location”.
>>>>>>>>>>
>>>>>>>>>> You guys might be using blueprint every day, but there is no OSGI
>>>>>>>>>> spec work to keep it up to date or even specify obviously necessary
>>>>>>>>>> features such as config admin integration. If blueprint is so great
>>>>>>>>>> why
>>>>>>>>>> aren’t the proponents keeping the spec related to current OSGI?
>>>>>>>>>> This is a
>>>>>>>>>> part of my, admittedly extreme, theory that use of blueprint is
>>>>>>>>>> related to
>>>>>>>>>> not wanting to make the app actually use osgi appropriately.
>>>>>>>>>>
>>>>>>>>>> And, the project I work on every day uses DS exclusively and
>>>>>>>>>> still finds plenty of ways to abuse osgi in all sorts of inventive
>>>>>>>>>> ways :-)
>>>>>>>>>>
>>>>>>>>>> david jencks
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Jul 7, 2016, at 11:11 AM, Johan Edstrom <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> It is in here;
>>>>>>>>>> https://osgi.org/javadoc/r4v42/org/osgi/service/cm/ConfigurationAdmin.html
>>>>>>>>>>
>>>>>>>>>> A bundle is in aries bound to the pid. So it is actually working
>>>>>>>>>> as expected, bit of
>>>>>>>>>> a hassle since spring-dm allowed it.
>>>>>>>>>>
>>>>>>>>>> And yes selling DS into “regular" organizations is about as easy
>>>>>>>>>> as selling snow in Alaska.
>>>>>>>>>>
>>>>>>>>>> /je
>>>>>>>>>>
>>>>>>>>>> On Jul 7, 2016, at 12:00 PM, Brad Johnson <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>> David,
>>>>>>>>>>
>>>>>>>>>> You live in a very different world than I do. In all the
>>>>>>>>>> consulting I do with Fuse/karaf blueprint is used almost
>>>>>>>>>> exclusively. I
>>>>>>>>>> understand DS and its uses but also its limits and overhead. It's
>>>>>>>>>> like
>>>>>>>>>> telling me one should only use Camel Java DSL. That may be one's
>>>>>>>>>> perspective but that isn't everyone's.
>>>>>>>>>>
>>>>>>>>>> Brad
>>>>>>>>>>
>>>>>>>>>> On Thu, Jul 7, 2016 at 12:53 PM, David Jencks <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> IMNSHO blueprint is only really plausible if you have a large
>>>>>>>>>>> amount of Spring based code and you need to convert it to be sort of
>>>>>>>>>>> osgi-compatible really quickly without understanding osgi or the
>>>>>>>>>>> code.
>>>>>>>>>>> Otherwise taking the time to understand DS and use it is much more
>>>>>>>>>>> satisfactory. DS provides this configuration override ability with
>>>>>>>>>>> support
>>>>>>>>>>> for multiple pids, although only one of the pids can turn out to be
>>>>>>>>>>> a
>>>>>>>>>>> factory configuration. There’s no obvious way of correlating
>>>>>>>>>>> factory
>>>>>>>>>>> configurations, so this restriction makes some sense.
>>>>>>>>>>>
>>>>>>>>>>> I don’t think there really are any blueprint folks. The cm
>>>>>>>>>>> stuff, while obviously required to make the spec remotely
>>>>>>>>>>> plausible, hasn’t
>>>>>>>>>>> made it into the spec in the many many years it’s been sitting
>>>>>>>>>>> around.
>>>>>>>>>>>
>>>>>>>>>>> david jencks
>>>>>>>>>>>
>>>>>>>>>>> On Jul 7, 2016, at 10:41 AM, Brad Johnson <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>> If I were to sit down with the blueprint folks today to create a
>>>>>>>>>>> wish list one thing I'd like to see is for an ability to have a
>>>>>>>>>>> configuration hierarchy specified with parent/child relationships
>>>>>>>>>>> much like
>>>>>>>>>>> one has in Maven. Have a base configuration file and be able to
>>>>>>>>>>> have
>>>>>>>>>>> another cfg file specify that one as its parent. Override
>>>>>>>>>>> properties or add
>>>>>>>>>>> them to the child. When the configuration admin fires up it would
>>>>>>>>>>> read up
>>>>>>>>>>> the chain and construct the properties.
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Jul 7, 2016 at 12:37 PM, Brad Johnson <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Ray,
>>>>>>>>>>>>
>>>>>>>>>>>> If I understand your question right the answer is the Aries
>>>>>>>>>>>> extension is referencing configuration. In karaf/fuse for example
>>>>>>>>>>>> the
>>>>>>>>>>>> following:
>>>>>>>>>>>>
>>>>>>>>>>>> <cm:property-placeholder persistent-id="com.my.foo"
>>>>>>>>>>>> update-strategy="reload">
>>>>>>>>>>>>
>>>>>>>>>>>> will load properties from etc/com.my.foo.cfg
>>>>>>>>>>>>
>>>>>>>>>>>> Installing that file is done either manually or by use of a
>>>>>>>>>>>> features file.
>>>>>>>>>>>>
>>>>>>>>>>>> Whenever I've attempted to use the PID in more than one bundle
>>>>>>>>>>>> it has failed and I don't think it is permitted. That's a problem
>>>>>>>>>>>> I think
>>>>>>>>>>>> and something that should be fixed through some other configuration
>>>>>>>>>>>> management mechanism. Making microservices that might share common
>>>>>>>>>>>> properties, for example, becomes problematic in that regard and
>>>>>>>>>>>> I've
>>>>>>>>>>>> resorted to using my own OSGi services to overcome that problem.
>>>>>>>>>>>>
>>>>>>>>>>>> Brad
>>>>>>>>>>>>
>>>>>>>>>>>> On Thu, Jul 7, 2016 at 10:46 AM, Raymond Auge <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Ok, so after a brief review the cm schema is an Aries
>>>>>>>>>>>>> extension and it doesn't appear to support the location binding.
>>>>>>>>>>>>>
>>>>>>>>>>>>> However, it's unclear to me whether this extension is creating
>>>>>>>>>>>>> the configuration or merely referencing one from outside.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Any Aries gurus can answer that?
>>>>>>>>>>>>>
>>>>>>>>>>>>> - Ray
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, Jul 7, 2016 at 11:29 AM, David Jencks <
>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> I’m not really familiar with blueprint cm but I’d expect that
>>>>>>>>>>>>>> to indicate which pid to use to fetch the config from config
>>>>>>>>>>>>>> admin and in
>>>>>>>>>>>>>> the ... how to map configuration propertiething blueprint
>>>>>>>>>>>>>> substitution
>>>>>>>>>>>>>> knows about. Is that really instructions to create a new
>>>>>>>>>>>>>> configuration and
>>>>>>>>>>>>>> populate it with data (what a management agent does)?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> david jencks
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Jul 7, 2016, at 8:19 AM, Raymond Auge <
>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> David, I agree with everything you've said, however this
>>>>>>>>>>>>>> looks like blueprint being the agent here:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> <cm:property-placeholder persistent-id="my.id"
>>>>>>>>>>>>>> update-strategy="reload">
>>>>>>>>>>>>>> ...
>>>>>>>>>>>>>> </cm:property-placeholder>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> - Ray
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Thu, Jul 7, 2016 at 11:18 AM, David Jencks <
>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> No, blueprint cm shouldn’t really know about the
>>>>>>>>>>>>>>> multi-location. The management agent that is creating the
>>>>>>>>>>>>>>> configuration
>>>>>>>>>>>>>>> should be setting the bundle location to the multi-location ”?”.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> david jencks
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Jul 7, 2016, at 8:12 AM, Pablo Gómez Pérez <
>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I see and would it possible to configure which method is
>>>>>>>>>>>>>>> invoked from Blueprint?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> This is how I do it:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> <cm:property-placeholder persistent-id="my.id"
>>>>>>>>>>>>>>> update-strategy="reload">
>>>>>>>>>>>>>>> ...
>>>>>>>>>>>>>>> </cm:property-placeholder>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> is there perhaps some blueprint property where I can tune
>>>>>>>>>>>>>>> the second argument in the createFactoryConfiguration?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Because it looks like the fact of using config admin through
>>>>>>>>>>>>>>> blueprint binds the PID to the first bundle using it
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> best
>>>>>>>>>>>>>>> Pablo
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On 07/07/2016 4:41 PM, Raymond Auge wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> As long as configurations are not bound to a bundle they can
>>>>>>>>>>>>>>> be used by any bundle.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> The exception clearly shows that the configuration is bound
>>>>>>>>>>>>>>> to a bundle.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Creating an unbound configuration requires passing a "?" as
>>>>>>>>>>>>>>> the second arguments to
>>>>>>>>>>>>>>> getConfiguration/createFactoryConfiguration methods
>>>>>>>>>>>>>>> of CM.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> HTH,
>>>>>>>>>>>>>>> - Ray
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Thu, Jul 7, 2016 at 10:24 AM, Brad Johnson <
>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I don't think that's possible.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Thu, Jul 7, 2016 at 8:51 AM, Pablo Gómez Pérez <
>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Hello All,
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Is it possible to use same config file from
>>>>>>>>>>>>>>>>> multiple bundles while using Config Admin with blueprint
>>>>>>>>>>>>>>>>> Blueprint?
>>>>>>>>>>>>>>>>> Because, I can't manage to do that, I get the following error:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> MESSAGE Cannot use configuration test.mybundle for [
>>>>>>>>>>>>>>>>> org.osgi.service.cm.ManagedService, id=214,
>>>>>>>>>>>>>>>>> bundle=86/initial@reference:file:../plugin-1/]: No
>>>>>>>>>>>>>>>>> visibility to configuration bound to
>>>>>>>>>>>>>>>>> initial@reference:file:../plugin-2/
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I saw in this jira a bug opened:
>>>>>>>>>>>>>>>>> https://issues.jboss.org/browse/ENTESB-3959
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> However, I fear that this is a problem in the aries
>>>>>>>>>>>>>>>>> blueprint implementation as I'm not using KARAF nor FUSE,
>>>>>>>>>>>>>>>>> just a plain osgi
>>>>>>>>>>>>>>>>> container. Either that or I'm missing some blueprint
>>>>>>>>>>>>>>>>> configuration. I'm
>>>>>>>>>>>>>>>>> basically using blueprint:cm
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> As a workaround I can make a config file per bundle that
>>>>>>>>>>>>>>>>> needs it....
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> As follows the versions and bundles that I'm using related
>>>>>>>>>>>>>>>>> to the container (Running on top of Equinox 3.11):
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> ID|State |Level|Name
>>>>>>>>>>>>>>>>> 5|Active | 2|Apache Aries Whiteboard support
>>>>>>>>>>>>>>>>> for JMX DynamicMBean services (1.1.5)|1.1.5
>>>>>>>>>>>>>>>>> 6|Active | 2|Apache Aries JNDI Core
>>>>>>>>>>>>>>>>> (1.0.2)|1.0.2
>>>>>>>>>>>>>>>>> 13|Active | 3|Aries Remote Service Admin
>>>>>>>>>>>>>>>>> Topology Manager (1.9.0.SNAPSHOT)|1.9.0.SNAPSHOT
>>>>>>>>>>>>>>>>> 15|Active | 2|Aries JPA Container (1.0.2)|1.0.2
>>>>>>>>>>>>>>>>> 21|Active | 2|Apache Aries JNDI API (1.1.0)|1.1.0
>>>>>>>>>>>>>>>>> 25|Active | 3|Aries Remote Service Admin
>>>>>>>>>>>>>>>>> Discovery Gogo Commands (1.9.0.SNAPSHOT)|1.9.0.SNAPSHOT
>>>>>>>>>>>>>>>>> 27|Active | 2|Apache Aries Blueprint CM
>>>>>>>>>>>>>>>>> (1.0.7)|1.0.7
>>>>>>>>>>>>>>>>> 29|Active | 2|Apache Aries JMX Blueprint Core
>>>>>>>>>>>>>>>>> (1.1.5)|1.1.5
>>>>>>>>>>>>>>>>> 37|Active | 2|Apache Aries JNDI URL Handler
>>>>>>>>>>>>>>>>> (1.1.0)|1.1.0
>>>>>>>>>>>>>>>>> 42|Active | 2|Apache Aries JMX Core (1.1.5)|1.1.5
>>>>>>>>>>>>>>>>> 46|Active | 2|Apache Aries Blueprint Core
>>>>>>>>>>>>>>>>> (1.5.0)|1.5.0
>>>>>>>>>>>>>>>>> 47|Resolved | 4|Apache Aries Blueprint Core
>>>>>>>>>>>>>>>>> Compatiblity Fragment Bundle (1.0.0)|1.0.0
>>>>>>>>>>>>>>>>> 55|Active | 2|Apache Aries Util (1.1.1)|1.1.1
>>>>>>>>>>>>>>>>> 56|Active | 2|Aries JPA Container Managed
>>>>>>>>>>>>>>>>> Contexts (1.0.4)|1.0.4
>>>>>>>>>>>>>>>>> 59|Active | 2|Apache Aries Proxy API
>>>>>>>>>>>>>>>>> (1.0.1)|1.0.1
>>>>>>>>>>>>>>>>> 67|Active | 3|Aries Remote Service Admin Service
>>>>>>>>>>>>>>>>> Provider Interface (1.9.0.SNAPSHOT)|1.9.0.SNAPSHOT
>>>>>>>>>>>>>>>>> 71|Active | 2|Apache Aries Transaction Blueprint
>>>>>>>>>>>>>>>>> (1.1.1)|1.1.1
>>>>>>>>>>>>>>>>> 73|Active | 2|Aries JPA Container API
>>>>>>>>>>>>>>>>> (1.0.2)|1.0.2
>>>>>>>>>>>>>>>>> 77|Active | 2|Apache Aries JNDI Support for
>>>>>>>>>>>>>>>>> Legacy Runtimes (1.0.0)|1.0.0
>>>>>>>>>>>>>>>>> 88|Active | 2|Apache Aries JMX Blueprint API
>>>>>>>>>>>>>>>>> (1.1.5)|1.1.5
>>>>>>>>>>>>>>>>> 89|Active | 2|Apache Aries Transaction Manager
>>>>>>>>>>>>>>>>> (1.3.0)|1.3.0
>>>>>>>>>>>>>>>>> 94|Active | 3|Aries Remote Service Admin
>>>>>>>>>>>>>>>>> Discovery Config (1.9.0.SNAPSHOT)|1.9.0.SNAPSHOT
>>>>>>>>>>>>>>>>> 97|Active | 3|Aries Remote Service Admin
>>>>>>>>>>>>>>>>> provider TCP (1.9.0.SNAPSHOT)|1.9.0.SNAPSHOT
>>>>>>>>>>>>>>>>> 110|Active | 2|Apache Aries Blueprint Annotation
>>>>>>>>>>>>>>>>> API (1.0.1)|1.0.1
>>>>>>>>>>>>>>>>> 120|Active | 2|Apache Aries Transaction Blueprint
>>>>>>>>>>>>>>>>> (2.1.0)|2.1.0
>>>>>>>>>>>>>>>>> 123|Active | 2|Apache Aries JMX API (1.1.5)|1.1.5
>>>>>>>>>>>>>>>>> 130|Active | 2|Apache Aries Blueprint Annotation
>>>>>>>>>>>>>>>>> Impl (1.0.1)|1.0.1
>>>>>>>>>>>>>>>>> 132|Active | 3|Aries Remote Service Admin
>>>>>>>>>>>>>>>>> Discovery Zookeeper (1.9.0.SNAPSHOT)|1.9.0.SNAPSHOT
>>>>>>>>>>>>>>>>> 134|Active | 3|Aries Remote Service Admin
>>>>>>>>>>>>>>>>> Discovery Local (1.9.0.SNAPSHOT)|1.9.0.SNAPSHOT
>>>>>>>>>>>>>>>>> 138|Active | 3|Aries Remote Service Admin Core
>>>>>>>>>>>>>>>>> (1.9.0.SNAPSHOT)|1.9.0.SNAPSHOT
>>>>>>>>>>>>>>>>> 139|Active | 2|Apache Aries JNDI RMI Handler
>>>>>>>>>>>>>>>>> (1.0.0)|1.0.0
>>>>>>>>>>>>>>>>> 143|Active | 2|Apache Aries Proxy Service
>>>>>>>>>>>>>>>>> (1.0.4)|1.0.4
>>>>>>>>>>>>>>>>> 146|Active | 2|Apache Aries SPI Fly Dynamic
>>>>>>>>>>>>>>>>> Weaving Bundle (1.0.8)|1.0.8
>>>>>>>>>>>>>>>>> 147|Active | 2|Aries JPA Container blueprint
>>>>>>>>>>>>>>>>> integration for Aries blueprint (1.0.4)|1.0.4
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> 11|Active | 4|Apache Felix File Install
>>>>>>>>>>>>>>>>> (3.5.4)|3.5.4
>>>>>>>>>>>>>>>>> 19|Active | 4|Apache Felix Gogo Shell
>>>>>>>>>>>>>>>>> (0.12.0)|0.12.0
>>>>>>>>>>>>>>>>> 57|Active | 4|Apache Felix Gogo Command
>>>>>>>>>>>>>>>>> (0.16.0)|0.16.0
>>>>>>>>>>>>>>>>> 104|Active | 4|Apache Felix Coordinator Service
>>>>>>>>>>>>>>>>> (1.0.2)|1.0.2
>>>>>>>>>>>>>>>>> 109|Active | 4|Apache Felix Gogo Runtime
>>>>>>>>>>>>>>>>> (0.16.2)|0.16.2
>>>>>>>>>>>>>>>>> 114|Active | 4|Apache Felix Web Management
>>>>>>>>>>>>>>>>> Console (1.2.8)|1.2.8
>>>>>>>>>>>>>>>>> 148|Active | 4|Apache Felix Configuration Admin
>>>>>>>>>>>>>>>>> Service (1.8.8)|1.8.8
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> 0|Active | 0|OSGi System Bundle
>>>>>>>>>>>>>>>>> (3.11.0.v20160603-1336)|3.11.0.v20160603-1336
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>> WARNING: Computer viruses can be transmitted via email.
>>>>>>>>>>>>>>>>> The recipient should check this email and any attachments for
>>>>>>>>>>>>>>>>> the presence
>>>>>>>>>>>>>>>>> of viruses. The company accepts no liability for any damage
>>>>>>>>>>>>>>>>> caused by any
>>>>>>>>>>>>>>>>> virus transmitted by this email. E-mail transmission cannot
>>>>>>>>>>>>>>>>> be guaranteed
>>>>>>>>>>>>>>>>> to be secure or error-free as information could be
>>>>>>>>>>>>>>>>> intercepted, corrupted,
>>>>>>>>>>>>>>>>> lost, destroyed, arrive late or incomplete, or contain
>>>>>>>>>>>>>>>>> viruses. The sender
>>>>>>>>>>>>>>>>> therefore does not accept liability for any errors or
>>>>>>>>>>>>>>>>> omissions in the
>>>>>>>>>>>>>>>>> contents of this message, which arise as a result of e-mail
>>>>>>>>>>>>>>>>> transmission.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Warning: Although the company has taken reasonable
>>>>>>>>>>>>>>>>> precautions to ensure no viruses are present in this email,
>>>>>>>>>>>>>>>>> the company
>>>>>>>>>>>>>>>>> cannot accept responsibility for any loss or damage arising
>>>>>>>>>>>>>>>>> from the use of
>>>>>>>>>>>>>>>>> this email or attachments.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> *Raymond Augé*
>>>>>>>>>>>>>>> <http://www.liferay.com/web/raymond.auge/profile>
>>>>>>>>>>>>>>> (@rotty3000)
>>>>>>>>>>>>>>> Senior Software Architect *Liferay, Inc.*
>>>>>>>>>>>>>>> <http://www.liferay.com/> (@Liferay)
>>>>>>>>>>>>>>> Board Member & EEG Co-Chair, OSGi Alliance
>>>>>>>>>>>>>>> <http://osgi.org/> (@OSGiAlliance)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> *Raymond Augé*
>>>>>>>>>>>>>> <http://www.liferay.com/web/raymond.auge/profile>
>>>>>>>>>>>>>> (@rotty3000)
>>>>>>>>>>>>>> Senior Software Architect *Liferay, Inc.*
>>>>>>>>>>>>>> <http://www.liferay.com/> (@Liferay)
>>>>>>>>>>>>>> Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org/>
>>>>>>>>>>>>>> (@OSGiAlliance)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> *Raymond Augé*
>>>>>>>>>>>>> <http://www.liferay.com/web/raymond.auge/profile> (@rotty3000)
>>>>>>>>>>>>> Senior Software Architect *Liferay, Inc.*
>>>>>>>>>>>>> <http://www.liferay.com/> (@Liferay)
>>>>>>>>>>>>> Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org/>
>>>>>>>>>>>>> (@OSGiAlliance)
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Matt Sicker <[email protected]>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> ------------------------
>>>> Guillaume Nodet
>>>> ------------------------
>>>> Red Hat, Open Source Integration
>>>>
>>>> Email: [email protected]
>>>> Web: http://fusesource.com
>>>> Blog: http://gnodet.blogspot.com/
>>>>
>>>>
>>>
>>>
>>
>
>
> --
> Matt Sicker <[email protected]>
>