Apache Felix
Felix是一個OSGi版本4規范的Apache實現。
OSGi是一個基於Java的服務平台規范,其目標是被需要長時間運行、動態更新、對運行環境破壞最小化的系統所使用。有許多公司(包括Eclipse IDE,它是第一個采用OSGi技術的重要項目)已經使用OSGi去創建其微內核和插件架構,以允許在運行時刻獲得好的模塊化和動態組裝特性。幾個其他項目如Apache Directory、Geronimo、Jackrabbit、Spring以及JOnAS也都正在轉向采用OSGi。
目前Felix已經實現了OSGI R4規范中的大部分內容。
felix的官方地址為
http://felix.apache.org/site/index.html
想下載felix及它的子工程可以到
http://felix.apache.org/site/downloads.cgi
下載最新版本的felix
安裝插件,插件的安裝地址是
http://www.ops4j.org/pax/eclipse/update
Felix環境配置
下載felix的最新版本,並且將最新的felix解壓到本地路徑。
新建一個Java工程
工程名為felix,這個工程名可以隨意設置
選擇下一步,修改輸出路徑
復制解壓后的felix目錄中的內容到工程中。完成后的目錄如下所示:
將felix.jar添加到工程的目錄中,選擇Build Path->Add to Build Path
然后配置Run Configuration
修改配置
點擊Run,就可以運行felix,啟動后結果如下:
發布應用到Felix中
新建插件工程HelloFelix
完成后修改Activator類,加入兩段輸出:
1 /* 2 * (non-Javadoc) 3 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) 4 */ 5 public void start(BundleContext bundleContext) throws Exception { 6 Activator.context = bundleContext; 7 System.out.println("hello felix應用啟動!"); 8 } 9 10 /* 11 * (non-Javadoc) 12 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) 13 */ 14 public void stop(BundleContext bundleContext) throws Exception { 15 Activator.context = null; 16 System.out.println("hello felix應用停止!"); 17 }
完成后選擇Export,選擇Plug-in Development的Deployable plug-ins and fragments
選擇要導出的插件,Destination選項卡的Directory選擇Felix環境的物理地址,導出后,會在Felix工程的根目錄自動創建一個felix-cache和plugins目錄,bundle會默認導出這個目錄,單擊Finish按鈕。
點擊完成,得到結果,然后到工程中已經搭建好的環境felix項目中進行刷新,可以看到多出pluglins目錄
環境和工程都已經完成,下面安裝和卸載一下工程在felix中
啟動Felix,在Console中先使用install命令安裝bundle,接着使用start命令啟動bundle。
啟動的時候,start命令后接着那個bundle的啟動ID就可以啟動bundle。
停止的時候,stop命令后接着那個bundle的ID就可以停止bundle。
最后卸載工程HelloFelix,使用命令uninstall