Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.GnuParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
Expand Down Expand Up @@ -123,7 +123,7 @@ public CLIManager()
options = new Options();
options.addOption( Option.builder( Character.toString( HELP ) ).longOpt( "help" ).desc( "Display help information" ).build() );
options.addOption( Option.builder( Character.toString( ALTERNATE_POM_FILE ) ).longOpt( "file" ).hasArg().desc( "Force the use of an alternate POM file (or directory with pom.xml)" ).build() );
options.addOption( Option.builder( Character.toString( SET_SYSTEM_PROPERTY ) ).hasArg().desc( "Define a system property" ).build() );
options.addOption( Option.builder( Character.toString( SET_SYSTEM_PROPERTY ) ).numberOfArgs( 2 ).valueSeparator( '=' ).desc( "Define a system property" ).build() );
options.addOption( Option.builder( Character.toString( OFFLINE ) ).longOpt( "offline" ).desc( "Work offline" ).build() );
options.addOption( Option.builder( Character.toString( VERSION ) ).longOpt( "version" ).desc( "Display version information" ).build() );
options.addOption( Option.builder( Character.toString( QUIET ) ).longOpt( "quiet" ).desc( "Quiet output - only show errors" ).build() );
Expand Down Expand Up @@ -169,7 +169,7 @@ public CommandLine parse( String[] args )
// We need to eat any quotes surrounding arguments...
String[] cleanArgs = CleanArgument.cleanArgs( args );

CommandLineParser parser = new GnuParser();
CommandLineParser parser = new DefaultParser();

return parser.parse( options, cleanArgs );
}
Expand Down
38 changes: 6 additions & 32 deletions maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
Original file line number Diff line number Diff line change
Expand Up @@ -1718,18 +1718,11 @@ static void populateProperties( CommandLine commandLine, Properties systemProper
// are most dominant.
// ----------------------------------------------------------------------

if ( commandLine.hasOption( CLIManager.SET_SYSTEM_PROPERTY ) )
{
String[] defStrs = commandLine.getOptionValues( CLIManager.SET_SYSTEM_PROPERTY );

if ( defStrs != null )
{
for ( String defStr : defStrs )
{
setCliProperty( defStr, userProperties );
}
}
}
final Properties userSpecifiedProperties = commandLine.getOptionProperties(
String.valueOf( CLIManager.SET_SYSTEM_PROPERTY ) );
userSpecifiedProperties.forEach(
( prop, value ) -> setCliProperty( (String) prop, (String) value, userProperties )
);

SystemProperties.addSystemProperties( systemProperties );

Expand All @@ -1747,27 +1740,8 @@ static void populateProperties( CommandLine commandLine, Properties systemProper
systemProperties.setProperty( "maven.build.version", mavenBuildVersion );
}

private static void setCliProperty( String property, Properties properties )
private static void setCliProperty( String name, String value, Properties properties )
{
String name;

String value;

int i = property.indexOf( '=' );

if ( i <= 0 )
{
name = property.trim();

value = "true";
}
else
{
name = property.substring( 0, i ).trim();

value = property.substring( i + 1 );
}

properties.setProperty( name, value );

// ----------------------------------------------------------------------
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@
import java.util.List;

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.GnuParser;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.Parser;
import org.apache.maven.Maven;
import org.apache.maven.eventspy.internal.EventSpyDispatcher;
import org.apache.maven.execution.MavenExecutionRequest;
Expand Down Expand Up @@ -96,7 +96,7 @@ public void tearDown()
@Test
public void testPerformProfileActivation() throws ParseException
{
final Parser parser = new GnuParser();
final CommandLineParser parser = new DefaultParser();

final Options options = new Options();
options.addOption( Option.builder( Character.toString( CLIManager.ACTIVATE_PROFILES ) ).hasArg().build() );
Expand All @@ -122,7 +122,7 @@ public void testPerformProfileActivation() throws ParseException
@Test
public void testDetermineProjectActivation() throws ParseException
{
final Parser parser = new GnuParser();
final CommandLineParser parser = new DefaultParser();

final Options options = new Options();
options.addOption( Option.builder( CLIManager.PROJECT_LIST ).hasArg().build() );
Expand Down Expand Up @@ -492,6 +492,77 @@ public void testVersionStringWithoutAnsi() throws Exception
assertEquals( MessageUtils.stripAnsiCodes( versionOut ), versionOut );
}

@Test
public void populatePropertiesCanContainEqualsSign() throws Exception
{
// Arrange
CliRequest request = new CliRequest( new String[] { "-Dw=x=y", "validate" }, null );

// Act
cli.cli( request );
cli.properties( request );

// Assert
assertThat( request.getUserProperties().getProperty( "w" ), is( "x=y" ) );
}

@Test
public void populatePropertiesSpace() throws Exception
{
// Arrange
CliRequest request = new CliRequest( new String[] { "-D", "z=2", "validate" }, null );

// Act
cli.cli( request );
cli.properties( request );

// Assert
assertThat( request.getUserProperties().getProperty( "z" ), is( "2" ) );
}

@Test
public void populatePropertiesShorthand() throws Exception
{
// Arrange
CliRequest request = new CliRequest( new String[] { "-Dx", "validate" }, null );

// Act
cli.cli( request );
cli.properties( request );

// Assert
assertThat( request.getUserProperties().getProperty( "x" ), is( "true" ) );
}

@Test
public void populatePropertiesMultiple() throws Exception
{
// Arrange
CliRequest request = new CliRequest( new String[] { "-Dx=1", "-Dy", "validate" }, null );

// Act
cli.cli( request );
cli.properties( request );

// Assert
assertThat( request.getUserProperties().getProperty( "x" ), is( "1" ) );
assertThat( request.getUserProperties().getProperty( "y" ), is( "true" ) );
}

@Test
public void populatePropertiesOverwrite() throws Exception
{
// Arrange
CliRequest request = new CliRequest( new String[] { "-Dx", "-Dx=false", "validate" }, null );

// Act
cli.cli( request );
cli.properties( request );

// Assert
assertThat( request.getUserProperties().getProperty( "x" ), is( "false" ) );
}

private MavenProject createMavenProject( String groupId, String artifactId )
{
MavenProject project = new MavenProject();
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ under the License.
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<classWorldsVersion>2.6.0</classWorldsVersion>
<commonsCliVersion>1.4</commonsCliVersion>
<commonsCliVersion>1.5.0</commonsCliVersion>
<commonsLangVersion>3.12.0</commonsLangVersion>
<junitVersion>5.8.1</junitVersion>
<mockitoVersion>3.2.0</mockitoVersion>
Expand Down