blob: 3f2f189e165a246c02ec52516af8c3a0e586c1fa [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">
<?php
include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php");
generate_header("Equinox move to Platform");
?>
<h1>Equinox Project</h1><br>
</p>
<h2>Introduction</h2>
<P align="center">
<font size="+2"><a href="/equinox" target="_top">This project has been moved. Please visit the
project home page.</a></font>
<P>
<p>The existing Equinox Technology project is to transition to be an <a href="/eclipse">Eclipse
Project</a>. </p>
<h2>Background</h2>
<p>In mid-2003, while recovering from releasing Eclipse 2.1, the Eclipse Runtime
team started to think of how to make Eclipse more dynamic. One of the drivers
for this was the community push for Eclipse as a Rich Client Platform. A further
driver was broadening the appeal of the Eclipse runtime infrastructure and
leveraging existing standards and facilities. The team wanted to engage the
community in the search for and investigation of
new runtime technology for Eclipse. To support this, the Equinox Technology
project was created.</p>
<p>Equinox was set up as an incubator -- the first such project in Eclipse.
As a separate project under the Technology PMC, the investigations were
isolated from the main code and the entry barriers for interested parties
lower. The output of the project was to either graduate into the main Eclipse
code base or wither due to lack of interest. Having setup the project, the
team proceeded to investigate various runtime component models (e.g., Avalon,
OSGi,
...) and eventually settled
on the OSGi framework as the most promising. In parallel, other team members
looked at areas such as dynamic registry behavior.</p>
<p>By the end of 2003, the team had completed implementations of a dynamic registry
and an OSGi R3 framework implementation (plus various extensions).
As
of Eclipse 3.0 M6, the original Eclipse Runtime was seamlessly replaced with
a
fully OSGi-based runtime. In June of 2004, Eclipse 3.0 shipped and thousands
of people began running and shipping OSGi in their development environments
and products!</p>
<p>The Equinox work did not end there. The team could have closed down the project
as a raging success. Instead, "Phase 2" was started with a focus
on security, framework layering and the like. Some of this work was subsequently
absorbed into the main Eclipse OSGi framework and some continues
today.</p>
<p>Similarly, the OSGi work did not stop. Several of the original Equinox
committers became Platform Core committers and continued to work on the code.
The team
also worked closely with the OSGi Core Platform Experts Group (CPEG) to standardize
the framework extensions (e.g., fragments, Require-Bundle) added to the Eclipse
implementation in support of our expanded use cases. Much of this work
is now exposed in the recent
OSGi R4 framework
specification
draft and the OSGi Alliance has elected to use the Eclipse 3.1 OSGi implementation
as their R4 specification reference implementation. The Eclipse team
continues to be committed to OSGi as the base for
its runtime technology.</p>
<p>To go to the next level with OSGi, we need a community around OSGi
and the framework implementation. The need for an independent OSGi implementation
project
at Eclipse was highlighted at the 2004 OSGi World Congress. It became apparent
that the lack of a clear and obvious community rallying point was an inhibitor
to people using our
implementation and in fact, joining the community. Simple things such as the
lack of an independent download, obvious mailing list or bug home were sending
a signal that the
Eclipse OSGi implementation was not standalone. In many ways, this
reflected reality but in others, the community and opportunities were there but
not well advertised.</p>
<p>The need for such a community is further supported by the recent interest
in OSGi, the specification and the technology. The desire to use OSGi, and
more generally a Java component model, is growing as evidenced
by the emergence of groups such as the
Apache Felix incubator
project
and JSR-277
(Java
Module System). People
are still asking why Eclipse has not setup a community around its OSGi implementation.
This proposal
addresses
that
concern.</p>
<h2>Description</h2>
<h3>Proposal</h3>
<p>Concretely we propose to transition the Equinox Technology project to be an
Eclipse project. The new Equinox Eclipse project will be the home of the OSGi
community at Eclipse.org. As a peer of the Platform, JDT and PDE projects,
the OSGi code will continue
to be managed by the Eclipse PMC and ship with the Eclipse project major releases. </p>
<p>This setup provides the needed infrastructure (mailing lists etc), retains
the linkage to the Platform (as OSGi is a key element there) and provides a
plausible,
visible rallying point for an OSGi community at Eclipse. Creating a top-level
project is another option but this option seems like additional overhead
for no apparent gain (it is unclear that people readily distinguish between
projects and subprojects).</p>
<p>Why move Equinox? Why not create a new subproject? There are several reasons. </p>
<ul>
<li>It is a natural evolution of the project. It was originally setup as an
incubator. It produced content that was eventually consumed by the Platform
project. This was a success. That content is now more globally interesting
so we can use Equinox, the project that originally produced it, to carry
it forward even further.</li>
<li>There is already some level of brand recognition with people referring
to the "Equinox OSGi implementation". </li>
<li> Most of the infrastructure is already in place.</li>
<li> The
name is cool.</li>
</ul>
<p>What of the other work in Equinox? Equinox was the first technology incubator
project. It was put in place before we had the ability to invite others to
join existing projects for speculative work. The need to bring in others
but not give them full commit rights was one of the key motivators in spawning
a Technology project. Since then we have several cases where people have
been invited to join ongoing work with less than full commit rights. This
is the
vision for the new Equinox. The current team working in the various workareas
will move to an incubator area of the rehosted Equinox. Nothing will change
for
them other than the repo location, mailing list name, etc.</p>
<h3>Project Scope </h3>
<p>The new Equinox will be open to:</p>
<ul>
<li>Implementation of all aspects of the OSGi specification (including the
MEG and VEG work)</li>
<li>Investigation and research related to future versions of OSGi specifications
and related runtime issues</li>
<li>Non-standard infrastructure deemed to be essential to the running and management
of OSGi-based systems </li>
<li>Key framework services and extensions
needed for running Eclipse (e.g., the Eclipse Adaptor, Extension registry)
and deemed generally useful to people using OSGi.</li>
</ul>
<p>As such, the OSGi framework implementation previously developed in Equinox
and now hosted in the Platform project will move back to Equinox for further
development and maintenance.</p>
<p>The new Equinox will not undertake development of the Eclipse Runtime function
such as Jobs, Preferences and Content Types. This will remain part of the Platform
project. This furthers the vision of Eclipse as a landscape of OSGi bundles
rather than calling out particular bundles as "OSGi" and others as Eclipse.
That is, a large (and increasing) number of Eclipse plug-ins can be run on
any OSGi framework -- there is no particular value in cluttering Equinox
with unrelated content.</p>
<h2>Organization</h2>
<p>The project will be structured into the following components:</p>
<dl>
<dt><strong>framework</strong></dt>
<dd>The implementation of the OSGi core framework specification. Work in this
component also includes various adaptors and related mechanisms in support
of successfully running an OSGi based system.</dd>
<dt><strong>services</strong></dt>
<dd>The implementation of other OSGi standard services and facilities. This
component may also contain some additional (i.e., non-standard) mechanisms
if they are deemed to be generally and widely applicable or interesting.</dd>
<dt><strong>incubator</strong></dt>
<dd>Research and prototyping of new techniques and approaches relating to OSGi
and componentized runtimes in general. </dd>
</dl>
<p>Each of these components will have a developer mailing list, a team website,
a bugzilla component and other infrastructure as appropriate. Equinox will
have just one newsgroup to host the user community. For now, separate newsgroups
would fragment the discussion too much. This point can be revisited if the
message volume gets unwieldy.</p>
<p>The Equinox repository will be structured as follows:</p>
<ul>
<li>The current Equinox repository artifacts will be moved to
an equinox-incubator area in the Eclipse project repository and retain
their current structure and history.</li>
<li>The new project will continue to use the flat structure of the
Eclipse project repository. Again, this avoids issues of relatively arbitrary
categorization and puts the standard Eclipse plug-ins on par with new and
existing bundles.</li>
<li>The org.eclipse.osgi bundle will not be renamed or moved nor
will the code (i.e., packages) it contains.</li>
</ul>
<h2 align="left">Proposed project lead and initial committers</h3>
<p>The current Platform Runtime committers will be
grandfathered as full Equinox committers. Current Equinox committers will be
grandfathered as committers in the new Equinox Incubator area. The project
as a whole will continue to be led by Jeff McAffer, IBM.</p>
<h2 align="left">Interested parties</h3>
<p>The submitters of this proposal welcome interested parties to post to the <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology">eclipse.technology</a> newsgroup
and ask to be added to the list as interested parties or to suggest changes
to this document. </p>
</div>
</div>
<?php
# Paste your HTML content between the EOHTML markers!
$html = ob_get_contents();
ob_end_clean();
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>