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


> 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

Reply via email to