ClearCase を自動化しようとしているので、自動ビルドを行うことができます。最初のステップは、スクリプトによってビューを更新することです。次のJavaコードでこれを試しています:
StpProvider provider = (StpProvider) ProviderFactory.createProvider(
CcProvider.NETWORK_PROVIDER_CLASS, callback);
provider.setServerUrl("https://...");
CcProvider m_provider = provider.ccProvider();
m_provider.registerTrustManagerCallback(callback);
File viewRoot = new File("D:\\Views\\...");
StpLocation viewLocation = provider.filePathLocation(StpProvider.Domain.CLEAR_CASE, viewRoot);
//Get instance of CcView that represents the CCRC view.
CcView view = m_provider.ccView(viewLocation);
//Options while updating view
CcFile.RefreshFlag[] refreshFlags = new CcFile.RefreshFlag[1];
refreshFlags[0] = CcFile.RefreshFlag.KEEP_HIJACKS;
PropertyRequestItem.PropertyRequest properties = new PropertyRequestItem.PropertyRequest(CcView.DISPLAY_NAME, CcView.CONFIG_SPEC);
view.doRefresh(refreshFlags, properties);
MyCallback は、Callback と CcTrustManagerCallback の単純な実装であり、追加のロジックはありません。次のエラーが表示されます。
Exception in thread "main" CcException: CRMAP7009: Der Befehl "Update" ist fehlgeschlagen:
CCRC WAN Server: Error: Unable to get view handle.
Fehler: "java.io.IOException: Status(1001:hasNonOkMsg):
CCRC WAN Server: Error: Unable to get view handle.
"
reason: conflict
resource: view: cc.file:D:/Views/...
at com.ibm.rational.stp.client.internal.cc.Util.ccrcCmdStatusToWvcmException(Util.java:296)
at com.ibm.rational.stp.client.internal.cc.Util.runCommandAndCheckResults(Util.java:160)
at com.ibm.rational.stp.client.internal.cc.WebViewRefresh.run(WebViewRefresh.java:233)
at com.ibm.rational.stp.client.internal.cc.CcFileImpl.doCcRefresh(CcFileImpl.java:392)
at com.ibm.rational.stp.client.internal.cc.CcFileImpl.doRefresh(CcFileImpl.java:381)
at cc.UpdateView.main(UpdateView.java:45)
この競合を解決する方法を知っている人はいますか? ClearTeam Explorer は動作しています。Eclipse プラグインを介して手動で更新しています。ClearCase バージョン 9.0.1.4 および ClearTeam Explorer バージョン バージョン: 9.0.1.08。Java 8 を使用しています。