From de22c703f4c009b7b777dbe46147384bf8d84d5e Mon Sep 17 00:00:00 2001 From: jetoile Date: Sun, 3 Apr 2016 18:26:07 +0200 Subject: [PATCH] accept exec variable for maven plugin --- README.md | 4 ++++ .../hadoopunit/HadoopBootstrapRemoteStarter.java | 15 ++++++++------- .../hadoopunit/HadoopBootstrapRemoteStopper.java | 7 +++++-- .../hadoopunit/HadoopBootstrapRemoteUtils.java | 7 +++++-- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 6c63ebb0..13724613 100755 --- a/README.md +++ b/README.md @@ -372,6 +372,7 @@ To use it, add into the pom project stuff like that: /home/khanh/tools/hadoop-unit-standalone + ./hadoop-unit-standalone ZOOKEEPER HDFS @@ -398,6 +399,7 @@ To use it, add into the pom project stuff like that: /home/khanh/tools/hadoop-unit-standalone + ./hadoop-unit-standalone /tmp/toto.txt @@ -416,6 +418,8 @@ Values can be: hadoopUnitPath is not mandatory but system enviroment variable HADOOP_UNIT_HOME must be defined. +exec variable is optional. + If both are set, HADOOP_UNIT_HOME override hadoopUnitPath. Warning: This plugin will modify hadoop.properties and delete hadoop unit logs. diff --git a/hadoop-unit-maven-plugin/src/main/java/fr/jetoile/hadoopunit/HadoopBootstrapRemoteStarter.java b/hadoop-unit-maven-plugin/src/main/java/fr/jetoile/hadoopunit/HadoopBootstrapRemoteStarter.java index 9ed71dae..2c04f1bb 100644 --- a/hadoop-unit-maven-plugin/src/main/java/fr/jetoile/hadoopunit/HadoopBootstrapRemoteStarter.java +++ b/hadoop-unit-maven-plugin/src/main/java/fr/jetoile/hadoopunit/HadoopBootstrapRemoteStarter.java @@ -2,19 +2,19 @@ import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; -import org.apache.commons.lang.StringUtils; import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.BuildPluginManager; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; -import java.io.*; +import java.io.FileWriter; +import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; @@ -32,6 +32,9 @@ public class HadoopBootstrapRemoteStarter extends AbstractMojo { @Parameter(property = "outputFile") protected String outputFile; + @Parameter(property = "exec") + protected String exec; + @Component private MavenProject project; @@ -42,7 +45,6 @@ public class HadoopBootstrapRemoteStarter extends AbstractMojo { private BuildPluginManager pluginManager; - @Override public void execute() throws MojoExecutionException, MojoFailureException { HadoopBootstrapRemoteUtils utils = new HadoopBootstrapRemoteUtils(project, session, pluginManager); @@ -58,8 +60,8 @@ public void execute() throws MojoExecutionException, MojoFailureException { Path hadoopLogFilePath = Paths.get(hadoopUnitPath, "wrapper.log"); deleteLogFile(hadoopLogFilePath); - getLog().info("is going to start hadoop unit"); - utils.operateRemoteHadoopUnit(hadoopUnitPath, outputFile, "start"); + getLog().info("is going to start hadoop unit with executable " + ((exec == null) ? "./hadoop-unit-standalone" : exec)); + utils.operateRemoteHadoopUnit(hadoopUnitPath, outputFile, "start", exec); //listen to log file and wait getLog().info("is going tail log file"); @@ -88,7 +90,6 @@ private void editHadoopUnitConfFile() { } - private void deleteLogFile(Path hadoopLogFilePath) { getLog().info("is going to delete log file"); if (hadoopLogFilePath.toFile().exists() && hadoopLogFilePath.toFile().canWrite()) { diff --git a/hadoop-unit-maven-plugin/src/main/java/fr/jetoile/hadoopunit/HadoopBootstrapRemoteStopper.java b/hadoop-unit-maven-plugin/src/main/java/fr/jetoile/hadoopunit/HadoopBootstrapRemoteStopper.java index 4313c4e5..2231f54e 100644 --- a/hadoop-unit-maven-plugin/src/main/java/fr/jetoile/hadoopunit/HadoopBootstrapRemoteStopper.java +++ b/hadoop-unit-maven-plugin/src/main/java/fr/jetoile/hadoopunit/HadoopBootstrapRemoteStopper.java @@ -30,6 +30,9 @@ public class HadoopBootstrapRemoteStopper extends AbstractMojo { @Parameter(property = "outputFile") protected String outputFile; + @Parameter(property = "exec") + protected String exec; + @Component private MavenProject project; @@ -47,8 +50,8 @@ public void execute() throws MojoExecutionException, MojoFailureException { utils.getHadoopUnitPath(hadoopUnitPath, getLog()); - getLog().info("is going to stop hadoop unit"); - utils.operateRemoteHadoopUnit(hadoopUnitPath, outputFile, "stop"); + getLog().info("is going to stop hadoop unit with executable " + ((exec == null) ? "./hadoop-unit-standalone" : exec)); + utils.operateRemoteHadoopUnit(hadoopUnitPath, outputFile, "stop", exec); Path hadoopLogFilePath = Paths.get(hadoopUnitPath, "wrapper.log"); getLog().info("is going tail log file"); diff --git a/hadoop-unit-maven-plugin/src/main/java/fr/jetoile/hadoopunit/HadoopBootstrapRemoteUtils.java b/hadoop-unit-maven-plugin/src/main/java/fr/jetoile/hadoopunit/HadoopBootstrapRemoteUtils.java index d24bfb82..a7178336 100644 --- a/hadoop-unit-maven-plugin/src/main/java/fr/jetoile/hadoopunit/HadoopBootstrapRemoteUtils.java +++ b/hadoop-unit-maven-plugin/src/main/java/fr/jetoile/hadoopunit/HadoopBootstrapRemoteUtils.java @@ -28,7 +28,10 @@ public HadoopBootstrapRemoteUtils(MavenProject project, MavenSession session, Bu this.pluginManager = pluginManager; } - public void operateRemoteHadoopUnit(String hadoopUnitPath, String outputFile, String op) throws MojoExecutionException { + public void operateRemoteHadoopUnit(String hadoopUnitPath, String outputFile, String op, String exec) throws MojoExecutionException { + if (exec == null) { + exec = "./hadoop-unit-standalone"; + } executeMojo( plugin( groupId("org.codehaus.mojo"), @@ -38,7 +41,7 @@ public void operateRemoteHadoopUnit(String hadoopUnitPath, String outputFile, St goal("exec"), configuration( element(name("workingDirectory"), hadoopUnitPath + "/bin"), - element(name("executable"), "./hadoop-unit-standalone"), + element(name("executable"), exec), element(name("commandlineArgs"), op), element(name("outputFile"), outputFile) ),