引言
執行活動
添加新的資源
修改資源
重命名資源
刪除資源
結束語
本系列文章是關于使用 IBM Rational ClearCase 進行 WebSphere Studio 團隊開發的。作為該系列的第 3 部分,本文包括統一變更管理、開發人員活動和加入項目。
引言
本系列文章的第 2 部分描述了 IBM? Rational? ClearCase? 統一變更管理(UCM)和開發人員的角色,特別是關于加入項目的 UCM 開發人員操作。本文進一步描述了在 UCM 過程中開發人員的角色,著重描述關于 執行活動 的 UCM 開發人員操作。 在此處討論中使用 IBM WebSphere? Studio Application Developer V5.1.1 (下文中簡稱 Application Developer)。
圖 1 概括了 UCM 過程中,開發人員角色的操作:
圖 1. 開發人員角色。
執行活動
作用(contribution)在 ClearCase UCM 術語中意味著執行和交付活動?;顒涌梢园ǜ恼粋€ bug 或者編寫一個新的功能,還可能包括跨越一個或多個項目組件對一個或多個源構件進行修改。在 Java? 和 Application Developer 上的 J2EE 開發術語中,操作可能包括添加、刪除、修改或重命名配置文件、類、包或工作區項目。
要查看 ClearCase Adapter 的首選項,請選擇 Window => Preferences => Team => Rational ClearCase 。 缺省值是有幫助的,特別是對于 UCM 操作更是如此。本文使用這些值來描述執行活動中所涉及的操作。
添加新的資源
添加新的類
向 Application Developer 項目中添加一個新的類,這是當執行一個活動時的特有操作。 在有源代碼控制的條件下和沒有源代碼控制的條件下,向 Application Developer 項目中添加 Java 類的過程沒有什么不同。然而,當向項目環境中添加某種類時,可能會出現一些有趣的情形,即可能會影響受源代碼控制的其他構件。特別是,添加同時也是 J2EE 構件(比如:servlet,EJB 類或接口)的任何類,都會影響其他 J2EE 構件。當您向項目中添加 servlet 或 EJB 類時,Application Developer 自動地更新部署描述符和其他配置文件。
當您向 Web 項目(模塊)中添加 J2EE 構件(例如 servlet)時, Application Developer 直接更新部署描述符 web.xml,包括此 servlet 的名字、此 servlet 所使用的所有初始化參數、以及所有 URL 映射。被 Application Developer 自動更新的部署描述符和其他文件,如果處于源代碼控制之下,這對開發人員將是一個難題。幸運的是,ClearCase Adapter 提供了一個方便的首選項,使得 ClearCase 自動檢出(check out)必要的文件,以便 Application Developer 能互不干擾地更新它們。在下圖 2 中, 當檢入(checked in)文件被內部的、非交互的編輯器編輯時,缺省的首選項將被設置成 Automatically check out:
圖 2. Rational ClearCase Team Preferences.
當向項目中添加 J2EE 構件(例如 servlet)時, Application Developer 會更新部署描述符和其他文件,這個事實并不意味著您以后不能再編輯這些文件。為了改變初始值或者為新加入的 servlet 配置一些其他更高級的部署設置,需要以后對這些文件進行編輯。WebSphere Application Server 有其他一些部署設置,用來對應那些超出了基本的 J2EE 要求和規范的功能。因而 WebSphere 為部署在其上的應用程序加入了更多的值。對于 Web 項目來說,這些額外的設置保存在綁定文件(ibm-web.bnd.xmi)和擴展文件(ibm.web-ext.xmi)中。當添加或刪除 servlet 時,Application Developer 也將直接更新這些文件。
您可以控制創建 servlet 時 Application Developer 對部署描述符和其他文件的自動更新。圖 3 顯示了 File=>New=>Servlet 向導中的最后一頁,此處向 web.xml 自動添加基本部署信息的復選框是缺省選中的:
圖 3. 新建 servlet 向導中的最后一頁。
點擊了圖 3 顯示的 New=>Servlet 向導上 Finish 按鈕后的結果,顯示在下圖 4 中。 ClearCase Adapter 檢測到文件將要被 Application Developer 直接更新后,將通過 Check Out Elements 對話框提示您。通過這個對話框,您可以執行 ClearCase 來檢出被 Application Developer 自動更新的那些文件。
圖 4. ClearCase 請求運行對 Application Developer 直接更新的那些文件進行檢出。
即使 web.xml 以及其他配置文件需要被檢出以確定 Application Developer 對其進行的更新,ClearCase UCM 仍需要您將對這些文件的檢出同具體活動相關聯。因此,如下圖 5 所示,使用提示對話框使您能指定將要和更新 web 部署描述符、擴展和綁定文件相關聯的活動:
圖 5. 選擇活動的提示對話框。
因而,在 ClearCase 已經檢出(Application Developer 已經更新)了 web.xml 和相關文件后,實際的 servlet 類將被創建并加入 Web 項目。
如圖 6 所示,Application Developer ClearCase Adapter 還有另外的首選項,其方便的缺省值使得 ClearCase 能夠識別新的資源。在這種情況下,servlet 被加入項目中:
圖 6. 向項目中加入新的資源時 ClearCase 首選項的設置。
根據上圖 6 所示的缺省首選項,ClearCase 將檢測項目中新創建的文件。然后自動詢問您是否要把新的資源加入源代碼控制中去:
圖 7. 向源代碼控制中加入元素的對話框。
方便的是,如果您計劃在將新的構件加入源代碼控制后直接使用它,可以選擇 Keep checked out,如上圖 7 所示。當選擇 OK 后,將彈出和上圖 5 相同的對話框再次提醒您,因為雖然當這個對話框第一次出現時,現有的文件被 Application Developer 自動更新,但是這些更新需要和一個活動相關聯。這個對話框需要第二次出現,是因為向源代碼控制中添加新 servlet 類的操作需要和一個活動相關聯。
添加新的包
在開發階段,需要創建 Java 包來容納各種各樣的源類。創建新包時,將在 Application Developer 項目所在的主目錄下創建新的空子目錄。在團隊開發的環境中,這將意味著因為添加多個以圓點分隔的組件包時所創建的所有新的子目錄將也被加入源代碼控制中去。
在下圖 8 中,包 org.test.sample 被加入 J2EEWeb 項目的源代碼文件夾中:
圖 8. 新建 Java 包的對話框。
對于以圓點分隔的組件包 org.test.sample 而言,相應地需要以適當的層次結構創建 3 個新的子目錄。如下圖 9 所示,ClearCase Adapter 將檢測新創建的子目錄然后提示您將它們添加到源代碼控制中去:
圖 9. 向源代碼控制中加入元素的對話框。
添加新的資源
一個典型的 J2EE 應用程序可能由一些模塊組成,包括一個或多個 Web 模塊、EJB 模塊,應用程序客戶端模塊。在對以上每一個模塊進行開發時,必須創建一個相應的 Application Developer 項目(Dynamic Web 項目、EJB 項目或應用程序客戶端項目)并將其和主企業應用程序項目相關聯。
在現有的企業應用程序項目處于源代碼控制的條件下,創建新的模塊項目并將兩者關聯在一起,這不會有什么大的影響。每一個模塊項目都需要明確地加入到源代碼控制中。然而,在明確地將模塊項目加入到源代碼控制之前,當創建模塊項目本身,以及將它與已經處于源代碼控制下的現有企業項目相關聯時,關聯的企業應用程序項目的部署描述符(application.xml)和其他相關元數據文件將被 Application Developer 自動更新,以反映一個新的模塊項目已經和主企業模塊項目相關聯這一事實。圖 10 描繪了這樣的事實,即 ClearCase 提示由于 Application Developer 直接進行了更新,您需要檢出部署描述符和其他配置文件:
圖 10. 檢出元素的對話框。
最后,新創建的模塊項目需要明確地添加到源代碼控制中。要向源代碼控制中添加項目,在相應的模塊項目上點擊鼠標右鍵然后選擇 Team=>Share Project。
修改資源
編寫新的代碼和修改現有構件中的現有代碼一般會占用很大一部分開發時間。然而,Java 代碼并不是您開發的 J2EE 項目唯一的部分。越來越多的開發人員、分析人員和設計人員花費更多的時間在開發設計模塊和數據模塊,更新部署描述符和其他配置文件(大部分基于 XML)上。
幸運的是,大部分執行活動中的普通操作是最容易完成的。要更新現有的構件,需要從 Team 上下文菜單檢出必要的構件,您需要選擇相應的構件然后從彈出式菜單中選擇 Team=>Check Out。在對相關的資源進行修改以后,您需要選擇相應的構件,然后從彈出式菜單中選擇 Team => Check In。
在 Check Out/Check In 操作描述的基礎上,您可以得出這樣的結論:Application Developer 中的 Rational ClearCase 工具在對軟件構件進行改動時,在為 pessimistic locking 做準備。SCM 提供商所使用的其他方法是 optimistic locking,這將使得多個開發人員能夠對同一個構件進行并發的改動。在極大的程度上,低級的 ClearCase 和 ClearCase UCM 都使用 pessimistic locking。通過修改特定的 check-in/checkout 文件鎖定操作以使您能夠進行無限制(unreserved)的檢出操作,這使此模塊中增加了很大的靈活性。無限制的檢出使得多個開發人員能夠檢出同一個文件并使得改動能夠并發進行。然而如果開發人員執行的第一個且僅有第一個檢出操作是有限制的(reserved)檢出,所有執行后續無限制檢驗操作的開發人員將不能在最先檢出文件的開發人員之前檢入文件。因此,執行無限制檢驗的開發人員,將能夠更靈活的使用最有利的 SCM 工具,可以訪問可能要被更改的文件。但同時這也使得在交付活動中包含對團隊工作區域進行的改動時,如何合并互相沖突的改動將成為要面臨的難題。幸運的是,ClearCase 提供了一個圖形化的合并工具以便于解決這個問題。
選擇 Window => Preferences => Team => Rational ClearCase 可以看到 ClearCase 首選項。點擊 Advanced Options 的結果如圖 11 所示,您可以看到無限制檢出文件的選項。
圖 11. Rational ClearCase 選項。
重命名資源
對于像源文件、包或 Application Developer 項目這樣的構件可以直接重命名??梢韵衿匠D菢又孛麡嫾?,然后 ClearCase 將會識別新的名字。您也可以在重命名構件之前檢出它。然而,如果您沒有這樣做,ClearCase 將自動檢出。
刪除資源
對于像源文件或包這樣的構件也可以直接刪除??梢韵衿匠D菢觿h除構件,然后 ClearCase 將會發現到構件已經被刪除。然而,您不能刪除處于源代碼控制之下的 Application Developer 項目。要刪除它,您有 2 個選擇:項目集成器(Project Integrator)或 ClearCase 管理員可以刪除這個項目。這是一個復雜的流程,或者,更簡便的方法是他們可以將項目鎖定為廢棄(obsolete)狀態。
結束語
本文描述了 4 個主要 UCM 開發人員角色操作的第二個——執行活動。這包括向項目中添加資源、修改現有的資源和重命名以及刪除資源。本系列以后的文章將討論項目設置以及其他 2 個 UCM 開發人員角色操作:交付活動和重設工作區基線。
原文轉自:http://www.anti-gravitydesign.com