Well, my only small issue is with reading the code:

if (isHandled(repository)) {
    handle(repository);
}

If is handled, handle again? should be clear what it does.