Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [technology-pmc] Project Proposal: Faceted Project Framework

Title: New Page 1

Good point. Attached is a revised copy that hopefully addresses this and other comments.

 

1. Better scope section.

2. Turned the old scope section into the “Initial Components” section.

3. Added some statements about possible relationship to E4.

4. Added some clarifying statements regarding relationship to Project Natures from the Platform.

5. Clarified the relationship with WTP. In particular, made it clear that no immediate change at WTP will take place as the result of this project’s creation and that adoption of this project by WTP carries with it requirements specified by WTP (as in providing a robust backwards compatibility layer).

6. Added Eclipse IAM project as an interested party.

 

Let me know if anyone has further comments before this is sent to EMO.

 

Oracle
Konstantin Komissarchik | Consulting Member of Technical Staff
Phone: +1 425 201 1795 | Mobile: +1 206 898 0611
Oracle Eclipse Tooling
411 108th Ave NE, Suite 2100 | Bellevue, WA 98004

 


From: Bjorn Freeman-Benson [mailto:bjorn.freeman-benson@xxxxxxxxxxx]
Sent: Wednesday, October 15, 2008 8:28 AM
To: konstantin.komissarchik@xxxxxxxxxx; Technology PMC
Subject: Re: [technology-pmc] Project Proposal: Faceted Project Framework

 

Konstantin,
The "scope" section of the project proposal is the most important section (yes, I know, that's not obvious and it sure would be helpful to have your handy "propose a project" form to make that clear), and the scope section needs to describe the encompassing scope of the project and not a plan. The scope defines the space the project will work in - the whole space, not just today's space. Thus the scope section should not include any time-based words such as "at least" and "future".

Additionally, the scope section of this proposal needs to be fleshed out a little to explain the project to Eclipse community members who are not code insiders. In fact, the purpose the project proposal is to announce the new project to the larger Eclipse community and that community includes people in other projects who are not directly familiar with this code and it includes the marketing and business people at our various member companies - people who have no experience at all with the code. The scope section needs to be readable by all those people.

- Bjorn

Konstantin Komissarchik wrote:

Scope

The project would be composed of at least two components:

  1. Core Framework
    1. API for building facets and manipulating faceted projects.
    2. UI for manipulate faceted projects. Includes a project properties page for adding and removing facets and a base wizard implementation for creating new faceted projects.
    3. Documentation for writing facets.
  2. JDT Enablement
    1. Java facet that's built around JDT's Java Project Nature.
    2. Modeling of runtimes that are JVM-based.
    3. Tools for making it easier to build facets for Java-based technologies. Includes tools for helping facets manage libraries.
  3. Other Enablement (future)
    1. Integration with other Eclipse Projects. This is an area for possible future work.

 

--
[end of message]

Faceted Project Framework

Introduction

Faceted Project Framework is a mature component of Eclipse Web Tools Platform (WTP) that facilitates treating Eclipse projects as composed of units of functionality (called facets) that can be easily added or removed by users. This is a proposal to move this framework from WTP to a standalone project so that it can be accessed by Eclipse Projects that do not have a natural dependency on WTP.

The Faceted Project Framework is a proposed open-source project under the Eclipse Development Process, and will incubate under the top-level Technology project. This proposal is posted here to solicit community feedback and additional project participation. You are invited to comment on and/or join the project. Please send all feedback to the eclipse.fproj newsgroup.

Scope

The Faceted Project Framework project would be chartered with making it possible for developers to build modular projects where functionality can be easily added and removed by the user in a standard way. It will further be charted with providing the integration story between Faceted Project Framework and other technologies at Eclipse in situations where doing so would substantially broaden the applicability of the framework.

Here are some of the key requirements:

  • Reduce the need for creation of specialized project wizards for different variants of what is essentially the same project type by facilitating creation of flexible wizards that allow user to select among various optional project components.
  • Reduce the need for creation of adhoc "Enable X functionality" project actions by providing a centralized facility for managing functionality that's enabled in a project.
  • Provide a way to accurately model tooling capabilities as they map to capabilities of a target platform. Prevent user from accidentally using techology that's incompatible with user's target platform.

Initial Components

The project would be initially composed of two components:

  1. Core Framework
    1. API for building facets and manipulating faceted projects.
    2. UI for manipulating faceted projects. Includes a project properties page for adding and removing facets and a base wizard implementation for creating new faceted projects.
    3. Documentation for writing facets.
  2. JDT Enablement
    1. Java facet that's built around JDT's Java Project Nature.
    2. Modeling of runtimes that are JVM-based.
    3. Tools for making it easier to build facets for Java-based technologies. Includes tools for helping facets manage libraries.

Relationship with Other Eclipse Projects

Faceted Project Framework leverages Resources and UI frameworks from Eclipse Platform. Facets provide a functional superset over Project Natures (part of the Eclipse Platform Resources). Projects taking advantage of the Faceted Project Framework can choose to rely solely on it or mix facets and natures. The mixing scenario is particularly important in cases where an existing code base already uses natures and backwards compatibility needs to be maintained. In those situation facets can serve as wrappers around natures.

There is a possibility that a deeper integration with Eclipse Platform will happen as there has been some interest from the E4 project.

JDT Enablement component leverages various API provided by the JDT project.

WTP would be the main consumer of artifacts produced by this project for immediate future.

Organization

Initial Committers

The initial committers for this component would be:
  • Konstantin Komissarchik (Oracle), proposed project lead

Code Contributions

The initial code contribution will come from Eclipse Web Tools Platform project.

Interested Parties

WTP, Eclipse IAM

Developer Community

Developers who start out leveraging this framework might eventually contribute bug fixes and features.

User Community

This project will not provide functionality that can be directly consumed by end-users. Users of this project will be developers at other Eclipse Projects as well as developers in the broader Eclipse Community.

Project Plan

The first release of this project will be aggressively scheduled to line up with Galileo Simultaneous Release (June 2009). The primary goals of the first release will be to (a) refactor code contribution from WTP into project's namespace, (b) eliminate several years worth of deprecated API from the code base, and (c) other work necessary to get established as an independent project.

Concurrently with the above work, a change will be prepared to alter the version of the Faceted Project Framework in WTP to become a shell that delegates to the new framework. It is absolute requirement that the existing API is not broken and continues to behave as before. This will be verified both via automated tests as well as via in-depth manual tests. Any interested adopters will be given this patch if they wish to test in the context of their products. The precise details and time of adoption of this project by WTP will be worked out by WTP. Note that adoption can only happen once this project has exited incubation.


Back to the top