Are the Eclipse client and RTC 6.0.x Plain Java Client Library based automation and tools no longer working since RTC was set up with the Jazz authentication Server? This could be due to an issue with the shipped codecs.
There is apparently an issue with Java API clients in environments where CLM, especially the RTC Server is set up with the Jazz Authentication server. The Eclipse client and Plain Java Client Library based automation can not connect to RTC any more. See the related RTC RFE 371953.
The reason seems to be due to the codecs shipped with the Eclipse client and the plain Java Client libraries. Please see the post RTC Plain Java API and Jazz Authentication Server.
UPDATE: There could be other causes for issues with the Java API and the JAS or OIDC providers. See this question and answer for considerations to change the configuration.
The issue seems to be:
- Jazz Authentication Server requires at least version 1.4 of the Apache commons-codec library.
- The RTC Java client includes version 1.3. Replacing 1.3 with 1.4 or higher resolves the issue.
In the Eclipse client and the Plain Java Client Libraries folders, find and replace the file org.apache.commons.codec_1.3.0.v20100518-1140.jar with a 1.4 or later. Version 1.10 is the latest you can get it from https://commons.apache.org/proper/commons-codec/download_codec.cgi all prior versions are here: http://archive.apache.org/dist/commons/codec/binaries. Then update your classpath to point to the new .jar.
How to implement this, differs for the several options like Eclipse Client for a user, Eclipse Client for SDK and Plain Java development and so forth. If you create extensions and automation, my suggestion is to develop against a Jetty based test server and a real development Apache or WAS Liberty Profile based system without the Jazz Authentication Server. If you want to use the automation against a life server, you can follow the description below to get your final automation up and running.
I will try to find the time to describe more details for the Eclipse client itself, but would suggest to get in contact with IBM support in the mean time.
Solution for Plain Java Client Libraries
I was able to test this today and got it working for a Plain Java Client Libraries application that was running stand alone outside of the Eclipse client. So far I tested RTC 6.0.2.
This did not work for me with RTC6.0 against an RTC 6.0.3 M6.
I downloaded the file commons-codec-1.10-bin.zip from https://commons.apache.org/proper/commons-codec/download_codec.cgi and extracted the content. In the extracted file I located the commons-codec-1.10.jar file.
I created a folder ApacheCommons in the same folder that contains my Plain Java Client Libraries JAR file and placed a copy of the commons-codec-1.10.jar there.
The application is in a file application.jar. I use a batch file to start it. I just added the folder ApacheCommons to the class path as first entry. This way the first commons codec that is found is the newest one. When running the batch file the plain java client libraries application ran as expected.
The batch file looks as follows.
set JAVA_HOME=..\TeamConcert\jazz\client\eclipse\jdk set PLAIN_JAVA=../PlainJavaAPI set COMMONS=../ApacheCommons set REPOSITORY="https://exampe.com:9443/ccm/" set USERID="deb" set PASSWORD="deb" %JAVA_HOME%\jre\bin\java -Djava.ext.dirs=%COMMONS%;%PLAIN_JAVA%;%JAVA_HOME%/jre/lib/ext -cp %COMMONS%;%PLAIN_JAVA% -jar automation.jar %REPOSITORY% %USERID% %PASSWORD% "deb" pause
Another approach is
- Find the codecs plugin from a 6.0.3 client e.g. named org.apache.commons.codec_1.6.0.v201305230611.jar.
- Replace the codecs plugin shipped with the plain java libs with the one from the first step.
I hope this helps some people out there. I will try to add more details if I can find the time.