You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xmlbeans.apache.org by Allen Brookes <ab...@roguewave.com> on 2006/03/29 20:48:57 UTC

xmlbeanscxx proposal

 

This is a proposal for an xmlbeans subproject which should be discussed here
and voted on at the xmlbeans PMC.  This is a modification of an earlier
proposal (May 15, 2005).  This proposal is being resubmitted on the advice
of Cliff Schmidt.  The nature of the proposal changed when the company Touk
offered to submit their xmlbeansxx code base as the initial code.  This also
changed who the main developers on the project would be.  Because of the
change of focus, and due to scheduling issues within Rogue Wave, the role of
Rogue Wave developers on the project has greatly diminished.  One result of
these changes is the need for developers at Touk to act as committers.
Because adding committers is done on the basis of merit, and because there
is no basis yet for judging merit on this project, Cliff has advised us to
start over with a new proposal.

 

Proposal to create a C++ version of the Apache XMLBeans project 

 

Submission date: 29 March 2006, Allen Brookes, (abrookes @ RogueWave
dot-com) 

 

(0) rationale 

 

Apache currently maintains the XMLBeans/Java project, a tool that uses XML
Schema as a basis for generating Java classes used to easily access XML
instance data. The goal of the XMLBeans/C++ project is to provide a very
similar user experience for C++ developers as that provided by the
XMLBeans/Java version. This includes generating strongly-typed C++ classes
for the XML binding as well as providing low-level C++ APIs enabling access
to the raw, underlying XML content. Where possible, the XMLBeans/C++ project
will provide a nearly identical API and parallel architecture to that
provided by the Java counterpart, and will closely mimic both features and
schedule. 

 

The project will be jump started with the contribution of xmlbeansxx, a
partial C++ implementation of XMLBeans from Touk
(http://touk.pl/web/en/index.html <http://touk.pl/web/en/index.html> ).
Rogue Wave Software will help jump start this project by contributing
considerable expertise in the area of XML data bindings in C++ and C++
expertise in general. 

 

(0.1) criteria 

 

Meritocracy: The C++ version of the project should adhere to the same open,
merit-based community standards as other Apache projects. 

 

Contributions and Core Developers: Code being contributed is an open source
partial implementation of XMLBeans in C++ created by Touk. 

 

The community should be able to immediately jump in and begin work, along
side dedicated Touk and Rogue Wave personnel, to turn the initial
contribution into a feature-compatible version of XMLBeans for C++. 

 

Community: The community around the Java version of XMLBeans is already
vibrant and growing. There is every reason to believe many of those within
the existing community have experience and/or general interest in a
successful, compatible C++ implementation of the toolset. This should ensure
an immediately active and vocal community, even if the primary interest is
in ensuring a similar experience between versions. The original contribution
for this project has been around for some time and has generated some
interest already. 

 

Additionally, at least one member of an existing Apache project has
expressed interest in a project like XMLBeans/C++ to aid in his current
work. Higher-level projects such as Axis for C++ seem to be natural
beneficiaries of this work. 

 

(0.2) known risks 

 

Orphaned Products: The xmlbeansxx project has been around for some time now
and development has been active throughout this time.  There is every reason
to expect that this commitment will continue after the transition to Apache.

 

Inexperience with Open Source: Rogue Wave has been gaining experience with
open source through the STDCXX, The Apache C++ Standard Library, currently
undergoing incubation.  Touk has had experience with open source through the
xmlbeanscxx project.

 

Initial Reliance on Salaried Workers: Due to the rapid process of
transitioning to work on the open source XMLBeans/C++ project, the listed
contributors are all inside the commercial realm. We expect this list of
external volunteers to grow significantly after the initial public code
drop.

 

Licensing, Patents, Miscellaneous Legal: Files in the contributed code are
already licensed under the Apache License, Version 2:
https://sourceforge.net/projects/xmlbeansxx/
<https://sourceforge.net/projects/xmlbeansxx/> . 

  

(1) scope of the subproject 

 

The XMLBeans/C++ subproject will conform to the identical scope as that laid
out for the partner Java project. Special care will be taken to implement
features and add conveniences that would be expected by a C++ developer.

 

(2) identify the initial source for subproject code 

 

The initial source for the subproject will be the xmlbeanxx project from
Touk.  Some background information may be found on this product at: 

 

Xmlbeansxx home page (http://xmlbeansxx.touk.pl)

 

 

(3) identify the ASF resources to be created (most of these have already
been created)

 

(3.1) mailing list(s) 

 

cxx-dev@xmlbeans.apache.org

cxx-user@xmlbeans.apache.org

cxx-commits@xmlbeans.apache.org

 

(3.2) SVN repositories 

 

http://svn.apache.org/repos/asf/incubator/xmlbeanscxx/
<http://svn.apache.org/repos/asf/incubator/xmlbeanscxx/> 

 

(3.3) Bugzilla 

 

The XMLBeans/C++ bug tracking database (key XBC) is in Jira:
https://issues.apache.org/jira/browse/XBC
<https://issues.apache.org/jira/browse/XBC> 

 

(4.0) identify the initial set of committers 

 

This is a preliminary list that will be updated with volunteer members. 

 

Allen Brookes (abrookes @ roguewave dot-com) 

David Haney (david.haney @ roguewave dot-com) 

Tomasz Wielga (tw @ touk dot-pl)

Rafal Rusin (rr @ touk dot-pl

 

(5) identify apache sponsoring individual 

 

Cliff Schmidt, of the XMLBeans/Java project, has volunteered to sponsor this
project. 

 

Cliff Schmidt (CliffS @ Apache dot-org) 

 

(6) open issues for discussion 

 

The original code contribution has an API that is very similar to that of
the Java version.  However, there are parts of the API that have not yet
been implemented that may be considered essential by users of the Java
version wishing to migrate or co-develop applications.

 

Addressing this deficiency is considered a high priority task for the C++
project. 

 

This task is currently underway at Touk and will be continued after the code
has been contributed. 

  

The contributed C++ code is based on its own code generator. It is probably
desirable to consolidate both C++ and Java projects under the same code
generator, most likely the one already included in the Java version of the
XMLBeans. 

 

This is not considered a priority-1 task at this point, more of a long term
goal and convenience. If it saves time in other priority tasks it will be
looked at closely, however. 

 

Platform support 

Unlike Java, the C++ port will have significant issues around platform and
compiler support. In order to help with this the project will be using the
C++ standard library, and may in fact benefit greatly from STDCXX, The
Apache C++ Standard Library, currently in incubation.  Initially the native
StdLib will be used. 

 

Good platform support will be very important so even the early builds should
be done on Windows and Linux, and preferably at least one Unix variety. Long
term the matrix should be very large.