in adapter/runtime/src/main/java/org/apache/rocketmq/eventbridge/adapter/runtime/boot/common/CirculatorContext.java [269:293]
private SinkTask initTargetSinkTask(TargetKeyValue targetKeyValue) {
String taskClass = targetKeyValue.getString(RuntimeConfigDefine.RUNNER_CLASS);
ClassLoader loader = plugin.getPluginClassLoader(taskClass);
Class taskClazz;
boolean isolationFlag = false;
try {
if (loader instanceof PluginClassLoader) {
taskClazz = ((PluginClassLoader) loader).loadClass(taskClass, false);
isolationFlag = true;
} else {
taskClazz = Class.forName(taskClass);
}
SinkTask sinkTask = (SinkTask) taskClazz.getDeclaredConstructor().newInstance();
sinkTask.init(targetKeyValue);
TriggerTaskContext sinkTaskContext = new TriggerTaskContext(targetKeyValue);
sinkTask.start(sinkTaskContext);
if (isolationFlag) {
Plugin.compareAndSwapLoaders(loader);
}
return sinkTask;
}catch (Exception exception) {
logger.error("task class -" + taskClass + "- init its sinkTask failed, ex- ", exception);
}
return null;
}