Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

Since July 2011, Tinybundles is available as a single, independent library as Pax Tinybundles.
Its not part of Swissbox anymore.

Java APIs to create OSGi related artifacts

This is all about creating OSGi related artifacts like Bundles, Fragments and Deployment Packages with Java Api. It is very convinient to create such artifacts on-the-fly inside Tests (like in Pax Exam).
On the other hand, this library can be a foundation of real end user tools that need to create those artifacts.

Usage

Add this to your pom:

<dependency>
  <groupId>org.ops4j.pax.tinybundles</groupId>
  <artifactId>tinybundles</artifactId>
  <version>1.0.0</version>
</dependency>

Sourcecode

Sources are on Github at https://github.com/ops4j/org.ops4j.pax.tinybundles

Create Bundles

To get full benefit of the fluent api, you should include

import static org.ops4j.pax.tinybundles.core.TinyBundles.*;

in your import section.

With this small library you can create small bundles like so:

InputStream inp = bundle()
            .add( MyFirstActivator.class )
            .add( HelloWorld.class )
            .add( HelloWorldImpl.class )
            .set( Constants.BUNDLE_SYMBOLICNAME, caption )
            .set( Constants.EXPORT_PACKAGE, "demo" )
            .set( Constants.IMPORT_PACKAGE, "demo" )
            .set( Constants.BUNDLE_ACTIVATOR, MyFirstActivator.class.getName() )
            .build( getStrategy() );

Have a look at https://github.com/ops4j/org.ops4j.pax.tinybundles/blob/master/src/test/java/org/ops4j/pax/tinybundles/Examples.java to see a complete list of use case examples.

We found this quite useful when for example testing extender-bundles like PaxWeb or SpringDM.
As you see, resources are pulled from "current classpath" which means that you can easily construct stuff like you do in ordinary java apps and pull them together using a fluent api like the above.
It is also trivial to create thounsands of (different) bundles to test high load for example.

Create Fragments

Basically same as Bundles with just the "Bundle-Host" Header added in "set" section.

  • No labels