日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用Apache Felix文件安装配置OSGi服务

發布時間:2023/12/3 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Apache Felix文件安装配置OSGi服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近有關托管服務的帖子讓我想起了我值得一提的Apache Felix File Install中的一項功能。 在與Holger合作進行項目時,我從他那里了解到File Install不能僅用于管理包。 它還監視配置文件,并在托管服務各自的配置更改時更新托管服務。

文件安裝還可以配置托管服務工廠等。 但是,我發現對于配置數據通常是特定于環境的托管服務(例如打印機URL,數據庫URL,TCP端口)特別有用。 最好的事情是:它使您擺脫了以編程方式擺弄Configuration Admin的麻煩。

怎么運行的

可以告訴“文件安裝”監視某個文件夾(通常通過系統屬性)。 然后,您可以將配置文件(普通Java屬性文件)放入該文件夾。 配置文件通過命名約定與托管服務關聯。 文件名的格式必須為<pid> .cfg。 如果存在具有匹配PID的托管服務,則在文件更改時將對其進行更新。

我在GitHub上放了一個最小的獨立示例。 它有一個捆綁包,提供了如下實現的EchoService:

public class EchoService implements ManagedService {public void updated( Dictionary<String, ?> properties ) {if( properties != null ) {System.out.println( "port = " + properties.get( "port" ) );}}}

易于發現:其全部目的是在配置更改時將其打印出來。

EchoService已使用echoservice的PID注冊。 除捆綁軟件外,還有一個包含配置文件的項目。 它名為echoservice.cfg并具有一個屬性: port = 7 。

啟動配置將必要的軟件包組合在一起:OSGi框架(此處為Equinox),示例軟件包,Felix Gogo Shell(用于診斷問題)和文件安裝以及Configuration Admin。 這些虛擬機參數

-Dfelix.fileinstall.dir="${project_loc:com.codeaffine.fileinstall.example.config}" -Dfelix.fileinstall.noInitialDelay=true -Dfelix.fileinstall.poll=1000

告訴“文件安裝”監視項目文件夾并每秒檢查一次更改。 多虧了project_loc變量,啟動配置可在整個開發環境中移植。

現在我們啟動OSGi框架,控制臺輸出將如下所示:

port = 7

如果我們對echoservice.cfg文件進行更改并稍等片刻,我們將看到EchoService已更新。 新配置將顯示在控制臺日志中。

更多的

如果這引起您的興趣,您可能需要更深入地了解File Install。 它還支持托管服務工廠,可以寫回配置更改,可以替換屬性值,以及監視多個文件夾。 文檔頁面包含所有詳細信息。

參考:在Code Affine博客上,從我們的JCG合作伙伴 Rudiger Herrmann 使用Apache Felix File Install配置OSGi服務 。

翻譯自: https://www.javacodegeeks.com/2013/10/configure-your-osgi-services-with-apache-felix-file-install.html

總結

以上是生活随笔為你收集整理的使用Apache Felix文件安装配置OSGi服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。