該文檔是SCA Java項目的開發者指南
l 一般性指南
l 獲取源代碼
l 配置你的開發環境
l 構建二進制和源代碼發布包
l 導入SCA模塊到你的開發IDE環境中
l 理解SCA代碼路徑
l 編碼指南
l 測試
l Maven構建結構
l 報告遇到的問題和提供補丁
l 開發提示
Ø 為Webapp樣例代碼生成Eclipse WTP Web工程
Ø 為樣例中的程序生成ant的依賴關系
一般性指南
歡迎來到Tuscany SCA java子工程。我們期待你的參與并努力幫助你。在郵件列表中問你問題是非常輕松的。
這里有些我們這個項目中所使用的一般原則
l Java SCA子項目的目的是為了提供一個基于SCA的企業級的服務基礎設施
l Tuscany SCA不僅僅是一個參考的實現。我們鼓勵基于SCA原則上的創新。我們所做的許多工作是對規范提供一個反饋。
l Java SCA基礎設施應該提供靈活性和可選擇性。它不應該規定死編程模型而是應該支持多種編程模型。
l Java SCA基礎設施是非常模塊化的,高度的可擴展性以便用戶可以定制它來適合自己的需求。
獲取源代碼
Java SCA項目的Subversion 庫的地址:https://svn.apache.org/repos/asf/incubator/tuscany/java/sca
也可以在地址:http://svn.apache.org/viewvc/incubator/tuscany/java上在線查看。
任何人都可以check out出代碼。你只需要指定用戶名和密碼以便更新subversion庫,當然只有Tuscany提交者才有權限做這些。
從Subversion里check out代碼
使用如下的命令:
Svn checkout http://svn.apache.org/repos/asf/incubator/tuscany/java/sca
提交修改到Subversion
任何的Tuscany提交者在svn.apache.org上都應該有一個帳號。在你能提交之前,你需要設置你自己的Subversion的密碼??梢缘顷懙?/span>svn.apache.org,然后運行svnpasswd命令。
一旦設置了密碼,你就可以用下面的命令提交:
svn commit
如果Subversion沒有給出你的用戶名,你可以顯式地告訴它:
svn –username <name> commit
Subversion會提示你輸入密碼,一旦你輸入后,它將記住密碼。注意你用svnpasswd配置的密碼不是你的shell或其他的密碼。
配置開發環境
首要條件:
Java SCA要求如下:
l JDK 5.0+ (J2SE 1.5.0+)
l Apache Maven(2.0.5)(注意:現在使用Maven的版本高于2.0.5可能會在構建Tuscany時出現問題,查看TUSCANY-1676)
l Subversion(1.2+)
構建樹結構
構建樹有利于模塊化開發和發布。Java SCA當前是使用如下的模塊分層:
-java
|-- sca
|-- demos SCA 演示應用程序
|-- distribution SCA 發布程序
|-- itest SCA 集成測試
|-- modules SCA 實現的各個模塊 (core, runtimes, contribution, extensions等等)
|-- samples SCA 樣例程序
|-- tools SCA 工具 (Eclipse插件, wsdl2java, java2wsdl等等)
|-- tutorial SCA 教程
自頂向下的構建(推薦方法)
Check out出所有的java源代碼
svn checkout http://svn.apache.org/repos/afs/incubator/tuscany/java
構建SCA源代碼非常簡單
cd java/sca
mvn
即使你由一個空的Maven本地庫,它也是會工作的。它總是會有效的,但是當你第一次構建Tuscany項目的時候會下載許多依賴的庫,這個會花費比較長的時間,當然也有可能在獲取依賴庫的時候失敗。
在從遠程的Maven庫下載的時候會發生偶然性的問題,所以假如mvn失敗是與網絡相關的話,只要再重試一遍就可以解決問題了。
主干代碼有時候會SNAPSHOT依賴,該依賴從你的本地庫獲取時間。所以如果你用下列命令升級了SNAPSHOT jar,你會看到odd構建失敗信息。
mvn –U
一旦你做了自頂向下的構建,你的本地maven庫就組裝好了,你能用maven的離線選項加速構建的過程
mvn –o
構建二進制和源代碼發布包
二進制和源代碼發布包是在distribution文件夾下運行maven命令創建的,如下:
cd java/sca/distribution
mvn clean install –o
發布包工件生成在distribution文件夾下的target文件夾下。
導入SCA模塊到你的開發IDE環境中
使用Eclipse
假如這是你第一次用maven m2本地庫用于你的workspace(Eclipse里的工作空間),你要告知你的Eclipse工作空間的目錄路徑,命令如下:
mvn –Declipse.workspace=[path-to-eclipse-workspace] eclipse:add-maven-repo
為了生成必要的項目文件,你需要使用maven的eclipse插件
cd java/sca
mvn –Peclipse eclipse:eclipse
現在,啟動你的Eclipse IDE,選擇FileàImportàExisting projects into Workplace,然后選擇SCA的啟始目錄(例如 java/sca),然后按Finish,就會導入所有的SCA模塊到Eclipse中了。
理解SCA的代碼路線
這里有一個關鍵方法/函數的概述可以幫助你入門SCA java開發。
(請看我翻譯的SCA編碼入門)
編碼指南
開發java SCA有些簡單的指導原則:
l 基本的編碼風格在Sun Java編碼標準里描述了,但主要是要保證與你正在升級的代碼保持一致性。
l 總是在所有的文件包含Apache License的頭信息(源代碼和象xml文檔的資源文件都包含)
l 包含checkin信息的描述日子信息,比如“修復了某某某問題”
命名規范增強代碼一致性
文件夾名稱:都使用小寫和-破折號
n Maven的工件id = Tuscany-<文件夾的名字>
包名:模塊中的包名應該包含模塊名,以便很容易地在代碼樹上定位源代碼。例如,java/sca/module/implementation-java就在包org.apache.tuscany.implementation.java.*里。
測試
Tuscany使用普通的junit測試用例來做單元和集成測試,下面就是一個例子,它可以作為寫新的測試用例的一個模板來使用。它演示了在你的測試用例中如何加載Tuscany SCA運行時,同時因為他們是基于junit的,你能選擇從IDE或者從Maven啟動。
/**
* Description of your test case and necessary details you find necessary
*/
public class YourTestCase extends TestCase {
private SCADomain domain;
private YourService service;
@Override
protected void setUp() throws Exception {
domain = SCADomain.newInstance("YourTest.composite");
service = domain.getService(YourService.class, "serviceName");
}
@Override
protected void tearDown() throws Exception {
&nb%2