WEB开发网
开发学院软件开发Java 使用 HTTP 网络技术构建灵活的 Rational ClearCas... 阅读

使用 HTTP 网络技术构建灵活的 Rational ClearCase系统,第 2 部分: 用 Web Service 查询 RationalClearcase 中的 UCM 项目信息

 2009-12-27 00:00:00 来源:WEB开发网   
核心提示: 图 3. SOAP Web Service 服务组件结构图查看原图(大图)UCM cleartool 查询程序UCM cleartool 查询程序使用 Java 语言开发 , 程序类位于包 com.cn.ibm.csdl.ecm.build.nerveCell.util.clearcaseUCM


图 3. SOAP Web Service 服务组件结构图
使用 HTTP 网络技术构建灵活的 Rational ClearCase系统,第 2 部分: 用 Web Service 查询 RationalClearcase 中的 UCM 项目信息

查看原图(大图)

UCM cleartool 查询程序

UCM cleartool 查询程序使用 Java 语言开发 , 程序类位于包 com.cn.ibm.csdl.ecm.build.nerveCell.util.clearcaseUCMQuery 中 , 由查询工具类 ClearcaseUCMQueryUtil 和一系列代表 UCM 对象数据的 JavaBean 组成。当用户发起某一 UCM 查询操作时 , SOAP server 程序调用 ClearcaseUCMQueryUtil 中的相应 Java 方法。ClearcaseUCMQueryUtil 首先根据输入参数生成 cleartool 命令 , 之后使用操作系统进程调用组件执行该命令并在命令完成后解析返回数据 , 最后将解析后的数据使用 UCM 对象数据 JavaBean 封装并返回给 SOAP server 程序。清单 3 是 ClearcaseUCMQueryUtil 中的 getCompareBaselineObjWithPredecessor 方法 , 它比较指定的 baseline 和前一个基线的版本变化 , 并将结果封装在 BaselineCompareInfoObj JavaBean 中。ClearcaseUCMQueryUtil 中的其他的方法请参考本文附件中的 eclipse 项目工程。


清单 3. getCompareBaselineObjWithPredecessor 方法
public static BaselineCompareInfoObj getCompareBaselineObjWithPredecessor 
(String baselineName,String vobName){ 
String cleartoolPath="/opt/rational/clearcase/bin/cleartool"; 
String commandString= 
cleartoolPath+" diffbl -predecessor baseline:"+baselineName+"@"+vobName; 
java.util.List resultList=runSingelRemoteCommand(commandString); 
if(resultList==null){return null;} 
String returnBaselineInfoHead=(String)resultList.get(0); 
if(!returnBaselineInfoHead.startsWith("Comparing the following:")){return null;} 
BaselineCompareInfoObj currentBaselineCompareInfoObj=new BaselineCompareInfoObj(); 
int differencesStart=resultList.indexOf("Differences:")+1; 
String[] baselinesArray=new String[2]; 
baselinesArray[0]=(String)resultList.get(1); 
baselinesArray[1]=(String)resultList.get(2); 
currentBaselineCompareInfoObj.setBaselines(baselinesArray); 
int differencesNum=resultList.size()-differencesStart; 
String[] dArray=new String[differencesNum]; 
for(int i=0;i<differencesNum;i++){ 
dArray[i]=(String)resultList.get(i+differencesStart); 
} 
currentBaselineCompareInfoObj.setDifferences(dArray); 
return currentBaselineCompareInfoObj; 
} 

上一页  4 5 6 7 8 9 10  下一页

Tags:使用 HTTP 网络技术

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接