@Override
public Mojo executeMojo(MavenSession session, MavenProject project, MojoExecution execution) throws Exception {
Object sessionScope = container.lookup("org.apache.maven.SessionScope");
try {
enter(sessionScope);
seed(sessionScope, MavenSession.class, session);
MojoExecutionScope executionScope = container.lookup(MojoExecutionScope.class);
try {
executionScope.enter();
executionScope.seed(MavenProject.class, project);
executionScope.seed(MojoExecution.class, execution);
Mojo mojo = lookupConfiguredMojo(session, execution);
mojo.execute();
MojoExecutionEvent event = new MojoExecutionEvent(session, project, execution, mojo);
for (MojoExecutionListener listener : container.lookupList(MojoExecutionListener.class)) {
listener.afterMojoExecutionSuccess(event);
}
return mojo;
} finally {
executionScope.exit();
}
} finally {
exit(sessionScope);
}
}