[MWRAPPER-16] PoC call mvn(.cmd) script from mvnw(.cmd)
diff --git a/maven-wrapper-distribution/src/assembly/maven/run b/maven-wrapper-distribution/src/assembly/maven/run
index 69535d6..95897e9 100755
--- a/maven-wrapper-distribution/src/assembly/maven/run
+++ b/maven-wrapper-distribution/src/assembly/maven/run
@@ -8,7 +8,7 @@
   MAVEN_PROJECTBASEDIR=`cygpath --windows "$MAVEN_PROJECTBASEDIR"`
 fi
 
-exec "$JAVACMD" \
+"$JAVACMD" \
   $MAVEN_OPTS \
   $MAVEN_DEBUG_OPTS \
   -classpath "$LAUNCHER_JAR" \
@@ -17,3 +17,17 @@
   "-Dlibrary.jansi.path=${MAVEN_HOME}/lib/jansi-native" \
   "-Dmaven.multiModuleProjectDirectory=$MAVEN_PROJECTBASEDIR" \
   $LAUNCHER_CLASS "$@"
+
+# read distributionUrl from $MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties
+while IFS="=" read key value; do
+  case "$key" in (distributionUrl) distributionUrl="$value"; break ;;
+  esac
+done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
+
+# local distribution dir is distributionUrl basename without extension
+distribution=`basename $distributionUrl .zip`
+
+mvn=~/.m2/wrapper/dists/$distribution/*/bin/mvn
+echo "mvnw will call $mvn"
+
+exec $mvn "$@"
diff --git a/maven-wrapper-distribution/src/assembly/maven/run.cmd b/maven-wrapper-distribution/src/assembly/maven/run.cmd
index ac526f8..690f3fa 100755
--- a/maven-wrapper-distribution/src/assembly/maven/run.cmd
+++ b/maven-wrapper-distribution/src/assembly/maven/run.cmd
@@ -9,6 +9,18 @@
   "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
   %LAUNCHER_CLASS% %*
 if ERRORLEVEL 1 goto error
+
+@REM read distributionUrl from $MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="distributionUrl" SET DISTRIBUTION_URL=%%B
+)
+
+for /F %i in (%DISTRIBUTION_URL%) do SET DISTRIBUTION=%~ni
+
+SET MVN=%USERPROFILE%\.m2\wrapper\dists\%DISTRIBUTION%/*/bin/mvn.cmd
+
+%MVN% %*
+
 goto end
 
 :error
diff --git a/maven-wrapper-plugin/src/main/java/org/apache/maven/plugins/wrapper/WrapperMojo.java b/maven-wrapper-plugin/src/main/java/org/apache/maven/plugins/wrapper/WrapperMojo.java
index b8f5295..f745b8d 100644
--- a/maven-wrapper-plugin/src/main/java/org/apache/maven/plugins/wrapper/WrapperMojo.java
+++ b/maven-wrapper-plugin/src/main/java/org/apache/maven/plugins/wrapper/WrapperMojo.java
@@ -218,7 +218,7 @@
         try ( BufferedWriter out = Files.newBufferedWriter( wrapperPropertiesFile ) )
         {
             out.append( license );
-            out.append( "distributionUrl=" + distributionUrl );
+            out.append( "distributionUrl=" + distributionUrl + "\n" );
         }
     }
     
diff --git a/maven-wrapper/src/main/java/org/apache/maven/wrapper/BootstrapMainStarter.java b/maven-wrapper/src/main/java/org/apache/maven/wrapper/BootstrapMainStarter.java
index 720b450..b29e2ab 100644
--- a/maven-wrapper/src/main/java/org/apache/maven/wrapper/BootstrapMainStarter.java
+++ b/maven-wrapper/src/main/java/org/apache/maven/wrapper/BootstrapMainStarter.java
@@ -31,6 +31,7 @@
  * Maven starter, from a provided Maven home directory.
  *
  * @author Hans Dockter
+ * @deprecated will be removed once launching Maven is not done here but in mvnw script by calling mvn
  */
 public class BootstrapMainStarter
 {
@@ -47,7 +48,8 @@
         System.setProperty( "classworlds.conf", mavenHome.resolve( "bin/m2.conf" ).toAbsolutePath().toString() );
 
         Method mainMethod = mainClass.getMethod( "main", String[].class );
-        mainMethod.invoke( null, new Object[] { args } );
+        //mainMethod.invoke( null, new Object[] { args } );
+        System.out.println( "Now, mvnw script should call " + mavenHome.toAbsolutePath().toString() + "/bin/mvn" );
     }
 
     private Path findLauncherJar( Path mavenHome ) throws RuntimeException, IOException