The CamelContext disambiguation obviously is a next step... On Mon, Aug 1, 2016 at 8:01 PM, Brad Johnson <brad.john...@mediadriver.com> wrote:
> 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 <boa...@gmail.com> 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 <brad.john...@mediadriver.com> >> 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 <timothyjw...@apache.org> >>> 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 <brad.john...@mediadriver.com> >>>> 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 >>>> timothyjw...@apache.org >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> On Tue, Jul 12, 2016 at 10:57 AM, Guillaume Nodet <gno...@apache.org> >>>> 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 <brad.john...@mediadriver.com> >>>>> : >>>>> >>>>>> 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 < >>>>>> brad.john...@mediadriver.com> 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 < >>>>>>> pablo.go...@faw.jku.at> 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 < >>>>>>>> brad.john...@mediadriver.com> 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 <boa...@gmail.com> >>>>>>>> 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 < >>>>>>>>> brad.john...@mediadriver.com> 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 < >>>>>>>>>> david_jen...@yahoo.com> 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 <seij...@gmail.com> >>>>>>>>>>> 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 < >>>>>>>>>>> brad.john...@mediadriver.com> 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 < >>>>>>>>>>> david_jen...@yahoo.com> 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 < >>>>>>>>>>>> brad.john...@mediadriver.com> 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 < >>>>>>>>>>>> brad.john...@mediadriver.com> 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 < >>>>>>>>>>>>> raymond.a...@liferay.com> 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 < >>>>>>>>>>>>>> david_jen...@yahoo.com> 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 < >>>>>>>>>>>>>>> raymond.a...@liferay.com> 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 < >>>>>>>>>>>>>>> david_jen...@yahoo.com> 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 < >>>>>>>>>>>>>>>> pablo.go...@faw.jku.at> 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 < >>>>>>>>>>>>>>>> brad.john...@mediadriver.com> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I don't think that's possible. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Thu, Jul 7, 2016 at 8:51 AM, Pablo Gómez Pérez < >>>>>>>>>>>>>>>>> pablo.go...@faw.jku.at> 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 <boa...@gmail.com> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> ------------------------ >>>>> Guillaume Nodet >>>>> ------------------------ >>>>> Red Hat, Open Source Integration >>>>> >>>>> Email: gno...@redhat.com >>>>> Web: http://fusesource.com >>>>> Blog: http://gnodet.blogspot.com/ >>>>> >>>>> >>>> >>>> >>> >> >> >> -- >> Matt Sicker <boa...@gmail.com> >> > >