Jakarta Pluto Project Charter

1 INTRODUCTION

The Jakarta Pluto project is an open source reference implementation of the Java Portlet Specification. Pluto is a collaborative software development project dedicated to providing robust, full-featured, comercial-quality, and freely available Java Portlet Specification compliant portlet container.

1.1 The Java Portlet Specification

The portlet specification defines a set of APIs for portal computing addressing the areas of aggregation, personalization, presentation and security. Additionally, the specification defines portlets, the portlet container behavior, invocation of portlets, portlet services, the portlet event model, and other relevant entities and interfaces. Pluto implements the portlet container enabling interoperability between portlets and portals. The portlet specification was initiated by IBM and SUN and developed under the Java Community Process as JSR 168. For more information see http://jcp.org/en/jsr/detail?id=168.

As part of this JSR a reference implementation of the portlet container, which is the run-time environment for portlets, will be created. The Pluto project is the open source reference implementation for the Java Portlet Specification.

2 MISSION

2.1 To provide high quality minimal, comprehensive, specification-complaint implementations for versions of the Java Portlet Specification. These should therefore be suitable for use as reference implementations.

2.2 To promote the use of portlet applications. We view portlets as an important technology in the growing portal and web application environments. We intend to build a freely available portlet container in order to promote the use of this technology.

2.3 To server as the foundation for other Apache projects such as Jetspeed and WSRP4J. To provide a robust portlet container for use by this other projects, and to satisfy the requirements from other Apache projects that rely upon Pluto.

3 TERMS

3.1 PMC - The Jakarta PMC is a management board for project at the Jakarta project at the Apache Software Foundation.

3.2 Project The Jakarta Pluto Project, referred to as "jakarta.apache.org/pluto" or "Pluto" is a sub-project of the Jakarta project at the Apache Software Foundation.

3.3 Contributor Anyone who makes a contribution to the development of the Pluto project.

3.4 Committer Each Jakarta subproject has a set of committers. Committers are contributors who have read/write access to the source coderepository.

4 THE PROJECT MANAGEMENT COMMITTEE

Since Pluto is a subproject of Jakarta, it will be managed by the Jakarta PMC.

5 CONTRIBUTORS

5.1 Like all Apache projects, the Pluto project is a meritocracy -- the more work you do, the more you are allowed to do. Contributions will include participating in mailing lists, reporting bugs, providing patches and proposing changes to a product.

5.2 Developers who make regular and substantial contributions may become committers as described below.

6 COMMITTERS

6.1 Committers are contributors who have read/write access to the source code repository. New committers are added when a contributor is nominated by a committer and approved by at least three of the active committers with no opposing votes. In most cases, new committers will already be participating in the development process by submitting suggestions and/or fixes via the bug report page or mailing lists.

6.2 For the purposes of voting, committers will be classed as "active" or"inactive". Only active committers will be included in the totals used to determine the success or failure of a particular vote.

6.3 Committers remain active as long as they are contributing code or posting to the project mailing lists. If a committers has neither contributed code nor posted to the project mailing lists in 3 months, the other project committers will e-mail the committer, the development list, and the PMC mailing list notifying the committer and community that they could be moved to inactive status.

6.4 An inactive status will not prevent a committer committing new code changes or posting to the mailing lists. Either of these activities will automatically re-activate the committer for the purposes of voting.

7 INFRASTRUCTURE

7.1 The Pluto project site must provide the following:

a) Bug Database -- This is a system for tracking bugs and feature requests.

b) Source Repository -- A CVS repository containing both the source code and documentation for the Pluto project. The project will have a set of committers to its repository.

c) Website -- A jakarta.apache.org/pluto website will contain information about the Pluto project, including documentation, downloads of releases, and this charter.

d) General Mailing List -- This mailing list is open to the public. It is intended for discussions for Pluto users. Suggested name pluto-user@jakarta.apache.org

e) Development Mailing List -- This mailing list is open to the public. A mailing list devoted to Pluto development. Suggested name pluto-dev@jakarta.apache.org

f) Commits Mailing List -- A mailing list to log CVS commits. Suggested name pluto-commits@jakarta.apache.org

7.2 Versioning -- Versions of Pluto will be released to coincide with the Java Portlet Specification releases. Version 1.0 of Pluto will implement the 1.0 specification. When a new revision of the specification is released, Pluto will move on to create a pluto-1.1 product. The specification would therefore form part of the implementation name.

8 LICENSING

All contributions to the Pluto project adhere to the "ASF Source Code License." All further contributions must be made under the same terms. All contributed files must contain the full text of the ASF Source Code License.

9 THE DEVELOPMENT PROCESS

The development process is intentionally lightweight; like other Apache projects, the committers decide which changes may be committed to the repository. Three +1 ('yes' votes) with no -1 ('no' votes orvetoes) are needed to approve a code change. For efficiency, some codechanges from some contributors (e.g. feature additions, bug fixes) may be approved in advance, in which case they may be committed first and changed as needed, with conflicts resolved by majority vote of the committers.

10 Relationship with other Apache projects

10.1 The Pluto project will work closely with other Apache projects, such as Jakarta (Jetspeed, Commons, Tomcat), Web Services (WSRP4J), and Cocoon, to avoid redundancy and achieve a coherent architecture among Pluto and these projects.