Example usage for org.apache.maven.plugin MavenPluginManager getConfiguredMojo

List of usage examples for org.apache.maven.plugin MavenPluginManager getConfiguredMojo

Introduction

In this page you can find the example usage for org.apache.maven.plugin MavenPluginManager getConfiguredMojo.

Prototype

<T> T getConfiguredMojo(Class<T> mojoInterface, MavenSession session, MojoExecution mojoExecution)
        throws PluginConfigurationException, PluginContainerException;

Source Link

Document

Looks up the mojo for the specified mojo execution and populates its parameters from the configuration given by the mojo execution.

Usage

From source file:org.mkleint.netbeans.surefire.eventspy.ContSurefireEventSpy.java

private Runnable getServerRunnable(final MojoExecution mojoExecution, final MavenSession session) {
    return new Runnable() {

        @Override/*from ww w. jav a2 s . c o  m*/
        public void run() {
            ServerSocket ss = null;
            try {
                ss = new ServerSocket(2999, 1);
                logger.info("waiting for incoming connections on port 2999");
                boolean cont = true;
                final ExecutionEventCatapult eventCatapult = container.lookup(ExecutionEventCatapult.class);
                final BuildPluginManager pluginManager = container.lookup(BuildPluginManager.class);
                final MavenPluginManager mavenPluginManager = container.lookup(MavenPluginManager.class);

                while (cont) {
                    Socket s = ss.accept();
                    BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
                    String line = br.readLine();
                    logger.info("processing " + line);
                    if (line == null || "exit".equals(line)) {
                        cont = false;
                        break;
                    }
                    long start = System.currentTimeMillis();

                    eventCatapult.fire(ExecutionEvent.Type.MojoStarted, session, mojoExecution);
                    try {
                        Mojo mojo = mavenPluginManager.getConfiguredMojo(Mojo.class, session, mojoExecution);
                        if (mojo instanceof ContextEnabled) {
                            ContextEnabled en = (ContextEnabled) mojo;
                            en.getPluginContext().clear();
                        }

                        try {
                            pluginManager.executeMojo(session, mojoExecution);
                        } catch (MojoFailureException e) {
                            throw new LifecycleExecutionException(mojoExecution, session.getCurrentProject(),
                                    e);
                        } catch (MojoExecutionException e) {
                            throw new LifecycleExecutionException(mojoExecution, session.getCurrentProject(),
                                    e);
                        } catch (PluginConfigurationException e) {
                            throw new LifecycleExecutionException(mojoExecution, session.getCurrentProject(),
                                    e);
                        } catch (PluginManagerException e) {
                            throw new LifecycleExecutionException(mojoExecution, session.getCurrentProject(),
                                    e);
                        }

                        eventCatapult.fire(ExecutionEvent.Type.MojoSucceeded, session, mojoExecution);
                    } catch (LifecycleExecutionException e) {
                        eventCatapult.fire(ExecutionEvent.Type.MojoFailed, session, mojoExecution, e);
                    } catch (PluginConfigurationException ex) {
                        java.util.logging.Logger.getLogger(ContSurefireEventSpy.class.getName())
                                .log(Level.SEVERE, null, ex);
                    } catch (PluginContainerException ex) {
                        java.util.logging.Logger.getLogger(ContSurefireEventSpy.class.getName())
                                .log(Level.SEVERE, null, ex);
                    } finally {
                        s.close();
                        logger.info("has taken ms=" + ((System.currentTimeMillis() - start)));
                    }
                }
            } catch (IOException ex) {
                java.util.logging.Logger.getLogger(ContSurefireEventSpy.class.getName()).log(Level.SEVERE, null,
                        ex);
            } catch (ComponentLookupException ex) {
                java.util.logging.Logger.getLogger(ContSurefireEventSpy.class.getName()).log(Level.SEVERE, null,
                        ex);
            } finally {
                synchronized (ContSurefireEventSpy.this) {
                    ContSurefireEventSpy.this.notifyAll();
                }
                if (ss != null) {
                    try {
                        ss.close();
                    } catch (IOException ex) {
                        java.util.logging.Logger.getLogger(ContSurefireEventSpy.class.getName())
                                .log(Level.SEVERE, null, ex);
                    }
                }
            }
        }
    };

}