| <!-- | |
| 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> |