void (MavenExecutionRequest request, Runnable runnable) { DefaultMaven maven = (DefaultMaven)getComponent(Maven.class); SessionScope sessionScope = getComponent(SessionScope.class); sessionScope.enter(); try { MavenSession mavenSession = createMavenSession(request, maven); sessionScope.seed(MavenSession.class, mavenSession); LegacySupport legacySupport = getComponent(LegacySupport.class); MavenSession oldSession = legacySupport.getSession(); legacySupport.setSession(mavenSession); notifyAfterSessionStart(mavenSession); // adapted from {@link DefaultMaven#doExecute(MavenExecutionRequest)} try { runnable.run(); } finally { legacySupport.setSession(oldSession); } } finally { sessionScope.exit(); } }