挑战声明:
1-我有一个复合子系统,该子系统具有一个包含要约的捆绑包 能力,在捆绑清单中都提到了提供能力 在包清单和子系统清单中。
对于系统迁移,如果捆绑包是在ESA之前部署的 子系统,该捆绑包无法按预期启动,必须手动进行 部署提供功能后开始。
但是,如果我将子系统标记为功能,那么,只要子系统 部署后,独立捆绑包也进入活动状态,正在删除 需要人工干预。
如果系统被标记为复合系统而不是要素子系统, 该捆绑包必须手动启动(或通过侦听 捆绑软件/子系统部署事件,然后触发相关捆绑软件。是 这是设计使然,还是可以将此功能添加到复合子系统中 部署,也解决子系统内的依赖关系 并自动触发或通过配置触发。
Bundle Manifest:
Manifest-Version: 1.0
Bnd-LastModified: 1547100076404
Bundle-Activator: msgdispconsumer.ConsumeActivator
Bundle-ManifestVersion: 2
Bundle-Name: msgdispconsumer
Bundle-SymbolicName: msgdispconsumer
Bundle-Version: 1.0.0.201901100601
Created-By: 1.8.0_191 (Oracle Corporation)
*Require-Capability: org.messagedisplaysvc,
osgi.ee;filter:="(&(osgi.ee=JavaSE)
(version=1.8))"*
Import-Package: org.osgi.framework;version="[1.5,2)"
Private-Package: msgdispconsumer
Tool: Bnd-4.1.0.201810181252
Subsystem Manifest:
Manifest-Version: 1.0
Subsystem-SymbolicName: messagedisplaysvc
Subsystem-Version: 1.0.0
provision-policy: acceptDependencies
Subsystem-Type: osgi.subsystem.composite
Bundle-Name: Message Display Service
*Provide-Capability: org.messagedisplaysvc*
Import-Package: org.osgi.framework
Bundle contained within Subsystem Manifest which is providing the capability
Manifest-Version: 1.0
Bnd-LastModified: 1546341320121
Bundle-Activator: messagedisplaysvc.MsgActivator
Bundle-ManifestVersion: 2
Bundle-Name: messagedisplaysvc
Bundle-SymbolicName: messagedisplaysvc
Bundle-Version: 0.0.0.201901011115
Created-By: 1.8.0_191 (Oracle Corporation)
Import-Package: org.osgi.framework;version="[1.5,2)"
Private-Package: messagedisplaysvc
*Provide-Capability: org.messagedisplaysvc*
Tool: Bnd-4.1.0.201810181252
如何使这些依赖关系自动关联并在部署时处于活动状态 不论部署顺序如何。
示例:系统维护活动,其中所有子系统和捆绑软件均位于 复制到备份,然后在相同或另一个节点上重新部署,以防 在提供功能子系统之前部署捆绑软件,捆绑软件将 不热/自动部署到活动状态。
谢谢!