You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by if...@apache.org on 2015/01/27 21:22:10 UTC
[1/2] maven git commit: moved maven.config processing to java,
disallow goals
Repository: maven
Updated Branches:
refs/heads/project-basedir 66ad0a4a5 -> fd6f47911
moved maven.config processing to java, disallow goals
Signed-off-by: Igor Fedorenko <if...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/0a76e91b
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/0a76e91b
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/0a76e91b
Branch: refs/heads/project-basedir
Commit: 0a76e91bd4c0498004c94211a62db266d838830f
Parents: 66ad0a4
Author: Igor Fedorenko <if...@apache.org>
Authored: Tue Jan 27 15:06:07 2015 -0500
Committer: Igor Fedorenko <if...@apache.org>
Committed: Tue Jan 27 15:06:07 2015 -0500
----------------------------------------------------------------------
apache-maven/src/bin/mvn | 9 ++--
apache-maven/src/bin/mvnDebug | 9 ++--
apache-maven/src/bin/mvnyjp | 9 ++--
.../java/org/apache/maven/cli/MavenCli.java | 51 +++++++++++++++++-
.../java/org/apache/maven/cli/MavenCliTest.java | 56 ++++++++++++++++++++
.../projects/config-illegal/.mvn/maven.config | 1 +
.../src/test/projects/config/.mvn/maven.config | 2 +
7 files changed, 120 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/0a76e91b/apache-maven/src/bin/mvn
----------------------------------------------------------------------
diff --git a/apache-maven/src/bin/mvn b/apache-maven/src/bin/mvn
index 70fa2f9..cec2baa 100755
--- a/apache-maven/src/bin/mvn
+++ b/apache-maven/src/bin/mvn
@@ -190,9 +190,8 @@ if $cygwin; then
fi
. "$M2_HOME/bin/mvn-common.sh"
-export MAVEN_BASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
-MAVEN_CONFIG=$(concat "$MAVEN_BASEDIR/.mvn/maven.config")
-MAVEN_OPTS="$(concat "$MAVEN_BASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
+MAVEN_OPTS=$(concat "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
@@ -203,5 +202,5 @@ exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \
"-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \
- "-Dmaven.home=${M2_HOME}" \
- ${CLASSWORLDS_LAUNCHER} $MAVEN_CONFIG "$@"
+ "-Dmaven.home=${M2_HOME}" "-Dmaven.projectBasedir=${MAVEN_PROJECTBASEDIR}" \
+ ${CLASSWORLDS_LAUNCHER} "$@"
http://git-wip-us.apache.org/repos/asf/maven/blob/0a76e91b/apache-maven/src/bin/mvnDebug
----------------------------------------------------------------------
diff --git a/apache-maven/src/bin/mvnDebug b/apache-maven/src/bin/mvnDebug
index 14dc4b5..d3fa982 100755
--- a/apache-maven/src/bin/mvnDebug
+++ b/apache-maven/src/bin/mvnDebug
@@ -194,9 +194,8 @@ if $cygwin; then
fi
. "$M2_HOME/bin/mvn-common.sh"
-export MAVEN_BASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
-MAVEN_CONFIG=$(concat "$MAVEN_BASEDIR/.mvn/maven.config")
-MAVEN_OPTS="$(concat "$MAVEN_BASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
+MAVEN_OPTS=$(concat "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
@@ -208,5 +207,5 @@ exec "$JAVACMD" \
$MAVEN_DEBUG_OPTS \
-classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \
"-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \
- "-Dmaven.home=${M2_HOME}" \
- ${CLASSWORLDS_LAUNCHER} $MAVEN_CONFIG "$@"
+ "-Dmaven.home=${M2_HOME}" "-Dmaven.projectBasedir=${MAVEN_PROJECTBASEDIR}" \
+ ${CLASSWORLDS_LAUNCHER} "$@"
http://git-wip-us.apache.org/repos/asf/maven/blob/0a76e91b/apache-maven/src/bin/mvnyjp
----------------------------------------------------------------------
diff --git a/apache-maven/src/bin/mvnyjp b/apache-maven/src/bin/mvnyjp
index d64979a..b78eeab 100755
--- a/apache-maven/src/bin/mvnyjp
+++ b/apache-maven/src/bin/mvnyjp
@@ -197,9 +197,8 @@ fi
MAVEN_OPTS="-agentpath:$YJPLIB=onexit=snapshot,onexit=memory,tracing,onlylocal $MAVEN_OPTS"
. "$M2_HOME/bin/mvn-common.sh"
-export MAVEN_BASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
-MAVEN_CONFIG=$(concat "$MAVEN_BASEDIR/.mvn/maven.config")
-MAVEN_OPTS="$(concat "$MAVEN_BASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
+MAVEN_OPTS=$(concat "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
@@ -210,5 +209,5 @@ exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \
"-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \
- "-Dmaven.home=${M2_HOME}" \
- ${CLASSWORLDS_LAUNCHER} $MAVEN_CONFIG "$@"
+ "-Dmaven.home=${M2_HOME}" "-Dmaven.projectBasedir=${MAVEN_PROJECTBASEDIR}" \
+ ${CLASSWORLDS_LAUNCHER} "$@"
http://git-wip-us.apache.org/repos/asf/maven/blob/0a76e91b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
----------------------------------------------------------------------
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index 5b7bd7f..a07e08b 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -19,12 +19,16 @@ package org.apache.maven.cli;
* under the License.
*/
+import java.io.BufferedReader;
import java.io.Console;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
+import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -105,6 +109,8 @@ public class MavenCli
public static final String THREADS_DEPRECATED = "maven.threads.experimental";
+ public static final String PROJECT_BASEDIR = "maven.projectBasedir";
+
@SuppressWarnings( "checkstyle:constantname" )
public static final String userHome = System.getProperty( "user.home" );
@@ -275,7 +281,7 @@ public class MavenCli
}
}
- private void cli( CliRequest cliRequest )
+ void cli( CliRequest cliRequest )
throws Exception
{
//
@@ -286,9 +292,50 @@ public class MavenCli
CLIManager cliManager = new CLIManager();
+ List<String> args = new ArrayList<String>();
+
+ try
+ {
+ String basedir = System.getProperty( PROJECT_BASEDIR );
+ File configFile =
+ basedir != null ? new File( basedir, ".mvn/maven.config" ) : new File( ".mvn/maven.config" );
+
+ if ( configFile.isFile() )
+ {
+ BufferedReader r =
+ new BufferedReader( new InputStreamReader( new FileInputStream( configFile ), "UTF-8" ) );
+ try
+ {
+ String str;
+ while ( ( str = r.readLine() ) != null )
+ {
+ args.add( str );
+ }
+ }
+ finally
+ {
+ r.close();
+ }
+
+ CommandLine config = cliManager.parse( args.toArray( new String[args.size()] ) );
+ List<?> unrecongized = config.getArgList();
+ if ( !unrecongized.isEmpty() )
+ {
+ throw new ParseException( "Unrecognized maven.config entries: " + unrecongized );
+ }
+ }
+ }
+ catch ( ParseException e )
+ {
+ System.err.println( "Unable to parse maven.config: " + e.getMessage() );
+ cliManager.displayHelp( System.out );
+ throw e;
+ }
+
try
{
- cliRequest.commandLine = cliManager.parse( cliRequest.args );
+ args.addAll( 0, Arrays.asList( cliRequest.args ) );
+ cliRequest.commandLine = cliManager.parse( args.toArray( new String[args.size()] ) );
}
catch ( ParseException e )
{
http://git-wip-us.apache.org/repos/asf/maven/blob/0a76e91b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
----------------------------------------------------------------------
diff --git a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
index 6e06cc5..a0310c6 100644
--- a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
+++ b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
@@ -19,16 +19,39 @@ package org.apache.maven.cli;
* under the License.
*/
+import java.io.File;
+
import junit.framework.TestCase;
+import org.apache.commons.cli.ParseException;
+import org.apache.maven.cli.MavenCli.CliRequest;
+
public class MavenCliTest
extends TestCase
{
private MavenCli cli;
+ private String origBasedir;
+
protected void setUp()
{
cli = new MavenCli();
+ origBasedir = System.getProperty( MavenCli.PROJECT_BASEDIR );
+ }
+
+ @Override
+ protected void tearDown()
+ throws Exception
+ {
+ if ( origBasedir != null )
+ {
+ System.setProperty( MavenCli.PROJECT_BASEDIR, origBasedir );
+ }
+ else
+ {
+ System.getProperties().remove( MavenCli.PROJECT_BASEDIR );
+ }
+ super.tearDown();
}
public void testCalculateDegreeOfConcurrencyWithCoreMultiplier()
@@ -49,4 +72,37 @@ public class MavenCliTest
// carry on
}
}
+
+ public void testMavenConfig()
+ throws Exception
+ {
+ System.setProperty( MavenCli.PROJECT_BASEDIR, new File( "src/test/projects/config" ).getCanonicalPath() );
+ CliRequest request = new CliRequest( new String[0], null );
+
+ // read .mvn/maven.config
+ cli.cli( request );
+ assertEquals( "multithreaded", request.commandLine.getOptionValue( "builder" ) );
+
+ // override from command line
+ request = new CliRequest( new String[] { "--builder", "foobar" }, null );
+ cli.cli( request );
+ assertEquals( "foobar", request.commandLine.getOptionValue( "builder" ) );
+ }
+
+ public void testMavenConfigInvalid()
+ throws Exception
+ {
+ System.setProperty( MavenCli.PROJECT_BASEDIR, new File( "src/test/projects/config-illegal" ).getCanonicalPath() );
+ CliRequest request = new CliRequest( new String[0], null );
+
+ try
+ {
+ cli.cli( request );
+ fail();
+ }
+ catch ( ParseException expected )
+ {
+
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/maven/blob/0a76e91b/maven-embedder/src/test/projects/config-illegal/.mvn/maven.config
----------------------------------------------------------------------
diff --git a/maven-embedder/src/test/projects/config-illegal/.mvn/maven.config b/maven-embedder/src/test/projects/config-illegal/.mvn/maven.config
new file mode 100644
index 0000000..8541464
--- /dev/null
+++ b/maven-embedder/src/test/projects/config-illegal/.mvn/maven.config
@@ -0,0 +1 @@
+deploy
http://git-wip-us.apache.org/repos/asf/maven/blob/0a76e91b/maven-embedder/src/test/projects/config/.mvn/maven.config
----------------------------------------------------------------------
diff --git a/maven-embedder/src/test/projects/config/.mvn/maven.config b/maven-embedder/src/test/projects/config/.mvn/maven.config
new file mode 100644
index 0000000..bf41c83
--- /dev/null
+++ b/maven-embedder/src/test/projects/config/.mvn/maven.config
@@ -0,0 +1,2 @@
+--builder
+multithreaded
[2/2] maven git commit: shell script fixes
Posted by if...@apache.org.
shell script fixes
Signed-off-by: Igor Fedorenko <if...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/fd6f4791
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/fd6f4791
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/fd6f4791
Branch: refs/heads/project-basedir
Commit: fd6f4791144521732552e2283a9655983516633b
Parents: 0a76e91
Author: Igor Fedorenko <if...@apache.org>
Authored: Tue Jan 27 15:22:06 2015 -0500
Committer: Igor Fedorenko <if...@apache.org>
Committed: Tue Jan 27 15:22:06 2015 -0500
----------------------------------------------------------------------
apache-maven/src/bin/mvn | 2 +-
apache-maven/src/bin/mvn-common.sh | 6 ++++--
apache-maven/src/bin/mvnDebug | 2 +-
apache-maven/src/bin/mvnyjp | 2 +-
4 files changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/fd6f4791/apache-maven/src/bin/mvn
----------------------------------------------------------------------
diff --git a/apache-maven/src/bin/mvn b/apache-maven/src/bin/mvn
index cec2baa..f745f4e 100755
--- a/apache-maven/src/bin/mvn
+++ b/apache-maven/src/bin/mvn
@@ -191,7 +191,7 @@ fi
. "$M2_HOME/bin/mvn-common.sh"
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
-MAVEN_OPTS=$(concat "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
http://git-wip-us.apache.org/repos/asf/maven/blob/fd6f4791/apache-maven/src/bin/mvn-common.sh
----------------------------------------------------------------------
diff --git a/apache-maven/src/bin/mvn-common.sh b/apache-maven/src/bin/mvn-common.sh
index 5fd090e..b39741b 100755
--- a/apache-maven/src/bin/mvn-common.sh
+++ b/apache-maven/src/bin/mvn-common.sh
@@ -36,6 +36,8 @@ find_maven_basedir() {
}
# concatenates all lines of a file
-concat() {
- echo "$(tr -s '\n' ' ' < $1)"
+concat_lines() {
+ if [ -f "$1" ]; then
+ echo "$(tr -s '\n' ' ' < "$1")"
+ fi
}
http://git-wip-us.apache.org/repos/asf/maven/blob/fd6f4791/apache-maven/src/bin/mvnDebug
----------------------------------------------------------------------
diff --git a/apache-maven/src/bin/mvnDebug b/apache-maven/src/bin/mvnDebug
index d3fa982..287d20b 100755
--- a/apache-maven/src/bin/mvnDebug
+++ b/apache-maven/src/bin/mvnDebug
@@ -195,7 +195,7 @@ fi
. "$M2_HOME/bin/mvn-common.sh"
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
-MAVEN_OPTS=$(concat "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
http://git-wip-us.apache.org/repos/asf/maven/blob/fd6f4791/apache-maven/src/bin/mvnyjp
----------------------------------------------------------------------
diff --git a/apache-maven/src/bin/mvnyjp b/apache-maven/src/bin/mvnyjp
index b78eeab..6d5f555 100755
--- a/apache-maven/src/bin/mvnyjp
+++ b/apache-maven/src/bin/mvnyjp
@@ -198,7 +198,7 @@ MAVEN_OPTS="-agentpath:$YJPLIB=onexit=snapshot,onexit=memory,tracing,onlylocal $
. "$M2_HOME/bin/mvn-common.sh"
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
-MAVEN_OPTS=$(concat "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.