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