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

Compare with Current View Page History

Version 1 Next »

Introduction

The ApacheDS is scheduled to offer OSGi capability in the 1.1 release. From an OSGi perspective ApacheDS can be viewed as three major organizations of functionality:

  • Shared utility functionality - Shared
  • Network functionality - Mina
  • Main platform functionality - Apacheds

The three functional organizations of ApacheDS are now being adapted to OSGi through a process of 'structual and service oriented componetization'.

For a review of OSGi best practices see: OSGi Best Practices

Structural Componentization

Structural Componentization is the management or partitioning of software at the modular (archive/jar) level. In OSGi a structural component or bundle refers to a Java archive, that has OSGi metadata annotated in its manifest. In the OSGi runtime container, bundles (metadata annotated jars) offer or export their Java packages for use or import by other bundles running within the container.

Package import and export relationships between bundles, are created as classloader wirings by the OSGi runtime container.

Structurual Componetization can also be called 'Package Depenency Management'. Structurual Componentization is the initial focus of the OSGi work effort. It will consist of annotating ApacheDS software artifacts with OSGi specific metadata.

OSGi Commons Bundling Projects

Both ADS and Mina depend on third party libraries. For OSGi based Mina and/or ApacheDS bundles to start within an OSGi runtime; all dependent libraries must be packaged as OSGi bundles, be installed, started and have their packages exported to the OSGi runtime so that these packages may be imported by the Mina and ApacheDS bundles.

The OSGi Commons Bundling projects have been initiated to facilitate the creation of Mina and ApacheDS dependent libraries as OSGi bundles. The projects are simple pom based and simply wrap the targeted third party packages in OSGi annotated jars (aka OSGi bundles).

Current OSGi Commons Bundle Projects:
  1. antlr,
  2. commons-collections,
  3. commons-lang,
  4. jzlib.
The maven Plugin

The OSGi Commons Bundling projects utilize the new org.apache.felix maven-bundle-plugin to do the wrapping/annotating of the jars.

Service Componentization

Service Componentization refers to the management of services and their dependencies on other services and on configuration resources.

  • No labels