package org.eclipse.xtend.maven;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.project.MavenProject;
import com.google.inject.Inject;
public abstract class AbstractXtendMojo extends AbstractMojo {
@Inject
protected MavenLog4JConfigurator log4jConfigurator;
/**
* The project itself. This parameter is set by maven.
*
* @parameter expression="${project}"
* @required
*/
protected MavenProject project;
/**
* Set this to true to skip compiling Xtend sources.
*
* @parameter default-value="false" expression="${skipXtend}"
*/
protected boolean skipXtend;
public AbstractXtendMojo() {
injectMembers();
}
public void execute() throws MojoExecutionException, MojoFailureException {
if (isSkipped()) {
getLog().info("skipped.");
} else {
log4jConfigurator.configureLog4j(getLog());
internalExecute();
}
}
protected void injectMembers() {
new XtendMavenStandaloneSetup().createInjectorAndDoEMFRegistration().injectMembers(this);
}
protected abstract void internalExecute() throws MojoExecutionException, MojoFailureException;
protected boolean isSkipped() {
return skipXtend;
}
}