It got it working now. As a matter of fact the registering of the task needs to happen inside the external application. That's where I got it wrong before. If you are interested see my example code.
The base application executing the task of the external application:
public class ExternalJLinkApplicationLauncher extends DefaultUICommandActionListener {
@Override
public void OnCommand() {
try {
JLinkApplication externalJLinkApp = pfcGlobal.GetProESession().StartJLinkApplication("externalJLinkApp",
"com.testing.ExternalJLinkApplication", "start", "stop", "C:\\path\\to\\classfiles", "C:\\path\\to\\textfolder", true);
String taskId = "externalJLinkApp001";
Argument dummyArgument = pfcArgument.Argument_Create("dummyArgument", pfcArgument.CreateASCIIStringArgValue("value"));
Arguments arguments = Arguments.create();
arguments.append(dummyArgument);
try {
externalJLinkApp.ExecuteTask(taskId, arguments);
} catch (XToolkitNotFound e) {
System.out.println("Task could not be found in target application.");
}
} catch (jxthrowable jxt) {
System.out.println(jxt.getMessage());
}
}
class ExternalJLinkAppListener extends DefaultJLinkTaskListener {
@Override
public Arguments OnExecute(Arguments arg0) throws jxthrowable {
System.out.println("externalJLinkApp started.");
return arg0;
}
}
}
The external application:
public class ExternalJLinkApplication {
private void registerTask() {
try {
String taskId = "externalJLinkApp001";
try {
pfcGlobal.GetProESession().RegisterTask(taskId, new ExternalJLinkAppListener());
} catch (XJLinkTaskExists e) {
System.out.println("Task " + e.GetTaskId() + " already exists.");
return;
}
} catch (jxthrowable jxt) {
System.out.println(jxt.getMessage());
}
}
public static void start() {
ExternalTestApp instance = new ExternalTestApp();
instance.registerTask();
}
public static void stop() {
}
class ExternalJLinkAppListener extends DefaultJLinkTaskListener {
@Override
public Arguments OnExecute(Arguments arg0) throws jxthrowable {
new JwPrintMessage().messageArea("TEST");
System.out.println("ExternalJLinkApplication started.");
return arg0;
}
}
}
Thank you all for your support and best regards!