This won't work, toURI will not give you the full file path, rather the bundle path.
On Fri, Jul 8, 2011 at 12:24 PM, Donald Whytock <[email protected]> wrote: > What about something like > > File file = new File(bundle.getResource(<file name inside > bundle>).toURI()); > > with "bundle" being the bundle you want the file from? > > No, I haven't tried it yet. :) > > Don > > On Fri, Jul 8, 2011 at 3:19 PM, Richard S. Hall <[email protected]> > wrote: > > On 7/8/11 15:02, Shamik Bandopadhyay wrote: > >> > >> Hi, > >> > >> Based on my experience so far,I found it hard to deal with a File > >> object > >> within an OSGi bundle, specially, if you are working with a third party > >> library which takes a file object. In my case I'm using Gate library > which > >> takes File objects only as configuration data.I was initially having the > >> required files as part of the bundle, hoping that it'll work fine by > using > >> the absolute path. But later I hit the raodblock since OSGi doesn't > allow > >> you to get the full file path (unless you are using equinox/eclipse). It > >> only deals with bundle URL or inputstream, which ofcourse won't work in > >> case > >> of Gate. > >> > >> As per my requirement, I need to update the config files at times.I > >> thought > >> of leveraging the hot deploy feature by simply dropping a new version of > >> the > >> bundle with the updated config files. Apparently, it won't work bcos of > >> the > >> File restriction. I can externalize the files and use the full file path > >> instead. But what I'm trying to understand is if there's a way to > refresh > >> the bundle automatically when the files are being updated externally. > Gate > >> is being initialized through spring at the startup using these config > >> files. Now, if I update teh files w/o re-starting the bundle, will OSGi > / > >> Spring DM be able to update the bundle with the new file reference? > > > > OSGi won't, that's for sure. Spring DM/Blueprint might, but I guess that > > depends on how you are supplying the File to your bundle. For example, if > > you were using Declarative Services or iPOJO, then you can use Config > Admin > > to inject configuration properties so you could inject the new absolute > path > > to a file...Config Admin doesn't support File type properties though. > > > > Of course, some of this depends on if the bundle you want to inject with > a > > File can accept a file change after it is already started. If not, your > only > > choice might be to stop and restart it. > > > > As an aside, if you copy a file into your bundle's private data area, > then > > you can get the absolute path that way, since you can get back the File > > object and ask for the absolute path. > > > > -> richard > >> > >> I'll appreciate if someone can share their experience. > >> > >> - Thanks > >> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >

