我有 ipojo 组件
@Component(immediate = true)
@Provides
public class MyComponent implements MyService
{
@Override
public boolean islock()
{
return true;
}
}
当我使用以下命令在 karaf 部署时
bundle:install -s mvn:com.my.osgi/mycomponent/0.0.1
如果我在 karaf 控制台执行 service:list 它会显示如下输出
[org.apache.felix.ipojo.Factory]
--------------------------------
component.class = com.my.osgi.mycomponent
component.description = factory name="com.my.osgi.mycomponent"
bundle="77" state="valid" implementation-class="com.my.osgi.mycomponent"
requiredhandlers list="[org.apache.felix.ipojo:properties,
org.apache.felix.ipojo:callback, org.apache.felix.ipojo:provides,
org.apache.felix.ipojo:architect
ure]"
missinghandlers list="[]"
provides specification="com.my.osgi.mycomponent"
inherited interfaces="[com.my.osgi.mycomponent]"
superclasses="[]"
component.providedServiceSpecifications = [com.my.osgi.mycomponent]
factory.name = com.my.osgi.mycomponent
factory.state = 1
service.bundleid = 77
service.id = 153
service.pid = com.my.osgi.mycomponent
service.scope = singleton
但我期待如下,
[com.my.osgi.mycomponent]
-----------------------------------------------------
instance.name = mycomponent.3c2c91a5-4c28-46c3-a08e-1470192ef353
service.bundleid = 76
service.factoryPid = com.my.osgi.mycomponent
service.id = 397
service.pid =
com.my.osgi.mycomponent.3c2c91a5-4c28-46c3-a08e-1470192ef353
service.scope = bundle
我做错了什么?我正在用 Maven 构建。
编辑: 一个观察,因为这个捆绑包在一个更大的应用程序中工作,当它获取部署日志时
2018-07-17T12:03:50,011 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 38 - com.my.osgi.my-component - 1.0.3 | ServiceEvent REGISTERED - [org.apache.felix.ipojo.architecture.Architecture] - com.my.osgi.my-component
2018-07-17T12:03:50,021 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 38 - com.my.osgi.my-component - 1.0.3 | ServiceEvent REGISTERED - [com.my.osgi.my-component] - com.my.osgi.my-component
2018-07-17T12:03:50,021 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 38 - com.my.osgi.my-component - 1.0.3 | ServiceEvent MODIFIED - [com.my.osgi.my-component] - com.my.osgi.my-component
2018-07-17T12:03:50,021 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 38 - com.my.osgi.my-component - 1.0.3 | ServiceEvent MODIFIED - [com.my.osgi.my-component] - com.my.osgi.my-component
2018-07-17T12:03:50,021 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 38 - com.my.osgi.my-component - 1.0.3 | ServiceEvent MODIFIED - [com.my.osgi.my-component] - com.my.osgi.my-component
2018-07-17T12:03:50,021 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 38 - com.my.osgi.my-component - 1.0.3 | ServiceEvent REGISTERED - [org.apache.felix.ipojo.Factory] - com.my.osgi.my-component
但就我而言,它只有两行
2018-07-17T11:45:43,624 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 11 - com.my.osgi.my-component - 2.0.4.SNAPSHOT | ServiceEvent REGISTERED - [org.apache.felix.ipojo.extender.TypeDeclaration] - com.my.osgi.my-component
2018-07-17T11:45:43,654 | DEBUG | [iPOJO] pool-1-thread-1 | my-component | 11 - com.my.osgi.my-component - 2.0.4.SNAPSHOT | ServiceEvent REGISTERED - [org.apache.felix.ipojo.Factory] - com.my.osgi.my-component
那么这个架构做了什么以及修改了什么?