Author: jdcasey
Date: Tue Jun 21 07:51:55 2005
New Revision: 191664

URL: http://svn.apache.org/viewcvs?rev=191664&view=rev
Log:
Resolving: MNG-495

o Pressing [ENTER] at a plugin update prompt should result in the plugin being 
registered, as indicated by the prompt.
o Use CLI switch '--no-plugin-updates' to suppress usage of the plugin registry
o Use CLI switch '--update-plugins' to force updated/resolved plugin versions 
to be registered
o Neither of these has a short CLI option, since we're starting to run out of 
sensible char options for these types of things.

Modified:
    maven/components/trunk/m2-bootstrap-all.bat
    maven/components/trunk/m2-bootstrap-all.sh
    
maven/components/trunk/maven-core-it-verifier/src/main/java/org/apache/maven/it/Verifier.java
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java
    
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java

Modified: maven/components/trunk/m2-bootstrap-all.bat
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/m2-bootstrap-all.bat?rev=191664&r1=191663&r2=191664&view=diff
==============================================================================
--- maven/components/trunk/m2-bootstrap-all.bat (original)
+++ maven/components/trunk/m2-bootstrap-all.bat Tue Jun 21 07:51:55 2005
@@ -115,7 +115,7 @@
 
 echo Rebuilding maven2 plugins
 cd maven-plugins
-call m2 --batch-mode -DupdateReleaseInfo=true -e %MAVEN_CMD_LINE_ARGS% 
clean:clean install
+call m2 --no-plugin-updates --batch-mode -DupdateReleaseInfo=true -e 
%MAVEN_CMD_LINE_ARGS% clean:clean install
 cd ..
 
 echo Running integration tests

Modified: maven/components/trunk/m2-bootstrap-all.sh
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/m2-bootstrap-all.sh?rev=191664&r1=191663&r2=191664&view=diff
==============================================================================
--- maven/components/trunk/m2-bootstrap-all.sh (original)
+++ maven/components/trunk/m2-bootstrap-all.sh Tue Jun 21 07:51:55 2005
@@ -51,7 +51,7 @@
 
   cd maven-plugins
   # update the release info to ensure these versions get used in the 
integration tests
-  m2 --batch-mode -DupdateReleaseInfo=true -e $ARGS clean:clean install
+  m2 --no-plugin-updates --batch-mode -DupdateReleaseInfo=true -e $ARGS 
clean:clean install
   ret=$?; if [ $ret != 0 ]; then exit $ret; fi
 )
 ret=$?; if [ $ret != 0 ]; then exit $ret; fi

Modified: 
maven/components/trunk/maven-core-it-verifier/src/main/java/org/apache/maven/it/Verifier.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it-verifier/src/main/java/org/apache/maven/it/Verifier.java?rev=191664&r1=191663&r2=191664&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core-it-verifier/src/main/java/org/apache/maven/it/Verifier.java
 (original)
+++ 
maven/components/trunk/maven-core-it-verifier/src/main/java/org/apache/maven/it/Verifier.java
 Tue Jun 21 07:51:55 2005
@@ -492,6 +492,8 @@
             
             cli.createArgument().setValue( "-e" );
             
+            cli.createArgument().setValue( "--no-plugin-updates" );
+            
             cli.createArgument().setValue( "--batch-mode" );
 
             for ( Iterator i = properties.keySet().iterator(); i.hasNext(); )

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java?rev=191664&r1=191663&r2=191664&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java
 Tue Jun 21 07:51:55 2005
@@ -197,7 +197,11 @@
         
         if ( commandLine.hasOption( CLIManager.FORCE_PLUGIN_UPDATES ) )
         {
-            settings.getRuntimeInfo().setPluginUpdateForced( true );
+            settings.getRuntimeInfo().setPluginUpdateOverride( Boolean.TRUE );
+        }
+        else if ( commandLine.hasOption( CLIManager.SUPPRESS_PLUGIN_UPDATES ) )
+        {
+            settings.getRuntimeInfo().setPluginUpdateOverride( Boolean.FALSE );
         }
 
         List projectFiles = null;
@@ -522,7 +526,9 @@
         
         public static final char ACTIVATE_PROFILES = 'P';
         
-        public static final char FORCE_PLUGIN_UPDATES = 'F';
+        public static final String FORCE_PLUGIN_UPDATES = "update-plugins";
+        
+        public static final String SUPPRESS_PLUGIN_UPDATES = 
"no-plugin-updates";
         
         public static final char CHECKSUM_FAILURE_POLICY = 'C';
         
