forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leo Simons <leosim...@apache.org>
Subject Re: basic forrest plugin for maven
Date Mon, 02 Jun 2003 19:26:57 GMT
I've reworked the plugin to be able to be integrated with the forrest build.

to see it in action, do this:

wget http://cvs.apache.org/~leosimons/maven-forrest-plugin.zip /tmp
mv /tmp/maven-forrest-plugin.zip ~/cvs/xml-forrest/src/resources
cd ~/cvs/xml-forrest/src/resources
unzip maven-forrest-plugin.zip
cd maven-plugin
#### install maven-beta-9 or later, if you don't have it yet ####
maven plugin # this is a target inside the maven-plugin-plugin, atm
              # it just calls the jar:jar goal/target
maven plugin:install # this is another target inside that plugin;
              # it just copies the generated jarfile into your local
              # maven installation
#### checkout avalon and avalon-excalibur modules ####
cd ~/cvs/avalon-excalibur/compatibility
maven xdoc # site generated using forrest plugin

The maven.xml file in this patch is modified from the maven plugin 
sample at

http://cvs.apache.org/viewcvs.cgi/maven/src/plugins-build/examples/plugin-script/. 


It should be pretty clear what it does (even if you don't know maven or 
jelly, like me ;), basically the shbat distribution is generated, 
patched, then jarred up along with some minimal script files.

more todo:
>> ------------
>> - add plugin to forrest cvs

could someone with appropriate access please get the zipfile mentioned 
above and add its contents to the src/resources directory, after 
verifying its a good idea and the location is a good one?

>> - figure out a full POM for forrest and list all of its dependencies 
>> (the gump descriptor should be a good start)
>>
>> - patch the most recent forrest install buildfile as I did (really 
>> minimal changes only, in fact)

done

>> - patch the buildfile to customize the classpath to reference 
>> dependencies in the repository, rather than include a whole bunch of 
>> jars in the plugin; remove all the jars

"build.syclasspath=only" might help here, since we can just put the 
entire maven classpath on the sysclasspath in the call that runs ant.

>> - properly structure the plugin so that it adheres to maven plugin 
>> conventions and things like a manifest are auto-generated

done.

>> - remove unused stuff like the webapp and forrestbot functionality 
>> from the plugin

how easy is it to strip down the shbat distribution further? Are there 
plans for that, is it wanted? Where would I start?

>> - figure out how to neatly replace the xdoc generation (right now the 
>> forrest:generate target just overwrites any maven-generated files 
>> which are in the way)

this is the most tricky part. A symbiotic relationship between maven and 
forrest can exist to some extent, as you can have maven-generated files 
easily reference files which will be generated later by forrest, and 
vice versa (where I believe filterlinks.xsl should be modified in 
forrest to not overwrite any stuff we know maven will generate), but 
from there it is more tricky.

I saw an anakia2document.xsl sheet and some auxillary files. How easy 
would it be to detect whether a given xdoc file is in maven's format and 
have forrest run this automatically? Where does one configure forrest to 
do that? Is there docs on how to do that (I have a hunch there is some 
kind of fancy dynamism in some kind of sitemap :D)?

>> - customize forrest skins to include a reference to the 
>> maven-generated project reports if they exist

my current thinking is that for now a "reports" tab should be added to a 
temporary tabs.xml file based on a test for existence of the 
maven-reports.html file. Is that workable? Where would that test go; how 
  easy is it to modify the tabs.xml file conditionally like that? My 
hunch is XSLT is in order, which makes me shiver.....

>> - write a project.xml (maven POM) -> status.xml (Forrest status file) 
>> converter
>>
>> - perhaps write an all-new doc generation plugin where it is easier to 
>> customize whether JSL or forrest or something else is used?

my current thinking is that the easiest setup will be to incorporate 
parsing of all maven-style docs into forrest.

lemme know what you guys think! cheers,

- Leo



Mime
View raw message