ractional clearcase 查询活动变更集问题
用的是cmapi。如果是用clear tool 是很简单的,但没有管理员权限,没有使用到。
已经可以查询到活动了,能查询活动的属性,但不知道如何查询到活动的变更集,在网上找了很多也没找到好的资料,模糊知道好像是放到clear quest 的服务器上的了,但cc remote client能够查询到的,那我们也能查询到吧。
搞了几天不得不放弃了。现在把写成的代码贴出来,求大神指点。
一些资料也贴出来吧
http://www.ibm.com/developerworks/cn/rational/r-cn-cmapi/
https://publib.boulder.ibm.com/infocenter/cqhelp/v7r1m0/index.jsp?topic=/com.ibm.rational.team_api_cq_tut.doc/topics/teamapi_cq_settingup.htm
https://publib.boulder.ibm.com/infocenter/cchelp/v7r1m0/index.jsp?topic=/com.ibm.rational.team_api_cc_tut.doc/topics/teamapi_cc_full_sample.htm
http://pastebin.com/3ju4yYGs
http://space.itpub.net/14780914/viewspace-674292
http://www.google.com.hk/search?hl=en&newwindow=1&safe=active&biw=1280&bih=577&noj=1&q=cm+api+CcActivity&oq=cm+api+CcActivity&aq=f&aqi=&aql=&gs_l=serp.3...3140.3140.0.3622.1.1.0.0.0.0.0.0..1.0...0.0.pLBowUhubU8
http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14442789
https://publib.boulder.ibm.com/infocenter/cchelp/v7r1m0/index.jsp?topic=/com.ibm.rational.team_api.doc/topics/c_location.htm
https://publib.boulder.ibm.com/infocenter/cchelp/v7r1m0/index.jsp?topic=/com.ibm.rational.team_api.doc/topics/c_resources.htm
http://www.ibm.com/developerworks/rational/library/09/continuousintegrationrationalclearcaseremoteclient/
http://blog.naver.com/PostView.nhn?blogId=lateone&logNo=66450244
http://a.scmlife.com/thread-26151-1-1.html
package com.chruan.clearcase.cm.client;
import java.io.File;
import javax.wvcm.ProviderFactory;
import javax.wvcm.WvcmException;
import javax.wvcm.PropertyRequestItem.PropertyRequest;
import javax.wvcm.ProviderFactory.Callback;
import com.ibm.rational.wvcm.stp.StpLocation;
import com.ibm.rational.wvcm.stp.StpProvider;
import com.ibm.rational.wvcm.stp.StpLocation.Namespace;
import com.ibm.rational.wvcm.stp.StpProvider.Domain;
import com.ibm.rational.wvcm.stp.cc.CcActivity;
import com.ibm.rational.wvcm.stp.cc.CcProvider;
import com.ibm.rational.wvcm.stp.cc.CcView;
public class Connection {
public final static String serverUrl = "http://ccweb.XXXX.com.cn/TeamWeb/services/Team";//cc服务器
private static final String VIEW_ROOT = "D:\\CCWORK\\ex_Dev_RMSS_2012_9月月度版本";//view文件夹
public static void main(String[] args) {
try {
Connection op = new Connection();
String username = "ex_username";
String password = "ex_password";
Callback callback = new MyAuthCallback(serverUrl, username,
password);
// StpProvider p = (StpProvider)ProviderFactory.createProvider(CqProvider.CQ_ONLY_PROVIDER_CLASS, callback);
// p.cqProvider().setServerUrl(serverUrl);
// doCQ(p);
// p.terminate();
StpProvider provider = (StpProvider) ProviderFactory
.createProvider(CcProvider.CC_ONLY_PROVIDER_CLASS, callback);
provider.ccProvider().setServerUrl(serverUrl);
// op.doActivity(provider);
// op.doView(provider);
// op.doMyActivity(provider);
op.doActivity2(provider);
// CcStream stream = ccProvider.ccStream(viewLocation);
// PropertyRequest propertyrequest1 = new PropertyRequest(
// CcStream.ACTIVITY_LIST
// );
// stream = (CcStream)stream.doReadProperties(propertyrequest1);
// List<CcActivity> listOfAct = stream.getActivityList();
// for(int i=0;i<listOfAct.size();i++){
//
// CcActivity ccActivity = listOfAct.get(i);
//
// PropertyRequest activityPropertyRequest = new PropertyRequest(
// CcActivity.COMMENT,CcActivity.ID,CcActivity.DISPLAY_NAME,CcActivity.LATEST_VERSION_LIST,CcActivity.CREATOR_DISPLAY_NAME
// );
//
// ccActivity =
// (CcActivity)ccActivity.doReadProperties(activityPropertyRequest);
// System.out.println(ccActivity.getDisplayName());
// System.out.println(ccActivity.getId());
// System.out.println(ccActivity.getCreatorDisplayName());
// }
//
// CcActivity ccact = ccProvider.ccActivity(viewLocation);
// System.out.println(ccact);
//
// // OutputStream content = System.out;
// PropertyRequest feedback = new PropertyRequest(
// CcActivity.COMMENT,CcActivity.ID,CcActivity.DISPLAY_NAME,CcActivity.LATEST_VERSION_LIST,CcActivity.CREATOR_DISPLAY_NAME
// );
//
// ccact =(CcActivity) ccact.doReadProperties(feedback);
// System.out.println(ccact.getDisplayName());
// content.flush();
// System.out.println(ccact.getActivityCheckoutList());
// System.out.println(view);
// Activity activity = view.getActivity();
// System.out.println(activity);
provider.terminate();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
private static void doCQ(StpProvider p) {
// TODO Auto-generated method stub
System.out.println(p);
}
private void doActivity2(StpProvider provider) {
// TODO Auto-generated method stub
try {
StpLocation actacivityLoc = provider
.stpLocation("activity:edit@/vobs/PV_OPS");
CcActivity act = provider.ccProvider().ccActivity(actacivityLoc);
System.out.println(act);
PropertyRequest activityPropertyRequest = new PropertyRequest(
CcActivity.COMMENT, CcActivity.ID, CcActivity.DISPLAY_NAME,
CcActivity.LATEST_VERSION_LIST,
CcActivity.CREATOR_DISPLAY_NAME,
CcActivity.WORKSPACE_FOLDER_LIST);
act = (CcActivity) act.doReadProperties(activityPropertyRequest);
System.out.println(act.getDisplayName());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
private void doView(StpProvider provider) {
// TODO Auto-generated method stub
try {
CcProvider ccProvider = provider.ccProvider();
File viewRoot = new File(VIEW_ROOT);
StpLocation viewLocation = provider.filePathLocation(
StpProvider.Domain.CLEAR_CASE, viewRoot);
CcView view = provider.ccProvider().ccView(viewLocation);
System.out.println(view);
// PropertyRequest wantedPro = new PropertyRequest(
// CcView.STREAM.nest((CcStream.DISPLAY_NAME)));
PropertyRequest wantedPro = new PropertyRequest(CcView.DISPLAY_NAME);
view = (CcView) view.doReadProperties(wantedPro);
System.out.println(view.getDisplayName());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
private void doMyActivity(StpProvider provider) {
// TODO Auto-generated method stub
try {
CcProvider ccProvider = provider.ccProvider();
File viewRoot = new File(VIEW_ROOT);
StpLocation viewLocation = provider.filePathLocation(
StpProvider.Domain.CLEAR_CASE, viewRoot);
CcActivity view = provider.ccProvider().ccActivity(viewLocation);
System.out.println(view);
PropertyRequest wantedPro = new PropertyRequest(
CcActivity.DISPLAY_NAME);
view = (CcActivity) view.doReadProperties(wantedPro);
System.out.println(view.getDisplayName());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
private void doActivity(StpProvider provider) {
// TODO Auto-generated method stub
try {
StpLocation actLocation = provider.ccProvider()
.userFriendlySelector(Domain.CLEAR_CASE,
Namespace.ACTIVITY, "edit", "/vobs/RIFMS_VOB");
CcActivity activity = provider.ccProvider().ccActivity(actLocation);
System.out.println(activity);
showActivityProperty(activity);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
private void showActivityProperty(CcActivity activity) {
// TODO Auto-generated method stub
try {
PropertyRequest activityPropertyRequest = new PropertyRequest(
CcActivity.COMMENT, CcActivity.ID, CcActivity.DISPLAY_NAME,
CcActivity.LATEST_VERSION_LIST,
CcActivity.CREATOR_DISPLAY_NAME);
CcActivity act = (CcActivity) activity
.doReadProperties(activityPropertyRequest);
System.out.println(act.getDisplayName());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
private static class MyAuthCallback implements Callback {
private final String serverUrl;
private final String login;
private final String password;
public MyAuthCallback(String serverUrl, String login, String password) {
this.serverUrl = serverUrl;
this.login = login;
this.password = password;
}
public Authentication getAuthentication(String realm, int retryCount)
throws WvcmException {
// TODO Auto-generated method stub
return new Authentication() {
public String loginName() {
// On Windows servers, this should return domain and
// username separated by a backslash
return login;
}
public String password() {
return password;
}
};
}
}
}