unable to deploy RTC scm cli plugin
Hello,
I am extending RTC SCM CLI for tWAS (Websphere) production build environment.
The entire coding/deploying process has been relatively smooth thus far.
So far we have been able to successfully extend the snapshot/baseline, work item, approval and other work flows.
This time I am extending parts of build system toolkit using the same plugin.
Until now, all the dependency jars for this plugin were right under:
C:\RTC-Client-Win-3.0.1.4\jazz\scmtools\eclipse\plugins
i.e. directly where the "scm -v" would look for them.
But for these new Jazz build engine classes (in the plugin) the dependency jars are located in another area of my file system:
c:\rtc30\plugins\com.ibm.team.build.client_3.0.2.v20110831_0247.jar
c:\rtc30\plugins\com.ibm.team.build.common_3.0.2.v20110831_0247.jar
not where "scm" looks for, I suppose.
So, I tried all of the variations shown below, with no success:
--adding Class-Path to manifest file:
Class-Path: \c:\rtc30\plugins\com.ibm.team.build.client_3.0.2.v20110831_0247.jar \c:\rtc30\plugins\com.ibm.team.build.common_3.0.2.v20110831_0247.jar
--set Windows 7 system classpath env. variable
.;C:\PROGRA~1\IBM\SQLLIB\java\db2java.zip;C:\PROGRA~1\IBM\SQLLIB\java\db2jcc.jar;C:\PROGRA~1\IBM\SQLLIB\java\sqlj.zip;C:\PROGRA~1\IBM\SQLLIB\java\db2jcc_license_cisuz.jar;C:\PROGRA~1\IBM\SQLLIB\java\db2jcc_license_cu.jar;C:\PROGRA~1\IBM\SQLLIB\bin;C:\PROGRA~1\IBM\SQLLIB\java\common.jar;c:\rtc30\plugins\com.ibm.team.build.client_3.0.2.v20110831_0247.jar;c:\rtc30\plugins\com.ibm.team.build.common_3.0.2.v20110831_0247.jar
--I don't know how to pass classpath to scm.exe, so I tried to use lscm.bat:
SET PRGPATH=%~dp0
SET JAVA="C:\Program Files (x86)\IBM\Java60\jre\bin\java" <<< I changed it to my java.
SET SCM_DAEMON_PATH="%PRGPATH%scm.exe"
%JAVA% -Xquickstart -Xshareclasses -classpath "%PRGPATH%\plugins\com.ibm.team.filesystem.cli.minimal_3.0.2.v20110819_0209.jar;%PRGPATH%\plugins\com.ibm.team.filesystem.cli.core_3.0.3.v20120308_1209.jar;%PRGPATH%\plugins\com.ibm.team.filesystem.client.daemon_3.0.2.v20110819_0209.jar;%PRGPATH%\plugins\org.eclipse.equinox.common_3.5.1.R35x_v20090807-1100.jar;%PRGPATH%\plugins\com.ibm.team.filesystem.client_3.0.5.v20120531_0151.jar;%PRGPATH%\plugins\org.eclipse.osgi_3.5.2.R35x_v20100126.jar;%PRGPATH%\plugins\com.ibm.team.repository.common_1.3.100.v20120711_1525.jar;c:\rtc30\plugins\com.ibm.team.build.client_3.0.2.v20110831_0247.jar;c:\rtc30\plugins\com.ibm.team.build.common_3.0.2.v20110831_0247.jar;." com.ibm.team.filesystem.cli.minimal.client.FrontEndClient "lscm" %*
None of the above worked.
However, as soon as I copy and place those jars under:
C:\RTC-Client-Win-3.0.1.4\jazz\scmtools\eclipse\plugins
everything works great. But this is not acceptable.
I need to be able point to these jar dependencies, not bundle them with my plugin jar.
I need to do this for both windows and unix environments.
Please advise.
Thanks in advance.
I am extending RTC SCM CLI for tWAS (Websphere) production build environment.
The entire coding/deploying process has been relatively smooth thus far.
So far we have been able to successfully extend the snapshot/baseline, work item, approval and other work flows.
This time I am extending parts of build system toolkit using the same plugin.
Until now, all the dependency jars for this plugin were right under:
C:\RTC-Client-Win-3.0.1.4\jazz\scmtools\eclipse\plugins
i.e. directly where the "scm -v" would look for them.
But for these new Jazz build engine classes (in the plugin) the dependency jars are located in another area of my file system:
c:\rtc30\plugins\com.ibm.team.build.client_3.0.2.v20110831_0247.jar
c:\rtc30\plugins\com.ibm.team.build.common_3.0.2.v20110831_0247.jar
not where "scm" looks for, I suppose.
So, I tried all of the variations shown below, with no success:
--adding Class-Path to manifest file:
Class-Path: \c:\rtc30\plugins\com.ibm.team.build.client_3.0.2.v20110831_0247.jar \c:\rtc30\plugins\com.ibm.team.build.common_3.0.2.v20110831_0247.jar
--set Windows 7 system classpath env. variable
.;C:\PROGRA~1\IBM\SQLLIB\java\db2java.zip;C:\PROGRA~1\IBM\SQLLIB\java\db2jcc.jar;C:\PROGRA~1\IBM\SQLLIB\java\sqlj.zip;C:\PROGRA~1\IBM\SQLLIB\java\db2jcc_license_cisuz.jar;C:\PROGRA~1\IBM\SQLLIB\java\db2jcc_license_cu.jar;C:\PROGRA~1\IBM\SQLLIB\bin;C:\PROGRA~1\IBM\SQLLIB\java\common.jar;c:\rtc30\plugins\com.ibm.team.build.client_3.0.2.v20110831_0247.jar;c:\rtc30\plugins\com.ibm.team.build.common_3.0.2.v20110831_0247.jar
--I don't know how to pass classpath to scm.exe, so I tried to use lscm.bat:
SET PRGPATH=%~dp0
SET JAVA="C:\Program Files (x86)\IBM\Java60\jre\bin\java" <<< I changed it to my java.
SET SCM_DAEMON_PATH="%PRGPATH%scm.exe"
%JAVA% -Xquickstart -Xshareclasses -classpath "%PRGPATH%\plugins\com.ibm.team.filesystem.cli.minimal_3.0.2.v20110819_0209.jar;%PRGPATH%\plugins\com.ibm.team.filesystem.cli.core_3.0.3.v20120308_1209.jar;%PRGPATH%\plugins\com.ibm.team.filesystem.client.daemon_3.0.2.v20110819_0209.jar;%PRGPATH%\plugins\org.eclipse.equinox.common_3.5.1.R35x_v20090807-1100.jar;%PRGPATH%\plugins\com.ibm.team.filesystem.client_3.0.5.v20120531_0151.jar;%PRGPATH%\plugins\org.eclipse.osgi_3.5.2.R35x_v20100126.jar;%PRGPATH%\plugins\com.ibm.team.repository.common_1.3.100.v20120711_1525.jar;c:\rtc30\plugins\com.ibm.team.build.client_3.0.2.v20110831_0247.jar;c:\rtc30\plugins\com.ibm.team.build.common_3.0.2.v20110831_0247.jar;." com.ibm.team.filesystem.cli.minimal.client.FrontEndClient "lscm" %*
None of the above worked.
However, as soon as I copy and place those jars under:
C:\RTC-Client-Win-3.0.1.4\jazz\scmtools\eclipse\plugins
everything works great. But this is not acceptable.
I need to be able point to these jar dependencies, not bundle them with my plugin jar.
I need to do this for both windows and unix environments.
Please advise.
Thanks in advance.
4 answers
Hi Kanjbala, sorry that this hasn't received any reply until now.
Can you clarify what you're trying to do, at a higher level? Which part of the build system toolkit do you want to extend, the Ant tasks or JBE? What are the extensions you're trying to make?
It's hard to tell just from the path what c:\rtc30 is referring to. Is it a Build System Toolkit install, an RTC Eclipse client, or something else?
Comments
If you want to access jars from OUTSIDE the server runtime directory, you need to use the external keyword
note that this will only work where the paths are correct (and the server has access to those folders/files) of course
Bundle-ClassPath: .,
external:C:/Users/Delljoaobosco/Desktop/lib.jar,
external:C:/Users/Delljoaobosco/Desktop/usdclient.jar,
note that this will only work where the paths are correct (and the server has access to those folders/files) of course
Comments
Hello Nick,
I tried your instructions, at least as best as I could, not knowing your complete environment.
These were your instructions:
(I was not sure about some of the instructions, so I made my own assumptions at some places, as you will see below.)
Here is why I made some assumptions:
1. I do not have a .../jazz/scmtools/eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
but I do have a ...\jazz\client\eclipse\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info (see the difference).
2. You said:
"I put the jar for my test bundle (com.ibm.team.build.test.scm-cli-ext) in a new sibling to the plugins folder, called build, then changed ..."
Sibling to which plugins folder?
jazz\client\eclipse\plugins or jazz\scmtools\eclipse\plugins
I chose jazz\client\eclipse\plugins due to the location of file bundles.info in my environment.
Next, I did this:
--Created a sibling dir called "build" to jazz\client\eclipse\plugins
--Placed my bundle jar in there, namely, com.ibm.mrbuild.rtc.cli_2.0.0.testengine.jar
--Modified jazz\client\eclipse\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info to have the following line:
com.ibm.mrbuild.rtc.cli,2.0.0.testengine,build/com.ibm.mrbuild.rtc.cli_2.0.0.testengine.jar
this bundles.info already had the following two lines:
com.ibm.team.build.client,3.0.2.v20110831_0247,plugins/com.ibm.team.build.client_3.0.2.v20110831_0247.jar,4,false
com.ibm.team.build.common,3.0.2.v20110831_0247,../../../../rtc30/plugins/com.ibm.team.build.common_3.0.2.v20110831_0247.jar,4,false
Then I ran "scm -v" from under the ...\jazz\scmtools\eclipse directory and got no info. on my bundle.
I need to be able to see the following info for my bundle:
com.ibm.mrbuild.rtc.cli, version 2.0.0.testengine
Please let me know what I am missing or where I am going wrong.
Also as you can see it is difficult to do this via forum. I would like to continue this offline until we fig. out the solution and once we arrive at the answer I can post it here.
I am assuming you wanted me to post this data here and not in the work item that you opened, i.e., work item 292967.
I tried your instructions, at least as best as I could, not knowing your complete environment.
These were your instructions:
I did some explorations on Friday, but this was hampered by the fact that the SCM CLI in RTC 4.x is missing the P2 bundles for supporting dropins, which would explain why putting the bundles in dropins wasn't having any effect.This is what I did, and was unsuccessful in getting the same results as you:
I was able to get a simple case working, where an added command depends on the Build client APIs, but I had to directly modify the simple configurator's list of bundles:
I put the jar for my test bundle (com.ibm.team.build.test.scm-cli-ext) in a new sibling to the plugins folder, called build, then changed .../jazz/scmtools/eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info to have:
com.ibm.team.build.client,3.0.500.v20130315_0142,../../client/eclipse/plugins/com.ibm.team.build.client_3.0.500.v20130315_0142.jar,4,false
com.ibm.team.build.common,3.1.400.v20130415_0257,../../client/eclipse/plugins/com.ibm.team.build.common_3.1.400.v20130415_0257.jar,4,false
com.ibm.team.build.test.scm-cli-ext,1.0.0.201311211716,build/com.ibm.team.build.test.scm-cli-ext_1.0.0.201311211716.jar,4,false
Note that it's getting my new test bundle from under 'build', and the build.common and build.client from the RTC Eclipse client under .../jazz/client.
(I was not sure about some of the instructions, so I made my own assumptions at some places, as you will see below.)
Here is why I made some assumptions:
1. I do not have a .../jazz/scmtools/eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
but I do have a ...\jazz\client\eclipse\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info (see the difference).
2. You said:
"I put the jar for my test bundle (com.ibm.team.build.test.scm-cli-ext) in a new sibling to the plugins folder, called build, then changed ..."
Sibling to which plugins folder?
jazz\client\eclipse\plugins or jazz\scmtools\eclipse\plugins
I chose jazz\client\eclipse\plugins due to the location of file bundles.info in my environment.
Next, I did this:
--Created a sibling dir called "build" to jazz\client\eclipse\plugins
--Placed my bundle jar in there, namely, com.ibm.mrbuild.rtc.cli_2.0.0.testengine.jar
--Modified jazz\client\eclipse\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info to have the following line:
com.ibm.mrbuild.rtc.cli,2.0.0.testengine,build/com.ibm.mrbuild.rtc.cli_2.0.0.testengine.jar
this bundles.info already had the following two lines:
com.ibm.team.build.client,3.0.2.v20110831_0247,plugins/com.ibm.team.build.client_3.0.2.v20110831_0247.jar,4,false
com.ibm.team.build.common,3.0.2.v20110831_0247,../../../../rtc30/plugins/com.ibm.team.build.common_3.0.2.v20110831_0247.jar,4,false
Then I ran "scm -v" from under the ...\jazz\scmtools\eclipse directory and got no info. on my bundle.
I need to be able to see the following info for my bundle:
com.ibm.mrbuild.rtc.cli, version 2.0.0.testengine
Please let me know what I am missing or where I am going wrong.
Also as you can see it is difficult to do this via forum. I would like to continue this offline until we fig. out the solution and once we arrive at the answer I can post it here.
I am assuming you wanted me to post this data here and not in the work item that you opened, i.e., work item 292967.
Comments
1 vote
At this point I don't see any better solution than copying the plugin jars.
With the old update manager, you could point to different plugin 'sites', either by adding a site element to …eclipse/configuration/org.eclipse.update/platform.xml, or by adding an eclipse/links directory containing links files pointing to other sites. So you could point to the RTC Eclipse client or JBE install directories to include their plugins, but this would bring in more than you want/need. e.g. the Eclipse client includes all the UI plugins, and JBE has extra plugins for the Ant tasks and build engine itself.
I tried the latter adding a file: /Users/nedgar/Downloads/Applications/SCM-CLI-3.0.1.4/eclipse/links/bst.link
containing:
path=../../BuildSystem-Toolkit-3.0.1.4/jazz/buildsystem/buildengine
It expects to find an eclipse directory under the referenced path, with a plugins directory under that.
Comments
showing 5 of 7
show 2 more comments
Comments
kanjbala jawahar
Oct 24 '13, 11:40 a.m.