如何在AEM中调用另一个Bundle的功能?

时间:2016-01-13 15:48:24

标签: osgi adobe bundle aem

我有两个捆绑,X和Y.Both中的两个捆绑在OSGi.Function上捆绑,在Bundle X中的HelloHello和Bundle YI中的函数writeHello需要从Bundle Y调用sayHello函数,我将写入返回的字符串Bundle Y中的writeHello函数。 你能说它有可能吗?如果可能的话,如何部署这个逻辑? 在我看来,我有一些例子; 我将在Bundle Y的pom中添加Bundle X的依赖,但是如何在添加依赖项后看到函数sayHello?

谢谢..

1 个答案:

答案 0 :(得分:0)

有两种方法可以访问另一个包的功能。对于这两种方法,您需要在提供类的bundle中使用Export-Package,并为要使用的外部类包提供Import-Package。

  1. 创建类的实例并使用它 如果您要使用的类设置简单且不需要解耦,请使用此方法。这是简单库的典型案例。

  2. 将功能发布为OSGi服务并绑定服务 如果难以实例化类并且您不希望客户端参与此类,请使用此方法。如果要从实现中分离,服务方法也很有意义。为此,您需要为该功能创建一个界面,并使用该界面发布该服务。然后,客户端可以通过仅指定接口来绑定服务。