Description
The other LS projects have been migrating to Maven 2.0 for documentation generation and deployment, packaging and, for the Java projects, build and dependency management. Migrating log4net would complete the migration and would allow consistency between the web content of the various projects.
The initial commit overlays the existing source code struction with fragments of the Maven Standard Directory Layout,. The following directories are added:
src/assembly - release packaging info, includes assembly.bin borrowed from another project.
src/changes - project change list. Includes sample changes.xml. log4cxx has an XSLT transform that can generate changes.xml from a downloaded JIRA issue list. Used to generate change-report.html.
src/site - documentation source files, site.xml contains navigation and layout details for all generated pages
src/site/apt - web content in Maven's APT (almost plain text) format
src/site/resources - static content copied over without processing
src/site/xdoc - XDoc content, I copied the existing xdocs content here, but deleted a few no longer needed pages
The existing C# code in src should be relocated to src/main/cs and the build and project files appropriately changed. For extra credit, the following relocations would bring the layout closer to a typical Maven layout:
change log4net.build to generate DLL's in target (maybe target\bin) instead of bin
svn rm docs
svn mv examples src/examples
svn mv extensions src/extensions
svn mv tests/src src/test/cs
svn mv tests/nant.build src/test/nant.build (modified to build test DLL's in target)
svn rm xdocs
pom.xml - Maven project descriptor, contains info used to generate much of the web content
After installing Maven 2.0.7 (which requires a JDK 1.4 or later). Running mvn site will generate the web content in target/site/index.html.
mvn site-deploy should deploy the content to the logging/site/trunk/docs SVN for staging before going live on logging.apache.org. The implementation of site-deploy uses Maven to generate the web content, invoke Nant to checkout the existing content, uses Maven's SCP deployment to copy the generated content over the existing content, and then invokes Nant to set svn:mime-type and finally commit the changes. The deployment stalled on the commit when run from Maven, but if I ctrl+c'd the process and then manually "svn commit", the changes were processed.
I set up a Windows build environment but ran into problems with both NUnit and NDoc that I wasn't able to get around. Setting up the SSHD to receive the "uploaded" web content before deployment was also less than ideal. It may be simpler to add mono, ndoc and nant to the VM used to build the other LS projects for web creation. I have left stubs that should have published the API docs if I had been successful getting them from NDoc.