Get component baselines in Stream/Workspace/Snapshot via RTC API
Accepted answer
I can point you to some of my examples which are client side code. I guess server side code will be similar.
Snapshot recipe:
First you need IBaselineSet snapshot;
You can get this from snapshot URL:
URI snapshotUri = URI.create(snapshotURL.replaceAll(" ", "%20"));
Location snapshotLocation = Location.location(snapshotUri);
snapshotItem = (IBaselineSet) teamRepository.itemManager()
.fetchCompleteItem(snapshotLocation, IItemManager.DEFAULT,monitor);
Then get the baselines and resolve them permission aware:
List<IBaselineHandle> snapBaseList = snapshot.getBaselines();
IFetchResult fetchResult = teamRepository.itemManager().fetchCompleteItemsPermissionAware(snapBaseList, IItemManager.DEFAULT, null);
Stream / Workspace:
They are both of class IFlowNodeConnection. This has a method
IFlowNodeConnection myStream = ... ;
List<IBaselineSetHandle> baselineSetHandles = myStream.getBaselineSets(monitor);
which returns the snapshots. Get latest snapshot and proceed as with Snapshot recipe.
If this answers your question please mark it as accepted.
- Arne
Comments
The object I have is an IWorkspace instance. Can you tell me how to come from an IWorkspace to IFlowNodeConnection?
IWorkspaceConnection wsConn = SCMPlatform.getWorkspaceManager(teamRepository).getWorkspaceConnection(workspaceHandle, monitor);
with com.ibm.team.scm.client.SCMPlatform
You can get the handle from IWorkspace using .getItemHandle();
What if my workspace/stream has no snapshots but only contains baselined components?
Marko,
I found a better and more direct call, also for IWorkspaceConnection:
IWorkspaceConnection wsConn;
List<IComponentHandle> compList = wsConn.getComponents();
for (IComponentHandle compHandle : compList) {
IBaselineHandle blHandle = wsConn.getComponentInfo(compHandle).basis();
}
This example is client side code. Do you need this or are you trying to code server side?
Hi Arne,
Comments
Marko Tomljenovic
Jun 30 '15, 3:12 a.m.The object I have is an IWorkspace instance. Can you tell me how to come from an IWorkspace to IFlowNodeConnection?