You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by tc...@apache.org on 2014/02/07 10:25:04 UTC
svn commit: r1565593 - in
/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/cli:
Arg.java Commandline.java
Author: tchemit
Date: Fri Feb 7 09:25:03 2014
New Revision: 1565593
URL: http://svn.apache.org/r1565593
Log:
MSHARED-320 - Be able to mask some arguments in the commandLine API
Modified:
maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/cli/Arg.java
maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/cli/Commandline.java
Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/cli/Arg.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/cli/Arg.java?rev=1565593&r1=1565592&r2=1565593&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/cli/Arg.java (original)
+++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/cli/Arg.java Fri Feb 7 09:25:03 2014
@@ -29,4 +29,12 @@ public interface Arg
void setFile( File value );
+ /**
+ * To mask the argument value when a command line ask to print his arguments.
+ *
+ * @param mask new state of the {@code maks} property
+ * @since 0.6
+ */
+ void setMask( boolean mask );
+
}
Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/cli/Commandline.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/cli/Commandline.java?rev=1565593&r1=1565592&r2=1565593&view=diff
==============================================================================
--- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/cli/Commandline.java (original)
+++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/cli/Commandline.java Fri Feb 7 09:25:03 2014
@@ -22,6 +22,7 @@ package org.apache.maven.shared.utils.cl
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
@@ -266,11 +267,21 @@ public class Commandline
}
/**
- * Returns the shell, executable and all defined arguments.
+ * @return the shell, executable and all defined arguments without masking any arguments.
*/
private String[] getShellCommandline()
{
- List<String> shellCommandLine = getShell().getShellCommandLine( getArguments() );
+ return getShellCommandline( false ) ;
+ }
+
+ /**
+ * @param mask flag to mask any arguments (having his {@code mask} field to {@code true}).
+ * @return the shell, executable and all defined arguments with masking some arguments if
+ * {@code mask} parameter is on
+ */
+ private String[] getShellCommandline(boolean mask)
+ {
+ List<String> shellCommandLine = getShell().getShellCommandLine( getArguments( mask ) );
return shellCommandLine.toArray( new String[shellCommandLine.size()] );
}
@@ -280,6 +291,17 @@ public class Commandline
*/
public String[] getArguments()
{
+ return getArguments( false );
+ }
+
+ /**
+ * Returns all arguments defined by <code>addLine</code>,
+ * <code>addValue</code> or the argument object.
+ *
+ * @param mask flag to mask any arguments (having his {@code mask} field to {@code true}).
+ */
+ public String[] getArguments( boolean mask )
+ {
List<String> result = new ArrayList<String>( arguments.size() * 2 );
for ( Arg argument : arguments )
{
@@ -287,6 +309,18 @@ public class Commandline
String[] s = arg.getParts();
if ( s != null )
{
+ if ( mask && ( arg.isMask() ) )
+ {
+ // should be a key-pair argument
+ if ( s.length > 0 )
+ {
+
+ // use a masked copy
+ String[] copy = new String[s.length];
+ Arrays.fill( copy, "*****" );
+ s = copy;
+ }
+ }
Collections.addAll( result, s );
}
}
@@ -296,7 +330,7 @@ public class Commandline
public String toString()
{
- return StringUtils.join( getShellCommandline(), " " );
+ return StringUtils.join( getShellCommandline( true ), " " );
}
@@ -404,8 +438,10 @@ public class Commandline
{
private String[] parts;
- /* (non-Javadoc)
- * @see org.apache.maven.shared.utils.cli.Argumnt#setValue(java.lang.String)
+ private boolean mask;
+
+ /**
+ * {@inheritDoc}
*/
public void setValue( String value )
{
@@ -415,8 +451,8 @@ public class Commandline
}
}
- /* (non-Javadoc)
- * @see org.apache.maven.shared.utils.cli.Argumnt#setLine(java.lang.String)
+ /**
+ * {@inheritDoc}
*/
public void setLine( String line )
{
@@ -434,20 +470,30 @@ public class Commandline
}
}
- /* (non-Javadoc)
- * @see org.apache.maven.shared.utils.cli.Argumnt#setFile(java.io.File)
+ /**
+ * {@inheritDoc}
*/
public void setFile( File value )
{
parts = new String[]{ value.getAbsolutePath() };
}
- /* (non-Javadoc)
- * @see org.apache.maven.shared.utils.cli.Argumnt#getParts()
+ /**
+ * {@inheritDoc}
*/
+ public void setMask( boolean mask )
+ {
+ this.mask = mask;
+ }
+
private String[] getParts()
{
return parts;
}
+
+ public boolean isMask()
+ {
+ return mask;
+ }
}
}