The introduction of CVS based descriptors into the gump profile has introduced a 
few problems with the generation of the gump html pages. I thought it was worth 
discussing before trying to fix it (well, actually I started to fix it but it 
was *hard*).

Two examples:

If you click the definition link on this page
http://jakarta.apache.org/builds/gump/latest/Forrest.html
you will end up at an empty page.

If you click the same link on this page
http://jakarta.apache.org/builds/gump/latest/excalibur-baxter.html
you end up at the gump project definition.

This behaviour comes about because the code which processes the hrefs in 
Jenny.jar removes all but the filename (without extension). which it then stores 
in the "defined-in" attribute. This will eventually be mapped to 
module_${defined_in} which gump presently expects to find in a file.

For forrest, with its moule def of
   <module 
href="http://cvs.apache.org/viewcvs/~checkout~/xml-forrest/forrest.xgump"/>
Gump looks for the definition in project/forrest.xml which does not exist.

For Excalibur, with
   <module 
href="http://cvs.apache.org/viewcvs/~checkout~/jakarta-avalon-excalibur/gump.xml"/>
Gump looks for project/gump.xml which it finds but which is not related to excalibur

There is also an issue with href handling. Gump does not really handle relative 
hrefs. Effectively it evaluates all hrefs against a base of ".". If the above 
module definitions where to specify project elements with relative hrefs, Gump 
would still end up looking in the local directory where gump is being run for 
the project XML files.

For the first issue, potential solutions would be to copy the remote hrefs to a 
local cache and to use names based on the name attribute rather than the name of 
the file containing the element definition.

For the href handling, I began to convert Gump to start using URLs and tracking 
where the elements were defined so that relative hrefs could be correctly 
resolved. This is OK but the current hrefs in gump's profile are relative to the 
Gump root directory. For example, the module href in the gump.xml profile 
definition for ant is
   <module href="project/jakarta-ant.xml"/>

but this should really be
   <module href="../project/jakarta-ant.xml"/>

There could be a lot of special cases to handle this in a backward compatible 
way. I could think of a few more radical ideas, new attributes for real relative 
hrefs, base attributes on the <profile> element, something like
<profile name="gump" base="..">, etc.

Thoughts?

Conor







--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to