[英]Update Apache Felix Bundles during framework start up in Java
因此,我有這段代碼,在啟動過程中會調用該代碼來更新Apache Felix Framework
中的捆綁軟件,但我只會更新我故意設置為7級或更高級別的捆綁軟件。 只要執行此代碼,就會從列表中刪除更新的捆綁軟件,並且控制台掛起。 其他時間,更新的捆綁軟件狀態為ACTIVE
但控制台也掛起。
Arrays.stream(bundleContext.getBundles())
.filter((bundle) -> return bundle.adapt(BundleStartLevel.class).getStartLevel() > 6;
.forEach((Bundle bundle) -> {
try {
this.logger.log(LOG_DEBUG, "updating : " + bundle.getSymbolicName());
if (bundle.getState() == Bundle.ACTIVE) {
bundle.stop();
}
bundle.update();
bundle.start(Bundle.ACTIVE);
} catch (BundleException exception) {
this.logger.log(LOG_ERROR, "Bundle update for " + name + " failed.", exception);
}
});
有沒有正確的方法來更新Apache Felix Framework
捆綁軟件?
從給出的描述和代碼示例中,不可能確切地指出出了什么問題:
name
。 bundle.stop()
和bundle.start()
。 此外,此代碼中的邏輯存在缺陷:如果捆綁包之前未處於活動狀態,則現在將變為活動狀態。 start
方法調用此代碼,則它可能會嘗試自行更新,這會導致各種不可預測的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.