Author: jvanzyl
Date: Tue Feb 27 17:18:01 2007
New Revision: 512542

URL: http://svn.apache.org/viewvc?view=rev&rev=512542
Log:
o adding a way to set the local repository using a -D option 
o make the cli handle things that are CLI specific like:
  - the $m2_home/conf/settings.xml file and the standard ~/.m2/settings.xml 
file, i am still falling back
    to this as people using the embedder have become used to this. but this has 
the effect of greatly 
    simplifying settings handling because it is up to the client code to define 
where settings are
    and how they should be processed
o use an embedder configuration for things like settings and the local 
repository which generally remain constant, another
  push toward a single source for session and request configuration information

Modified:
    
maven/components/trunk/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java
    
maven/components/trunk/maven-cli/src/test/java/org/apache/maven/cli/BatchModeDownloadMonitorTest.java
    
maven/components/trunk/maven-cli/src/test/java/org/apache/maven/cli/ConsoleDownloadMonitorTest.java

Modified: 
maven/components/trunk/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java?view=diff&rev=512542&r1=512541&r2=512542
==============================================================================
--- 
maven/components/trunk/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java
 (original)
+++ 
maven/components/trunk/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java
 Tue Feb 27 17:18:01 2007
@@ -21,10 +21,11 @@
 import org.apache.maven.MavenTransferListener;
 import org.apache.maven.embedder.MavenEmbedder;
 import org.apache.maven.embedder.MavenEmbedderException;
+import org.apache.maven.embedder.configuration.Configuration;
+import org.apache.maven.embedder.configuration.DefaultConfiguration;
 import org.apache.maven.execution.DefaultMavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionResult;
-import org.apache.maven.settings.SettingsBuilderAdvice;
 import org.codehaus.plexus.classworlds.ClassWorld;
 
 import java.io.File;
@@ -42,6 +43,11 @@
  */
 public class MavenCli
 {
+    public static final File DEFAULT_GLOBAL_SETTINGS_FILE = new File( System
+        .getProperty( "maven.home", System.getProperty( "user.dir", "" ) ), 
"conf/settings.xml" );
+
+    public static final String LOCAL_REPO_PROPERTY = "maven.repo.local";
+
     public static void main( String[] args )
     {
         ClassWorld classWorld = new ClassWorld( "plexus.core", 
Thread.currentThread().getContextClassLoader() );
@@ -90,6 +96,7 @@
         }
 
         boolean debug = commandLine.hasOption( CLIManager.DEBUG );
+
         boolean quiet = !debug && commandLine.hasOption( CLIManager.QUIET );
 
         boolean showErrors = debug || commandLine.hasOption( CLIManager.ERRORS 
);
@@ -125,21 +132,6 @@
         // bring the maven component to life for use.
         // 
----------------------------------------------------------------------
 
-        //** use CLI option values directly in request where possible
-
-        MavenEmbedder mavenEmbedder;
-
-        try
-        {
-            mavenEmbedder = new MavenEmbedder( classWorld );            
-        }
-        catch ( MavenEmbedderException e )
-        {
-            showFatalError( "Unable to start the embedded plexus container", 
e, showErrors );
-
-            return 1;
-        }
-
         boolean interactive = true;
 
         if ( commandLine.hasOption( CLIManager.BATCH_MODE ) )
@@ -315,11 +307,6 @@
             }
 
             Properties executionProperties = getExecutionProperties( 
commandLine );
-            
-            SettingsBuilderAdvice settingsAdvice = new SettingsBuilderAdvice();
-            
-            settingsAdvice.setDefaultGlobalLocationEnabled( true );
-            settingsAdvice.setDefaultUserLocationEnabled( true );
 
             MavenExecutionRequest request = new DefaultMavenExecutionRequest()
                 .setBaseDirectory( baseDirectory )
@@ -330,22 +317,54 @@
                 .setUseReactor( useReactor ) // default: false
                 .setPomFile( alternatePomFile ) // optional
                 .setShowErrors( showErrors ) // default: false
