从Clear Case Activity中检索已修改/已签入的文件

时间:2015-10-15 11:11:11

标签: java clearcase clearcase-ucm clearcase-automation

此查询与使用java的Rational Clear Case Cm api编程相关。我们有一个要求,我们想要获取特定流的修改文件列表。我能够从给定的流中获取CcActivity类型的活动列表,并使用该活动列表信息我也可以获取版本信息。 我无法获取变更集信息,即已修改的文件的名称,因为没有定义此类方法。

请您帮我解决一下我应该使用哪种属性或方法来获取使用活动ID或版本信息的mopdified文件或变更集信息列表。以下是我为获取活动列表信息和版本信息而编写的代码: -

PropertyRequest propertyrequest = new PropertyRequest(
                    CcStream.ACTIVITY_LIST,CcStream.TASK_LIST
                    );
            stream=(CcStream) stream.doReadProperties(propertyrequest);

            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.NAME_RESOLVER_VIEW
                        ,CcActivity.TASK_LIST,CcActivity.CREATOR_LOGIN_NAME,CcActivity.HEADLINE,CcActivity.COMMENT); 

                ccActivity = (CcActivity)ccActivity.doReadProperties(activityPropertyRequest);

trace(ccActivity.getDisplayName());
                trace(ccActivity.getCreatorDisplayName());
                trace("CREATOR_LOGIN_NAME :" +ccActivity.getCreatorLoginName());
                trace("Headline:" +ccActivity.getHeadline());


ResourceList<javax.wvcm.Version> versionList = ccActivity.getLatestVersionList();

                for(int j=0;j<versionList.size();j++){
                    Version version = versionList.get(j);
                    PropertyRequest versionPropertyRequest = new PropertyRequest(
                            Version.PREDECESSOR_LIST,Version.VERSION_NAME,Version.VERSION_HISTORY.nest(VersionHistory.CHILD_MAP),Version.DISPLAY_NAME,Version.COMMENT
                            ,Version.PATHNAME_LOCATION,Version.ACTIVITY.nest(Resource.CONTENT_TYPE)); 

                    version = (Version)version.doReadProperties(versionPropertyRequest);
                    trace("Version Info");

                    trace("Version Name : " + version.getVersionName());
                    trace("Version Comment :" +version.getComment());

1 个答案:

答案 0 :(得分:1)

旧线程,但是最近我一直在尝试学习如何通过API列出修改后的文件。我相信问题是ResourceList get方法返回的版本对象应强制转换为CcVersion类型。

这公开了StpResource.doReadProperties(Resource context,Feedback feedback)方法,该方法需要处理我们感兴趣的视图。我们还可以请求我们感兴趣的CcVersion特定属性。

该示例将变为:

ResourceList<javax.wvcm.Version> versionList = ccActivity.getLatestVersionList();

            for(int j=0;j<versionList.size();j++){
                Version version = versionList.get(j);
                PropertyRequest versionPropertyRequest = new PropertyRequest(CcVersion.DISPLAY_NAME, CcVersion.VIEW_RELATIVE_PATH, CcVersion.CREATION_DATE); 

                version = (CcVersion) version.doReadProperties(view, versionPropertyRequest);
                trace("Version Info");

                trace("Version DISPLAY_NAME : " + version.getDisplayName());
                trace("Version VIEW_RELATIVE_PATH : " + version.getViewRelativePath());
                trace("Version CREATION_DATE : " + version.getCreationDate());
            }