<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.core</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
</exclusion>
</exclusions>
</dependency>
import javax.inject.Inject;
public class MyModule {
@Inject
private MyDependency myDependency;
public void doSomething() {
myDependency.processData();
}
}
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
public class MyActivator implements BundleActivator {
private ServiceRegistration<MyDependency> registration;
@Override
public void start(BundleContext context) throws Exception {
MyDependency myDependency = new MyDependencyImpl();
registration = context.registerService(MyDependency.class, myDependency, null);
}
@Override
public void stop(BundleContext context) throws Exception {
registration.unregister();
}
}