欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
搭建Equinox OSGi核心環(huán)境

    在上文中講到,Equinox包括核心框架,標準服務(wù)實(shí)現,面向J2EE的應用,新的部署更新框架及一些其他的研究方向。本文主要針對Equinox實(shí)現的OSGi核心框架及Equinox OSGi運行環(huán)境的搭建過(guò)程進(jìn)行詳細講述。

    用戶(hù)在閱讀下文時(shí),應具有基本的Java編程及打包的概念并對OSGi標準的構成有一定的了解,理解OSGi框架及Bundle的概念。

2、OSGi核心框架

 

    從OSGi核心框架示意圖可以看到,OSGi核心框架主要包括模塊層,生命周期層,服務(wù)層及安全層組成。完整的OSGi核心框架實(shí)現,還包括包管理服務(wù)(Package Admin)、啟動(dòng)層次服務(wù)(Start Level)、條件許可管理(Conditional Permission Admin)、權限管理(Permission Admin)及URL處理服務(wù)(URL Handlers)等框架服務(wù)。

    關(guān)于OSGi核心框架的詳細介紹請參考OSGi標準規范。

3、Equinox的OSGi Framework實(shí)現

    Equinox的OSGi框架實(shí)現包含在org.eclipse.osgi插件項目中。在發(fā)布的Eclipse環(huán)境中,用戶(hù)可以在Eclipse安裝目錄下的plugins目錄中找到該插件。該插件一般以 "org.eclipse.osgi_<版本號>.jar"的JAR文件形式打包。由于是從Eclipse3.0以前版本遷移到OSGi核心的緣故,目前的Equinox OSGi 實(shí)現中包含的代碼非常繁雜。

    在org.eclipse.osgi項目源代碼中用戶(hù)可以看到除了OSGi接口及框架實(shí)現外,還包括adaptor接口及默認的adaptor (defaultAdaptor),eclipse adaptor(eclipseAdaptor)實(shí)現,控制臺實(shí)現(console),附加服務(wù)擴展(supplement),Bundle組件解析 (resolver)和Bundle JAR文件校驗等功能。

    在實(shí)際使用中,用戶(hù)使用該Jar文件即可將OSGi框架運行起來(lái)(參考下文OSGi運行環(huán)境的搭建)。作為一個(gè)產(chǎn)品級的應用,往往存在很多系統級的參數可供用戶(hù)進(jìn)行配置以調整系統的運行行為而滿(mǎn)足不同環(huán)境的要求。同樣,Equinox運行環(huán)境也提供了大量的運行參數以供用戶(hù)選擇配置。配置Equinox運行環(huán)境參數的方式主要有兩種,一種是使用JVM環(huán)境變量;另一種方式是使用Equinox的配置文件(config.ini)。

    用戶(hù)在獲取到org.eclipse.osgi_<版本號>.jar文件后,可以嘗試以命令行的方式啟動(dòng)該Jar文件。該Jar文件的入庫主類(lèi)是:org.eclipse.core.runtime.adaptor.EclipseStarter。

                                        java -jar org.eclipse.osgi_3.3.1.R33x_v20070828.jar

    用戶(hù)會(huì )發(fā)現該程序執行后立即退出,控制臺上沒(méi)有任何輸出。這是因為不存在擁有可持續運行的代碼功能,框架啟動(dòng)后即退出主線(xiàn)程。下文中,我們會(huì )給出OSGi運行環(huán)境搭建的詳細過(guò)程。

4、搭建Equinox OSGi運行環(huán)境

4.1 原始的OSGi環(huán)境

    從Eclipse官方網(wǎng)站下載Equinox OSGi框架。將其下載到c:\equinox目錄中。本文中使用的Equinox版本為3.3.1。直接從命令行運行該jar文件時(shí)程序執行后會(huì )立即退出,為了更好的了解Equinox OSGi框架的特點(diǎn),我們在運行時(shí)添加JVM參數"osgi.console"。如下圖所示:

    執行"java -Dosgi.console -jar org.eclipse.osgi_3.3.1_R33x_v20070828.jar" 后,系統給出"osgi>"命令輸入提示。輸入"ss"命令后回車(chē),用戶(hù)可以看到上圖所示"Framework is launched."的信息。同時(shí),下方顯式了系統啟動(dòng)的Bundle列表,id列為該Bundle在OSGi運行環(huán)境中的唯一運行標識,State列為該Bundle當前的狀態(tài),Bundle列顯示了該Bundle組件的SymbolicName。

    此時(shí),OSGi框架已經(jīng)處于運行狀態(tài)。

    Equinox OSGi Console提供了很多命令用于與OSGi框架交互,用戶(hù)可以輸入任何非OSGi Console的內部命令字符,控制太將顯示Equinox Console提供的所有命令。如下下圖所示:

    執行"services"命令,用戶(hù)可以看到當前OSGi框架中發(fā)布的所有的服務(wù)信息。

4.2 以運行參數方式向OSGi環(huán)境中部署Bundle

下載Equinox SDK,將plugins目錄下的org.eclipse.osgi.services_3.1.200.v20070605.jar文件拷貝到C:\equinox目錄下。修改命令行運行參數如下:

            java -Dosgi.console -Dosgi.bundles=org.eclipse.osgi.services_3.1.200.v20070605.jar -jar org.eclipse.osgi_3.3.1_R33x_v20070828.jar

