Polygene™
Introduction
Tutorials
Javadoc
Samples
Core
Libraries
Extensions
Tools
Glossary 

OSGi

code

docs

tests

OSGi Library allows you to import OSGi services as Polygene™ Services and to export Polygene™ Services as OSGi Services both leveraging the Polygene™ Availability and OSGi FallbackStrategy mechanisms.

Table 32. Artifact

Group IDArtifact IDVersion

org.apache.polygene.libraries

org.apache.polygene.library.osgi

3.0.0-SNAPSHOT


Export Polygene™ services to an OSGi Bundle

interface MyPolygeneService
    extends OSGiEnabledService
{
    // ...
}
  [...snip...]

public void assemble( ModuleAssembly module )
    throws AssemblyException
{
    BundleContext bundleContext = // ...
      [...snip...]

    module.services( OSGiServiceExporter.class ).
        setMetaInfo( bundleContext );
    module.services( MyPolygeneService.class );
}

Import OSGi services in a Polygene™ Module

public void assemble( ModuleAssembly module )
    throws AssemblyException
{
  [...snip...]

    module.services( OSGiServiceImporter.class ).
        setMetaInfo( new OSGiImportInfo( bundleContext,
                                         MyOSGiService.class,
                                         MyOtherOSGiService.class ) ).
        setMetaInfo( new MyFallbackStrategy() );
}

The fallback strategy is invoked when the OSGi service is not available and a method call is invoked.