On 11/29/05, Dominique Devienne <[EMAIL PROTECTED]> wrote:

>
> D:\org_apache>java MakeUrl http://foo/common.xml misc.xml
> http://foo/misc.xml
>
>
Yes, this works as long as the first file you reference is at the root
level. This can be confusing in scripts since the root is dictated by that
first import and not made explicit. Sometimes I want to import a build file
from a subdirectory first, not from the root level.  Without an explict
root, it is difficult to establish a consistent namespace. It should work in
a similar manner to classloading.

I guess we get back to resolving relative paths. The existing behavior
forces every build file to be its own "root". A single root cannot be
declared. Each import becomes the new root. However, the current root is
assumed to be a file path which doesn't play nice with other URL's.

One solution is to refactor the current import to work with URL's. Or the
current import could be deprecated in favor of a new url friendly import
that also resolves URL's relative to a root rather than each build file.

//the basedir is the implied root
<urlimport file="build/mybuild.xml"/>
<urlimport root="http://localhost/buildfiles"; file="build/mybuild.xml"/>

I vote for deprecating the current import task in favor of a new version
that works consistently with URL's. This allows for backwards compatibility,
and creates consistency with html and xsl files. Also, this simplifies the
implementation.

Mike

Reply via email to