blob: d4aa7e41aa5a79f81bb7d311587da5356fb1ded2 [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'
# Begin: page-specific settings. Change these.
$pageTitle = "Equinox Incubator - Server-side Proposal";
$pageKeywords = "equinox, osgi, framework, runtime, incubator, server, proposal";
$pageAuthor = "Equinox committers";
$html = <<<EOHTML
<div id="midcolumn">
<h2>$pageTitle</h2>
<p>Increasingly, developers are thinking about how they might use
Eclipse's powerful component model and extension mechanisms in
server-side environments. The possibility of a shared runtime that
allows the re-use of components between client and server motivates
some. Others see great promise in being able to safely modify the
components and configuration of software running in a live server environment. </p>
<p>Running Eclipse on the server will take a different mindset (and a fair bit
of work) as it questions some of the design and implementation assumptions
made and adds a number of additional constraints on Eclipse's running environment.
For example, in a server-side environment: </p>
<ul>
<li>You can make few assumptions on the control of global resources</li>
<li>Your lifecycle is controlled externally</li>
<li>You might be running for a very long time</li>
<li>You're expected to integrate in a compliant fashion with other
server elements</li>
</ul>
<p>The key goal of this incubator is to bring existing work together to
make exploration practical. The intent is to help foster solutions to the issues
relating to integrating Eclipse with server-side technology. The initial
emphasis is on J2EE implementations but more specifically the following issues
are to be addressed (this list will evolve):</p>
<ul>
<li>Eclipse changes for server-side operation</li>
<li>Container specific launchers</li>
<li>Application Server Integration</li>
</ul>
<h3>Eclipse Changes for Server-side Operation</h3>
<p>The Eclipse runtime was originally designed to run an IDE. It's a
testament to the runtime's versatility that Eclipse is now used in a
wide variety of RCP applications. Running on the server pushes this further and
raises issues such as:</p>
<ol>
<li>The OSGi URL Handlers Service requires two singleton operations be
set with an OSGi aware version
<ul>
<li>URL.setURLStreamHandlerFactory(…)</li>
<li>URLConnection.setContentHandlerFactory(…)</li>
</ul>
</li>
<li>The OSGi Conditional Permission Admin Specification requires the
SecurityManager be set to an OSGi aware version</li>
<li>Equinox uses System Properties for configuration properties, and as
the container for BundleContext properties.</li>
</ol>
<p>For the first two items, a key challenge to be managed is the fact
that in many cases, J2EE app servers set these singletons before
Equinox starts. This makes it dangerous or impossible for Eclipse
to set them. The third item prevents Equinox from being
instantiated multiple times. </p>
<p>Tackling these issues will result in fairly large,
cross-cutting changes in Equinox that are very difficult to
resolve with individual patches. The goal for this area is to find a way to
make these changes without compromising compatibility with existing Eclipse
applications. Any changes will trace the HEAD very closely to facilitate integration.
Ideally these changes would occur in the 3.2 timeframe.</p>
<h3>Container Specific Launchers</h3>
<p>One way to think of the Eclipse IDE and RCP applications (in general) is that they
are started by the native executable launcher. For server-side environments,
Eclipse must be launched in a different manner. Initially, this area of the incubator
will focus on a launcher appropriate for embedding in a servlet container;
however, other launchers will be added over time. After the issues for this first environment
are addressed, other scenarios should be far easier to tackle.</p>
<p>
The code, build instructions, and usage instructions for the servlet
launcher will be part of the initial contribution for the incubator.
</p>
<h3>Application Server Integration</h3>
The Geronimo community has expressed some interest in OSGi. This incubator intends
to investigate what it means to integrate OSGi and Geronimo as well as any changes
to Equinox that might be required to support Geronimo. Integration with other
application servers is also of interest.
<h3>Resources</h3>
<p>Please direct comments or questions to <a
href="mailto:equinox-dev@eclipse.org">equinox-dev@eclipse.org</a>.</p>
</div>
EOHTML;
generateRapPage( $App, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html );
?>