Section 0 : Rationale
Cayenne is an open source component-oriented persistence framework licensed under the Apache License, providing object-relational mapping (ORM) and remoting services. With a wealth of unique and powerful features, Cayenne can address a wide range of persistence needs. Cayenne seamlessly binds one or more database schemas directly to Java objects, managing atomic commit and rollbacks, SQL generation, joins, sequences, and more. With Cayenne's Remote Object Persistence, those Java objects can even be persisted out to clients via Web Services. Or, with native XML serialization, objects can be even further persisted to non-Java clients - such as an Ajax-capable browser. In addition to this existing functionality, Cayenne is currently building a JPA-compatible persistence provider (JSR-220).
In 2001, Cayenne was started as an open source collaborative environment, modeled after ASF. Thus, proposing Cayenne as an ASF project is the logical next step to further expand the community and increase participation.
Section 0.1 : Criteria
- Meritocracy: The project is and will contiue to be meritocratic, in accordance with the usual Apache meritocracy standards.
- Community: Cayenne has a substantial, long-established user and developer community. Two mailing lists receive up to 500 messages per month, and the Jira bug tracker (shared with one other ObjectStyle.org project) has 230 registered users.
- Core Developers: Andrus Adamchik (founder), Cris Daniluk, Bill Dudney, Michael Gentry, Tore Halset, Mike Kienenberger, Kevin Menard
- Alignment: Cayenne proposal is sponsored by DB PMC, however there is a number of reasons to consider Cayenne best fitted to become a TLP upon incubator graduation. The final decision is postponed till the graduation date.
- License: Cayenne is currently licensed under the Apache License 1.1, with the intention of switching to Apache License 2.0.
Section 0.2 : Warning Signs
- Orphaned Software: Cayenne has a high volume of development activity. On a release date, our freshmeat.net "vitality rating" is typically #15-20, out of over 40000 registered projects.
- Experience With Open Source: Cayenne was started as an open source project in 2001 and has remained so for 5 years.
- Homogenous Developers: Most of the current active committers met each other through the Cayenne community. None work for the same company.
- Reliance on salaried developers: There is not a single Cayenne committer who is compensated for their efforts - we are a 100% volunteer project.
- No Ties to Other Apache Products: Cayenne itself uses a number of Apache libraries, such as commons-*, velocity, log4j. Cayenne integrates with Derby and has Struts and Tapestry examples. Our user community overlaps with Tapestry and the MyFaces communities to some extent. We are planning to contribute a JPA provider to Geronimo, and have already taken some steps to work with the OpenEJB project, who will be providing JSR-220 implementation to Geronimo. We are open to collaboration and finding synergies with other Apache projects (e.g., those that require an Apache-licensed ORM).
- Achieving the Apache Brand is a Prominent Goal: As indicated elsewhere in this proposal, Cayenne was founded with many of the same fundamental goals of ASF, regarding meritocracy and community building, and it has been licensed under Apache License. We remain committed to these goals as we move to ASF.
Section 1 : Scope of the project
Cayenne presently consists of an Object-Relational Mapping framework (ORM), a Swing Toolset for ORM and Swing bindings, an early version of an XML serialization framework and a Remote Object Persistence framework. We have started an effort to provide a full Cayenne-based implementation of the Java Persistence API, compliant with JSR-220 (aka EJB3).
Section 2 : Initial source from which the project is to be populated
Current Cayenne sources at http://objectstyle.org/cayenne/
Section 3: Identify the ASF resources to be created
Section 3.1 : Mailing Lists
- need to import lists of subscribers from current ezmlm objectstyle.org lists.
Section 3.2: SVN Repositories
- cayenne (need to import current CVS)
Section 3.3: Issue Tracking
- Need a new Jira project called CAYENNE.
- Need to import current issues from ObjectStyle.org Jira
Section 4: Identify the Initial Set of Committers
- Bill Dudney (MyFaces, WADI. apache user id 'bdudney')
- Mike Kienenberger (MyFaces PMC - apache user id 'mkienenb')
- Andrus Adamchik
- Cris Daniluk
- Michael Gentry
- Tore Halset
- Kevin Menard
Section 5: Identify ASF Sponsor
Sponsor: DB PMC
- Jean T Anderson
- Jim Jagielski
- Brian McCallister
- Bill Dudney