You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2011/05/31 18:03:59 UTC
svn commit: r1129770 - in /maven/sandbox/trunk/mae: mae-api/
mae-prompter-cli/ mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/
Author: jdcasey
Date: Tue May 31 16:03:59 2011
New Revision: 1129770
URL: http://svn.apache.org/viewvc?rev=1129770&view=rev
Log:
remove dependency on plexus-interactivity-api, and refactor mae-prompter-cli to stand on its own.
Added:
maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/MAEPrompt.java (contents, props changed)
- copied, changed from r1128363, maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/MAEPrompter.java
maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/Prompt.java (with props)
maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/PromptException.java (with props)
Removed:
maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/MAEPrompter.java
Modified:
maven/sandbox/trunk/mae/mae-api/pom.xml
maven/sandbox/trunk/mae/mae-prompter-cli/pom.xml
Modified: maven/sandbox/trunk/mae/mae-api/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-api/pom.xml?rev=1129770&r1=1129769&r2=1129770&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-api/pom.xml (original)
+++ maven/sandbox/trunk/mae/mae-api/pom.xml Tue May 31 16:03:59 2011
@@ -69,17 +69,6 @@
<artifactId>maven-core</artifactId>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-interactivity-api</artifactId>
- <version>1.0-alpha-6</version>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-annotations</artifactId>
</dependency>
Modified: maven/sandbox/trunk/mae/mae-prompter-cli/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-prompter-cli/pom.xml?rev=1129770&r1=1129769&r2=1129770&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-prompter-cli/pom.xml (original)
+++ maven/sandbox/trunk/mae/mae-prompter-cli/pom.xml Tue May 31 16:03:59 2011
@@ -28,6 +28,11 @@
<artifactId>mae-api</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.5</version>
+ </dependency>
</dependencies>
<build>
Copied: maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/MAEPrompt.java (from r1128363, maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/MAEPrompter.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/MAEPrompt.java?p2=maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/MAEPrompt.java&p1=maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/MAEPrompter.java&r1=1128363&r2=1129770&rev=1129770&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/MAEPrompter.java (original)
+++ maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/MAEPrompt.java Tue May 31 16:03:59 2011
@@ -19,12 +19,10 @@
package org.apache.maven.mae.prompt;
+import org.apache.commons.lang.StringUtils;
import org.apache.maven.mae.conf.MAEConfiguration;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
-import org.codehaus.plexus.components.interactivity.Prompter;
-import org.codehaus.plexus.components.interactivity.PrompterException;
-import org.codehaus.plexus.util.StringUtils;
import javax.inject.Inject;
@@ -32,14 +30,13 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
-import java.util.Iterator;
import java.util.List;
import jline.ConsoleReader;
-@Component( role = Prompter.class, hint = MAEPrompter.NAME )
-public class MAEPrompter
- implements Prompter
+@Component( role = Prompt.class, hint = MAEPrompt.NAME )
+public class MAEPrompt
+ implements Prompt
{
public static final String NAME = "mae";
@@ -48,13 +45,13 @@ public class MAEPrompter
private final MAEConfiguration config;
@Inject
- public MAEPrompter( final MAEConfiguration config )
+ public MAEPrompt( final MAEConfiguration config )
{
this.config = config;
}
- public String prompt( final String message )
- throws PrompterException
+ public String getInput( final String message )
+ throws PromptException
{
try
{
@@ -62,7 +59,7 @@ public class MAEPrompter
}
catch ( final IOException e )
{
- throw new PrompterException( "Failed to present prompt", e );
+ throw new PromptException( "Failed to present prompt", e );
}
try
@@ -71,7 +68,7 @@ public class MAEPrompter
}
catch ( final IOException e )
{
- throw new PrompterException( "Failed to read user response", e );
+ throw new PromptException( "Failed to read user response", e );
}
}
@@ -81,23 +78,23 @@ public class MAEPrompter
return new BufferedReader( new InputStreamReader( config.getStandardIn() ) ).readLine();
}
- public String prompt( final String message, final String defaultReply )
- throws PrompterException
+ public String getInput( final String message, final String defaultReply )
+ throws PromptException
{
try
{
- writePrompt( formatMessage( message, null, defaultReply ) );
+ writePrompt( formatMessage( message, defaultReply ) );
}
catch ( final IOException e )
{
- throw new PrompterException( "Failed to present prompt", e );
+ throw new PromptException( "Failed to present prompt", e );
}
try
{
String line = readLine();
- if ( StringUtils.isEmpty( line ) )
+ if ( isEmpty( line ) )
{
line = defaultReply;
}
@@ -106,18 +103,17 @@ public class MAEPrompter
}
catch ( final IOException e )
{
- throw new PrompterException( "Failed to read user response", e );
+ throw new PromptException( "Failed to read user response", e );
}
}
- @SuppressWarnings( "rawtypes" )
- public String prompt( final String message, final List possibleValues, final String defaultReply )
- throws PrompterException
+ public int getSelection( final String message, final List<?> possibleValues, final int defaultSelection )
+ throws PromptException
{
- final String formattedMessage = formatMessage( message, possibleValues, defaultReply );
+ final String formattedMessage = formatMessage( message, possibleValues, defaultSelection );
+ int result = -1;
String line;
-
do
{
try
@@ -126,7 +122,7 @@ public class MAEPrompter
}
catch ( final IOException e )
{
- throw new PrompterException( "Failed to present prompt", e );
+ throw new PromptException( "Failed to present prompt", e );
}
try
@@ -135,22 +131,35 @@ public class MAEPrompter
}
catch ( final IOException e )
{
- throw new PrompterException( "Failed to read user response", e );
+ throw new PromptException( "Failed to read user response", e );
}
- if ( StringUtils.isEmpty( line ) )
+ if ( isEmpty( line ) )
{
- line = defaultReply;
+ result = defaultSelection;
}
-
- if ( line != null && !possibleValues.contains( line ) )
+ else
{
- writeLine( "Invalid selection." );
+ line = line.trim();
+
+ if ( !possibleValues.contains( line ) )
+ {
+ writeLine( "Invalid selection." );
+ }
+ else
+ {
+ result = possibleValues.indexOf( line ) - 1;
+ }
}
}
- while ( line == null || !possibleValues.contains( line ) );
+ while ( result < 0 );
+
+ return result;
+ }
- return line;
+ private boolean isEmpty( String line )
+ {
+ return ( StringUtils.isEmpty( line ) || StringUtils.isEmpty( line.trim() ) );
}
private void writeLine( final String message )
@@ -158,15 +167,14 @@ public class MAEPrompter
config.getStandardOut().println( message );
}
- @SuppressWarnings( "rawtypes" )
- public String prompt( final String message, final List possibleValues )
- throws PrompterException
+ public int getSelection( final String message, final List<?> possibleValues )
+ throws PromptException
{
- return prompt( message, possibleValues, null );
+ return getSelection( message, possibleValues, -1 );
}
- public String promptForPassword( final String message )
- throws PrompterException
+ public String getPassword( final String message )
+ throws PromptException
{
try
{
@@ -174,7 +182,7 @@ public class MAEPrompter
}
catch ( final IOException e )
{
- throw new PrompterException( "Failed to present prompt", e );
+ throw new PromptException( "Failed to present prompt", e );
}
try
@@ -184,37 +192,48 @@ public class MAEPrompter
}
catch ( final IOException e )
{
- throw new PrompterException( "Failed to read user response", e );
+ throw new PromptException( "Failed to read user response", e );
}
}
- @SuppressWarnings( "rawtypes" )
- private String formatMessage( final String message, final List possibleValues, final String defaultReply )
+ private String formatMessage( final String message, final String defaultReply )
{
- final StringBuffer formatted = new StringBuffer( message.length() * 2 );
+ final StringBuilder formatted = new StringBuilder();
formatted.append( message );
- if ( possibleValues != null && !possibleValues.isEmpty() )
+ if ( defaultReply != null )
{
- formatted.append( " (" );
+ formatted.append( ' ' ).append( defaultReply ).append( ": " );
+ }
- for ( final Iterator it = possibleValues.iterator(); it.hasNext(); )
+ return formatted.toString();
+ }
+
+ private String formatMessage( final String message, final List<?> possibleValues, final int defaultReply )
+ {
+ final StringBuilder formatted = new StringBuilder();
+
+ if ( possibleValues != null && !possibleValues.isEmpty() )
+ {
+ for( int i =0; i< possibleValues.size(); i++ )
{
- final String possibleValue = (String) it.next();
+ Object possibleValue = possibleValues.get( i );
- formatted.append( possibleValue );
+ formatted.append( i+1 ).append( ". " ).append( possibleValue );
- if ( it.hasNext() )
+ if ( i+1 < possibleValues.size() )
{
- formatted.append( '/' );
+ formatted.append( '\n' );
}
}
- formatted.append( ')' );
+ formatted.append( "\n\n" );
}
- if ( defaultReply != null )
+ formatted.append( message );
+
+ if ( defaultReply > -1 )
{
formatted.append( ' ' ).append( defaultReply ).append( ": " );
}
@@ -228,18 +247,4 @@ public class MAEPrompter
config.getStandardOut().print( message + ": " );
}
- public void showMessage( final String message )
- throws PrompterException
- {
- try
- {
- writePrompt( message );
- }
- catch ( final IOException e )
- {
- throw new PrompterException( "Failed to present prompt", e );
- }
-
- }
-
}
Propchange: maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/MAEPrompt.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/Prompt.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/Prompt.java?rev=1129770&view=auto
==============================================================================
--- maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/Prompt.java (added)
+++ maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/Prompt.java Tue May 31 16:03:59 2011
@@ -0,0 +1,23 @@
+package org.apache.maven.mae.prompt;
+
+import java.util.List;
+
+public interface Prompt
+{
+
+ String getInput( String message )
+ throws PromptException;
+
+ String getInput( String message, String defaultReply )
+ throws PromptException;
+
+ int getSelection( String message, List<?> values )
+ throws PromptException;
+
+ int getSelection( String message, List<?> values, int defaultSelection )
+ throws PromptException;
+
+ String getPassword( String message )
+ throws PromptException;
+
+}
Propchange: maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/Prompt.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/Prompt.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/PromptException.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/PromptException.java?rev=1129770&view=auto
==============================================================================
--- maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/PromptException.java (added)
+++ maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/PromptException.java Tue May 31 16:03:59 2011
@@ -0,0 +1,20 @@
+package org.apache.maven.mae.prompt;
+
+import org.apache.maven.mae.MAEException;
+
+public class PromptException
+ extends MAEException
+{
+ private static final long serialVersionUID = 1L;
+
+ public PromptException( String message, Object... params )
+ {
+ super( message, params );
+ }
+
+ public PromptException( String message, Throwable cause, Object... params )
+ {
+ super( message, cause, params );
+ }
+
+}
Propchange: maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/PromptException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/sandbox/trunk/mae/mae-prompter-cli/src/main/java/org/apache/maven/mae/prompt/PromptException.java
------------------------------------------------------------------------------
svn:mime-type = text/plain