Libra

The project has been created. Please visit the project page.

Libra

Libra is a proposed open source project under the Web Tools Platform Container Project.

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 OSGi Enterprise Tools Forum.

Background

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 OSGi Service Platform Enterprise specification. It defines how enterprise applications look like in the OSGi world: a WAR archive can be now deployed as a Web Application Bundle, a JAR with persistency logic - as a Persistence Bundle, and so on. The OSGi Enterprise specification has already being implemented in several runtime projects.

The Eclipse Web Tools Platform (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.

Scope

This project will be focused on providing standard tools for OSGi Enterprise application development. This will happen in two directions:

  • 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.
  • Tools for better user experience in the Server-Side Equinox scenario.

In scope:

  • Tools for creation of deployable artifacts for application servers implementing the OSGi Enterprise specification, e.g. wizard for creating new Web Application Bundle projects.
  • 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.
  • 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.
  • 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.
  • Tools that improve the experience of developing Server-Side Equinox applications.
  • Extensibility of the tools in scope, so adopters can extend them for their own application model.

Out of scope:

  • Application models that extend and/or are in conflict with the OSGi Enterprise specification.
  • 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.

Description

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.

Potential development in this project:

  • Tools for working with Bundle projects:
    • OSGi Bundle 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.
    • Wizards to convert existing WTP project to OSGi Enterprise bundle projects.
    • Extensions of the existing PDE Manifest Editor for editing additional manifest headers, specified by the OSGi Enterprise specification, e.g. Web-ContextPath
    • Extensions of the existing PDE and WTP validations for ensuring consistency between the PDE and WTP models.
    • Synchronizers between the PDE and WTP models to ensure consistency, e.g. changing the Web-ContextPath manifest headers should request a change in the corresponding object in the WTP model.
    • Wizards for import and export of Bundle projects.
    • Tools for generation and automatic maintenance of the MANIFEST.MF descriptor, derived from the SpringSource Bundlor.
    • Other tools for easier working with Bundle projects.
  • 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:
    • The runtime preference pages will be able to download, install, define and validate runtime installations.
    • The server wizard will be able to define runtime instances, to which OSGi bundles can be targeted and deployed.
    • Each server will create a proper PDE target definition.
    • New server instances will be created from existing PDE target definitions.
    • Server editor will allow editing modules, configuration parameters and the PDE target platform for each specific server configuration.
    • Bundle Overview - Server editor will provide overview of the installed bundles and basic management operations.
    • Bundle Dependencies Graph - Server editor will display package and service dependencies in graphical form.
    • Launch configuration types will be provided for contributed runtimes.
    • OSGi framework extension for contributed runtimes support will allow PDE to treat server/runtimes as regular OSGi frameworks.
    • Publisher to manage bundle (workspace and external) deployment to runtimes.
  • WAR deployment for Equinox based applications
    • Other tools that improve the experience of developing Server-Side Equinox applications.
  • Other tooling that falls in the scope of the OSGi Enterprise specification, e.g. tooling for Blueprint Container specification.

Initial Contribution

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.

Tools for working with Bundle projects:

  • OSGi Bundle facet and corresponding install delegate and install wizard page. This will result in enhanced WTP project wizards:
    • The Dynamic Web Project wizard will be able to create Web Application Bundle projects
    • The JPA Project wizard will be able to create Persistent Bundle projects
    • The Utility Project wizard will be able to create ordinary OSGi Bundle projects
  • Wizard for converting WTP standard projects to OSGi Enterprise bundle projects. The wizard will be able to convert:
    • Dynamic Web projects to Web Application Bundle projects
    • JPA projects to Persistent Bundle projects
    • Utility projects and simple Java projects to OSGi Bundle projects

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:

  • The runtime preference pages will be able to download, install, define and validate runtime installations.
  • The server wizard will be able to define runtime instances, to which OSGi bundles can be targeted and deployed.
  • Each server will create a proper PDE target definition.
  • New server instances will be created from existing PDE target definitions.
  • Server editor will allow editing modules, configuration parameters and the PDE target platform for each specific server configuration.
  • Launch configuration types will be provided for contributed runtimes.
  • OSGi framework extension for contributed runtimes support will allow PDE to treat server/runtimes as regular OSGi frameworks.
  • Publisher to manage bundle (workspace and external) deployment to runtimes.

WAR deployment for Equinox based applications. 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.

Some contributing parties decided to exchange some code from their planned initial contributions ahead of the Creation Review. Follow bug 330491 for details.

Legal Issues

No legal issues identified yet.

Relationship to other projects

Plug-in Development Tools

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.

Web Tools Platform

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.

Virgo Tools

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.

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.

See the following forum topic for details.

Committers

The following individuals are proposed as initial committers to the project:

Mentors

The following Architecture Council members will mentor this project:

  • Chris Aniszczyk, Red Hat
  • Naci Dai, Eteration

Interested Parties

The following individuals, organizations, companies and projects have expressed interest in this project:

  • Tim Deboer, IBM
  • Neil Hauge, Oracle
  • Konstantin Komissarchik, Oracle
  • Naci Dai, Eteration
  • Martin Lippert, VMWare
  • Glyn Normington, VMWare
  • Christopher Frost, VMWare

Project Scheduling

  • October 2010 - proposal
  • November 2010 - creation review and initial contribution
  • December 2010 - first milestone release aligned with Indigo M4
  • March 2011 - milestone release aligned with Indigo M6
  • June 2011 - incubating release aligned with the Indigo Simultaneous Release

Changes to this Document

Date Change
01-September-2010 Document created
13-October-2010 Small changes in Scope and Description. Eteration added as a major contributor. Chris Aniszczyk added as a committer and mentor. Interested Parties updated.
22-October-2010 Equinox Server-Side added to the scope. Holger Staudacher added as a committer. Section about relationship to other projects added. Interested Parties updated.
04-November-2010 Added info about the proposed initial contribution by Eteration.
23-November-2010 Initial contribution consolidated to a common vision of the contributing parties. Added info about VMWare initial committers.