2011年5月18日 星期三

OSGI Tutorial (1) - development environment(update for Eclipse 3.7)

在OSGi 的開發上, Container 的選擇有很多, Apache Felix , Knopflerfish , Eclipse Equinox ...等,這邊主要是針對使用Spring DM 開發OSGi app時的環境設定, 主要是使用Eclipse Virgo Server , Virgo 是從Spring dm Server轉過來的, 內部的OSGi container 是Eclipse Equinox , Web Server是Tomcat,

首先列出需要的東西:

Eclipse 3.6 Environment
JDK 1.5 or higher: download here
Eclipse Virgo Web Server : download here
Apache Maven 2.2.1 : download here
Eclipse Helios (3.6.2) : download here


Eclipse 3.7 Environment
JDK 1.5 or higher: download here
Eclipse Virgo Web Server : download here
Apache Maven 2.2.1 : download here 





Eclipse 3.6 Env



1: 安裝JDK 1.5 or higher, 下載JDK 1.5或以上的版本,安裝好確認。

2: 安裝Apache Maven 2.2.1 , 解壓縮到C:\apache-maven-2.2.1 (自訂) , 設定環境變數,在PATH中加入C:\apache-maven-2.2.1\bin, 開始>執行>cmd >打入mvn -version 查看是否設定成功, 會列出Java version,maven version...等資訊

3: 安裝Eclipse Helios (3.6.2) , 然後下面是需要安裝的Eclipse Plugin ,
SpringSource Tool Suite(STS) eclipse plugin
(UpdateSite: http://dist.springsource.com/release/TOOLS/update/e3.6 ),
最新版能在 here 找到

(如果本身Eclipse 有安裝Spring IDE, 但是沒有dm Server Tools的部份,可以試著單純安裝dm Server Tools的部份,如果不行的話請移除所有Spring IDE plugin再重新安裝。)

在Eclipse 裡面的 Help > Install New Software -> 新增STS 的UpdateSIte Location , 會看到以下的List,
安裝的時候記的不要全選,全選安裝有時會發生一些error, 像是not recognizing dependency ...之類的, 建議從Spring IDE Core/Extendsions/Integrations 安裝,再安裝其他的, 本人在安裝的時候發生錯誤是一個一個慢慢安裝(汗), 2.5.x安裝時有發生過, 2.6.x不確定,總之就是如此。

4: 安裝The Maven Integration for Eclipse (m2eclipse, Eclipse m2e)
(m2eclipse Core Update Site: http://m2eclipse.sonatype.org/sites/m2e )

然後設定Maven 的Install , 預設embedded 是3.0 , 換成我們安裝的2.2.1 , 如下圖:

4:安裝Eclipse Virgo Server , 下載virgo-web-server-2.1.1.RELEASE.zip , 解壓縮到C:\Eclipse-Virgo-WebServer(自訂), 在Eclipse 的windows > Perferences 設定Server ,如下圖:

然後把Server view 打開, windows > Show View -> server, 新增Eclipse Virgo Server , 如下圖:

在Server 上點2下滑鼠右鍵,可以看到下面的畫面, 有一些設定跟tools,
OverView 可以設定Runtime Environment, port ...等,

Repository 的部份, 左邊的Search 可以尋找需要的Library , 如jdom, 會從 SpringSource Enterprise Bundle Repository 尋找library, 但是版本不一定是最新的, 而且Spring因為正轉向Eclipse Virgo Project, 在還沒完全轉移前有說明local 的index 不會更新, 有需要還是去上面的網站Search, 會有比較新的library 。右邊是目前Eclipse Virgo Server 已安裝的Library 。

5: 打開org.eclipse.virgo.kernel.userregion.properties , 在C:\Eclipse-Virgo-WebServer\config 裡面, 修改下面的註解部份,將註解拿掉 ,這樣在Server 啟動後可以透過telnet localhost 2401 連到osgi consol

Eclipse Virgo 2.1.x version
#osgi console support
#osgi.console=2401
server start 後, 在cmd輸入telnet localhost 2401後打上ss , 可以列出目前有安裝的bundle

Notes: Update 2011/08/02 , for 3.0.x RC , 原本的console 改成Apache gogo,在使用上比較方便,
打開osgi.console.ssh.properties,enabled設成true , 使用putty 通過ssh連線,defaul acct/passwd 為equinox/equinox , 第一次登入會要設定新帳號,密碼, 新的console 如下,差別在於可以用tab 快速切換command



Eclipse 3.7 Enviroment


首先安裝Eclipse 3.7
Eclipse 3.7 : download here

然後安裝所需要的Eclipse Pluging, 下面是需要的plugin

SpringSource Tool Suite for Eclipse Indigo(3.7)
Virgo IDE Tooling (原Spring bundlor)
M2Eclipse

首先安裝STS for eclipse 3.7 , 點選Help > Eclipse Marketplace > type "STS" and search, 可以看到下面畫面


然後是安裝M2Eclipse ,
Maven Integration for Eclipse Update Site - http://m2eclipse.sonatype.org/sites/m2e

這邊我不使用Eclipse MarketPlace裡面的m2eclipse, 因為原本的m2eclipse project 從 sonatype project 轉換到 Eclipse project 使用上會有一些小問題,像是Maven init 時會download and update local index ,有時會出一些問題(download的檔案是gz,會fail), 所以請使用help > install new software > type M2eclise updatesite , 如下圖



再來是安裝Virgo IDE Tooling , 可以參考Eclipse Virgo wiki page 的說明 Virgo IDE Tooling page
一樣help > install new software > 輸入update site : http://download.eclipse.org/virgo/milestone/IDE 如下圖


Spring bundlor 已經轉移到Eclipse Virgo tools, 所以在一些eclipse project 的設定會有些不同, 如下面的installed facet , 跟project natures 的不同

原Spring source :
org.eclipse.wst.common.project.facet.core.xml
<installed facet="com.springsource.server.bundle" version="1.0"/>

.project
<nature>com.springsource.server.ide.facet.core.bundlenature</nature>

Eclipse Virgo tools
org.eclipse.wst.common.project.facet.core.xml
<installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>

.project
<nature>org.eclipse.virgo.ide.facet.core.bundlenature</nature> 

不過只影響Eclipse Project的部份, 如果有用舊版的Spring bundlor 轉換到新版本的話要注意

到這邊就環境的部份就設定ok

Eclipse Virgo Server 的設定有很多, 可以參考官方文件
Eclipse virgo server documentation : HTML Doc LINK







Reference :
Eclipse Virgo Documentation : Link
Spring Dynamic Modules Reference Guide : Link
Maven Getting Started Guide : Link
SpringSource Tool Suite : Link
Eclipse Virgo wiki Page - Virgo/Tooling : Link

沒有留言:

張貼留言