incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jochen Wiedmann <>
Subject Proposal: JaxMe as an implementation of JAXB
Date Wed, 10 Sep 2003 10:11:50 GMT


in compliance with a previous vote on webservices-general (see and for details) I 
would like to propose the JaxMe project for incubation. The proposal is 
available on

I'll add it also below.




JaxMe - Proposal for an Apache implementation of JAXB

10 Sep 2003 : Davanum Srinivas ( and Jochen Wiedmann 

Section 0 : Rationale

The specification for Java/XML binding (JAXB) describes a customizable 
mapping between an instance of XML Schema and a set of Java classes being 
generated by the JAXB implementation. A JAXB compliant binding compiler creates

    - a SAX 2 handler that is able to parse a conforming XML instance
    - a Java bean that allows to store the information read by the parser
    - a Marshaller that is able to convert the Java bean back into an
      XML instance which is equivalent to the original XML instance

Details on JAXB can be found on

 From the view of the Apache project, JAXB is important, because it is going 
to be a requirement in a series of upcoming Java standards, in particular 
JAX-RPC 2.0 (in planning stage at JCP - 
and J2EE 1.5. In other words, a JAXB implementation will be required by Axis 
and Geronimo.

 From the view of the JAXB users, an Apache sponsored implementation is 
important, because it would be open: Source generators tend to be usefull 
only as far as you can extend and customize them to your individual needs. A 
proprietary implementation like the JAXB reference implementation can be 
open to a certain extent only.

Section 0.1 : criteria

Meritocracy: The project will be based on JaxMe 2 (see below), which is 
already following meritocratic guidelines. The usual Apache meritocracy 
rules would apply in the future.

Community: The existing community is small, because the project didn't have 
much audience in the past. However, it can be said to be constantly growing. 
The user community for this project is potentially massive, because JAXB is 
the first standard for Java/XML binding.

Core Developers: The initial developers are listed below and consist of 
existing and emerited Apache comitters. Some other developers have already 
expressed their wish to help and become committers.

Alignment: Axis requires a JAXB implementation as part of JAX-RPC 2.0. 
Geronimo requires JAXB as part of J2EE 1.5. However, JAXB is obviously 
usefull as a standalone project, because its place is whereever XML 
marshalling and/or unmarshalling is happending.

Section 0.2 : warning signs We feel that this project has a good chance for 
success as the following warning signs do not apply to the project we are 
proposing :

Orphaned products: The code base being used was rewritten from scratch just 
some months ago. The predecessor has been used as a mature product in large 
scaled applications.

Inexperience with open source: The initial community is made up of existing 
Apache committers.

Homogeneous developers: The current list of committers consists of 
individuals which found themselves on the JaxMe mailing list simply because 
of interest in JAXB.

Reliance on salaried developers: None.

No ties to other Apache products: At first glance JaxMe might seem in 
conflict to Betwixt or XMLBeans. However, JaxMe is clearly different. 
Betwixt is using Java Beans as the origin. XMLBeans is also using an XML 
Schema, but doesn't currently have a runtime or a code generator 
implementing JAXB. In contrary, it seems reasonable to combine XMLBeans and 
JaxMe at some point: XMLBeans might use JaxMe internally as a generator to 
implement JSR-31.

A fascination with the Apache brand: The JaxMe development will continue, 
regardless of the acceptance by the ASF.

Section 1 : scope of the project As a possible part of Geronimo, JaxMe is 
aimed to become a fully compliant implementation of JSR-31. Again, as part 
of Geronimo, it should even be able to pass the JAXB compliance kit (JCK).

Section 2 : initial source from which the project is to be populated

The following modules are being included into the Apache CVS:

     * JaxMeXS, the JaxMe parser for XML Schema; this is an extensible XML 
schema parser, particularly developed for implementation of XML schema 
extensions like JAXB. The parser can be replaced at a later time. See for details.

     * JaxMeJS, the JaxMe java source generation framework, a generic 
framework for complex Java source generators. Unlike typical Java source 
generators, this one is not template driven. It views the generated sources 
as abstract objects, which are created and customized in a pipe of smaller 
generators. The approach is comparable with Cocoon. See for details.

     * JaxMe2, the ongoing JAXB implementation, which is internally based on 
the former sources. See for details.

All of the above sources are available under the BSD license. A formal vote 
took place on the mailing list, which 
decided to offer the copyrights to the ASF. Another vote on resulted in acceptance by

Section 3: identify the ASF resources to be created

Section 3.1 : mailing lists


A user list can be established at a later time.

Section 3.2: CVS repositories

     * ws-jaxme

Section 3.3: Bugzilla

     * ws jaxme

Section 4: identify the initial set of committers

     * Jochen Wiedmann (JaxMe project founder, formerly
     * Davanum Srinivas (
     * Robert Burrell Donkin (

Section 5: identify apache sponsoring individual

     * Davanum Srinivas, dims at

Section 6: open issues for discussion

As an implementation of JAXB, the project depends on a small set of 
interfaces. These should ideally be distributed in a small jar file, much 
like the xml-apis.jar from Unfortunately, these interfaces 
are currently only available as part of the Java Web Services Developer Pack 
(JWSDP) 1.2 under comparatively restrictive license terms. A JaxMe 
distribution would be allowed to add these Jar files to a binary archive, 
but only as a part of a larger super set. This super set consists of 7 jar 
files with no less than 5 MB. An integration into the CVS would be strictly 
forbidden. A better approach would be a clean room implementation of the 
JAXB API. Technically there are no issues. The interfaces are clear and 
replacements for the default implementations are already implemented.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message