class MojoExecutionScopeModule extends AbstractModule {
    protected final MojoExecutionScope scope;

    public MojoExecutionScopeModule(MojoExecutionScope scope) {
        this.scope = scope;
    }

    @Override
    protected void configure() {<FILL_FUNCTION_BODY>}
}

        bindScope(MojoExecutionScoped.class, scope);
        // bindScope(org.apache.maven.api.di.MojoExecutionScoped.class, scope);
        bind(MojoExecutionScope.class).toInstance(scope);
        bind(MavenProject.class)
                .toProvider(MojoExecutionScope.seededKeyProvider())
                .in(scope);
        bind(MojoExecution.class)
                .toProvider(MojoExecutionScope.seededKeyProvider())
                .in(scope);
        bind(Log.class).toProvider(MojoExecutionScope.seededKeyProvider()).in(scope);
        bind(org.apache.maven.api.Project.class)
                .toProvider(MojoExecutionScope.seededKeyProvider())
                .in(scope);
        bind(org.apache.maven.api.MojoExecution.class)
                .toProvider(MojoExecutionScope.seededKeyProvider())
                .in(scope);
    
<no_super_class>