<concreteComponent type="AppLauncher" hasDefaultMapping="true">
<extends>guidancer.concrete.GraphicApplication<extends>
<testerClass>org.eclipse.jubula.rc.swing.tester.AppTester</testerClass>
<action name="CompSystem.LaunchApp" >
<method>startApplication</method>
</action>
</toolkitComponent>
This will add 'Launch App' option under existing component
'Application'. However, for two possible reasons my 'startApplication' action doesn't get executed - 1>
'concreteComponent' doesn't recognise 'testerClass' element tag 2> For class
'guidancer.concrete.GraphicApplication' there is already a tester class associated, which is
'org.eclipse.jubula.rc.swing.tester.SwingApplicationTester' and thus Jubula ignores my tester class. I say this because of error I see in log file rc_swing.log, No such accessible method: startApplication() on object: org.eclipse.jubula.rc.swing.tester.SwingApplicationTester.
Conclusion : Not the right thing to do. Must adhere to using
toolkitComponent.
Approach 2=>
<toolComponent type="AppLauncher" hasDefaultMapping="true">
<extends>guidancer.concrete.GraphicApplication<extends>
<testerClass>org.eclipse.jubula.rc.swing.tester.AppTester</testerClass>
<action name="CompSystem.LaunchApp" >
<method>startApplication</method>
</action>
</toolkitComponent>
This also adds 'Launch App' option under existing component
'Application'. However, the action 'startApplication' is not getting executed, citing same error in rc_swing.log i.e.
No such accessible method: startApplication() on object: org.eclipse.jubula.rc.swing.tester.SwingApplicationTester. I guess this is too because for class
'guidancer.concrete.GraphicApplication' there is already a tester class associated, which is
'org.eclipse.jubula.rc.swing.tester.SwingApplicationTester' and thus Jubula ignores my tester class.
Conclusion : If this approach is correct, is there any way to make Jubula to recognise my tester class instead of SwingApplicationTester? If not then not a right approach.
Approach 3=>
<toolComponent type="AppLauncher" hasDefaultMapping="true">
<testerClass>org.eclipse.jubula.rc.swing.tester.AppTester</testerClass>
<action name="CompSystem.LaunchApp" >
<method>startApplication</method>
</action>
</toolkitComponent>
This requires 'depends' property of 'toolkit' extension point in
plugin.xml to be set to either com.bredexsw.guidancer.ConcreteToolkitPlugin
or com.bredexsw.guidancer.SwingToolkitPlugin. Otherwise the component is not visible in the list of new test steps. If this is taken care of, the component is visible and one can add it as new test step. However, during the execution
two errors are seen in rc_swing.log depending on what value is set for 'depends'
1> If 'depends' is com.bredexsw.guidancer.ConcreteToolkitPlugin, the error in log file is
2013-12-03 17:50:04.166 [Connection.ReaderThread:Socket[addr=LAP932.persistent.co.in/10.77.235.2,port=56729,localport=56745]] ERROR o.e.j.r.c.c.AbstractCapTestCommand - component ''is not supported
org.eclipse.jubula.rc.common.exception.UnsupportedComponentException: component '' is not supported
at org.eclipse.jubula.rc.common.AUTServerConfiguration.createInstance(AUTServerConfiguration.java:318) ~[org.eclipse.jubula.rc.common_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.rc.common.AUTServerConfiguration.getImplementationClass(AUTServerConfiguration.java:261) ~[org.eclipse.jubula.rc.common_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.rc.common.commands.AbstractCapTestCommand.getImplClass(AbstractCapTestCommand.java:140) [org.eclipse.jubula.rc.common_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.rc.common.commands.AbstractCapTestCommand.execute(AbstractCapTestCommand.java:234) [org.eclipse.jubula.rc.common_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.communication.Communicator$ConnectionListener.received(Communicator.java:844) [org.eclipse.jubula.communication_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.communication.connection.Connection.fireMessageReceived(Connection.java:402) [org.eclipse.jubula.communication_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.communication.connection.Connection.access$2(Connection.java:391) [org.eclipse.jubula.communication_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.communication.connection.Connection$ReaderThread.run(Connection.java:454) [org.eclipse.jubula.communication_2.2.0.201310100933.jar:na]
2> If 'depends' is com.bredexsw.guidancer.SwingToolkitPlugin, the error in log file is
2013-12-03 17:38:02.496 [Connection.ReaderThread:Socket[addr=LAP932.persistent.co.in/10.77.235.2,port=65129,localport=65148]] ERROR o.e.j.r.c.c.AbstractCapTestCommand - null
java.lang.NullPointerException: null
at org.eclipse.jubula.rc.common.classloader.ImplClassClassLoader.implLoadClass(ImplClassClassLoader.java:91) ~[org.eclipse.jubula.rc.common_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.rc.common.classloader.ImplClassClassLoader.loadClass(ImplClassClassLoader.java:62) ~[org.eclipse.jubula.rc.common_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.rc.common.classloader.ImplClassClassLoader.loadClass(ImplClassClassLoader.java:107) ~[org.eclipse.jubula.rc.common_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.rc.common.AUTServerConfiguration.loadImplementationClass(AUTServerConfiguration.java:340) ~[org.eclipse.jubula.rc.common_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.rc.common.AUTServerConfiguration.createInstance(AUTServerConfiguration.java:292) ~[org.eclipse.jubula.rc.common_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.rc.common.AUTServerConfiguration.getImplementationClass(AUTServerConfiguration.java:261) ~[org.eclipse.jubula.rc.common_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.rc.common.commands.AbstractCapTestCommand.getImplClass(AbstractCapTestCommand.java:140) [org.eclipse.jubula.rc.common_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.rc.common.commands.AbstractCapTestCommand.execute(AbstractCapTestCommand.java:234) [org.eclipse.jubula.rc.common_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.communication.Communicator$ConnectionListener.received(Communicator.java:844) [org.eclipse.jubula.communication_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.communication.connection.Connection.fireMessageReceived(Connection.java:402) [org.eclipse.jubula.communication_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.communication.connection.Connection.access$2(Connection.java:391) [org.eclipse.jubula.communication_2.2.0.201310100933.jar:na]
at org.eclipse.jubula.communication.connection.Connection$ReaderThread.run(Connection.java:454) [org.eclipse.jubula.communication_2.2.0.201310100933.jar:na]
Conclusion: Looks like a right approach for my need. Need to solve any one of the above errors.
Following are the contents of my adapter file=>
package