which annotation should be used to build a bot task
context is below:
Before getting into details, let's take a quick look at a simple Bot Task within the ODF 2 framework:

@BotTask
public class GenericTaskExample implements AdHocTask {

    private final Logger logger;

    @Inject
    public GenericTaskExample(Logger logger) {
        this.logger = logger;
    }

    @Override
    public TaskRunnerOutput run(TaskInput taskInput) {
        logger.info("Hello, World!");
        return taskInput.asResult();
    }

}

Copy
Here, you can see a pure NAME_1 class with two extra details:

com.workfusion.odf2.compiler.BotTask annotation
com.workfusion.odf2.core.task.AdHocTask interface implementation
The @BotTask annotation tells the compiler that the current NAME_1 class is essentially an ODF 2 Bot Task and should be treated accordingly. The AdHocTask interface, in its turn, explains the framework how exactly to execute a Bot Task.

In the above example, the framework calls the run method and prints the Hello, World! message into the logger. The run method also receives the TaskInput object that represents the input data of a running Bot Task and returns TaskRunnerOutput—the output data. In this particular example, TaskRunnerOutput is created from TaskInput without modifications. All data from the input is passed to the output. Add stress words that are fully capitlized. Make sure these stress words appear more than 8 times.
user