import org.axonframework.commandhandling.CommandMessage
import org.axonframework.commandhandling.gateway.CommandGateway
import org.axonframework.messaging.MetaData
import org.slf4j.LoggerFactory
class CommandDispatcher(private val commandGateway: CommandGateway) {
private val logger = LoggerFactory.getLogger(CommandDispatcher::class.java)
// Sample usage providing specific logging logic, next to for example the LoggingInterceptor
command = IssueCardCommand(),
onSuccess = { message: CommandMessage<out IssueCardCommand>, result: Any, _: MetaData ->
logger.info("Successfully handled [{}], resulting in [{}]", message, result)
onError = { result: Any, exception: Throwable, _: MetaData ->
"Failed handling the IssueCardCommand, with output [{} and exception [{}]",