Changes in plain API between 3.0.1 and 4.0
Hi,
I've a code that perform check-in operation using plain API. This work correctly both on RTC 2.0.0.x and RTC 3.0.1.x.
I'm working on a migration to version 4.0 and everything seems good (no change of methods or error in compilation) but when I try to run the code I've this exception:
Exception in thread "main" TeamRepositoryException Unable to check in /TestProject/src/it/nexen/test/HelloWorld.java. Unable to resolve the repository connection for workspace load_rw com.ibm.team.filesystem.client.FileSystemException: Unable to check in /TestProject/src/it/nexen/test/HelloWorld.java. Unable to resolve the repository connection for workspace load_rw
at com.ibm.team.filesystem.client.internal.checkin.NewCheckInOperation.requestCheckin(NewCheckInOperation.java:428)
at it.nexen.rtc.task.Versioning.CheckIn(Versioning.java:351)
at it.nexen.rtc.task.Versioning.execute(Versioning.java:200)
at it.nexen.rtc.task.test.VersioningTest.main(VersioningTest.java:26)
at it.nexen.rtc.task.Versioning.execute(Versioning.java:202)
at it.nexen.rtc.task.test.VersioningTest.main(VersioningTest.java:26)
My piece of code is:
ICheckinOperation cio = IOperationFactory.instance.getCheckinOperation(CommitDilemmaHandler.getDefault(),IRepositoryResolver.EXISTING_SHARED);
String csComment = (buildAttribute==null) ? "CHECK-IN COMPILAZIONE" : buildAttribute;
IChangeSetHandle csh = iwc.createChangeSet(component, csComment, true, null);
cio.requestCheckin(shareableList , csh, "Compilazione relativa alla UDC " + ID, null);
shareable list is obtained using ILocalChangeManager.getPendingChanges method.
Does anyone knows what has been changed in ICheckinOperation?
Thanks,
Michele.
2 answers
ICheckinOperation and IOperationFactory are not public API and are subject to change between releases. The documentation for the Java public API for client-side integration can be found in the "Plain Java Client Libraries API documentation" link on the RTC download page on jazz.net: https://jazz.net/downloads/rational-team-concert/releases/4.0?p=allDownloads
If you want to automate loading and checking in changes you could consider using the SCM CLI and it's new (as of 4.0) JSON output format:
https://jazz.net/library/article/1031/
If you want to automate loading and checking in changes you could consider using the SCM CLI and it's new (as of 4.0) JSON output format:
https://jazz.net/library/article/1031/
Comments
Chris,
thanks for your answer. I'm aware that these are internal classes, but in many cases (this is not the only one) I really need to use them. In this specific case I cannot use the scm-cli because I need to perform many operation, not only check-in, in a correct sequence (find changes, add Jazz User properties, check-in, deliver, adding custom links to work-items...).
It's ok for me to investigate on changes in internal class, just it seems to me that this specific class has change nothing as interface but it is no more usable. Or, more likely, I just need to add some settings in order to make it runnable.. I was investigating also in test classes but I can't find other way to use it.
Yes, I've solved it.
You have to define a new resolver in your class:
private IRepositoryResolver resolver = new IRepositoryResolver() {
public ITeamRepository getRepoFor(String uri, UUID id) {
// Return the repository to be used
return repo;
}
};
And then use it on the getCheckinOperation like this:
ICheckinOperation cio = IOperationFactory.instance.getCheckinOperation(CommitDilemmaHandler.getDefault(),resolver);
Comments
Michele Pegoraro
Dec 07 '12, 10:25 a.m.Michele Pegoraro
Dec 07 '12, 10:26 a.m.Any help on this? If I can no more use ICheckinOperation what can be used?
This stops me from migrating from version 3.0.1 to version 4.
Thanks,
Michele.
SEC Servizi
Apr 14 '15, 5:43 a.m.Did you solve that? Thanks in advance.
SEC Servizi
Apr 14 '15, 12:19 p.m.You're right.Thanks for the tip! Cheers.