Hi Scott, to point 2) about 2-3 years ago I had a similar problem. The 'solution' was to create a configuration file (with the properties) in the 'felix.fileinstall.dir'-Directory. If it is a Factory the filename should be <componentname>-<uniqueId>.cfg After some time (depending on configuration) FileInstall will scan the file, create the configuration and the service will be instantiated.
ps. I have just checked, the 'hack' still exists and is live Michael Am 13.12.2017 um 22:24 schrieb Leschke, Scott via osgi-dev <osgi-dev@mail.osgi.org<mailto:osgi-dev@mail.osgi.org>>: Hey Tim, Thanks for this. Yes that worked. I recall seeing something about this a number of months ago but didn’t pay much attention since it didn’t apply to me at the time. Not sure why I didn’t think to give that a try though. Two additional questions for anybody who cares to answer. 1) If “?” isn’t used, what would the location argument look like? Is it like a bundle symbolic id, with wildcards perhaps? It’s unclear to me how this would be used even if you wanted to. 2) Now for a Karaf question to any/all takers. When a service instance is created this way, is there a way to associate a .cfg file with it so that the service configuration will persist across Karaf upgrades? I know that if a Configuration record is updated, the service’s corresponding .cfg file is updated, but if you create a new service, you don’t get a .cfg file. Scott From: Tim Ward [mailto:tim.w...@paremus.com] Sent: Saturday, December 09, 2017 3:04 AM To: Leschke, Scott; OSGi Developer Mail List Subject: Re: [osgi-dev] Create instance of factory configuration at runtime Hi Scott, That does work, but Configuration Admin has an old feature called location binding. This feature prevents a configuration being delivered to bundles other than the bundle with the specified bundle location. The one-arg version of createFactoryConfiguration that you’re using defaults the bundle location to the location of the bundle which got the ConfigurationAdmin service instance that you’re using. This is almost never the correct location as it usually means only the management bundle can see your configuration. The location binding behaviour is so annoying that the general recommendation is to disable it by using the two arg versions of Config Admin methods with a wildcard location binding (a “?”). My guess is that the two arg version will give you what you’re looking for. Tim Sent from my iPhone On 9 Dec 2017, at 00:36, Leschke, Scott via osgi-dev <osgi-dev@mail.osgi.org<mailto:osgi-dev@mail.osgi.org>> wrote: How does one create a new instance of a factory configuration programmatically? I thought it was like ConfigurationAdmin ca; ca.createFactoryConfiguration(“my.configuration.pid”).update(newServiceProps); but that doesn’t seem to work for me. Thanks in advance, Scott _______________________________________________ OSGi Developer Mail List osgi-dev@mail.osgi.org<mailto:osgi-dev@mail.osgi.org> https://mail.osgi.org/mailman/listinfo/osgi-dev _______________________________________________ OSGi Developer Mail List osgi-dev@mail.osgi.org<mailto:osgi-dev@mail.osgi.org> https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________ OSGi Developer Mail List osgi-dev@mail.osgi.org https://mail.osgi.org/mailman/listinfo/osgi-dev