Well, in this case I guess you will have to have your customers
special case for OSGi I guess as their is no way (that I know) to
replace java.io.File (unless you override it with our own version
using the -Xbootclasspath/p option of the jvm).

regards,

Karl

On Fri, Oct 2, 2009 at 11:14 AM, Baptiste Gaillard
<[email protected]> wrote:
>
> The main problem is that we do not have control on the OSGI components 
> deployed on our application because they are developped by our customers.
>
> We can write a guide and explain what to do and not to do with OSGI, but we 
> hoped to solve the majority of problems otherwise.
>
> What I wanted to do with:
>  new File("relative_path")
>
> is to change the way relative paths are built by replacing java.io.File() 
> with our version of java.io.File().
>
> Something like :
>
> /**
>  * Our version of java.io.File
>  */
> class File {
>
>    public File(String relativePath)
>    {
>          this.path = 
> fs.normalize(StaticBundleAccessor.getBundle().getBundleLocation().getAbsolutePath()
>  + '/' + relativePath);
>          this.prefixLength = fs.prefixLength(this.path);
>    }
>
> }
>
> /**
>  * SUN version of java.io.File
>  */
> class File {
>
>
>
>    public File(String pathname)
>
>    {
>
>          this.path = fs.normalize(pathname);
>
>          this.prefixLength = fs.prefixLength(this.path);
>
>    }
>
>
>
> }
>
> Do you think something like that is feasible ?
>
>
>
>
>> Date: Fri, 2 Oct 2009 10:51:21 +0200
>> Subject: Re: OSGI bootdelegation and java.io.File ?
>> From: [email protected]
>> To: [email protected]
>>
>> On Fri, Oct 2, 2009 at 10:48 AM, Baptiste Gaillard
>> <[email protected]> wrote:
>> >
>> > Hi, we are building a platform which allow to deploy and execute OSGI 
>> > components.
>> >
>> > Those OSGI components are developed by our customers and we do not have 
>> > control one those components.
>> > The application is a JEE one and is deployed inside JBoss AS, we also use 
>> > an embedded Felix container.
>> >
>> > We have encounter problems when OSGI components do things like that in 
>> > their code:
>> >
>> >  File file = new File("relative_path/myfile.txt");
>> >
>> > This return a file which point to %JBOSS_HOME%/relative_path/myfile.txt.
>> > This seems perfectly normal because OSGI delegate Class Loading for 
>> > 'java.*' classes used to the parent Class Loader.
>> >
>> > So, how is it possible to have a path to the Bundle location (we use 
>> > unzipped bundles) instead of %JBOSS_HOME% by calling new 
>> > File("relative_path") ?
>> > Is it possible to force OSGI to load delegate the Class Loading for 
>> > java.io.File classes ?
>>
>> No. That is not possible. However, I'm not sure I really understand
>> what it is you are trying to do. Can you tell us more about that -
>> maybe there is a different solution to your problem...
>>
>> regards,
>>
>> Karl
>>
>> > Thanks,
>> >
>> >
>> > Baptiste
>> >
>> >
>> >
>> >
>> > _________________________________________________________________
>> > Découvrez toutes les possibilités de communication avec vos proches
>> > http://www.microsoft.com/windows/windowslive/default.aspx
>>
>>
>>
>> --
>> Karl Pauls
>> [email protected]
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
> _________________________________________________________________
> Découvrez toutes les possibilités de communication avec vos proches
> http://www.microsoft.com/windows/windowslive/default.aspx



-- 
Karl Pauls
[email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to