blob: 7380f92595a1f1259fc25ca65bd18006aed829bc [file] [log] [blame]
<!--
This document is provided as a template along with some guidance for creating
your project proposal. This is just a template. Feel free to change it as
you see fit (add sections, remove section). We feel, however, that the
suggestions represented in this document represent the reasonable minimum
amount of information to move forward.
Please keep the formatting in this document simple. Please do not edit
this document in Microsoft Word as it adds huge piles of markup that make
it difficult to restyle.
More information is available here:
http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase
Direct any questions about this template to emo@eclipse.org
-->
<html>
<head>
<!--
Include the title here. We will parse it out of here and include it on the
rendered webpage. Do not duplicate the title within the text of your page.
-->
<title>Libra</title>
</head>
<!--
We make use of the 'classic' HTML Definition List (dl) tag to specify
committers. I know... you haven't seen this tag in a long while...
-->
<style>
dt {
display: list-item;
list-style-position: outside;
list-style-image:
url(/eclipse.org-common/themes/Phoenix/images/arrow.gif);
margin-left: 16px;
}
dd {
margin-left: 25px;
margin-bottom: 5px;
}
</style>
<body>
<p>Libra is a proposed open source project under the <a
href="http://www.eclipse.org/projects/project_summary.php?projectid=webtools">Web
Tools Platform Container Project</a>.</p>
<!--
The communication channel must be specified. Typically, this is a forum
that is available from http://www.eclipse.org/forums with a URL using the
project's short name; it will be something along the lines of
of http://www.eclipse.org/forums/eclipse.woolsey. EMO can (and will)
provide assistance if you're not sure what to put here.
-->
<p>This proposal is in the Project Proposal Phase (as defined in the
Eclipse Development Process) and is written to declare its intent and
scope. We solicit additional participation and input from the Eclipse
community. Please send all feedback to the <a
href="/forums/eclipse.osgi-enterprise-tools">OSGi Enterprise Tools</a>
Forum.</p>
<h2>Background</h2>
<!--
Optionally provide the background that has lead you to creating this project.
-->
<p>In the recent years almost all of the major application server
vendors declared plans to migrate their application servers to the OSGi
component model. Having the OSGi model in the middleware, a natural step
for evolving further the enterprise model is to adapt the OSGi model for
enterprise applications. This led to the creation of the <a
href="http://www.osgi.org/EEG/">OSGi Service Platform Enterprise</a>
specification. It defines how enterprise applications look like in the
OSGi world: a WAR archive can be now deployed as a <i>Web
Application Bundle</i>, a JAR with persistency logic - as a <i>Persistence
Bundle</i>, and so on. The OSGi Enterprise specification has already being
implemented in several runtime projects.</p>
<p>The Eclipse <a href="http://www.eclipse.org/webtools/">Web
Tools Platform</a> (WTP) project delivers tooling for Web and Java EE
development for long years, but the OSGi Enterprise space is still not
addressed. On the other hand, the Eclipse Plug-in Development
Environment (PDE) project is the de-facto standard tooling for
development of OSGi bundles. But again, PDE does not provide all
necessary features when it comes to OSGi Enterprise. And most
importantly, PDE lacks fundamental features for Web development. A
natural and evolutional step for providing OSGi Enterprise tooling is to
bring the PDE and WTP tooling together.
<h2>Scope</h2>
<!--
All projects must have a well-defined scope. Describe, concisely, what
is in-scope and (optionally) what is out-of-scope. An Eclipse project
cannot have an open-ended scope.
-->
<p>This project will be focused on providing standard tools for OSGi
Enterprise application development. This will happen in two directions:
</p>
<ul>
<li>Tools that integrate the existing WTP tooling and PDE tooling
in a way that OSGi Enterprise application can be developed with both
tooling at the same time.</li>
<li>Tools for better user experience in the <a
href="http://www.eclipse.org/equinox/server/">Server-Side Equinox</a>
scenario.</li>
</ul>
<p>In scope:</p>
<ul>
<li>Tools for creation of deployable artifacts for application
servers implementing the OSGi Enterprise specification, e.g. wizard for
creating new Web Application Bundle projects.</li>
<li>Tools for converting existing Java EE deployable artifacts to
OSGi Enterprise deployable artifacts, e.g. wizard for converting
Dynamic Web projects to a Web Application Bundle projects.</li>
<li>Tools for editing and validation of the metadata of OSGi
Enterprise artifacts, e.g. extension of the PDE Manifest Editor for
editing manifest headers that are specific to Web Application Bundles.
</li>
<li>OSGi server adapter, providing basic implementation of
configuring an OSGi-based application server, starting it and deploying
OSGi enterprise artifacts. This server adapter should be customizable
and extensible by adopters.</li>
<li>Tools that improve the experience of developing Server-Side
Equinox applications.</li>
<li>Extensibility of the tools in scope, so adopters can extend
them for their own application model.</li>
</ul>
<p>Out of scope:</p>
<ul>
<li>Application models that extend and/or are in conflict with the
OSGi Enterprise specification.</li>
<li>Any tools that are replacement of existing tooling in the WTP
and PDE projects. If WTP and PDE tooling have any limitations, then
these limitations will be addressed in the corresponding projects. This
project will do the best effort to extend the currently available
tooling. In certain cases it would be acceptable to incubate new ideas
in this project as proof of concept and then hand them over to the
corresponding PDE or WTP subproject when agreement is already in place.
</li>
</ul>
<h2>Description</h2>
<!--
Describe the project here. Be concise, but provide enough information that
somebody who doesn't already know very much about your project idea or domain
has at least a fighting chance of understanding its purpose.
-->
<p>The Plug-in Development Environment project and Web Tools
Platform project provide plenty of tools for OSGi development and Java
EE development, respectively. This project will provide the missing
pieces that will bring the PDE and WTP tooling together for implementing
OSGi Enterprise scenarios.</p>
<p>Potential development in this project:</p>
<ul>
<li>Tools for working with Bundle projects:</li>
<ul>
<li><i>OSGi Bundle</i> facet for extending the current WTP
projects with PDE capabilities. The behavior of this facet will be
influenced by the existence of other WTP facets like the Web facet and
JPA facet. This means that a combination of Web facet and OSGi Bundle
facet will give Web Application Bundle nature to the project, and a
combination of JPA facet and OSGi Bundle facet will give Persistence
Bundle nature to the project.</li>
<li>Wizards to convert existing WTP project to OSGi Enterprise
bundle projects.</li>
<li>Extensions of the existing PDE Manifest Editor for editing
additional manifest headers, specified by the OSGi Enterprise
specification, e.g. <i>Web-ContextPath</i></li>
<li>Extensions of the existing PDE and WTP validations for
ensuring consistency between the PDE and WTP models.</li>
<li>Synchronizers between the PDE and WTP models to ensure
consistency, e.g. changing the <i>Web-ContextPath</i> manifest headers
should request a change in the corresponding object in the WTP model.
</li>
<li>Wizards for import and export of Bundle projects.</li>
<li>Tools for generation and automatic maintenance of the
MANIFEST.MF descriptor, derived from the SpringSource Bundlor.</li>
<li>Other tools for easier working with Bundle projects.</li>
</ul>
<li>Extensible OSGi based Server Adapter tools complete with
editors and wizards with exemplar implementations for Apache Felix,
Eclipse Equinox and Knoplerfish will enable bundle projects to run,
debug and be published to these OSGi runtimes:</li>
<ul>
<li>The runtime preference pages will be able to download,
install, define and validate runtime installations.</li>
<li>The server wizard will be able to define runtime instances,
to which OSGi bundles can be targeted and deployed.</li>
<li>Each server will create a proper PDE target definition.</li>
<li>New server instances will be created from existing PDE target
definitions.</li>
<li>Server editor will allow editing modules, configuration
parameters and the PDE target platform for each specific server
configuration.</li>
<li>Bundle Overview - Server editor will provide overview of the
installed bundles and basic management operations.</li>
<li>Bundle Dependencies Graph - Server editor will display
package and service dependencies in graphical form.</li>
<li>Launch configuration types will be provided for contributed
runtimes.</li>
<li>OSGi framework extension for contributed runtimes support
will allow PDE to treat server/runtimes as regular OSGi frameworks.</li>
<li>Publisher to manage bundle (workspace and external)
deployment to runtimes.</li>
</ul>
<li><a href="http://wiki.eclipse.org/RAP/Equinox_WAR_products">WAR
deployment for Equinox based applications</a></li>
<ul>
<li>Other tools that improve the experience of developing
Server-Side Equinox applications.</li>
</ul>
<li>Other tooling that falls in the scope of the OSGi Enterprise
specification, e.g. tooling for Blueprint Container specification.</li>
</ul>
<h2>Initial Contribution</h2>
<!--
Describe any existing code that will be contributed to the project.
-->
<p>The below is the consolidated vision of the contributing
companies about the initial contribution of the project. There will be
some technical time needed to assemble all the pieces the each of the
contributors will donate.</p>
<p>Tools for working with Bundle projects:</p>
<ul>
<li>OSGi Bundle facet and corresponding install delegate and
install wizard page. This will result in enhanced WTP project wizards:
</li>
<ul>
<li>The Dynamic Web Project wizard will be able to create Web
Application Bundle projects</li>
<li>The JPA Project wizard will be able to create Persistent
Bundle projects</li>
<li>The Utility Project wizard will be able to create ordinary
OSGi Bundle projects</li>
</ul>
<li>Wizard for converting WTP standard projects to OSGi Enterprise
bundle projects. The wizard will be able to convert:</li>
<ul>
<li>Dynamic Web projects to Web Application Bundle projects</li>
<li>JPA projects to Persistent Bundle projects</li>
<li>Utility projects and simple Java projects to OSGi Bundle
projects</li>
</ul>
</ul>
<p>Extensible OSGi based Server Adapter tools complete with editors
and wizards with exemplar implementations for Apache Felix, Eclipse
Equinox and Knoplerfish will enable bundle projects to run, debug and be
published to these OSGi runtimes:</p>
<ul>
<li>The runtime preference pages will be able to download,
install, define and validate runtime installations.</li>
<li>The server wizard will be able to define runtime instances, to
which OSGi bundles can be targeted and deployed.</li>
<li>Each server will create a proper PDE target definition.</li>
<li>New server instances will be created from existing PDE target
definitions.</li>
<li>Server editor will allow editing modules, configuration
parameters and the PDE target platform for each specific server
configuration.</li>
<li>Launch configuration types will be provided for contributed
runtimes.</li>
<li>OSGi framework extension for contributed runtimes support will
allow PDE to treat server/runtimes as regular OSGi frameworks.</li>
<li>Publisher to manage bundle (workspace and external) deployment
to runtimes.</li>
</ul>
<p><a href="http://wiki.eclipse.org/RAP/Equinox_WAR_products">WAR
deployment for Equinox based applications</a>. It was developed during
Google Summer of Code 2010. The source code is already contributed to
the Eclipse PDE Incubator after a successful IP review. After the
Creation Review the code will be moved to the Libra
project and the work will continue there.</p>
<p>Some contributing parties decided to exchange some code from
their planned initial contributions ahead of the Creation Review. Follow
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=330491">bug
330491</a> for details.</p>
<h2>Legal Issues</h2>
<!--
Please describe any potential legal issues in this section. Does somebody else
own the trademark to the project name? Is there some issue that prevents you
from licensing the project under the Eclipse Public License? Are parts of the
code available under some other license? Are there any LGPL/GPL bits that you
absolutely require?
-->
<p>No legal issues identified yet.</p>
<h2>Relationship to other projects</h2>
<h3>Plug-in Development Tools</h3>
<p>Libra does not aim to compete with
the PDE project. The goal is to supplement the OSGi development tools
currently provided by PDE with new capabilities that are relevant of
OSGi Enterprise application development and Server-Side Equinox
application development. If any issues can be addressed in the PDE
project, they will be addressed there. It could the case that an OSGi
related capability is first developed in the Libra
project, but later, after agreement with the PDE project, it is moved to
PDE.</p>
<h3>Web Tools Platform</h3>
<p>Similarly to PDE, the Libra project does not aim
to compete with the WTP project. Any new features regarding Web and Java
EE development will be addressed directly in the corresponding WTP
subprojects. Libra will provide the bits for
integrating the PDE and WTP tooling.</p>
<h3>Virgo Tools</h3>
<p>The Virgo Tools, which VMWare plans to contribute to the Eclipse
Foundation, is overlapping in scope with current project proposal. Due
to the complexity of the contribution, the Virgo team will first
contribute the Virgo Tools as a separate project under the Eclipse
Runtime top-level project and then will factor out the generic, standard
based capabilities that will go to other existing Eclipse projects like
PDE or Libra.</p>
<p>The Libra and Virgo Tools projects are not going to
compete with each other, but will work together to find a way to
consolidate the features provided by both projects.</p>
<p>See the following <a
href="http://www.eclipse.org/forums/index.php?t=msg&th=198541">forum
topic</a> for details.</p>
<h2>Committers</h2>
<!--
List any initial committers that should be provisioned along with the
new project. Include affiliation, but do not include email addresses at
this point.
-->
<p>The following individuals are proposed as initial committers to
the project:</p>
<ul>
<li><a href="mailto:kaloyan.raev@sap.com">Kaloyan Raev</a>, SAP -
Lead</li>
<li><a href="mailto:dimitar.giormov@sap.com">Dimitar Giormov</a>,
SAP</li>
<li><a href="mailto:dimo.stoilov@sap.com">Dimo Stoilov</a>, SAP</li>
<li><a href="mailto:murat.yener@eteration.com">Murat Yener</a>,
Eteration</li>
<li><a href="mailto:umut.duman@eteration.com">Umut Duman</a>,
Eteration</li>
<li><a href="mailto:naci.dai@eteration.com">Naci Dai</a>,
Eteration</li>
<li><a href="mailto:caniszczyk@gmail.com">Chris Aniszczyk</a>, Red
Hat</li>
<li><a href="mailto:hstaudacher@eclipsesource.com">Holger
Staudacher</a>, EclipseSource</li>
<li><a href="mailto:mlippert@vmware.com">Martin Lippert</a>,
VMWare</li>
<li><a href="mailto:gnormington@vmware.com">Glyn Normington</a>,
VMWare</li>
<li><a href="mailto:frostc@vmware.com">Christopher Frost</a>,
VMWare</li>
</ul>
<!--
Describe any initial contributions of code that will be brought to the
project. If there is no existing code, just remove this section.
-->
<h2>Mentors</h2>
<!--
New Eclipse projects require a minimum of two mentors from the Architecture
Council. You need to identify two mentors before the project is created. The
proposal can be posted before this section is filled in (it's a little easier
to find a mentor when the proposal itself is public).
-->
<p>The following Architecture Council members will mentor this
project:</p>
<ul>
<li>Chris Aniszczyk, Red Hat</li>
<li>Naci Dai, Eteration</li>
</ul>
<h2>Interested Parties</h2>
<!--
Provide a list of individuals, organisations, companies, and other Eclipse
projects that are interested in this project. This list will provide some
insight into who your project's community will ultimately include. Where
possible, include affiliations. Do not include email addresses.
-->
<p>The following individuals, organizations, companies and projects
have expressed interest in this project:</p>
<ul>
<li>Tim Deboer, IBM</li>
<li>Neil Hauge, Oracle</li>
<li>Konstantin Komissarchik, Oracle</li>
<li>Naci Dai, Eteration</li>
<li>Martin Lippert, VMWare</li>
<li>Glyn Normington, VMWare</li>
<li>Christopher Frost, VMWare</li>
</ul>
<h2>Project Scheduling</h2>
<!--
Describe, in rough terms, what the basic scheduling of the project will
be. You might, for example, include an indication of when an initial contribution
should be expected, when your first build will be ready, etc. Exact
dates are not required.
-->
<ul>
<li>October 2010 - proposal</li>
<li>November 2010 - creation review and initial contribution</li>
<li>December 2010 - first milestone release aligned with Indigo M4</li>
<li>March 2011 - milestone release aligned with Indigo M6</li>
<li>June 2011 - incubating release aligned with the Indigo
Simultaneous Release</li>
</ul>
<h2>Changes to this Document</h2>
<!--
List any changes that have occurred in the document here.
You only need to document changes that have occurred after the document
has been posted live for the community to view and comment.
-->
<table>
<tr>
<th>Date</th>
<th>Change</th>
</tr>
<tr>
<td>01-September-2010</td>
<td>Document created</td>
</tr>
<tr>
<td>13-October-2010</td>
<td>Small changes in Scope and Description. Eteration added as a
major contributor. Chris Aniszczyk added as a committer and mentor.
Interested Parties updated.</td>
</tr>
<tr>
<td>22-October-2010</td>
<td>Equinox Server-Side added to the scope. Holger Staudacher
added as a committer. Section about relationship to other projects
added. Interested Parties updated.</td>
</tr>
<tr>
<td>04-November-2010</td>
<td>Added info about the proposed initial contribution by
Eteration.</td>
</tr>
<tr>
<td>23-November-2010</td>
<td>Initial contribution consolidated to a common vision of the
contributing parties. Added info about VMWare initial committers.</td>
</tr>
</table>
</body>
</html>