Sounds good, +1 from me.

David

On 7 October 2017 at 17:30, Neil Bartlett (Paremus) <
[email protected]> wrote:

> Hello Felix developers,
>
> I would like to initiate a contribution of external code into Apache
> Felix. This code is being contributed on behalf of Intel Corporation, who
> funded development. The contribution is a plugin for File Install — an
> implementation of the ArtifactInstaller service — which handles Bundle
> ARchive (BAR) files. This is a proposed format for an aggregate of
> functionality represented as one or more OSGi bundles along with an OSGi
> index. It includes use of the OSGi resolver API to check consistency and
> permits overlapping resources from multiple installable units.
>
> A BAR file is physically a JAR file with some defined manifest headers to
> control the behaviour of the installer. It must contain an OSGi index (in
> the XML format specified by the Repository Service specification) and the
> index can reference bundles contained within the BAR, or optionally
> external bundles. Additionally the BAR manifest contains a set of
> requirements (a Require-Bundle and/or Require-Capability header) that
> define the root requirements to be resolved against that index.
>
> Dropping a BAR file into the File Install monitored directory does not
> immediately install its contents. Instead a resolution process is initiated
> to ensure that the contents of the BAR are complete and consistent. If that
> resolution process succeeds then the BAR contents become available for
> installation. The application or management agent is responsible for
> triggering the actual installation. Multiple BAR files can require the same
> resource transitively. We use a reference counting mechanism to ensure that
> BARs with overlapping requirements can be installed concurrently, and those
> resources are only uninstalled when the last BAR that references them is
> uninstalled.
>
> This differs from existing approaches in the following ways:
>
> 1. The OSGi Deployment Admin specification defines a similar file format
> for aggregates of bundles, but the contents of a Deployment Package cannot
> overlap with previously installed Deployment Packages. This limitation
> makes the specification unworkable in many practical scenarios.
>
> 2. Eclipse and Karaf both have a similar concept of “features”, but these
> are simply listings of bundles. The BAR Installer uses the OSGi resolver to
> ensure that the contents of the BAR can actually be installed cleanly in
> the current OSGi framework, and will never attempt to reinstall a bundle
> that is already in use.
>
> 3. The OSGi Subsystem Service specification has the ability to resolve the
> contents of a subsystem, but the resolved bundles are usually installed
> into an isolated “region” of the target OSGi framework. This creates a lot
> of complexity, and as a result the Subsystems chapter of the OSGi
> specification makes for a daunting read. BARs are installed into the flat
> OSGi framework without isolation, have a simpler lifecycle and are easier
> for developers to reason about.
>
> All sources are already Apache licensed, and were originally developed for
> the Open Security Controller project (https://www.
> opensecuritycontroller.org/ <https://www.opensecuritycontroller.org/>).
>
> Thank you,
> Neil Bartlett

Reply via email to