Jump to: navigation, search

Difference between revisions of "EclipseLink/Development/Incubator"

(Current Incubation Sub-Components)
(No difference)

Revision as of 12:41, 8 December 2008

EclipseLink Incubation

The (proposed) Incubation component of EclipseLink allows new functionality to be developed in isolation of the shipped components. The purpose is to allow consumers to optionally try out the incubation functionality and provide feedback so that it can evolve to meet the needs of the community.

What should incubate? In deciding when a new incubation sub-component should be created the committers should consider the opportunity incubation allows to gather feedback and evolve the solution without effecting the existing product or imposing any backwards compatibility requirements.

Current Incubation Sub-Components

Name Committer(s) Wiki SVN Location
bug 200045 Dynamic Persistence dclarke EclipseLink/Development/JPA/Dynamic /svnroot/rt/org.eclipse.persistence/trunk/incubation/dynamic

Incubation Process Guidelines

The development of incubation sub-components is intended to allow rapid innovation of ideas independent of the main development while still conforming to the Eclipse development and IP rules.

Creating a new Incubation Sub-Component

In order to create a new incubation sub-component the following steps should be followed:

  1. Open a bug or enhancement request for the proposed incubation work and assign it to the Incubation component
  2. Send an email to the eclipselink-dev@eclipse.org mailing list proposing the bug for development in the incubation component
  3. After approval at the weekly meeting assign it to yourself in status Assigned

The creation and development of the sub-component should include the following:

  • Create a WIKI for the work under: wiki.eclipse.org/Development/...
    • Explain the work being developed
    • Functional requirements and design
    • How to download use and provide feedback
    • What version does it work with and which version the work is being developed in
    • Any build/test/package instructions
    • Any usage documentations
    • Any other useful information to facilitate use and feedback


  • Create a folder in the incubation component for the work /trunk/incubation/...
    • Folder should contain a project and ANT build/package scripts (Note: These will only be executed manually)
  • During development ensure all commits clearly indicate the incubation sub-component and bug #
    • EXAMPLE: Incubation-Dynamic-200045: Added support for JPA eclispelink-orm.xml metadata processing

Promoting an Incubation Sub-Component

After the incubation work has reached maturity and the owning committer(s) wish to promote it into the product. This should be done under standard project development with other committers reviewing the requirements, design, implementation, and tests prior to committing.

Upon completion of moving an incubation sub-component into the main project components the incubation folders should be deleted in an SVN transaction and the wiki pages involved should be updated to reflect the completed state of the work.

Common Incubation Header

/*******************************************************************************
 * Copyright (c) 1998, 2008 Oracle. All rights reserved.
 * This program and the accompanying materials are made available under the 
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
 * which accompanies this distribution. 
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 * and the Eclipse Distribution License is available at 
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * Contributors:
 *     dclarke - Dynamic Persistence INCUBATION - Enhancement 200045
 *     			 http://wiki.eclipse.org/EclipseLink/Development/JPA/Dynamic
 *     
 * This code is being developed under INCUBATION and is not currently included 
 * in the automated EclipseLink build. The API in this code may change, or 
 * may never be included in the product. Please provide feedback through mailing 
 * lists or the bug database.
 ******************************************************************************/

SVN Structure

Incubation work will developed in SVN in a peer folder to the main component's trunk folder.

http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/incubation/

Each incubation effort will create a sub-folder in here with its own structure for branching and maintaining the IDE projects used.

Example:

  • /incubation
    • /dynamic
      • /trunk
        • /org.eclipse.persistence.core.dynamic - Project containing the extensions to core
        • /org.eclipse.persistence.jpa.dynamic - Project containing the extensions to JPA
        • /eclispelink.core.test.dynamic - Project containing the extensions to core's testing
        • /eclispelink.jpa.test.dynamic - Project containing the extensions to JPA's testing