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]

