Proposal for an XMLBeans subproject in Apache XML
8 July 2003, Cliff Schmidt (cliff.schmidt@bea.com)
(0) rationale
XMLBeans is an XML-Java binding tool that uses XML Schema as a basis for generating Java classes to be used to easily access XML instance data. It was designed to provide both easy access to XML information via convenient Java classes as well as complete access to the underlying XML, combining the best of low-level, full access APIs like SAX and DOM with the convenience of Java binding.
See BEA's quick start page for more information.
(0.1) criteria
Meritocracy: We would very much like to see XMLBeans evolve under the meritocracy model that is used within Apache.
Community: Over the last six months, we have developed a thriving developer community to provide feedback directly to the development team through a discussion forum. We have invited three of the members of the community to join us as committers, based on their contributions to the development of the product. We've also had thousands of users experiment with the technology. Part of the reason for this success has been the availability of sample code and thorough documentation.
Core Developers: In addition to key members of the XMLBeans development team, the initial committers include developers from outside BEA who have spent several months using XMLBeans to solve their particular development needs. We are also interested in attracting other Apache committers during the incubation period.
Alignment: While XMLBeans does not currently have major dependencies on other Apache XML products, we are very interested in pursuing integration. For instance, we are looking into enabling Xerces to be used as our XML parser. One reason for doing this is due to the fact that we currently use the Piccolo parser, and I realize that the LGPL terms of this parser would be problematic for an Apache project. Therefore, if it is eventually agreed that an XMLBeans subproject in Apache would be a Good Thing, we will replace our current parser with an alternative that uses an Apache license.
We are also aware that there is some overlap of functionality with JAXB, specifically regarding object binding. We would very much like to see the convergence of these two technologies. In fact, one of the committers has recently joined the JAXB v.2 Expert Group, in order to facilitate this.
Finally, we are aware that the proposed WS-Commons subproject might include a JAXB proposal. If this subproject is approved, we would want to work closely together on any future JAXB-XMLBeans convergence.
(0.2) warning signs
Orphaned products: BEA has been receiving very positive press and customer feedback about XMLBeans and only wishes to invest further in the development and support of this technology.
Inexperience with open source: While we do not yet have any committers who are currently active in the XML or Jakarta projects, several of them have previous experience working with open source communities. For example, the architect behind XMLBeans, David Bau, has built a strong community around Dave's Quick Search Deskbar.
Homogenous developers: The current list of committers represents developers from companies such as BEA, Federal Express, and Reuters, as well as one independent volunteer. Of the nine committers listed below, they work in five different states (no international committers yet). No more than two work in the same city.
Reliance on salaried developers:
- One of our committers is volunteering to work on XMLBeans.
- Two of the committers are not paid by their employers to develop XMLBeans; however, in the interest of full disclosure, their employers do consider XMLBeans an important technology to their business.
- The others are, in fact, actually paid to work on XMLBeans.
Finally, over the last six months, we have gotten interest from thousands of other developers. We hope to interest many of them in volunteering to contribute to this project.
No ties to other Apache products: XMLBeans shares similar licensing and complementary technologies to other Apache projects.
A fascination with the Apache brand: The committers are interested in developing a healthy open source community around XMLBeans, whether Apache is the right place or not. However, we believe that this subproject would complement others in both the Jakarta and XML Apache projects, and would make the larger community stronger as a result. BEA is committed to supporting the future open source development of XMLBeans and continuing to distribute the result of that development with future releases of its Weblogic Workshop product.
(1) scope of the subproject
- XML Schema binding to Java classes
- Efficient, low-level XML access
- XML Schema validation
For more detailed information, see:
(2) identify the initial source from which the subproject is to be populated
Note: This source currently includes the Piccolo parser, which is licensed under LGPL. We are already planning to swap this out for a parser licensed under Apache-like terms. This LGPL source will be removed prior to checking into CVS.
(3) identify the ASF resources to be created
(3.1) mailing list(s)
- xmlbeans-dev
- xmlbeans-user
- xmlbeans-cvs
(3.2) CVS repositories
- xml-xmlbeans
(3.3) Bugzilla
- xml xmlbeans
(4) identify the initial set of committers
Cezar Andrei (cezar.andrei@bea.com)
David Bau (david.bau@bea.com)
Tim Hanson (timothy.hanson@bea.com)
Ken Kress (ken@kress.org)
Laurence Moroney (laurence.moroney@reuters.com)
David Remy (david.remy@bea.com)
Cliff Schmidt (cliff.schmidt@bea.com)
Eric Vasilik (eric.vasilik@bea.com)
Robert Wyrick (rob@wyrick.org)
(5) identify apache sponsoring individual
Steven Noels (stevenn@outerthought.org)
- Ted Leung ()
(6) open issues for discussion
- If an Incubator stage is suggested, should the process of replacing our current LGPL parser with an Apache-compatible parser begin before or during incubation?
nicolaken: No (L)GPL binaries should be committed in our CVS.
gstein: it is quite acceptable to check in broken code so that you can get the nascient community to help with the parser replacement work. it does mean that you'll miss out on random drive-by testing, but it might help by distributing work.
For other info on XMLBeans, see XmlBeansRoadMap, XmlBeansExplanation, or my response to the initial set of questions.