Jakarta Commons Standard Web Presence
The Problem
Currently, each Jakarta Commons component is entirely responsible for its own web site. In addition, the "home" Commons site is maintained independently of the components themselves. The following problems result from this arrangement.
- Different components use different visual styles for their individual sites. This contributes to an apparent lack of cohesion within the Commons project, both to end users and to others in the Apache community. It also makes it more difficult for users to navigate through the Commons site, since there is no unified look and feel.
- Different components use different technologies for their individual sites. In addition to increasing the barrier to entry for individuals to contribute to multiple components, this complicates the process of creating a unified Commons "home" site.
- The "home" site does not always reflect the state of Commons as whole. This is essentially a side effect of the component sites and the "home" site being entirely independent; for any change to the component site, a developer has to manually reflect any appropriate changes in the "home" site.
- Not every component has a web presence, or even any web mention at all. Unfortunately, this is currently the case for several Commons Sandbox components. As a result, these components are virtually unknown, severely hampering their ability to form a community and subsequently develop into a full Commons component.
The Proposal
The Jakarta Commons community has deemed it a worthwhile goal to create a common looking web presence across all of the Jakarta Commons components. To accomplish this goal, a common web site generation and deployment process will be developed and employed by all the Jakarta Commons components. The final process will meet the following requirements:
- The site for each component (proper or sandbox) can be generated and deployed independently of those for other components.
- All component sites include the same global navigation links to important Jakarta Commons, Jakarta, and Apache assets.
- Each component provides quick navigation links to the other Jakarta Commons components on which it depends.
- The main Jakarta Commons site has the same global navigation links as the components themselves.
- The main Jakarta Commons site provides quick navigation links to each and every Jakarta Commons component.
The Plan
Use of Maven
Of all the tools available to generate websites, Maven has been chosen to create the Jakarta Commons components' sites. The primary reasons for this choice are:
- It is extremely versitle at creating websites and provides a lot of project content without much effort.
- It provides the means to work on the components individually or as a group.
- Many Jakarta Commons components are using Maven already for their build process, include site generation.
- Many Jakarta Commons committers and contributors have solid working knowledge of Maven and have expressed a desire to help with the standarization
Step 1. Mavenize all Jakarta Commons Components
Some Jakarta Commons components already have a Maven generated site. Most, however, do not use Maven for site generation or deployment. The first step to reaching a common looking web presence is to mavenize all the components under the Jakarta Commons moniker.
(PROPOSED) Step 2. Define a Standard "Interface" which every Component site should implement.
Each component should have a series of common pages. Such as "description", "examples", "FAQ", "roadmap".
Each component should use a xdocs/navigation.xml for their menus. Make use of the top-menus and bottom-menus xml entities to include the common menus, for example: http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-commons/dbcp/xdocs/navigation.xml?rev=1.4&content-type=text/plain
Each component should have a xdocs/download.xml file. It should give an overview of all available resources.
- releases (version+date)
- links to mirror of latest binary/source
- archive for older releases
- nightly builds
- cvs access
Each component should have a project.xml extending project-base.xml For example: http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-commons/dbcp/project.xml?content-type=text%2Fplain
Each component should have a project.properties file that includes the following:
maven.xdoc.date=bottom, maven.xdoc.poweredby.image=maven-feather.png For example:
http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-commons/dbcp/project.properties
Each component should have a build.xml file that can be used by gump. Not using the maven jars but the gump dependencies. (only required for proper components?)
(PROPOSED) Step 3. Reoganize the content of main commons site
TODO
Current Status
TBD (List status, w.r.t. this proposal, of each component in proper and sandbox.)
Commons Proper Components
- BeanUtils - Has Maven site, but <b> not default</b>.
- Betwixt - Maven site.
- Cactus - <b>Promoted, but still in Proper CVS.</b>
- CLI - Maven site.
- Codec - Maven site.
- Collections - Has Maven site, but <b> not default</b>.
- Daemon - Maven site.
- DBCP - Maven site.
- DBUtils - Maven site.
- Digester - Has Maven site, but <b> not default</b>.
- Discovery - Has Maven site, but <b> not default</b>.
- EL - <b>No Maven site.</b>
- FileUpload - Maven site.
- HttpClient - Maven site.
- Jelly - Maven site.
- Jexl - Has Maven site, but <b> not default</b>.
- JXPath - Maven site.
- Lang - Has Maven site, but <b> not default</b>.
- Latka - Maven site.
- Launcher - Maven site.
- Logging - Has <b>minimal</b> Maven site, but <b> not default</b>.
- Math - Maven site.
- Modeler - Has Maven site, but <b> not default</b>.
- Net - Maven site.
- Pool - Maven site.
- Primitives - Maven site.
- Validator - Maven site.
Commons Sandbox Components
- AltRMI => moved to incubator
- amend => not a component
- armi => old AltRMI code
- Attribute - Maven site (needs update)
- betwixt => moved to commons proper
- BZip2 => code moved to Compress
- Cache - Maven site - OK
- cadastre => removed
- Chain - Maven site (needs update)
- cjan => removed
- Clazz - Maven site (needs update)
- CLI => proposal: move back commons proper or be renamed to cli2
- Compress - Maven site - OK
- Configuration - Maven site.
- Convert
- DBUtils
- EL
- Events - Maven site.
- Filters
- Functor - Maven site.
- Grant
- Graph2
- HiveMind - Maven site (<b>offline</b>).
- Http
- IO - Maven site.
- Jex
- Jexl
- JJar - Maven site.
- Joran
- JPath
- JRCS - Maven site.
- JUX
- Lang
- Launcher => moved to commons proper
- Mapper - Maven site.
- Math => moved to commons proper
- Messenger - Maven site.
- Naming
- Pattern
- Periodicity
- Primitives
- Proposal
- Reflect
- Resources - Maven site.
- Rupert
- Scaffold - Maven site.
- Services
- Servlet
- SimpleStore
- SQL - Maven site.
- Threading
- ThreadPool - Maven site.
- Util
- VFS - Maven site.
- Workflow - Maven site.
- XMLUnit
- XO