| <?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); | |
| ?> |