Because nobody was able to help me so far I tried a bit more and I'm now at the point were Jubula recognizes my ImageHyperlink.
Now the problem is that there is an Configuration Error each time I try to perform an action on it. There is a log File under User/.jubula/logs named rc_rcp.log and in there I find the error Message :

An error occured:
org.eclipse.jubula.rc.common.exception.UnsupportedComponentException: component 'org.eclipse.ui.forms.widgets.ImageHyperlink' is not supported: implementation class 'org.eclipse.jubula.extension.rc.rcp.implclasses.ImageHyperlinkImplClass' not found

I did everything as described by the extension API, but I think there has to be a little trick in extending RCP-AUTs.
At least I like to know if the file is at the right place "instalationFolder/server/lib/extImplClasses" and how to alter which configuration File so that jubula is aware of my tester class.

The trick for the RCP extension is to write and deploy a fragment with the "org.eclipse.jubula.rc.rcp"-bundle as its host. The class must be located in the package "org.eclipse.jubula.rc.swt.implclasses".

We are working on a dedicated RCP extension example at the moment, which demonstrates the various ways of extending the RCP toolkit. I assume that this will be made available at the latest with or around SR2.

I am also trying to extend a rcp application, especially the org.eclipse.swt.widgets.Canvas

What I have done so far:
* Made a new toolkit plugin which is nearly similar to the org.eclipse.jubula.examples.extension.swing.toolkit except some individual configurations, like it extends from com.bredexsw.guidancer.RcpToolkitPlugin
** Created a ComponentConfiguration.xml with an entry for the Canvas
* Made a fragment with org.eclipse.jubula.rc.rcp as host plugin which contains the CanvasImplClass under the package org.eclipse.jubula.rc.swt.implclasses

After the creation part i put the toolkit plugin into the JubulaInstallationPath/jubula/plugins and the fragment into the plugin folder of my AUT.

Now when starting Jubula and the AUT, I can map the Canvas and even create a new Action for the public method i created in the CanvasImplClass (or which I specified in the ComponentConfiguration.xml). But when I run the test which contains the new action, I get a Configuration Error. I also get this when drag and dropping the Canvas with the DnD-Action from unbound_modules_concrete_[5.2] -> Actions (basic) -> Drag&Drop -> ub_grc_dragAndDrop. In the log file I get the following warning: WARN o.e.jubula.client.core.ClientTest - No Basic Tester Class is defined for the Toolkit with ID 'com.bredexsw.guidancer.RcpToolkitPlugin'. No Simple Component Extensions will be added.

So I guess there must be something wrong with the fragment, since it can not find the ImplClass at runtime.

WARN o.e.jubula.client.core.ClientTest - No Basic Tester Class is defined for the Toolkit with ID 'com.bredexsw.guidancer.RcpToolkitPlugin'. No Simple Component Extensions will be added.

doesn't have anything to do with the extension you have written. It is related to a different extension mechanism that was shortly available, but is no longer used. We have a product backlog entry to remove the log entries etc.

Based on that, I'd guess that the Configuration Error may actually be a problem in the Implementation Class.

First of all: Thanks for the hint with the (hidden) log-file, this one helped a lot.

We did not get a UnsupportedComponentException, so our class has been found. On strict search, we found a org.eclipse.swt.SWTException: Invalid thread access involving our public method in the ImplClass. So we made a syncExec on the display of the component, so it looks like this now:

I don't know about your specific problem, but looking at the standard implclasses of Jubula helped me out a lot.
Try to look for a component with similiar behavior, these classes are well documented so maybe you find something.

The Verifier will throw an Exception if its condition is not met. Since your expected value is "xyz" and your real value is "" (from data==null oder from the actual value) this counts as an verification error.

Ok, the problem was, that the verification (Verifier.equals(...)) was handled inside of the runnable, which did not work. We now use the getEventThreadQueuer().invokeAndWait to get the control data and after that we use the Verifier (outside of the runnable) like it was done in the LabelImplClass for example.

since I can imagine that a lot of people have problems with extending RCP applications for Jubula, I'd like to announce a blog article my workmate has written after solving our problems with the help in this forum: