Then someone should fix the metatype…..

david jencks

> On Sep 14, 2016, at 12:39 PM, Guillaume Nodet <gno...@apache.org> wrote:
> 
> Actually and fwiw, FileInstall registers a ManagedServiceFactory, not a 
> ManagedService.
> See 
> https://github.com/apache/felix/blob/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/FileInstall.java#L342
>  
> <https://github.com/apache/felix/blob/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/FileInstall.java#L342>
> 
> 2016-09-14 21:15 GMT+02:00 David Jencks <david.a.jen...@gmail.com 
> <mailto:david.a.jen...@gmail.com>>:
> 
> > On Sep 14, 2016, at 11:49 AM, Leschke, Scott <slesc...@medline.com 
> > <mailto:slesc...@medline.com>> wrote:
> >
> > Like I said, fileinstall was just used as an example.  I’m not really 
> > interested in fileinstall although as far as I understand, if there are 
> > mulitiple org.apache.felix.fileinstall_*.cfg files, say 
> > org.apache.felix.fileinstall_1.cfg and org.apache.felix.fileinstall_2.cfg 
> > there will be one service created for each .cfg file.  Perhaps the 
> > terminology I used was incorrect, but that was what I intended.
> 
> I don’t think your understanding is correct.  The metatype for fileinstall 
> shows a pid, not a factory pid, so you should only be able to create one 
> fileinstall instance.  However, although fileinstall is a bad example, what 
> you want to do is reasonable.
> >
> > Assuming that’s correct, the question is basically how you would be able to 
> > identify the configuration/service pair.  I gather from your response that 
> > this really isn’t possible without augmenting the configuration with ID 
> > information or using a more explicit Managed Service Factory. Is that 
> > correct?
> 
> I don’t understand how you are creating the configurations in the first 
> place.  If you are doing it by writing out files for fileinstall to read, 
> then it looks like you can use a fileinstall-installed property. If you are 
> creating the configs in code using config admin, it’s not clear to me whether 
> or not fileinstall saves them.  In this case how do you expect to tell the 
> configs apart unless you include some kind if id you can recognize?
> 
> From a cursory inspection of fileinstall, it looks to me as if it includes 
> the original file name in the configuration with the key 
> “felix.fileinstall.filename” so you could use that as the id.  I don’t 
> understand what you mean by “more explicit Managed Service Factory”.
> 
> So the filter to ca.listConfigurations would look like
> 
> (&(service.factoryPid=<factorypid>)(felix.fileinstall.filename=<filename>))
> 
> david jencks
> >
> > Scott
> >
> > From: David Jencks [mailto:david.a.jen...@gmail.com 
> > <mailto:david.a.jen...@gmail.com>]
> > Sent: Wednesday, September 14, 2016 1:35 PM
> > To: user@karaf.apache.org <mailto:user@karaf.apache.org>
> > Subject: Re: Configuration Admin
> >
> > I doubt I understand your question as written, as fileinstall has a pid 
> > rather than a factory pid you can only have one configuration for it.
> >
> > Assuming you actually want to configure multiple configurations for a given 
> > factory pid,
> > - I’d advise you to write a management agent that uses the config admin 
> > interfaces rather than trying to deal directly with the particular storage 
> > format fileinstall happens to use right now.
> > - I’d include a meaningful id in your configurations that let you identify 
> > which is which.  I actually thought fileinstall made this easy or required 
> > it, but I don’t use fileinstall and could be wrong.
> > - you can construct a filter including the id to retrieve the configuration 
> > of interest from config admin.
> >
> > In osgi R7 it’s extremely likely that this will be easier as it’s proposed 
> > that you can create a factory configuration using a known factory pid and 
> > known id and the resulting pid will include the id.
> >
> > hope this helps…
> > david jencks
> >
> > On Sep 14, 2016, at 11:23 AM, Leschke, Scott <slesc...@medline.com 
> > <mailto:slesc...@medline.com>> wrote:
> >
> > Not specifically a Karaf question but I’ll start here.
> >
> > If I would like to be able to modify the component instance configurations 
> > (created from a factory) programmatically, but from the CA api, it’s 
> > unclear to me how I associate a configuration record to its corresponding 
> > instance?
> >
> > As an example, if I have multiple configurations of 
> > org.apache.felix.fileinstall and I want to modify a specific configuration 
> > programitically, how do I associate the configuration record with the 
> > proper configuration (.cfg file)?  This isn’t my actual use case but for 
> > explanatory purposes it works.
> >
> > Scott
> 
> 
> 
> 
> -- 
> ------------------------
> Guillaume Nodet
> ------------------------
> Red Hat, Open Source Integration
> 
> Email: gno...@redhat.com <mailto:gno...@redhat.com>
> Web: http://fusesource.com <http://fusesource.com/>
> Blog: http://gnodet.blogspot.com/ <http://gnodet.blogspot.com/>
> 

Reply via email to