<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>eclipse.org page</title><meta name="author" content="" />
<meta name="keywords" content="" /><link rel="stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/small.css" title="small" /><link rel="alternate stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/large.css" title="large" /><link rel="stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/visual.css" media="screen" /><link rel="stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/layout.css" media="screen" />
<!--[if IE]> 	<link rel="stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/ie_style.css" media="screen"/> <![endif]-->
<!--[if IE 6]> 	<link rel="stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/ie6_style.css" media="screen"/> <![endif]-->
<link rel="stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/print.css" media="print" />
<link rel="stylesheet" type="text/css" href="/eclipse.org-common/themes/Phoenix/css/header.css" media="screen" />
<script type="text/javascript" src="/eclipse.org-common/themes/Phoenix/styleswitcher.js"></script>
<style>
body {  
background-image: url('/proposals/proposal.gif');
background-repeat: repeat-y
}
</style>
	</head>
<body>
<div id="header">
	<div id="header-graphic" class="eclipse-main">
		<a href="/"><img src="/eclipse.org-common/themes/Phoenix/images/eclipse_home_header.jpg" alt="" /></a><h1>Eclipse</h1>	
	</div>
	<div id="header-global-holder" class="eclipse-main-global">
		<div id="header-global-links"><ul>
<li><a href="/org/foundation/contact.php" class="first_one">Contact</a></li><li><a href="/legal/">Legal</a></li>
			</ul>
		</div>
		<div id="header-icons">
<a href="http://live.eclipse.org"><img src="/eclipse.org-common/themes/Phoenix/images/Icon_Live.png" width="28" height="28" alt="Eclipse Live" title="Eclipse Live" /></a>
<a href="http://www.eclipseplugincentral.com"><img src="/eclipse.org-common/themes/Phoenix/images/Icon_plugin.png" width="28" height="28" alt="Eclipse Plugin Central" title="Eclipse Plugin Central" /></a>
<a href="http://www.planeteclipse.org"><img src="/eclipse.org-common/themes/Phoenix/images/Icon_planet.png" width="28" height="28" alt="Planet Eclipse" title="Planet Eclipse" /></a>
		</div>
	</div></div><div id="header-menu"><div id="header-nav">
		<ul>
		<li><a class="first_one" href="/" target="_self">Home</a></li> 
				<li><a  href="/users/" target="_self">Users</a></li> 
				<li><a  href="/membership/" target="_self">Members</a></li> 
				<li><a  href="/committers/" target="_self">Committers</a></li> 
				<li><a  href="/downloads/" target="_self">Downloads</a></li> 
				<li><a  href="/resources/" target="_self">Resources</a></li> 
				<li><a  href="/projects/" target="_self">Projects</a></li> 
				<li><a  href="/org/" target="_self">About Us</a></li> 
				</ul>
	</div>
	<div id="header-utils">
		<form action="http://www.google.com/cse" id="searchbox_017941334893793413703:sqfrdtd112s">
	 	<input type="hidden" name="cx" value="017941334893793413703:sqfrdtd112s" />
  		<input type="text" name="q" size="25" />
  		<input type="submit" name="sa" value="Search" />
		</form>
		<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_017941334893793413703%3Asqfrdtd112s&lang=en"></script>		<ul>
						<li class="text_size"><a class="smallText" title="Small Text" href="#" onclick="setActiveStyleSheet('small');return false;">A</a> <a class="largeText" title="Large Text" href="#" onclick="setActiveStyleSheet('large');return false;">A</a></li>
		</ul>
	</div></div><div id="leftcol">
<ul id="leftnav">
<li class="separator"><a class="separator">Links &#160;&#160;<img src="/eclipse.org-common/themes/Phoenix/images/leftnav_bullet_down.gif" border="0" alt="" /></a></li>
<li><a href="/proposals/">Proposals</a></li>
<li style="background-image: url(/eclipse.org-common/themes/Phoenix/images/leftnav_fade.jpg); background-repeat: repeat-x; border-style: none;"><br /><br /><br /><br /><br /><br /><br /><br />
</li>
</ul>

</div>
<div id="container">    <div id="maincontent">
	<div id="midcolumn">

<h1>Faceted Project Framework</h1>
</p>
<p align="center"><font size="+1"><a href="/projects/">Creation Review</a> is potentially scheduled for 
<a href="http://www.timeanddate.com/worldclock/fixedtime.html?month=12&day=10&year=2008&hour=16&min=00&sec=0&p1=0">Wed, 10 Dec 2008 at 1600 UTC</a></font><br>
 Please note that this call will only be held if a member requests that it be held; if nobody<br>
 requests that the call be held, the proposal will be approved by default.<br>
 If the call is requested, the call-in information is available on 
 the <a href="http://portal.eclipse.org/">portal</a>.</p>

<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>
		<script type="text/javascript">
		var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
		document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
		</script>
		<script type="text/javascript">
		var pageTracker = _gat._getTracker("UA-910670-2");
		pageTracker._initData();
		pageTracker._trackPageview();
		</script></div><div id="footer">
<ul id="footernav">
<li class="first"><a href="/">Home</a></li>
<li><a href="/legal/privacy.php">Privacy Policy</a></li>
<li><a href="/legal/termsofuse.php">Terms of Use</a><a href="/org/press-release/20081112_termsofuse.php"><img src="/images/updated.png" align="absmiddle" /></a></li>
</ul>
<p>Copyright &copy; 2008 The Eclipse Foundation. All Rights Reserved</p>
</div></body></html>