Hello,
in process of a academic project we decided to build up a IBM platform consisting of the JTS 3.0.1 RC 2, RM 3.0.1, CCM 3.0.1, RTC-Client 3.
While using the products, after a long and hard way of installing these, we discovered some aspects which we don't like:
1. If we want to edit a use case diagram in rm, we had to install a plugin about 100mb first. First we thought installing went successful, and everything works fine, but then we wanted to create a use case diagram and it didnt work at all. The system told us, that the "editor environment couldn't be loaded", so we decided to reinstall the plugin, without having success. Of course we used firefox 3.6.17. Somehow a teammember of our project team found out, that we have to remove the internet explorer, installed on the windows machine first, in order to use this plugin correctly. We did, and it worked for us. At this place you might should give the user some feedback or possible solutions to solve the problem with the failure in loading the editor environment. Also we wondered, why firefox 4.0 isn't supported yet...
After a successful installation we observed our system performance and noticed, that when we are in diagram editing mode, it's nearly constantly at 100 percent of cpu usage. That's in our opinion too much this way. We don't know how u implemented this, but maybe there is way to load the needed modules by time when they have to be used (some kind of lazy loading).
Another thing is the usability of the diagram editor, for instance, when editing a use case diagram. If u want to insert a connection between actor and use case u automatically assume, that the button "line color" is the right thing to use, but it isn't. Maybe u should exclude the connector to the other uml elements, for example directly next to the use case or the actor, not in a dropdown list, where it isnt expected in our opinion.
Is there a way to use a generalisation arrow between use cases or between actors? Also predefined stereotypes, like <<include>> are missing as defined in the uml standard.
And there is one more thing... When we add a new actor or diagram to the drawing panel, and have to select it in the project explorer first, there are no names shown under the artefacts after adding. U have to save the diagram first, then refresh the page, so that the editor generates the content again. After that, the names appear.
We also missed the "save automatically" option when editing a diagram. If you click "back" ("return") on the mouse or in the browser and u didn't save the diagram first, all editing is gone into the nirvana. Maybe there is a way to catch this "return" event and perform an automatic safe of the current diagram.
2. When using the jts web interface seems we discovered a bug when trying to use the "Lifecycle Project Administration". When clicking on the field and calling the relative url path "./admin/web#/projects" we run into a bad exception in Tomcat:
SCHWER: ClassNotFoundException while loading javascript
java.lang.ClassNotFoundException: com.ibm.team.lpa.app.ui.internal.nls.de-de.Lif
ecycleProjectAdminUIMessages
at org.dojotoolkit.zazl.RhinoClassLoader.loadClass(RhinoClassLoader.java
:72)
at org.dojotoolkit.zazl.RhinoClassLoader.loadJS(RhinoClassLoader.java:92
)
at org.dojotoolkit.zazl.internal.RhinoDTLHandler.loadFromClassLoader(Rhi
noDTLHandler.java:351)
at org.dojotoolkit.zazl.internal.RhinoDTLHandler.zazlLoad(RhinoDTLHandle
r.java:277)
at sun.reflect.GeneratedMethodAccessor1187.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
at org.mozilla.javascript.FunctionObject.call(FunctionObject.java:413)
at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:
97)
at hostenv_dtl._c2(/hostenv_dtl.js:32)
at hostenv_dtl.call(/hostenv_dtl.js)
at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
at dojo._base._loader.loader._c4(/dojo/_base/_loader/loader.js:75)
at dojo._base._loader.loader.call(/dojo/_base/_loader/loader.js)
at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:86)
at dojo.i18n._c5(/dojo/i18n.js:154)
at dojo.i18n.call(/dojo/i18n.js)
at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
at dojo.i18n._c10(/dojo/i18n.js:229)
at dojo.i18n.call(/dojo/i18n.js)
at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:86)
at dojo.i18n._c4(/dojo/i18n.js:143)
at dojo.i18n.call(/dojo/i18n.js)
at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2
408)
at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:282)
at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:12
9)
at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
at dojo._base._loader.loader._c23(/dojo/_base/_loader/loader.js:634)
at dojo._base._loader.loader.call(/dojo/_base/_loader/loader.js)
at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
at com.ibm.team.lpa.app.handlers.LifecycleProjectAdminUIContext._c1(/com
/ibm/team/lpa/app/handlers/LifecycleProjectAdminUIContext.js:16)
at com.ibm.team.lpa.app.handlers.LifecycleProjectAdminUIContext.call(/co
m/ibm/team/lpa/app/handlers/LifecycleProjectAdminUIContext.js)
at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:57)
at com.ibm.team.lpa.app.handlers.LifecycleProjectAdminUIContext._c0(/com
/ibm/team/lpa/app/handlers/LifecycleProjectAdminUIContext.js:44)
at com.ibm.team.lpa.app.handlers.LifecycleProjectAdminUIContext.call(/co
m/ibm/team/lpa/app/handlers/LifecycleProjectAdminUIContext.js)
at com.ibm.team.lpa.app.handlers.LifecycleProjectAdminUIContext.exec(/co
m/ibm/team/lpa/app/handlers/LifecycleProjectAdminUIContext.js)
at org.dojotoolkit.zazl.RhinoClassLoader.loadJS(RhinoClassLoader.java:94
)
at org.dojotoolkit.zazl.internal.RhinoDTLHandler.loadFromClassLoader(Rhi
noDTLHandler.java:351)
at org.dojotoolkit.zazl.internal.RhinoDTLHandler.zazlLoad(RhinoDTLHandle
r.java:277)
at sun.reflect.GeneratedMethodAccessor1187.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
at org.mozilla.javascript.FunctionObject.call(FunctionObject.java:413)
at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:
97)
at hostenv_dtl._c2(/hostenv_dtl.js:35)
at hostenv_dtl.call(/hostenv_dtl.js)
at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
at dojo._base._loader.loader._c7(/dojo/_base/_loader/loader.js:140)
at dojo._base._loader.loader.call(/dojo/_base/_loader/loader.js)
at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:86)
at dojo._base._loader.loader._c4(/dojo/_base/_loader/loader.js:75)
at dojo._base._loader.loader.call(/dojo/_base/_loader/loader.js)
at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
at dojo._base._loader.loader._c18(/dojo/_base/_loader/loader.js:411)
at dojo._base._loader.loader.call(/dojo/_base/_loader/loader.js)
at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
at dtlapp._c1(/dtlapp.js:101)
at dtlapp.call(/dtlapp.js)
at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:
97)
at org.mozilla.javascript.gen.c4._c0(calldtlapp.js:2)
at org.mozilla.javascript.gen.c4.call(calldtlapp.js)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:3
98)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:306
5)
at org.mozilla.javascript.gen.c4.call(calldtlapp.js)
at org.mozilla.javascript.gen.c4.exec(calldtlapp.js)
at org.mozilla.javascript.Context.evaluateString(Context.java:1104)
at org.dojotoolkit.zazl.internal.RhinoDTLHandler.runDTLScript(RhinoDTLHa
ndler.java:126)
at org.dojotoolkit.zazl.internal.DTLHandlerImpl.handle(DTLHandlerImpl.ja
va:55)
at com.ibm.team.jfs.zazl.rest.internal.handler.ZazlServiceHandler.handle
(ZazlServiceHandler.java:99)
at com.ibm.team.jfs.zazl.rest.ZazlRestService.service(ZazlRestService.ja
va:65)
at com.ibm.team.lpa.common.services.ZazlRestHandler.internalHandle(ZazlR
estHandler.java:71)
at com.ibm.team.lpa.common.services.ZazlRestHandler.doGet(ZazlRestHandle
r.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at com.ibm.team.lpa.common.services.AbstractLpaRestHandler.dispatch(Abst
ractLpaRestHandler.java:297)
at com.ibm.team.lpa.common.services.AbstractLpaRestHandler.handle(Abstra
ctLpaRestHandler.java:324)
at com.ibm.team.jfs.app.servlet.AppContainerServlet.service(AppContainer
Servlet.java:280)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleR
equest(ServletRegistration.java:90)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(P
roxyServlet.java:111)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyS
ervlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet
.java:120)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:172)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:117)
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.ja
va:420)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:879)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p
rocessConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
int.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol
lowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:689)
at java.lang.Thread.run(Thread.java:811)
3. When loading the jts dashboard the projects appear everytime in a different order in the project widget. This might be not as critical as other things, but each user has it's own habits and probably dislikes this "feature"... :)
4. When using this sprint backlog and editing a work item state of a team mate it isn't adopted until the view is saved the second time. All of our 6 project mates using the platform had the same problem.
5. Last but not least, we used the RTC Client, in following titled as rtcc.
When viewing a workitem there and trying to open a referenced requirement, the requirement is openened in the rtcc internal webbrowser. This webbrowser might be okay for java doc viewing, but seriously not for your platform dashboards. Maybe you should execute the browser defined as standard in the system for viewing the item.
For the moment it's all we can say, but there might come some suggestions for improvement.
And sorry for the terribly exception formatting in here... :)
Ah, just seen that this thread went into the wrong category. :/
Greets and have a nice weekend,
Alex