1. OSGi Bundles
2. Bundle Context
package com.example.moduleA;
import org.springframework.osgi.service.annotation.RequireService;
import org.springframework.stereotype.Component;
@Component
public class MyModuleA {
@RequireService
private MyModuleB moduleB;
public void doSomething() {
moduleB.doSomething();
}
}
<module>
<id>com.example.moduleA</id>
<name>Module A</name>
<version>1.0.0</version>
<dependencies>
<dependency>
<id>com.example.moduleB</id>
<version>[1.0.0,2.0.0)</version>
</dependency>
</dependencies>
</module>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
<bean id="moduleA" class="com.example.moduleA.MyModuleA"/>
<service interface="com.example.moduleA.MyModuleA" ref="moduleA"/>
</blueprint>