1

こんにちは、projectArea を使用してストリーム名を取得しようとしています。次のパラメータがあります: Repository IFileItem WorkItem とその ChangeSets

手に入れることは可能ですか?

前もって感謝します。

アドバイザーの例へのリンクを私に渡さないでください。

この投稿では、次のことが言及されていました: https://jazz.net/forum/questions/49910/how-to-get-an-iconfiguration-from-ichangeset

IChangeSetHandle (ソース) と IWorkItemHandle (ターゲット) の間のバインディングとして機能する ILink に隠されている、しばしば役立つ (ただし必ずしも正しいとは限りません) ヒントがあります。ソース側の IItemReference には、IItemReference#getExtraInfo() で取得できる String extraInfo フィールドがあります。この文字列は、元のワークスペースを示す IWorkspace= の形式になります。IWorkspace.ITEM_TYPE.createItemHandle(suppliedUUID, null) を使用して、IWorkspace へのハンドルを作成できます。

public void testWorkspaceConnection(ITeamRepository repository, IWorkItem workItem) throws TeamRepositoryException, IOException{
       List<ILink> changeSetLinks = (List<ILink>)linkCollection.getLinksById("com.ibm.team.filesystem.workitems.change_set");
       List<IReference> changeSetReferences = new ArrayList<IReference>();

         for (ILink link : changeSetLinks) {
            changeSetReferences.add(link.getSourceRef());
         }

         List<IItemHandle> itemHandles = new ArrayList<IItemHandle>();

         for (IReference reference : changeSetReferences) {
             itemHandles.add((IItemHandle)reference.resolve());
         }

         if(itemHandles.isEmpty()){
             return;
         }

         IItemHandle itemHandle = itemHandles.get(itemHandles.size() - 1);
         IChangeSet changeSet = (IChangeSet)repository.itemManager().fetchCompleteItem(itemHandle, 0, monitor);
         List changes = changeSet.changes();         

         IFileItem fileItem = getLogidiagFile(changeSet, repository);
         // TILL HERE THAT WAS AN EXISTING CODE THAT WAS ALREADY THERE AND IT FETCHES THE REQUIRED FILE.
         //NEXT IS WHAT |'VE ADDED TO BE ABLE TO DETERMINE THE FULL PATH
         String uuid=changeSetReferences.get(changeSetReferences.size()-1).getExtraInfo(); //Here I need to get workspace uuid to be abble to create a connection over as the post said
         IWorkspaceHandle workspaceHandle = (IWorkspaceHandle)IWorkspace.ITEM_TYPE.createItemHandle(UUID.valueOf(uuid), null);

         IWorkspaceManager workspaceManager = SCMPlatform.getWorkspaceManager(repository);
         IWorkspaceConnection workspaceConnection = workspaceManager.getWorkspaceConnection(workspaceHandle,monitor);

私が得る例外は次のとおりです。

スレッド「メイン」の例外 java.lang.IllegalArgumentException: com.ibm.team.repository.common.UUID.valueOf(UUID.java:76) の無効な UUID [Workspace=_iibA0GlNEeKd76sMjPDLRA]

それで、私は正しいコースを歩いていますか、それともあなたが私を導くことができるより良いコースがあります!

4

1 に答える 1