Apache Felix OSGi Development with Maven

Compatible with: IntelliJ IDEA Android Studio
Sep 28, 2010
8 261
Apache Felix + Maven Bundle Plugin support for IntelliJ IDEA 9

This plugin provides native IntelliJ IDEA support for developing, running and debugging OSGi projects that use Apache Felix as an OSGi container, and Apache Maven and the Maven Bundle Plugin as their build system.

The plugin will provide specially tailed Run Configuration that runs Apache Felix, providing a user interface for choosing which bundles to deploy to Felix, selecting the start level, logging level, etc.

To determine the list of available bundles, the plugin will list all modules of type "bundle" (which is provided by the Maven Bundle Plugin) and their Maven dependencies.M/p>

NOTE: This plugin only detects Maven-based projects.

NOTE: This plugin contains code snippets copied from Apache Felix's Maven Bundle Plugin. These were copied since there was no easy way to directly invoke the Maven plugin. It is the intention of this plugin writer to contact Apache Felix and work together to refactor the code so that it is easily invokable from outside the Maven execution context (e.g. in IDEA's Maven support context)

Developed by Arik Kfir at Infolinks Inc.

Download plugin

Recent change notes


  • Support specifying the start-level of the OSGi framework


  • Fix an exception which occured when a module that is referenced in a Run Configuration is removed from the project


  • Minor UI improvements


  • Prevent NPE on some circumstances (detected on Mac but can happen in other scenarios)
  • Fix bug on Windows where an extra "/" is required


  • Ensure bundle resources are included in the output JAR (usually from src/main/resources)


  • Performance improvements in Run Configuration dialog (scan bundles only once per project, on first display)
  • Minor UI improvements
  • Sort BND properties saved in *.impl files (so they are not considered modified on every save since the ordering was random before)


  • Sort BND properties saved in *.iml files (so they are not considered modified on every save since the ordering was random before)
  • Support suppressing BND warnings on make
  • Display bundle symbolic name and version in Run Configuration dialog
  • BND instructions are extrapolated from Maven configuration on Maven import, and not on every run/debug (performance improvement)


  • Define Apache Felix home as an IDE-wide configuration (i.e. per-user and not in the project configuration)
  • Invoke BND tool directly, configured from the instructions for the Apache Maven Bundle Plugin POM configuration
  • Add OSGi Bundle facet (auto-detected from "bundle"-packaged Maven modules)
  • Add Run Configuration type and dialog


  • Initial version