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]
>
>

Reply via email to