Documentation for a newer release is available.
View Latest
How Do I Modify HTM Request from HTM Error Handler for Flo-Lang?
The custom HTM Error handler, based on default implementation can be created for sending additional data (supporting data and parameters) to HTM. For example:
public class CustomHtmErrorHandlerExtensions<T extends Aggregate> extends HtmErrorHandlerExtensions<T> {
public CustomHtmErrorHandlerExtensions(SendingConnector<RegisterTaskRequest, Response<RegisterTaskResponse>> taskConnector, HtmProcessorRegistry htmProcessorRegistry) {
super(taskConnector, htmProcessorRegistry);
}
@Override
protected ValueWrapper getSupportingData(T aggregate, Throwable t) {
return ValueWrapper.builder().build(); // custom implementation
}
@Override
protected ValueWrapper getParameters(T aggregate, Throwable t) {
return ValueWrapper.builder().build(); // custom implementation
}
}
Spring configuration example:
@Bean
public HtmErrorHandlerExtensions<Aggregate> defaultHtmErrorExtensions(SendingConnector<RegisterTaskRequest, Response<RegisterTaskResponse>> taskConnector, HtmProcessorRegistry htmProcessorRegistry) {
return new CustomHtmErrorHandlerExtensions<>(taskConnector, htmProcessorRegistry);
}
@Bean
public HtmexampleDomain htmexampleDomain(ActorSystem actorSystem, Dispatcher floDispatcher,
HtmErrorHandlerExtensions<Aggregate> htmErrorHandlerExtension) {
// All adapters should be added to the domain model
return new HtmexampleDomain.Builder(actorSystem)
.withDispatcher(floDispatcher)
.withFallbackExtensionProvider(ExtensionProvider.builder().flowErrorExtensions(htmErrorHandlerExtension).build()) (1)
.build();
}