blob: 23d03fcf316fdbb7e19fd237237fe4fb8e8fde53 [file] [log] [blame]
<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
$pageTitle = "";
$pageKeywords = "";
$pageAuthor = "";
ob_start();
?>
<div id="maincontent">
<div id="midcolumn">
<h1>Faceted Project Framework</h1>
</p>
<?php
include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php");
generate_header("Faceted Project Framework");
?>
<h2>Introduction</h2>
<p>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.</p>
<p>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
<a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.fproj">eclipse.fproj</a> newsgroup.</p>
<h2>Creation Review</h2>
<ul>
<li>The projection creation review has been scheduled for <b>December 10th, 2008</b>.</li>
<li>The communication channel for the review is the <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.fproj">newsgroup</a>. Use the newsgroup to post
any comments or to request the review to be held on a conference call.</li>
</ul>
<h2>Scope</h2>
<p>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.</p>
<p>Here are some of the key requirements:</p>
<ul>
<li>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.</li>
<li>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.</li>
<li>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.</li>
</ul>
<h2>Initial Components</h2>
<p>The project would be initially composed of two components:</p>
<ol>
<li>Core Framework
<ol>
<li>API for building facets and manipulating faceted projects.</li>
<li>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.</li>
<li>Documentation for writing facets.</li>
</ol>
</li>
<li>JDT Enablement
<ol>
<li>Java facet that's built around JDT's Java Project Nature.</li>
<li>Modeling of runtimes that are JVM-based.</li>
<li>Tools for making it easier to build facets for Java-based technologies. Includes tools
for helping facets manage libraries.</li>
</ol>
</li>
</ol>
<h2>Relationship with Other Eclipse Projects</h2>
<p>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.</p>
<p>There is a possibility that a deeper integration with Eclipse Platform will happen as there has
been some interest from the E4 project.</p>
<p>JDT Enablement component leverages various API provided by the JDT project.</p>
<p>WTP would be the main consumer of artifacts produced by this project for immediate future. </p>
<h2>Organization</h2>
<h3>Initial Committers</h3>
The initial committers for this component would be:
<ul>
<li><b>Konstantin Komissarchik, Oracle, proposed project lead:</b>
Konstantin works on Oracle Enterprise Pack for Eclipse commercial product and has been a committer on
Eclipse Web Tools Platform since the first release. At WTP, his biggest contribution has been
the design and implementation of the Faceted Project Framework (subject of this proposal), but he
is also involved in several other areas. He leads WTP Common Tools project and is a member of
the Technology Project PMC.</li>
</ul>
<h3>Project Mentors (from Architecture Council)</h3>
<ul>
<li>Neil Hauge, Oracle, leads Dali JPA Tools project</li>
<li>Oisin Hurley, Progress Software, leads SOA Tools project</li>
</ul>
<h3>Code Contributions</h3>
<p>The initial code contribution will come from Eclipse Web Tools Platform project.</p>
<h3>Interested Parties</h3>
<p>WTP, Eclipse IAM, STP, PDT</p>
<h3>Developer Community</h3>
<p>Developers who start out leveraging this framework might eventually contribute bug fixes and features.</p>
<h3>User Community</h3>
<p>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.</p>
<h3>Project Plan</h3>
<p>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.</p>
<p>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.</p>
<br/><br/>
<center><p>Copyright (c) 2008 Oracle<br/>Made available under Eclipse Public License v1.0</p></center>
</div>
</div>
<?php
$html = ob_get_contents();
ob_end_clean();
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>