Developer Reference Documentation
Description
The objective is to provide a reference developer documentation for XWiki developers. The first phase is to target it for script developers.
The first objective will be to list all variables available in scripting (velocity, groovy) and point to the relevant Javadoc. In order to have cross linking between the javadoc, we need to build the javadoc of the whole XWiki platform as well as provide remote links for the most common modules that are cross linked from the XWiki javadocs.
We should provide a way to filter the variables based on type (velocity, groovy, plugin, components, etc.) and also based on XWiki version. For each variable we should know in which version the variable started to be available and also if it is now deprecated.
Plan
DONE
1/ Make an inventory of all variables currently available: DONE, verification needed
2/ Create an AppWihinMinutes application to classify all variables and provide information about them: DONE
3/ Fill in the initial set of data: DONE
4/ Build a global javadoc of the latest version (4.1.3): DONE
5/ Build a UI to navigate the variables and javadoc in an IFRAME: DONE
6/ Provide an external link to the source code of the modules: DONE
TODO
7/ Finish inserting all data (source code links, description for variables, versions, etc..)
8/ Do the inventory of the external modules to point javadocs to and
rebuild javadoc with them
9/ UI refinements, point to source code, open javadoc in new window
10/ Fix the com.xpn.xwiki.api.Document javadoc which is missing many
comments of important functions
11/ Find a final home for the javadocs (currently they are on
www.xwikisas.com) and for the application
12/ Build older versions
13/ Do the inventory of when the variables show up and if module
changed in the past, add deprecation information
14/ Adapt the application to manage versionStart, versionEnd. Provide
navigation between versions
15/ Automate a script for detection of new or changed variables
16/ See if we can build the global javadoc with maven
17/ Write the procedure on how to update this documentation on every new release
18/ Update it on every new release
Current Prototype
The prototype of the navigation is here:
http://incubator.myxwiki.org/xwiki/bin/view/ScriptingReferenceDocumentation/Navigation?xpage=embed
The variables are listed here:
http://incubator.myxwiki.org/xwiki/bin/view/ScriptingReferenceDocumentation/
Tools
The tool for building the global javadoc has been build. It is currently documented here:
http://incubator.myxwiki.org/xwiki/bin/view/ScriptingReferenceDocumentation/HowToBuild
The results are good as you get some cross links between the module. It is also possible to include javadoc links to other modules on the Internet (java SE6, jodatime, Apache commons etc..). For that we will need to do an inventory of all modules it is interesting to include.
It would be interesting to see if we could run this build using maven.
Ludovic Dubost