From 414bba8b13b6ecde96d60fbc9f1c48ce58d3fc38 Mon Sep 17 00:00:00 2001 From: Witold Kijowiecki Date: Mon, 16 Jul 2018 11:52:20 +0200 Subject: [PATCH 1/3] configurable path to emulator --- pom.xml | 2 +- .../plugins/android/AbstractEmulatorMojo.java | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 61c17eca5..24b64fdc7 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ com.simpligility.maven.plugins android-maven-plugin - 4.5.1-SNAPSHOT + 4.5.2-SNAPSHOT maven-plugin Android Maven Plugin - android-maven-plugin diff --git a/src/main/java/com/simpligility/maven/plugins/android/AbstractEmulatorMojo.java b/src/main/java/com/simpligility/maven/plugins/android/AbstractEmulatorMojo.java index 97980f96e..ffefda6e5 100755 --- a/src/main/java/com/simpligility/maven/plugins/android/AbstractEmulatorMojo.java +++ b/src/main/java/com/simpligility/maven/plugins/android/AbstractEmulatorMojo.java @@ -102,6 +102,7 @@ public abstract class AbstractEmulatorMojo extends AbstractAndroidMojo * <wait>20000</wait> * <options>-no-skin</options> * <executable>emulator-arm</executable> + * <location>C:/SDK/emulator</location> * </emulator> * * or configure as properties on the command line as android.emulator.avd, android.emulator.wait, @@ -143,7 +144,6 @@ public abstract class AbstractEmulatorMojo extends AbstractAndroidMojo @Parameter( property = "android.emulator.options" ) private String emulatorOptions; - /** * Override default emulator executable. Default uses just "emulator". * @@ -152,6 +152,12 @@ public abstract class AbstractEmulatorMojo extends AbstractAndroidMojo @Parameter( property = "android.emulator.executable" ) private String emulatorExecutable; + /** + * Override default path to emulator folder. + */ + @Parameter( property = "android.emulator.location" ) + private String emulatorLocation; + /** * parsed value for avd that will be used for the invocation. */ @@ -765,9 +771,13 @@ public Boolean call() throws IOException * @throws MojoExecutionException * @see com.simpligility.maven.plugins.android.configuration.Emulator */ - private String assembleStartCommandLine() throws MojoExecutionException - { - String emulatorPath = new File ( getAndroidSdk().getToolsPath(), parsedExecutable ).getAbsolutePath(); + private String assembleStartCommandLine() throws MojoExecutionException{ + String emulatorPath; + if (emulatorLocation != null) { + emulatorPath = new File(emulatorLocation, parsedExecutable).getAbsolutePath(); + } else { + emulatorPath = new File(getAndroidSdk().getToolsPath(), parsedExecutable).getAbsolutePath(); + } StringBuilder startCommandline = new StringBuilder( "\"\"" ).append( emulatorPath ).append( "\"\"" ) .append( " -avd " ).append( parsedAvd ).append( " " ); if ( !StringUtils.isEmpty( parsedOptions ) ) From 051a30beb4c33d3781e4e8d1787c4d586a90c2ab Mon Sep 17 00:00:00 2001 From: Witold Kijowiecki Date: Mon, 16 Jul 2018 13:22:29 +0200 Subject: [PATCH 2/3] configurable path to emulator --- .../plugins/android/AbstractEmulatorMojo.java | 22 +++++++++---------- .../android/configuration/Emulator.java | 7 ++++++ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/simpligility/maven/plugins/android/AbstractEmulatorMojo.java b/src/main/java/com/simpligility/maven/plugins/android/AbstractEmulatorMojo.java index ffefda6e5..adcbc47ea 100755 --- a/src/main/java/com/simpligility/maven/plugins/android/AbstractEmulatorMojo.java +++ b/src/main/java/com/simpligility/maven/plugins/android/AbstractEmulatorMojo.java @@ -152,12 +152,6 @@ public abstract class AbstractEmulatorMojo extends AbstractAndroidMojo @Parameter( property = "android.emulator.executable" ) private String emulatorExecutable; - /** - * Override default path to emulator folder. - */ - @Parameter( property = "android.emulator.location" ) - private String emulatorLocation; - /** * parsed value for avd that will be used for the invocation. */ @@ -270,7 +264,7 @@ protected void startAndroidEmulator() throws MojoExecutionException throw new MojoExecutionException( "", e ); } } - + /** * Unlocks the emulator. * @param androidDebugBridge @@ -771,12 +765,16 @@ public Boolean call() throws IOException * @throws MojoExecutionException * @see com.simpligility.maven.plugins.android.configuration.Emulator */ - private String assembleStartCommandLine() throws MojoExecutionException{ + private String assembleStartCommandLine() throws MojoExecutionException + { String emulatorPath; - if (emulatorLocation != null) { - emulatorPath = new File(emulatorLocation, parsedExecutable).getAbsolutePath(); - } else { - emulatorPath = new File(getAndroidSdk().getToolsPath(), parsedExecutable).getAbsolutePath(); + if ( emulator.getLocation() != null ) + { + emulatorPath = new File( emulator.getLocation(), parsedExecutable ).getAbsolutePath(); + } + else + { + emulatorPath = new File( getAndroidSdk().getToolsPath(), parsedExecutable ).getAbsolutePath(); } StringBuilder startCommandline = new StringBuilder( "\"\"" ).append( emulatorPath ).append( "\"\"" ) .append( " -avd " ).append( parsedAvd ).append( " " ); diff --git a/src/main/java/com/simpligility/maven/plugins/android/configuration/Emulator.java b/src/main/java/com/simpligility/maven/plugins/android/configuration/Emulator.java index d36db838b..df9a42ce6 100644 --- a/src/main/java/com/simpligility/maven/plugins/android/configuration/Emulator.java +++ b/src/main/java/com/simpligility/maven/plugins/android/configuration/Emulator.java @@ -28,6 +28,13 @@ public class Emulator */ private String executable; + public String getLocation() + { + return location; + } + + private String location; + public String getAvd() { return avd; From 87f1236db6c5b24178990a4c40f9fdd86f2143ad Mon Sep 17 00:00:00 2001 From: Witold Kijowiecki Date: Mon, 16 Jul 2018 13:51:45 +0200 Subject: [PATCH 3/3] configurable path to emulator --- .../plugins/android/AbstractEmulatorMojo.java | 55 +++++++++++++++++-- 1 file changed, 49 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/simpligility/maven/plugins/android/AbstractEmulatorMojo.java b/src/main/java/com/simpligility/maven/plugins/android/AbstractEmulatorMojo.java index adcbc47ea..e307d6a14 100755 --- a/src/main/java/com/simpligility/maven/plugins/android/AbstractEmulatorMojo.java +++ b/src/main/java/com/simpligility/maven/plugins/android/AbstractEmulatorMojo.java @@ -152,14 +152,22 @@ public abstract class AbstractEmulatorMojo extends AbstractAndroidMojo @Parameter( property = "android.emulator.executable" ) private String emulatorExecutable; + /** + * Override default path to emulator folder. + */ + @Parameter( property = "android.emulator.location" ) + private String emulatorLocation; + /** * parsed value for avd that will be used for the invocation. */ private String parsedAvd; + /** * parsed value for options that will be used for the invocation. */ private String parsedOptions; + /** * parsed value for wait that will be used for the invocation. */ @@ -167,6 +175,11 @@ public abstract class AbstractEmulatorMojo extends AbstractAndroidMojo private String parsedExecutable; + /** + * parsed value for location that will be used for the invocation. + */ + private String parsedEmulatorLocation; + private static final String START_EMULATOR_MSG = "Starting android emulator with script: "; private static final String START_EMULATOR_WAIT_MSG = "Waiting for emulator start:"; @@ -768,9 +781,9 @@ public Boolean call() throws IOException private String assembleStartCommandLine() throws MojoExecutionException { String emulatorPath; - if ( emulator.getLocation() != null ) + if ( !"SdkTools".equals( parsedEmulatorLocation ) ) { - emulatorPath = new File( emulator.getLocation(), parsedExecutable ).getAbsolutePath(); + emulatorPath = new File( parsedEmulatorLocation, parsedExecutable ).getAbsolutePath(); } else { @@ -797,7 +810,7 @@ private void parseParameters() parsedAvd = emulator.getAvd(); } else - { + { parsedAvd = determineAvd(); } // exists in pom file @@ -806,7 +819,7 @@ private void parseParameters() parsedOptions = emulator.getOptions(); } else - { + { parsedOptions = determineOptions(); } // exists in pom file @@ -815,7 +828,7 @@ private void parseParameters() parsedWait = emulator.getWait(); } else - { + { parsedWait = determineWait(); } // exists in pom file @@ -824,9 +837,18 @@ private void parseParameters() parsedExecutable = emulator.getExecutable(); } else - { + { parsedExecutable = determineExecutable(); } + // exists in pom file + if ( emulator.getLocation() != null ) + { + parsedEmulatorLocation = emulator.getLocation(); + } + else + { + parsedEmulatorLocation = determineEmulatorLocation(); + } } // commandline options else @@ -835,6 +857,7 @@ private void parseParameters() parsedOptions = determineOptions(); parsedWait = determineWait(); parsedExecutable = determineExecutable(); + parsedEmulatorLocation = determineEmulatorLocation(); } } @@ -913,4 +936,24 @@ String determineAvd() } return avd; } + + /** + * Get location value for emulator from command line option. + * + * @return if available return command line value otherwise return default value ("SdkTools"). + */ + String determineEmulatorLocation() + { + String location; + if ( emulatorLocation != null ) + { + location = emulatorLocation; + } + else + { + location = "SdkTools"; + } + return location; + } + } \ No newline at end of file