-                    // Settings
-                .setSettingsFile( commandLine.getOptionValue( 
CLIManager.ALTERNATE_USER_SETTINGS ) )
-                .setSettingsBuilderAdvice( settingsAdvice )
-                    //.setLocalRepositoryPath( localRepositoryPath ) // 
default: ~/.m2/repository
                 .setInteractiveMode( interactive ) // default: false
                 .setUsePluginRegistry( usePluginRegistry )
                 .setOffline( offline ) // default: false
                 .setUsePluginUpdateOverride( pluginUpdateOverride )
                 .addActiveProfiles( activeProfiles ) // optional
                 .addInactiveProfiles( inactiveProfiles ) // optional
-                    //
                 .setLoggingLevel( loggingLevel ) // default: info
                 .setTransferListener( transferListener ) // default: batch 
mode which goes along with interactive
                 .setUpdateSnapshots( updateSnapshots ) // default: false
                 .setNoSnapshotUpdates( noSnapshotUpdates ) // default: false
                 .setGlobalChecksumPolicy( globalChecksumPolicy ); // default: 
warn
+
+        File userSettingsFile;
+
+        if ( commandLine.getOptionValue( CLIManager.ALTERNATE_USER_SETTINGS ) 
!= null )
+        {
+            userSettingsFile = new File( commandLine.getOptionValue( 
CLIManager.ALTERNATE_USER_SETTINGS ) );
+        }
+        else
+        {
+            userSettingsFile = MavenEmbedder.DEFAULT_USER_SETTINGS_FILE;
+        }
+
+        Configuration configuration = new DefaultConfiguration()
+            .setUserSettingsFile( userSettingsFile )
+            .setGlobalSettingsFile( DEFAULT_GLOBAL_SETTINGS_FILE )
+            .setClassWorld( classWorld );
+
+        String localRepoProperty = executionProperties.getProperty( 
LOCAL_REPO_PROPERTY );
+
+        if ( localRepoProperty != null )
+        {
+            configuration.setLocalRepository( new File( localRepoProperty ) );
+        }
+
+        MavenEmbedder mavenEmbedder;
+
+        try
+        {
+            mavenEmbedder = new MavenEmbedder( configuration );
+        }
+        catch ( MavenEmbedderException e )
+        {
+            showFatalError( "Unable to start the embedded plexus container", 
e, showErrors );
+
+            return 1;
+        }
+
 
         MavenExecutionResult result = mavenEmbedder.execute( request );
 

Modified: 
maven/components/trunk/maven-cli/src/test/java/org/apache/maven/cli/BatchModeDownloadMonitorTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-cli/src/test/java/org/apache/maven/cli/BatchModeDownloadMonitorTest.java?view=diff&rev=512542&r1=512541&r2=512542
==============================================================================
--- 
maven/components/trunk/maven-cli/src/test/java/org/apache/maven/cli/BatchModeDownloadMonitorTest.java
 (original)
+++ 
maven/components/trunk/maven-cli/src/test/java/org/apache/maven/cli/BatchModeDownloadMonitorTest.java
 Tue Feb 27 17:18:01 2007
@@ -25,11 +25,11 @@
 public class BatchModeDownloadMonitorTest
     extends AbstractConsoleDownloadMonitorTest
 {
-
     protected void setUp()
         throws Exception
     {
         super.setMonitor( new BatchModeDownloadMonitor() );
+
         super.setUp();
     }
 }

Modified: 
maven/components/trunk/maven-cli/src/test/java/org/apache/maven/cli/ConsoleDownloadMonitorTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-cli/src/test/java/org/apache/maven/cli/ConsoleDownloadMonitorTest.java?view=diff&rev=512542&r1=512541&r2=512542
==============================================================================
--- 
maven/components/trunk/maven-cli/src/test/java/org/apache/maven/cli/ConsoleDownloadMonitorTest.java
 (original)
+++ 
maven/components/trunk/maven-cli/src/test/java/org/apache/maven/cli/ConsoleDownloadMonitorTest.java
 Tue Feb 27 17:18:01 2007
@@ -30,6 +30,7 @@
         throws Exception
     {
         super.setMonitor( new ConsoleDownloadMonitor() );
+
         super.setUp();
     }
 }


Reply via email to