The Apache community and the larger community of the Apache Software Foundation is committed to developing open source software. The Apache Software Foundation is a nonprofit corporation registered in Delaware that supports ongoing collaborative software development according to a set of simple ideals: transparency, meritocracy, consensus, and mutual respect. To learn more about the foundation, start at the Frequently Asked Questions page on www.apache.org (http://www.apache.org/foundation/faq.html). Commons is a project under the Apache Software Foundation, and it is managed by what is known as a Project Management Committee (PMC). This committee manages a number of Apache subprojects including the Apache Commons.
The Jakarta community and Apache XML community both had tremendous growth spurts from 1999 to 2003, with both projects becoming dominant forces in open source Java. Tomcat, Struts, Xerces, Xalan, Ant, Cocoon, and other projects were embraced by the larger community and Java developed a very strong association with open source because of the influence of Jakarta. Toward the end of this growth spurt, the corporate structure of Apache required a certain level of oversight and accountability which could not be achieved in an umbrella project like Jakarta's hundreds of committers. A decision was made to encourage Jakarta subprojects to move toward smaller, more focused PMCs. One of the first projects to leave Jakarta was Apache Ant, and other projects such as Maven, Struts, and Log4j followed suit. This new, more nimble approach to the structure of collaborative software development avoids the creation of multiple management layers between project participants and the PMC.
In the past few years (2004-2009), Apache has made way for a new generation of projects that have set the standard for open source, including Directory, Derby, Lucene, Maven, CouchDB, Wicket, and Abdera among others. The community which was once Jakarta has been slowly evaporating over time into separate top-level projects, and Jakarta Commons finally made the switch to Apache Commons in 2007. Compared to the organizational structure of Jakarta in 2002 and 2003, this new approach of requiring more focused top-level projects have proven beneficial over time. Jakarta had become something of a "star stage" for political advocacy, and the general Jakarta discussion list was a series of continuous flame wars toward the end of that community. While some Apache projects are still characterized by endless procedural bickering, they are largely the exception. The more focused approach of having top level projects focused on a single piece of software or a limited set of related components allows for a more scalable structure. As a result, the number of projects in the Apache Software Foundation has grow substantially over just the last five years.
If you find the components in this book helpful, I encourage you to take some time to observe the developer mailing list for Apache Commons. The ASF is (mostly) transparent, and this means that the general public has a window into the collaborative development process that is used to create a large body of great software. I would encourage any developer to take an interest in a piece of software and watch the development process. Follow the decisions, releases, arguments, flame-wars, and evolution of something like Apache Commons and you can see for yourself what works and what doesn't work. This is also a great way to keep yourself informed of the changes and direction of certain projects. If you find Apache Commons (or any other Apache software) useful, you should consider taking a little bit of time to help a fellow user on the user mailing list or submit documentation patches. If you find a typo or a bug, file a report on Apache's Jira installation (http://issues.apache.org/jira).
There is always a need for greater unit test coverage, and any time you find an inconsistency in code you should file a bug. Contributions can come in many forms — answering user questions, writing documentation, writing unit tests, submitting patches, or providing feedback. All of these contributions help sustain a living community. If you find yourself unable to participate in the community, you can make a small (possibly tax-deductible) donation to the Apache Software Foundation to help offset the cost of infrastructure and bandwidth (http://www.apache.org/foundation/contributing.html).