如何在Anthillpro3 Remoting脚本中轻松找到最新的Dependency

时间:2016-07-30 18:17:55

标签: java anthill

我想在我们的项目中自动创建分支的过程。下面是使用Anthill Web UI手动完成的步骤。 在我们的Anthill中,我们有大约250个Java项目,其工作流程以它们的发布名称命名,如RB-16.4.5。

第1步:使用 RB-16.4.5 等当前分支复制每个项目的工作流程。

步骤2:将工作流程名称编辑为新的分支名称,如RB-16.4.6,并将源URL更改为最新的分支名称,如 somelocation / branches / 16.4.6 / projects /项目A

第3步:对于许多项目,我们在Anthill中添加了Dependents。因此我们希望使用最新的Branch项目更新它们。所以我们要做的是删除旧的依赖项分支名称,如 ProjectA RB-16.4.5 ,并通过转到创建的新工作流程的管理TAB添加新的依赖项,并使用文件夹名称ProjectA RB-16.4.6搜索新项目

现在我编写的代码在前两步工作正常但是我无法找到如何为第3步编写代码。因为我无法弄清楚如何获得新工作流的最新依赖项目上面创建的。来自Anthill文档。我们无法将依赖项的名称设置或更改为新名称。

我已经浏览了http://download.boulder.ibm.com/ibmdl/pub/software/rationalsdp/documentation/product_doc/UrbanCode/AnthillPro/remoting/api/index.html

上提供的官方Java Remoting API
AnthillClient client;
String currentBranch="RB-16.4.5";
String newBranch="RB-16.4.6";

UnitofWork uow=client.createUnitOfWork();

Folder[] allFolders=FolderFactory.getInstance().restoreAll();
Project[] myProjects={};

for(int i=0;i<allFolders.length;i++){
if(allFolders[i].getName().equals("MyPrjFolder")){
myProjects=allFolders[i].getProjects();
break;
}
//For each project copy the workflow and set New branch name & Source URL
for(int j=0;j<myProjects.length;j++){
 Workflow flow=WorkflowLookup.getForProjectAndName(myProjects[j],newBranch);

 Workflow newworkFlow=flow.duplicateForCopy(myProjects[j]);
 newworkFlow.setUnitOfWork(uow);
 newworkFlow.setName(newBranch);
 newworkFlow.setNew(true);
 newworkFlow.setActive(true);

 SvnSourceConfig svnConfig=
 (SvnSourceConfig)         newWorkFlow.getBuildProfile().getSourceConfig();
 SvnModule[] svnModule=svnConfig.getModuleArray();
 String sourceURL=svnModule[0].getUrl();
 svnModule[0].setUrl(sourceURL.replace(currentBranch,newBranch));

// Store the dependencies of old project branch  in a list
 Dependency   
 existingDependencies=flow.getBuildProfile().getAnthillDependencyArray();
 someList.add(existingDependencies);
 }


 /*Now how do i set the Dependencies for each Project with new Project of
  the new Branch if i have already stored the old dependecies of projects*/
// Code to create and add dependency should be something like 
// How do i get the newDependency value which refers to the Project under   new workflow created
 Dependency newDependency=null;
 newDependency=    Dependency.createDependency(existingDependencies[i].getDependent),newDependency.getDependency());

}

1 个答案:

答案 0 :(得分:0)

不同的方法怎么样?从最终用户获取分支名称作为输入?