But If you want to pass an input stream as parameter, it is to allow to read build file from an other source than a file. In those case, there is not necessarily a File basedir, but it can be something else.
Maybe passing an URL instead of a File would be more flexible? Gilles 2008/1/10, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > > > -----Ursprüngliche Nachricht----- > > Von: Stefan Bodewig [mailto:[EMAIL PROTECTED] > > Gesendet: Donnerstag, 10. Januar 2008 06:10 > > An: dev@ant.apache.org > > Betreff: Re: ProjectHelper : parsing from InputStream > > > > "Benjamin de Dardel" <[EMAIL PROTECTED]> writes: > > > > > 1: Should I copy and rewrite ProjectHelperImpl for my personal use > > > ? > > > > You can do that, if you want to 8-) > > > > > Or is there another way > > > > No, there isn't. See below. > > > > > 2: Do you need my contribution for refactoring helpers to accept > > > multiple sources ? > > > > We've started discussing this more than once but never came to a > > solution that ended up in svn. If you want to help us not dropping > > the ball, you are welcome. > > > > The problem is a bit more complex than just allowing a different > > source. The main problem are build files that do not specify a > > basedir attribute on the project tag since Ant then uses the directory > > holding the build file to resolve relative file references - which > > certainly doesn't work if it doesn't have a File reference pointing to > > the input. > > > Could the API require specifying the basedir? > > /** > * Parses the given buildfile. > * @param is InputStream providing the content of the buildfile > * @param basedir The (absolute) basedir for use in the project > * if the parsed buildfile doesnt specify an absolute > * path. > */ > parse(InputStream is, File basedir); > > is(<project>) + basedir="C:/temp" --> c:/temp > is(<project basedir=".") + basedir="C:/temp" --> c:/temp > is(<project basedir="/") + basedir="C:/temp" --> C:/ > is(<project basedir="D:">) + basedir="C:/temp" --> D: > > is(<project basedir="D:">) + basedir=null --> D: > is(<project basedir=".">) + basedir=null --> exception > is(<project basedir="/">) + basedir=null --> > on windows: root directory of the system drive > on unix : root directory '/' > is(<project>) + basedir=null --> exception > > > > Jan > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >