On Fri, Oct 2, 2009 at 11:52 AM, Baptiste Gaillard
<[email protected]> wrote:
>
> I thought the problem could also be solve with AspectJ (I do not know very 
> well that).
>
> Perhaps we can know where the calls to java.ui.File() are done, if it is in a 
> component of our platform we can try to execute an advice (wired on the File 
> constructor) which retrieve the relative path and change it to an absolute 
> one using BundleContext.getDataFile(String)
>
> But I don't know how to do that, perhaps it's not possible...

Yeah, you should be able to get that to work but it will not be super easy...

regards,

Karl

>
>> Date: Fri, 2 Oct 2009 11:40:05 +0200
>> From: [email protected]
>> To: [email protected]
>> Subject: Re: OSGI bootdelegation and java.io.File ?
>>
>> Hi,
>>
>> Besides that probably not working at all, here my €0.02 to your idea:
>>
>>   * Bundle.getBundleLocation() returns an URL string and not a File.
>>   * I would assume that your clients should know what they do when
>>     creating relative files - creating files realtive to the
>>     path set in the "user.dir" system property.
>>   * If your clients want to write files in their private bundle
>>     area they should use the BundleContext.getDataFile(String) method.
>>
>>
>> Regards
>> Felix
>>
>> Baptiste Gaillard schrieb:
>> > 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
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
> _________________________________________________________________
> Inédit ! Des Emoticônes Déjantées! Installez les dans votre Messenger !
> http://www.ilovemessenger.fr/Emoticones/EmoticonesDejantees.aspx



-- 
Karl Pauls
[email protected]

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

Reply via email to