#=====================================================================
#  Licensed to the Apache Software Foundation (ASF) under one or more
#  contributor license agreements.  See the NOTICE file distributed with
#  this work for additional information regarding copyright ownership.
#  The ASF licenses this file to You under the Apache License, Version 2.0
#  (the "License"); you may not use this file except in compliance with
#  the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#=====================================================================

From: "Geir Magnusson Jr." <geirm@optonline.net>
Date: Tue Aug 5, 2003  11:41:18 AM America/New_York
To: general@incubator.apache.org
Subject: [PROPOSAL]  An Apache J2EE server project
Reply-To: general@incubator.apache.org

Proposal for an Apache J2EE server project
==========================================

05 Aug 2003 : Geir Magnusson Jr., James Strachan and Richard Monson-Haefel

Section 0 : Rationale
---------------------

The Java 2, Enterprise Edition (J2EE) platform is employed widely by
organizations implementing enterprise applications. It is commonly used in
business-to-consumer and most recently in Web service deployments.  Most of
the largest business organizations today have deployed applications on a
J2EE platform.

While the J2EE specification is implemented by a number of large and small
vendors, there is no open source J2EE container available with a BSD or
BSD-derived licence nor is there an open source project today that provides
a fully compliant implementation.  Verifiable compliance with the J2EE
specification is important to business because it ensures that applications
deployed by developers are portable and interoperable across J2EE providers.
As a result organizations large and small have felt compelled to pay
thousands of dollars to commercial vendors in order to deploy applications
based on J2EE compliant servers.

The Apache foundation supports several projects that implement pieces of the
J2EE platform such as Servlets, JSP, Tag Libraries, and a Web services
stack. However, Apache does not currently support a J2EE project.

The aim of the project is to produce a large and healthy community of J2EE
developers tasked with the development of an open source, certified J2EE
server which is ASF licensed and passes Sun's TCK reusing the best ASF/BSD
licensed code available today and adding new code to complete the J2EE
stack.


Section 0.1 : criteria
----------------------

We feel that this project has a good chance for success as the following
project aspects are carefully considered :

a) Meritocracy: The project will be meritocratic - the usual Apache
meritocracy rules would apply.

b) Community: The user community for this project is potentially massive.
The initial developer community for this project consists of developers from
Apache,  Castor, JBoss, mx4j, and OpenEJB projects. The aim is for this
community to grow considerably once this project goes public.

c) Core Developers: The initial developers are listed below and consist of
some existing Apache committers together with committers from Castor,
JBoss, mx4j  and OpenEJB.  We believe that as the project grows, the modular
nature of the J2EE stack will require steady expansion of the committer
group that is considered 'core' - thus providing a healthier, more robust
developer community.

d) Alignment: There is clear alignment with many existing Apache projects.
From Jakarta projects such as Tomcat, James and log4j initially as well as
possibly others along the way. J2EE now includes a web services stack and so
there will be some alignment with the WS project, Axis in particular, along
with the reuse of several XML projects. In addition the J2EE Server project
may reuse other ASF/BSD licensed code which is not currently hosted in
source form at Apache such as (at time of writing) mx4j, openjms and tyrex.

However we see the J2EE Server project as a separate project to existing
Apache projects, serving two primary roles

* integration of various existing and new code bases into a J2EE stack,
with those codebases existing both inside and outside of the project
* certification of the J2EE stack

Note that the J2EE server project can happily support competition within the
J2EE services stack (for example, offering choices for elements such as the
servlet engine like Tomcat or Jetty, or some new JTA implementation versus
Tyrex or some new JMS implementation versus OpenJMS etc).


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 :

a) Orphaned products: This project is starting with a new code base together
with reusing lots of the currently available high quality J2EE open source
code out there which is ASF/BSD licensed.

b) Inexperience with open source: The initial community is made up of
existing Apache, Castor, JBoss, mx4j , and OpenEJB committers.

c) Homogeneous developers: The current list of committers represents
developers from various backgrounds and open source projects, employed by
various companies and based around the globe in the US, Europe, Asia and
Australia.  There will be no majority bloc, at least from the start.

d) Reliance on salaried developers: None of the initial developers are
currently paid to work on the J2EE project.

e) No ties to other Apache products: The J2EE Server project is
complementary to existing technologies at Apache. Indeed it will integrate
many of those technologies in an effort to provide a code base that can be
J2EE certified according to the JCP process.

f) A fascination with the Apache brand: The committers are interested in
developing a healthy open source community around an ASF/BSD licensed J2EE
certified server, whether Apache is the right place or not.  The aspects of
Apache that attract this effort are the experienced stewardship of open
source projects by the ASF, the non-profit status of the ASF for TCK
certification, and the existing Java community that has been a longstanding
part of the ASF.


Section 1 : scope of the project
--------------------------------

There are two main aspects to this Apache project :

* a complete J2EE certified server which is fully ASF/BSD licensed and
backed by a healthy open source community.

* to create a fully modular J2EE stack so that the Apache community can use
whichever parts of the J2EE stack they require separate from the J2EE server
project.


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

There are several potential initial contributions. Upon formation of the
project our first action will be an open, public call for contribution and
comment from the J2EE community.  Because of recent circumstances in the
J2EE OSS community, all code proposed for inclusion must be publicly
reviewed and open to public comment.


Section 3: identify the ASF resources to be created
----------------------------------------------------

Section 3.1 : mailing lists

* geronimo-dev
* geronimo-user


Section 3.2: CVS repositories

* geronimo


Section 3.3: Bugzilla

* geronimo

Though would there be an issue with using JIRA?


Section 4: identify the initial set of committers
-------------------------------------------------

The committers are listed below, along with the open source project(s) where
they also have commit privileges.

* Bruce Snyder (Castor JDO)
* Dain Sundstrom (JBoss)
* David Blevins (OpenEJB)
* David Jencks (JBoss)
* Geir Magnusson Jr. (Apache)
* Greg Wilkins (JBoss/Jetty)
* James Strachan (Apache)
* Jan Bartel (JBoss/Jetty)
* Jason Dillon (JBoss)
* Jeremy Boynes (JBoss)
* Jim Jagielski (Apache)
* Jules Golsnell (JBoss/Jetty)
* Richard Monson-Haefel (OpenEJB)
* Remigio Chirino  (JBoss)
* Simone Bordet (mx4j)


Section 5: identify apache sponsoring individual
------------------------------------------------

* Ceki Gülcü
* Geir Magnusson Jr.
* James Strachan
* Jim Jagielski


