@@ -0,0 +1,1054 @@
+package org.jeecqrs.bundle.jcommondomain.commands;%0A%0Aimport org.jeecqrs.command.registry.autodiscover.AutoDiscoveredCommandHandler;%0Aimport org.jeecqrs.common.commands.Command;%0Aimport org.jeecqrs.sagas.Saga;%0Aimport org.jeecqrs.sagas.config.autodiscover.SagaConfigProvider;%0Aimport org.jodah.typetools.TypeResolver;%0A%0A/**%0A *%0A */%0Apublic abstract class AbstractCommandHandler%3CC extends Command%3E implements AutoDiscoveredCommandHandler%3CC%3E %7B%0A%0A    private Class%3CC%3E commandClass;%0A%0A    public AbstractCommandHandler() %7B%0A        Class%3C?%3E%5B%5D typeArguments = TypeResolver.resolveRawArguments(AbstractCommandHandler.class, getClass());%0A        commandClass = (Class) typeArguments%5B0%5D;%0A        if (TypeResolver.Unknown.class.equals(commandClass))%0A            throw new IllegalStateException(%22Command type parameter missing on %22 +%0A                    AbstractCommandHandler.class.getSimpleName() + %22 for class %22 +%0A                    getClass().getName());%0A    %7D%0A%0A    @Override%0A    public Class%3C? extends C%3E handledCommandType() %7B%0A        return commandClass;%0A    %7D%0A    %0A%7D%0A

Add AbstractCommandHandler that automagically looks up the command type via typetools