@@ -554,7 +560,8 @@
             options.addOption( OptionBuilder.withLongOpt( "activate-profiles" 
).withDescription(
                 "Comma-delimited list of profiles to 
activate").hasArg().create( ACTIVATE_PROFILES ) );
             options.addOption( OptionBuilder.withLongOpt( "batch-mode" 
).withDescription( "Run in non-interactive (batch) mode" ).create( BATCH_MODE ) 
);
-            options.addOption( OptionBuilder.withLongOpt( "update-plugins" 
).withDescription( "Force upToDate check for any relevant registered plugins" 
).create( FORCE_PLUGIN_UPDATES ) );
+            options.addOption( OptionBuilder.withLongOpt( FORCE_PLUGIN_UPDATES 
).withDescription( "Force upToDate check for any relevant registered plugins" 
).create() );
+            options.addOption( OptionBuilder.withLongOpt( 
SUPPRESS_PLUGIN_UPDATES ).withDescription( "Suppress upToDate check for any 
relevant registered plugins" ).create() );
             options.addOption( OptionBuilder.withLongOpt( "strict-checksums" 
).withDescription( "Fail the build if checksums don't match" ).create( 
CHECKSUM_FAILURE_POLICY ) );
             options.addOption( OptionBuilder.withLongOpt( "lax-checksums" 
).withDescription( "Warn if checksums don't match" ).create( 
CHECKSUM_WARNING_POLICY ) );
         }

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java?rev=191664&r1=191663&r2=191664&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java
 Tue Jun 21 07:51:55 2005
@@ -76,18 +76,25 @@
         // we're not going to prompt the user to accept a plugin update until 
we find one.
         boolean promptToPersist = false;
 
+        // determine the behavior WRT prompting the user and installing plugin 
updates.
+        Boolean pluginUpdateOverride = 
settings.getRuntimeInfo().getPluginUpdateOverride();
+
         // second pass...if the plugin is listed in the settings.xml, use the 
version from <useVersion/>.
         if ( StringUtils.isEmpty( version ) )
         {
-            // 1. resolve existing useVersion.
+            // resolve existing useVersion.
             version = resolveExistingFromPluginRegistry( groupId, artifactId );
 
             if ( StringUtils.isNotEmpty( version ) )
             {
-                boolean forceUpdate = 
settings.getRuntimeInfo().isPluginUpdateForced();
-
                 // 2. check for updates. Determine whether this is the right 
time to attempt to update the version.
-                if ( forceUpdate || shouldCheckForUpdates( groupId, artifactId 
) )
+                // Only check for plugin updates if:
+                //
+                //  a. the CLI switch to force plugin updates is set, OR BOTH 
OF THE FOLLOWING:
+                //  b. the CLI switch to suppress plugin updates is NOT set, 
AND
+                //  c. the update interval for the plugin has triggered an 
update check.
+                if ( Boolean.TRUE.equals( pluginUpdateOverride )
+                    || ( !Boolean.FALSE.equals( pluginUpdateOverride ) && 
shouldCheckForUpdates( groupId, artifactId ) ) )
                 {
                     updatedVersion = resolveReleaseVersion( groupId, 
artifactId, project
                         .getRemoteArtifactRepositories(), localRepository );
@@ -142,7 +149,7 @@
         // for a decision on updating the plugin in the registry...rather than 
prompting
         // the user.
         boolean inInteractiveMode = settings.isInteractiveMode();
-        
+
         // determines what should be done if we're in non-interactive mode.
         // if true, then just update the registry with the new versions.
         String s = getPluginRegistry( groupId, artifactId ).getAutoUpdate();
@@ -155,36 +162,40 @@
         // We should persist by default if:
         // 1. we detected a change in the plugin version from what was in the 
registry, or
         //      a. the plugin is not registered
-        // 2. we're in interactive mode, or
+        // 2. the pluginUpdateOverride flag has NOT been set to Boolean.FALSE 
(suppression mode)
+        // 3. we're in interactive mode, or
         //      a. the registry is declared to be in autoUpdate mode
         //
         // NOTE: This is only the default value; it may be changed as the 
result of prompting the user.
-        boolean persistUpdate = promptToPersist && ( inInteractiveMode || 
autoUpdate );
+        boolean persistUpdate = promptToPersist && !Boolean.FALSE.equals( 
pluginUpdateOverride )
+            && ( inInteractiveMode || autoUpdate );
 
+        // retrieve the apply-to-all flag, if it's been set previously.
         Boolean applyToAll = 
settings.getRuntimeInfo().getApplyToAllPluginUpdates();
-        
-        // Incorporate interactive-mode and previous decisions on 
apply-to-all, if appropriate.
+
+        // Incorporate interactive-mode CLI overrides, and previous decisions 
on apply-to-all, if appropriate.
         // don't prompt if not in interactive mode.
+        // don't prompt if the CLI pluginUpdateOverride is set (either 
suppression or force mode will stop prompting)
         // don't prompt if the user has selected ALL/NONE previously in this 
session
         //
         // NOTE: We're incorporating here, to make the usages of this check 
more consistent and 
         // resistant to change.
-        promptToPersist = promptToPersist && applyToAll == null && 
inInteractiveMode;
+        promptToPersist = promptToPersist && pluginUpdateOverride == null && 
applyToAll == null && inInteractiveMode;
 
         if ( promptToPersist )
         {
             persistUpdate = promptToPersistPluginUpdate( version, 
updatedVersion, groupId, artifactId, settings );
         }
-        
+
         // if it is determined that we should use this version, persist it as 
useVersion.
         // cases where this version will be persisted:
         // 1. the user is prompted and answers yes or all
-        // 2. the user has previously answeres all in this session
+        // 2. the user has previously answered all in this session
         // 3. the build is running in non-interactive mode, and the registry 
setting is for auto-update
-        if ( ( applyToAll == null || applyToAll.booleanValue() ) && 
persistUpdate )
+        if ( !Boolean.FALSE.equals( applyToAll ) && persistUpdate )
         {
             updatePluginVersionInRegistry( groupId, artifactId, updatedVersion 
);
-            
+
             // we're using the updated version of the plugin in this session 
as well.
             version = updatedVersion;
         }
@@ -293,7 +304,7 @@
             if ( !StringUtils.isEmpty( persistAnswer ) )
             {
                 persistAnswer = persistAnswer.toLowerCase();
-                
+
                 if ( persistAnswer.startsWith( "y" ) )
                 {
                     shouldPersist = true;
@@ -308,8 +319,17 @@
                 {
                     settings.getRuntimeInfo().setApplyToAllPluginUpdates( 
Boolean.FALSE );
                 }
+                else if ( persistAnswer.startsWith( "n" ) )
+                {
+                    shouldPersist = false;
+                }
+                else
+                {
+                    // default to yes.
+                    shouldPersist = true;
+                }
             }
-            
+
             if ( shouldPersist )
             {
                 getLogger().info( "Updating plugin version to " + 
updatedVersion );
@@ -318,7 +338,7 @@
             {
                 getLogger().info( "NOT updating plugin version to " + 
updatedVersion );
             }
-            
+
             return shouldPersist;
 
         }
@@ -450,10 +470,11 @@
             else
             {
                 plugin.setUseVersion( version );
-                
-                SimpleDateFormat format = new SimpleDateFormat( 
org.apache.maven.plugin.registry.Plugin.LAST_CHECKED_DATE_FORMAT );
-                
-                plugin.setLastChecked(format.format( new Date() ) );
+
+                SimpleDateFormat format = new SimpleDateFormat(
+                                                                
org.apache.maven.plugin.registry.Plugin.LAST_CHECKED_DATE_FORMAT );
+
+                plugin.setLastChecked( format.format( new Date() ) );
             }
         }
         else

Modified: 
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java?rev=191664&r1=191663&r2=191664&view=diff
==============================================================================
--- 
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java
 (original)
+++ 
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java
 Tue Jun 21 07:51:55 2005
@@ -24,7 +24,8 @@
 {
 
     private File file;
-    private boolean pluginUpdateForced = false;
+    
+    private Boolean pluginUpdateForced;
     
     // using Boolean for 3VL (null, true-to-all, false-to-all)
     private Boolean applyToAllPluginUpdates;
@@ -50,12 +51,12 @@
         return file;
     }
     
-    public void setPluginUpdateForced( boolean pluginUpdateForced )
+    public void setPluginUpdateOverride( Boolean pluginUpdateForced )
     {
         this.pluginUpdateForced = pluginUpdateForced;
     }
     
-    public boolean isPluginUpdateForced()
+    public Boolean getPluginUpdateOverride()
     {
         return pluginUpdateForced;
     }
@@ -98,5 +99,5 @@
     {
         return localRepositorySourceLevel;
     }
-    
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to