Search code examples
osgiapache-felixfelix-dependency-manager

OSGi injection of dependencymanager


I am trying to inject the DependencyManager into my component. The BundleContext is injected but the DependencyManager is not (@Inject). What am I doing wrong?

import org.apache.felix.dm.DependencyManager;
import org.apache.felix.dm.annotation.api.Component;
import org.apache.felix.dm.annotation.api.Init;
import org.apache.felix.dm.annotation.api.Inject;
import org.apache.felix.dm.annotation.api.Start;
import org.osgi.framework.BundleContext;

@Component
public class InjectionExample
{
    @Inject
    BundleContext bundleContext;

    @Inject
    DependencyManager manager;

    @Init
    void init()
    {
        System.out.println("Bundle Context: " + bundleContext);
        System.out.println("Manager: " + manager);
    }

    @Start
    void start()
    {
        System.out.println("start");
    }
}

Solution

  • I found the "problem". In my project 2 different versions of the the dependency manager where used. After forcing usage of one version it works.