執行該命令,系統運行結果如下圖所示:

    從運行結果可以看出,JVM參數"-Dosgi.bundles= org.eclipse.osgi.services_3.1.200.v20070605.jar"將 org.eclipse.osgi.services組件部署到了OSGi運行環(huán)境中。此時(shí),該組件的狀態(tài)為"RESOLVED",即該組件被框架解析但沒(méi)有啟動(dòng)。如果用戶(hù)希望組件在加載的同時(shí)啟動(dòng)該組件,可以修改上述參數為:

                               -Dosgi.bundles=org.eclipse.osgi.services_3.1.200.v20070605.jar@2:start。

"@2"指明該組件的啟動(dòng)級別,":"后的"start"標明該組件在加載后啟動(dòng)。按修改后的參數重新執行命令輸出結果如下圖所示:

    從上圖可以看出,部署的org.eclipse.osgi.services組件在加載后被OSGi框架啟動(dòng),其狀態(tài)顯示為"ACTIVE"。

4.3以配置文件方式向OSGi環(huán)境中部署Bundle

    從上述部署Bundle的方式看出,當部署多個(gè)Bundle時(shí),使用JVM參數配置方式是不可取的。Equinox OSGi支持從配置文件中讀取加載的Bundle,下面我們演示如何使用配置文件部署多個(gè)Bundle。

    將Equinox SDK中plugins目錄下的org.eclipse.osgi.util_3.1.200.v20070605.jar文件拷貝到C:\equinox目錄下。

    Equinox OSGi提供了環(huán)境變量"osgi.configuration.area",該變量指明了配置文件config.ini的存儲路徑。下面我們在C:\equinox目錄下添加config.ini文件,并在該文件中添加如下內容:

       osgi.bundles=org.eclipse.osgi.services_3.1.200.v20070605.jar@2:start, org.eclipse.osgi.util_3.1.200.v20070605.jar

    修改OSGi框架啟動(dòng)命令行為:

 

java -Dosgi.console -Dosgi.configuration.area=. -jar org.eclipse.osgi_3.3.1_R33x_v20070828.jar

 

執行上述命令后的輸出結果如下圖所示:

5、使用Eclipse Launcher啟動(dòng)Equinox OSGi

    熟悉Eclipse IDE環(huán)境的用戶(hù)會(huì )注意到3.2版本(包括3.2)以前Eclipse安裝目錄下存在eclipse.exe和startup.jar兩個(gè)文件,用于啟動(dòng) Eclipse運行環(huán)境。從3.3版本開(kāi)始,Equinox將startup.jar拆分為兩個(gè)不同的Bundle(Fragment)放置在了 plugins目錄下。用戶(hù)可以從Equinox站點(diǎn)下載Launcher。下載后的3.3.1發(fā)布版本的Launcher包括下面兩個(gè)組件:

 

org.eclipse.equinox.launcher_1.0.1.R33x_v20070828.jar

 

org.eclipse.equinox.launcher.win32.win32.x86_1.0.1.R33x_v20070828   [目錄](méi)

 

    在進(jìn)行下述操作之前,我們需要調整C:\equinox的目錄結構,在該目錄下添加"configuration"和"plugins"兩個(gè)目錄,將所有的Bundle組件(包括目錄)轉移到plugins目錄下;將config.ini文件轉移到configuration目錄下,將Launcher包中的"eclipse.exe"文件拷貝到C:\equinox目錄下。此時(shí)的目錄結構如下圖所示:

plugins目錄下的內容如下圖所示:

修改命令行OSGi框架啟動(dòng)命令為:

 

                                      eclipse.exe -console -noexit

 

執行該命令后,在彈出的控制臺中輸入"ss"命令,輸出結果如下:

5.1使用eclipse.ini文件

    除了從命令行傳入eclipse.exe使用的運行參數外,用戶(hù)也可以配置與eclipse.exe的文件同名的ini文件存放eclipse.exe運行所需要的參數。用戶(hù)應將該ini文件放置在eclipse.exe所在的文件目錄下。

我們在C:\equinox目錄下添加eclipse.ini文件,在該文件中添加如下內容:

 

-console

-noexit

 

    直接點(diǎn)擊eclipse.exe程序圖標啟動(dòng)Equinox OSGi運行環(huán)境。程序運行結果如下圖所示:

    至此,Equinox OSGi完整的運行環(huán)境已經(jīng)搭建完成。如果用戶(hù)希望將新的Bundle發(fā)布到該環(huán)境中,只需要修改configuration目錄下config.ini文件,將新的bundle添加到osgi.bundles參數下。

6、常見(jiàn)問(wèn)題

    用戶(hù)在上述操作步驟中,會(huì )發(fā)現在configuration目錄下生成一些錯誤日志文件,如果用戶(hù)發(fā)現日志中出現以下內容:

java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).

at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:72)

at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)

at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)

at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)

at org.eclipse.equinox.launcher.Main.run(Main.java:1173)

用戶(hù)可以在config.ini文件中添加如下配置:

 

eclipse.ignoreApp=true

 

7、小結

    在上文中,我們詳細介紹了Equinox OSGi環(huán)境組成及其搭建過(guò)程。在下一篇文檔中,我們會(huì )對Equinox OSGi的運行參數做詳細的介紹,同時(shí)提供一種方式使得OSGi框架能夠自動(dòng)發(fā)現部署的OSGi bundle而不用頻繁修改配置文件。


正在加載中...
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
OSGI Equinox 環(huán)境搭建
初探Java企業(yè)級開(kāi)源框架OSGi
Eclipse插件開(kāi)發(fā)之基礎篇(4) OSGi框架
Equinox Launcher的啟動(dòng)配置參數
Eclipse3.0平臺(OSGI)
Eclipse 、 Equinox 和 OSGi
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久