+1
On May 31, 2005, at 11:29 AM, [EMAIL PROTECTED] wrote:
+1
-- --
Ken Kress
Information Technology
LockwoodŽ
10 Valley Stream Parkway
Malvern, PA 19355
Phone: (484) 605-4834
Fax: (484) 605-4903
Email: [EMAIL PROTECTED]
Cliff Schmidt <[EMAIL PROTECTED]>
05/31/2005 01:16 PM
Please respond to dev
To: dev@xmlbeans.apache.org
cc:
Subject: [VOTE] xmlbeanscxx subproject
I think we've now had plenty of time for discussion. Please vote on
the following:
Should the XMLBeans project sponsor the proposed xmlbeanscxx project,
as described in Heidi's proposal (see below)?
As usual, all members of the xmlbeans community are welcome to vote,
but only XMLBeans PMC members have binding votes. This vote will
close at midnight, 4 June UTC (Friday at 5 PM PDT):
http://www.timeanddate.com/worldclock/fixedtime.html?
year=2005&month=6&day=4&hour=00&min=00&sec=00
Thanks,
Cliff
On 5/19/05, Heidi Buelow <[EMAIL PROTECTED]> wrote:
Since writing the XmlBeans C++ proposal a few weeks ago, we have done
more
analysis of our planned approach, and we have come to the conclusion
that
there are significant and important differences between the XmlBeans
architecture and that of our existing product that we referenced
in the
proposal as a starting point for the Apache project. In addition, we
have
since made progress on the XmlBeans C++ implementation with
developers
actively working on the project internally.
Our goal is clear, in that we plan to develop XmlBeans C++ to be
compatible
with the Java version, both architecturally and keeping to the API as
closely as possible. There are many components in our existing LEIF
product
that will provide a starting point for XmlBeans C++ to jump-start the
project. However, given the differences, we now plan to have our
developers
borrow/modify from this applicable code and then submit it to the
Apache
project during implementation.
This approach will be a lot less confusing to the community,
giving our
developers the responsibility of incorporating any of our existing
product
code into the Apache project, avoiding that burden for other
contributors.
We can transfer our work under the auspices of Apache as soon as the
project
is approved and the environment is set up.
Heidi.
--------------------
Heidi Buelow
Rogue Wave, a division of Quovadx
-----Original Message-----
From: Heidi Buelow
Sent: Sunday, May 15, 2005 11:12 AM
To: 'dev@xmlbeans.apache.org'
Subject: Proposal for xmlbeanscxx
This is a proposal for an xmlbeans subproject which should be
discussed
here
and voted on at the xmlbeans PMC before going to the incubator for a
vote.
Proposal to create a C++ version of the Apache XMLBeans project
Submission date: 15 May 2005, Tim Triemstra, Heidi Buelow (TimT @
RogueWave
dot-com, Buelow @ 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.
Rogue Wave Software will help jump start this project by
contributing
the
existing XML to C++ binding code distributed as part of the LEIF
product
to
the Apache community. This product has been in production for
over two
years, and will provide a solid foundation for a C++ version of
XMLBeans.
(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
actually
a
subset of the LEIF product. Currently, work is underway to remove
any
proprietary dependencies from within the code. A "cleaned" version
that is
ready for contribution will be made available to the community
around
the
middle of May 2005. This initial contribution will be fully
functioning,
but
missing a few key features of the Java version of XMLBeans.
The community should be able to immediately jump in and begin work,
along
side dedicated 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. There is
already a
large
group of developers "in the wild" using the original XML to C++
binding
tool
that is serving as the original contribution for this project. These
users
will be migrating to the XMLBeans/C++ code over time and have
already
indicated a keen interest in tracking, and even participating in the
Apache-led project.
Apache Alignment: The XML binding tool from which the XMLBeans/C++
port
will
morph does not include a full XML parser, but instead uses a small,
focused
parser designed expressly for tight C++ to XML binding support. The
general
purpose XML instance data APIs within XMLBeans will require
additional
code
and may be a good fit for the Xerces parser to enable some required
features.
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: One of the first questions when a commercial
entity
offers code to the public is "will this code be abandoned?" To be
clear,
Rogue Wave decided to initiate this process due to its own
significant
interest in the XMLBeans feature set already present in Java, and
its
need
for similar features in C++. We have significant product goals
moving
forward around XML for which the XMLBeans model fits perfectly.
Rather
than
simply copy the design and keep the project closed, we felt that the
downstream products would reap significant benefits from opening the
XML
layer to the community. Keeping the C++ version in sync with the
Java
version, even if it were to not be accepted as an Apache project,
can
only
help its overall adoption.
Additionally, a diverse committer base is a strong goal for this
project.
Numerous users of the contributed XML to C++ binding tool have
indicated
interest in participating, many of whom have critical projects
dependant
on
this work and resources available to continue to ensure the
viability
of
the
project well into the future.
Inexperience with Open Source: Like many companies entering this
arena, we
have limited experience working on open source projects. Our primary
goal
is
to foster an active community around XMLBeans/C++ so advice will be
taken
to
heart, and significant resources will be dedicated to the project to
get
it
off the ground. However, we hope that our experience working in open
standards groups will aid in the transition to the open source
community.
Initial Reliance on Salaried Workers: Due to the rapid process of
transitioning to work on the open source XMLBeans/C++ project,
only a
few
of
the listed contributors will be outside the commercial realm. We
expect
this
list of external volunteers to grow significantly after the initial
public
code drop.
Licensing, Patents, Miscellaneous Legal: We are conducting a legal
review
of
the code and existing contracts. This review should be done shortly
and
any
code contributed will be licensed under the latest ASF terms.
Commercial Interest: XMLBeans/C++ will be maintained as an open
source
Apache project, with all relevant enhancements contributed to the
community.
Additionally, there is every intention to use XMLBeans/C++ within
future
commercial products, thereby resulting in even greater testing and
user
exposure. It is expected that other companies may well wish to
use the
project's code within their own commercial endeavors, which of
course
would
be fine.
(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.
For clarity, the goals of the XMLBeans/C++ project are:
Generation of plain C++ classes to model XML Schema Validation of
C++
objects against the source XML Schema Access to partial document
instance
data (fragments) Efficient "parse as necessary" access that forgives
extra
data Access to the full XML infoset
(2) identify the initial source for subproject code
Some background information may be found on the LEIF product and the
associated Data Tier.
LEIF product page (http://www.roguewave.com/products/leif)
The C++/XML binding contribution code can be found at the following
link:
xmlBeans open source information
(http://www.roguewave.com/opensource/XMLbeans.cfm)
(3) identify the ASF resources to be created
(3.1) mailing list(s)
xmlbeanscxx-dev
xmlbeanscxx-user
xmlbeanscxx-commits
(3.2) SVN repositories
xml-xmlbeanscxx
(3.3) Bugzilla
xml xmlbeanscxx
(4.0) identify the initial set of committers
This is a preliminary list that will be updated with volunteer
members.
Tim Triemstra (TimT @ RogueWave dot-com)
John Hinke (Hinke @ RogueWave dot-com)
Heidi Buelow (Buelow @ RogueWave dot-com)
Allen Brookes (ABrookes @ RogueWave dot-com)
David Haney (David.Haney @ RogueWave dot-com)
Michael Yoder (Michael.Yoder @ RogueWave dot-com)
(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 a lot of proven code for
creating a
binding between XML Schema and C++ classes. However, the
contribution
will
require a significant overhaul, and even complete re-writes in some
areas,
in order to reach compatibility with the XMLBeans/Java version.
Detailed
differences will be discussed openly within the community so that an
appropriate plan for each area can be reached. This proposal is not
the
best
place to lay out all the technical details, however you will find
below a
preliminary list of issues, priorities, and estimated timelines.
API discrepencies between contributed code and XMLBeans 2.0 The
contributed
code includes a very similar type-binding API in C++ to that
provided
in
XMLBeans for Java. However, the XMLBeans cursor access to the
underlying
infoset has no equivilant in the contributed code and will require
extensive
work to the underlying object model to support.
Addressing this deficiency is considered the highest priority task
facing
the C++ project.
Several options are available including porting the XMLBeans object
model
completely over to C++ or looking for ways to augment the
contributed
code.
Most likely a near-complete rewrite of this section will be the best
approach.
Rough estimates for a working implementation of the cursor
feature are
between three and five months Code generator
The contributed C++ code is based on a proprietary code generator,
although
it too is written in Java (not C++). The long-term plan is 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.
Timeline for this transition is 5-7 months, but may be very much
sooner
depending on available resources.
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 the
proposed
Apache C++ StdLib (STDCXX). 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.
The initial contribution is working on Linux but it is really just a
preview
look at code, not a true product build. Windows and Linux support
should
accompany the initial beta release, with Solaris, HP-UX, AIX, and
other
Linux distros following within three months.
Estimated timeline (very rough)
Initial submission of proposal and example code: 12 May 2005 Apache
structure in place and code building: 1 July 2005 Re-write of
internal
object model building: 1 September 2005 XMLBeans/Java 2.0 feature
equivilant
beta: 1 December 2005
This timeline is based on a very preliminary discovery of issues and
is
based on limited resource information. There is little chance for
this
schedule to be elongated by very much time as there are already a
few
dedicated resources assigned to the project, but there is also
little
known
about how much a concerted community effort could speed things
up. In
general the feeling is that a greater community involvement will
greatly
improve the test suite, identified bugs, and platform support - not
necessarily the initial speed of feature development.
--------------------
Heidi Buelow
Rogue Wave, a division of Quovadx
--------------------------------------------------------------------
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
______________________________________________________________________
__
The information in this e-mail, and any attachment therein, is
confidential and for use by the addressee only. If you are not the
intended recipient, please return the e-mail to the sender and
delete it from your computer. Although The Bank of New York
attempts to sweep e-mail and attachments for viruses, it does not
guarantee that either are virus-free and accepts no liability for
any damage sustained as a result of viruses.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
David Waite
[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]