| <!-- |
| 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>Eclipse Bundle Recipes</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 type="text/css"> |
| 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> |
| The Eclipse Bundle Recipes project is a proposed open source project |
| under the Eclipse <a |
| href="http://www.eclipse.org/projects/project_summary.php?projectid=rt">Runtime |
| Project</a>. |
| </p> |
| |
| <!-- |
| The communication channel must be specified. Typically, this is the |
| "Proposals" forum. In general, you don't need to change this. |
| --> |
| <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="http://www.eclipse.org/forums/eclipse.proposals">Eclipse |
| Proposals</a> Forum. |
| </p> |
| |
| <h2>Introduction</h2> |
| |
| <p>This proposal recommends the creation of a new project called |
| "Eclipse Bundle Recipes" (EBR), to provide "recipes" in the form of |
| template files which can be used to convert open source library Jar |
| files into OSGi Bundles. EBR will be a subproject of the Eclipse |
| Runtime Project (RT) and will aim to exploit the functionality of |
| existing projects. We encourage and request additional participation |
| and input from any and all interested parties.</p> |
| |
| <h2>Background</h2> |
| |
| <!-- |
| Optionally provide the background that has lead you to creating this project. |
| --> |
| |
| <p> |
| One of the challenges Java developers face in creating solutions that |
| make use of the OSGi Service Platform is in finding OSGi bundle forms |
| of the open source software they use. This need was partly addressed |
| by the <a href="http://ebr.springsource.com/repository/app/">SpringSource |
| Enterprise Bundle Repository</a> which is maintained by VMware (after |
| their acquisition of SpringSource). Each entry in the SpringSource |
| repository is created from a template and provides metadata about the |
| bundle; namely: |
| </p> |
| <ul> |
| <li>Ivy and Maven XML snippets describing how to declare a |
| dependency on the bundle.</li> |
| <li>The Java packages the bundle exports, i.e. its external |
| contract.</li> |
| <li>The Java packages the bundle imports, i.e. the contracts it |
| depends on.</li> |
| <li>Bundles that are able to provide those packages.</li> |
| </ul> |
| <p>The repository is transitively closed: all bundle dependencies |
| are satisfied by other bundles in the repository.</p> |
| <p>The SpringSource repository does not allow for external |
| contributions and so is difficult for a single vendor to keep current |
| (and, in practice, VMware has limited resources to apply to |
| maintaining the repository). A templates project at Eclipse will help |
| share the responsibility and better serve the needs of OSGi users.</p> |
| |
| <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>The scope of the EBR project is to provide template files for |
| creating bundles for open source Jars. Scoping the project to |
| templates rather than the resulting bundles facilitates bundle |
| creation for a wide variety of open source projects, not just those |
| with licenses acceptable to the Eclipse Foundation. Only templates |
| whose creation and use do not violate the license of the original Jar |
| will be permitted.</p> |
| <p>The EBR project is aimed at open source Jars which do not |
| already have reasonable OSGi manifests. If a project originating such |
| a Jar provides a reasonable OSGi manifest for a subsequent version of |
| the Jar, then the EBR project will discontinue its support of the JAR |
| (for new versions - existing versions of the template will remain in |
| the EBR project for anyone who needs them) in order to encourage the |
| community to treat the originating project as the preferred source of |
| the corresponding bundle. This is deemed to be a success story for the |
| EBR project.</p> |
| <p>Enhancements to the Eclipse Virgo Bundlor tool may be necessary |
| to handle identification and processing of the Jar to which a template |
| applies.</p> |
| <p>The primary goal of the project is the provision of templates, |
| but the project should also consider the following enhancements to the |
| Eclipse Marketplace and Client:</p> |
| <ol> |
| <li>A new 'OSGi Bundles' market with entries for bundles |
| (provided outside the EBR) and templates from EBR. These bundles and |
| templates would be subject to the usual <a |
| href="http://marketplace.eclipse.org/content/eclipse-marketplace-publishing-guidelines">Marketplace |
| publishing restrictions</a>. |
| </li> |
| <li>Browser-based Bundlor equivalent for consuming templates from |
| the Marketplace and creating the resulting bundle.</li> |
| <li>Modification of the Eclipse Marketplace Client so that |
| bundles from the OSGi Bundles market can be discovered directly in |
| the Eclipse IDE and pulled into the user's workspace or PDE target |
| platform. This is different to how the IDE operates with the |
| Marketplace today as that interaction causes plugins to be installed |
| into the IDE itself.</li> |
| </ol> |
| <p>Although the bundles, which may be generated from the project, |
| will not be hosted at Eclipse, anyone who is able to may generate and |
| host those bundles, for example in a Maven repository. Companies may |
| choose to do this internally to provide repeatable builds. A vendor |
| may choose to generate and publish the bundles to a publicly visible |
| repository.</p> |
| <p>A longer term goal of the project is to provide an OSGi R5 |
| Repository API implementation to programmatically search the bundle |
| metadata associated with the generated bundles.</p> |
| |
| <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 EBR project provides a library of templates that can be used |
| to create bundles for open source projects. The Eclipse Virgo Bundlor |
| tool converts a Jar to a bundle driven by a given template. Each |
| template guides the addition of OSGi manifest headers in order for the |
| Jar to work correctly as an OSGi bundle.</p> |
| <p>The project satisfies a broad set of bundle requirements by |
| hosting only templates (not the original Jar or resulting bundle), |
| thus allowing it to address a wide variety of open source projects, |
| including those using licenses which are unacceptable to the Eclipse |
| Foundation.</p> |
| <p>In taking this template approach it is important that the bundle |
| generation be a repeatable process and so enhancements to Bundlor and |
| the templates it can consume will ensure the correct Jar is used.</p> |
| <p>Contributions to the project, including templates, may be made |
| using the regular Eclipse processes including attaching a patch to |
| Eclipse bugzilla or issuing a pull request on github.</p> |
| |
| <h2>Why Eclipse?</h2> |
| |
| <!-- |
| Answer these two questions: What value does this project bring to the Eclipse |
| community? What value do you expect to obtain from hosting your project at Eclipse? |
| |
| What value do you get by having your project at Eclipse over and above the value |
| of hosting at Eclipse Labs? |
| --> |
| |
| <p>The vast majority of Eclipse projects are built using OSGi, and |
| Eclipse Equinox has been the OSGi Core Reference Implementation for |
| many years. As exploiters of OSGi, many Eclipse projects and their |
| users will benefit from, and potentially contribute to, a project |
| which addresses their need for pre-bundled copies of the libraries |
| they use.</p> |
| <p>The Eclipse Marketplace and associated client also offer the |
| opportunity to make OSGi bundles easily discoverable and accessible to |
| developers and users.</p> |
| |
| <h2>Initial Contribution</h2> |
| |
| <!-- |
| Projects are expected to arrive at Eclipse with existing code. |
| |
| Describe the existing code that will be contributed to the project. Please provide |
| a couple of paragraphs describing the code with modest detail, including important |
| information like code ownership (who holds the copyright?), and some consideration |
| of community that exists around the code. Include a listing of third-party libraries |
| and associated licenses. |
| --> |
| |
| <p> |
| The initial contribution of templates to the Bundle Recipes project |
| will be made by VMware based on the SpringSource Enterprise Bundle |
| Repository content. Many of these templates have already been |
| published in <a |
| href="https://github.com/glyn/bundlerepo/tree/master/templates">github</a> |
| under the Eclipse Public License. |
| </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>In committing template files into Eclipse, committers need to be |
| sure that the template, in its creation or use, does not violate the |
| license of the Jar it references. For example, a license that did not |
| permitted updates to the Jar manifest, or for the Jar to be packaged |
| inside another artefact (e.g. wrapped in an OSGi bundle), would |
| prohibit the creation of a bundle for the Jar without violating the |
| license. Such a license may not actually exist, but contributors will |
| need to be aware that this due diligence is necessary.</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>Neil Bartlett (Paremus)</li> |
| <li>David Bosschaert (Red Hat)</li> |
| <li>Graham Charters (IBM)</li> |
| <li>Chris Frost (VMware/SpringSource, Project Lead)</li> |
| <li>Jeremy Hughes (IBM, Project Lead)</li> |
| <li>Toni Menzel (Rebaze)</li> |
| <li>Glyn Normington (VMware/SpringSource)</li> |
| <li>John Ross (IBM)</li> |
| <li>Raman Gupta</li> |
| <li>Gunnar Wagenknecht</li> |
| <li>Tom Watson</li> |
| </ul> |
| |
| <p>We welcome additional committers and contributions.</p> |
| |
| <!-- |
| 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>Ian Bull (EclipseSource)</li> |
| <li>Thomas Watson (IBM)</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, organisations, companies and projects |
| have expressed interest in this project:</p> |
| |
| <ul> |
| <li>Peter Kriens (aQute)</li> |
| <li>SAP AG</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>January 2013, Bundle Recipes proposal submitted</li> |
| <li>February 2013, Creation review</li> |
| <li>August 2013, Graduation review</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>28 January 2013</td> |
| <td>Document created</td> |
| </tr> |
| </table> |
| </body> |
| </html> |