public final void loadExtensions() {
        ServiceLoader<Extension> loader = ServiceLoader.load(Extension.class, Extension.class.getClassLoader());

        for (Extension extension : loader) {
            extension.addSupport(this);
        }
    }
{@code AbstractModule} provides a base class for annotation based dependency injection

@author tiwe
querydsl-codegen/src/main/java/com/querydsl/codegen/AbstractModule.java