[prev in list] [next in list] [prev in thread] [next in thread] 

List:       maven-dev
Subject:    svn commit: r491468 - in /maven/components/trunk:
From:       jvanzyl () apache ! org
Date:       2006-12-31 19:20:47
Message-ID: 20061231192047.EBFB41A981A () eris ! apache ! org
[Download RAW message or body]

Author: jvanzyl
Date: Sun Dec 31 11:20:44 2006
New Revision: 491468

URL: http://svn.apache.org/viewvc?view=rev&rev=491468
Log:
MNG-2722 Create a strategy for providing sane default values in the \
MavenExecutionRequest 

Modified:
    maven/components/trunk/maven-cli/src/main/java/org/apache/maven/cli/MavenCli.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
  maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
  maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
  maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
  maven/components/trunk/maven-tools/src/main/java/org/apache/maven/DefaultMavenTools.java
  maven/components/trunk/maven-tools/src/main/java/org/apache/maven/MavenTools.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=491468&r1=491467&r2=491468
 ==============================================================================
--- 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 \
Sun Dec 31 11:20:44 2006 @@ -19,13 +19,11 @@
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.ParseException;
 import org.apache.maven.MavenTransferListener;
-import org.apache.maven.SettingsConfigurationException;
 import org.apache.maven.embedder.MavenEmbedder;
 import org.apache.maven.embedder.MavenEmbedderException;
 import org.apache.maven.execution.DefaultMavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.reactor.MavenExecutionException;
-import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.classworlds.ClassWorld;
 
 import java.io.File;
@@ -49,13 +47,12 @@
 
         int result = main( args, classWorld );
 
-        System.exit(result);
+        System.exit( result );
     }
 
-    /**
-     * @noinspection ConfusingMainMethod
-     */
-    public static int main( String[] args, ClassWorld classWorld )
+    /** @noinspection ConfusingMainMethod */
+    public static int main( String[] args,
+                            ClassWorld classWorld )
     {
         // ----------------------------------------------------------------------
         // Setup the command line parser
@@ -78,15 +75,15 @@
         // TODO: maybe classworlds could handle this requirement...
         if ( "1.4".compareTo( System.getProperty( "java.specification.version" ) ) > \
0 )  {
-            System.err.println( "Sorry, but JDK 1.4 or above is required to execute \
                Maven. You appear to be using "
-                + "Java:" );
-            System.err.println( "java version \"" + System.getProperty( \
                "java.version", "<unknown java version>" )
-                + "\"" );
-            System.err.println( System.getProperty( "java.runtime.name", "<unknown \
                runtime name>" ) + " (build "
-                + System.getProperty( "java.runtime.version", "<unknown runtime \
                version>" ) + ")" );
-            System.err.println( System.getProperty( "java.vm.name", "<unknown vm \
                name>" ) + " (build "
-                + System.getProperty( "java.vm.version", "<unknown vm version>" ) + \
                ", "
-                + System.getProperty( "java.vm.info", "<unknown vm info>" ) + ")" );
+            System.err.println(
+                "Sorry, but JDK 1.4 or above is required to execute Maven. You \
appear to be using " + "Java:" ); +            System.err.println(
+                "java version \"" + System.getProperty( "java.version", "<unknown \
java version>" ) + "\"" ); +            System.err.println( System.getProperty( \
"java.runtime.name", "<unknown runtime name>" ) + " (build " + +                \
System.getProperty( "java.runtime.version", "<unknown runtime version>" ) + ")" ); +  \
System.err.println( System.getProperty( "java.vm.name", "<unknown vm name>" ) + " \
(build " + +                System.getProperty( "java.vm.version", "<unknown vm \
version>" ) + ", " + +                System.getProperty( "java.vm.info", "<unknown \
vm info>" ) + ")" );  
             return 1;
         }
@@ -129,13 +126,11 @@
 
         //** use CLI option values directly in request where possible
 
-        MavenEmbedder mavenEmbedder = new MavenEmbedder();
+        MavenEmbedder mavenEmbedder;
 
         try
         {
-            mavenEmbedder.setClassWorld( classWorld );
-
-            mavenEmbedder.start();
+            mavenEmbedder = new MavenEmbedder( classWorld );            
         }
         catch ( MavenEmbedderException e )
         {
@@ -160,20 +155,21 @@
             usePluginRegistry = false;
         }
 
-        Boolean pluginUpdateOverride = Boolean.FALSE;
+        boolean pluginUpdateOverride = false;
 
         if ( commandLine.hasOption( CLIManager.FORCE_PLUGIN_UPDATES ) ||
             commandLine.hasOption( CLIManager.FORCE_PLUGIN_UPDATES2 ) )
         {
-            pluginUpdateOverride = Boolean.TRUE;
+            pluginUpdateOverride = true;
         }
         else if ( commandLine.hasOption( CLIManager.SUPPRESS_PLUGIN_UPDATES ) )
         {
-            pluginUpdateOverride = Boolean.FALSE;
+            pluginUpdateOverride = false;
         }
 
         boolean noSnapshotUpdates = false;
-        if (commandLine.hasOption(CLIManager.SUPRESS_SNAPSHOT_UPDATES)) {
+        if ( commandLine.hasOption( CLIManager.SUPRESS_SNAPSHOT_UPDATES ) )
+        {
             noSnapshotUpdates = true;
         }
 
@@ -361,53 +357,33 @@
 
             Properties executionProperties = getExecutionProperties( commandLine );
 
-            File userSettingsPath = mavenEmbedder.getUserSettingsPath( \
                commandLine.getOptionValue( CLIManager.ALTERNATE_USER_SETTINGS ) );
-
-            File globalSettingsFile = mavenEmbedder.getGlobalSettingsPath();
-
-            Settings settings = mavenEmbedder.buildSettings( userSettingsPath,
-                                                             globalSettingsFile,
-                                                             interactive,
-                                                             offline,
-                                                             usePluginRegistry,
-                                                             pluginUpdateOverride );
-
-            String localRepositoryPath = mavenEmbedder.getLocalRepositoryPath( \
                settings );
-
-            // @todo we either make Settings the official configuration mechanism or \
                allow the indiviaul setting in the request
-            // for each of the things in the settings object. Seems redundant to \
                configure some things via settings and
-            // some via the request. The Settings object is used in about 16 \
                different places in the core so something
-            // to consider.
-
             MavenExecutionRequest request = new DefaultMavenExecutionRequest()
                 .setBasedir( baseDirectory )
                 .setGoals( goals )
-                .setLocalRepositoryPath( localRepositoryPath ) // default: \
                ~/.m2/repository
                 .setProperties( executionProperties ) // optional
                 .setReactorFailureBehavior( reactorFailureBehaviour ) // default: \
                fail fast
-                .setRecursive( recursive ) // default: false
-                .setUseReactor( useReactor ) // default: true
+                .setRecursive( recursive ) // default: true
+                .setUseReactor( useReactor ) // default: false
                 .setPomFile( alternatePomFile ) // optional
                 .setShowErrors( showErrors ) // default: false
+                    // Settings
+                .setSettingsFile( commandLine.getOptionValue( \
CLIManager.ALTERNATE_USER_SETTINGS ) ) +                    \
                //.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
-                .setSettings( settings ) // default: ~/.m2/settings.xml
                 .setTransferListener( transferListener ) // default: batch mode \
                which goes along with interactive
-                .setOffline( offline ) // default: false
                 .setUpdateSnapshots( updateSnapshots ) // default: false
                 .setNoSnapshotUpdates( noSnapshotUpdates ) // default: false
                 .setGlobalChecksumPolicy( globalChecksumPolicy ); // default: warn
 
             mavenEmbedder.execute( request );
         }
-        catch ( SettingsConfigurationException e )
-        {
-            showError( "Error reading settings.xml: " + e.getMessage(), e, \
                showErrors );
-
-            return 1;
-        }
         catch ( MavenExecutionException e )
         {
             showFatalError( "Unable to configure the Maven application", e, \
showErrors ); @@ -418,7 +394,9 @@
         return 0;
     }
 
-    private static void showFatalError( String message, Exception e, boolean show )
+    private static void showFatalError( String message,
+                                        Exception e,
+                                        boolean show )
     {
         System.err.println( "FATAL ERROR: " + message );
         if ( show )
@@ -433,7 +411,9 @@
         }
     }
 
-    private static void showError( String message, Exception e, boolean show )
+    private static void showError( String message,
+                                   Exception e,
+                                   boolean show )
     {
         System.err.println( message );
         if ( show )
@@ -456,8 +436,8 @@
 
             if ( properties.getProperty( "builtOn" ) != null )
             {
-                System.out.println( "Maven version: " + properties.getProperty( \
                "version", "unknown" )
-                    + " built on " + properties.getProperty( "builtOn" ) );
+                System.out.println( "Maven version: " + properties.getProperty( \
"version", "unknown" ) + " built on " + +                    properties.getProperty( \
"builtOn" ) );  }
             else
             {
@@ -499,7 +479,8 @@
         return executionProperties;
     }
 
-    private static void setCliProperty( String property, Properties \
executionProperties ) +    private static void setCliProperty( String property,
+                                        Properties executionProperties )
     {
         String name;
 

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
                
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?view=diff&rev=491468&r1=491467&r2=491468
 ==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java \
                (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java \
Sun Dec 31 11:20:44 2006 @@ -122,6 +122,7 @@
     public MavenExecutionResult execute( MavenExecutionRequest request )
         throws MavenExecutionException
     {
+        //*** Move this stuff to the embedder                 
         boolean snapshotPolicySet = false;
 
         if ( request.isOffline() )
@@ -143,11 +144,6 @@
 
         artifactRepositoryFactory.setGlobalChecksumPolicy( \
request.getGlobalChecksumPolicy() );  
-        if ( request.getLocalRepository() == null )
-        {
-            request.setLocalRepository( mavenTools.createLocalRepository( \
                request.getLocalRepositoryPath() ) );
-        }
-
         Logger logger = loggerManager.getLoggerForComponent( Mojo.ROLE );
                 
         if ( request.getEventMonitors() == null )
@@ -164,6 +160,8 @@
         wagonManager.setDownloadMonitor( request.getTransferListener() );
 
         wagonManager.setOnline( !request.getSettings().isOffline() );
+
+        //***
 
         EventDispatcher dispatcher = new DefaultEventDispatcher( \
request.getEventMonitors() );  

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
                
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/ \
apache/maven/execution/DefaultMavenExecutionRequest.java?view=diff&rev=491468&r1=491467&r2=491468
 ==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java \
                (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java \
Sun Dec 31 11:20:44 2006 @@ -16,16 +16,16 @@
  * limitations under the License.
  */
 
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.monitor.event.EventMonitor;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.wagon.events.TransferListener;
-import org.apache.maven.artifact.repository.ArtifactRepository;
 
+import java.io.File;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Properties;
-import java.util.ArrayList;
-import java.io.File;
 
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
@@ -38,13 +38,17 @@
     // Settings equivalents
     // ----------------------------------------------------------------------------
 
+    private Settings settings;
+
+    private String settingsFile;
+
     private ArtifactRepository localRepository;
     
     private File localRepositoryPath;
 
-    private boolean offline;
+    private boolean offline = false;
 
-    private boolean interactiveMode;
+    private boolean interactiveMode = true;
 
     private List proxies;
 
@@ -59,6 +63,8 @@
     // This is off by default because it causes so many problem. It should just be \
extracted and redone.  private boolean usePluginRegistry = false;
 
+    private boolean usePluginUpdateOverride;
+
     // ----------------------------------------------------------------------------
     // Request
     // ----------------------------------------------------------------------------
@@ -67,19 +73,17 @@
 
     private List goals;
 
-    private Settings settings;
-
-    private boolean useReactor;
+    private boolean useReactor = false;
 
     private String pomFile;
 
-    private String reactorFailureBehavior;
+    private String reactorFailureBehavior = REACTOR_FAIL_FAST;
 
     private Properties properties;
 
     private Date startTime;
 
-    private boolean showErrors;
+    private boolean showErrors = false;
 
     private List eventMonitors;
 
@@ -89,20 +93,36 @@
 
     private TransferListener transferListener;
 
-    private int loggingLevel;
+    private int loggingLevel = LOGGING_LEVEL_INFO;
 
-    private boolean updateSnapshots;
-
-    private String globalChecksumPolicy;
-
-    private boolean recursive;
+    private String globalChecksumPolicy = CHECKSUM_POLICY_WARN;
 
+    private boolean recursive = true;
+        
+    private boolean updateSnapshots = false;
+
+    /**
+     * Suppress SNAPSHOT updates. 
+     * @issue MNG-2681
+     */
     private boolean noSnapshotUpdates;
 
     // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------
 
+    public String getSettingsFile()
+    {
+        return settingsFile;
+    }
+
+    public MavenExecutionRequest setSettingsFile( String settingsFile )
+    {
+        this.settingsFile = settingsFile;
+
+        return this;
+    }
+
     public String getBaseDirectory()
     {
         return basedir.getAbsolutePath();
@@ -473,6 +493,20 @@
 
         return this;
     }
+
+    public boolean isUsePluginUpdateOverride()
+    {
+        return usePluginUpdateOverride;
+    }
+
+    public MavenExecutionRequest setUsePluginUpdateOverride( boolean \
usePluginUpdateOverride ) +    {
+        this.usePluginUpdateOverride = usePluginUpdateOverride;
+
+        return this;
+    }
+
+    //
 
     public MavenExecutionRequest setRecursive( boolean recursive )
     {

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
                
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/ \
apache/maven/execution/MavenExecutionRequest.java?view=diff&rev=491468&r1=491467&r2=491468
 ==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java \
                (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java \
Sun Dec 31 11:20:44 2006 @@ -29,9 +29,8 @@
 import java.util.Properties;
 
 /**
- * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
+ * @author Jason van Zyl
  * @version $Id$
- * @todo merge Settings,RuntimeInfo,MavenSession into this. make adapters for \
                everything
  */
 public interface MavenExecutionRequest
 {
@@ -74,149 +73,120 @@
     // ----------------------------------------------------------------------
 
     // Base directory
-
     MavenExecutionRequest setBasedir( File basedir );
-
     String getBaseDirectory();
 
     // Settings
     MavenExecutionRequest setSettings( Settings settings );
-
     Settings getSettings();
 
     // Timing (remove this)
     MavenExecutionRequest setStartTime( Date start );
-
     Date getStartTime();
 
     // Goals
     MavenExecutionRequest setGoals( List goals );
-
     List getGoals();
 
     // Properties
     MavenExecutionRequest setProperties( Properties properties );
-
     Properties getProperties();
 
     // Reactor
     MavenExecutionRequest setReactorFailureBehavior( String failureBehavior );
-
     String getReactorFailureBehavior();
 
     MavenExecutionRequest setUseReactor( boolean useReactor );
-
     boolean useReactor();
 
     // Recursive (really to just process the top-level POM)
     MavenExecutionRequest setRecursive( boolean recursive );
-
     boolean isRecursive();
 
     // Event monitors
     MavenExecutionRequest addEventMonitor( EventMonitor monitor );
-
     List getEventMonitors();
 
     // Pom
     MavenExecutionRequest setPomFile( String pomFilename );
-
     String getPomFile();
 
     // Errors
     MavenExecutionRequest setShowErrors( boolean showErrors );
-
     boolean isShowErrors();
 
     // Transfer listeners
     MavenExecutionRequest setTransferListener( TransferListener transferListener );
-
     TransferListener getTransferListener();
 
     // Logging
     MavenExecutionRequest setLoggingLevel( int loggingLevel );
-
     int getLoggingLevel();
 
     // Update snapshots
     MavenExecutionRequest setUpdateSnapshots( boolean updateSnapshots );
-
     boolean isUpdateSnapshots();
 
     MavenExecutionRequest setNoSnapshotUpdates( boolean noSnapshotUpdates );
+    boolean isNoSnapshotUpdates();
 
     // Checksum policy
     MavenExecutionRequest setGlobalChecksumPolicy( String globalChecksumPolicy );
-
-    boolean isNoSnapshotUpdates();
-
     String getGlobalChecksumPolicy();
 
     // ----------------------------------------------------------------------------
     // Settings equivalents
     // ----------------------------------------------------------------------------
 
-    // Local repository
+    // Settings
+    MavenExecutionRequest setSettingsFile( String settingsFile );
+    String getSettingsFile();
 
+    // Local repository
     MavenExecutionRequest setLocalRepositoryPath( String localRepository );
-
     MavenExecutionRequest setLocalRepositoryPath( File localRepository );
-
     File getLocalRepositoryPath();
-
     MavenExecutionRequest setLocalRepository( ArtifactRepository repository );
-
     ArtifactRepository getLocalRepository();
 
     // Interactive
     MavenExecutionRequest setInteractiveMode( boolean interactive );
-
     boolean isInteractiveMode();
 
     // Offline
     MavenExecutionRequest setOffline( boolean offline );
-
     boolean isOffline();
 
     // Profiles
     List getProfiles();
-
     MavenExecutionRequest setProfiles( List profiles );
-
     MavenExecutionRequest addActiveProfile( String profile );
-
     MavenExecutionRequest addActiveProfiles( List profiles );
-
     List getActiveProfiles();
-
     MavenExecutionRequest addInactiveProfile( String profile );
-
     MavenExecutionRequest addInactiveProfiles( List profiles );
-
     List getInactiveProfiles();
 
     // Proxies
     List getProxies();
-
     MavenExecutionRequest setProxies( List proxies );
 
     // Servers
     List getServers();
-
     MavenExecutionRequest setServers( List servers );
 
     // Mirrors
     List getMirrors();
-
     MavenExecutionRequest setMirrors( List mirrors );
 
     // Plugin groups
     List getPluginGroups();
-
     MavenExecutionRequest setPluginGroups( List pluginGroups );
 
     // Plugin registry
     boolean isUsePluginRegistry();
-
     MavenExecutionRequest setUsePluginRegistry( boolean usePluginRegistry );
+
+    boolean isUsePluginUpdateOverride();
+    MavenExecutionRequest setUsePluginUpdateOverride( boolean \
usePluginUpdateOverride );  }

Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
                
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/ \
org/apache/maven/embedder/MavenEmbedder.java?view=diff&rev=491468&r1=491467&r2=491468 \
                ==============================================================================
                
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java \
                (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java \
Sun Dec 31 11:20:44 2006 @@ -53,6 +53,7 @@
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.PlexusContainerException;
 import org.codehaus.plexus.classworlds.ClassWorld;
+import org.codehaus.plexus.classworlds.realm.ClassRealm;
 import org.codehaus.plexus.classworlds.realm.DuplicateRealmException;
 import org.codehaus.plexus.component.repository.ComponentDescriptor;
 import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
 @@ -63,7 +64,6 @@
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
@@ -81,8 +81,6 @@
  */
 public class MavenEmbedder
 {
-    public static final String userHome = System.getProperty( "user.home" );
-
     private PlexusContainer container;
 
     // ----------------------------------------------------------------------
@@ -91,8 +89,6 @@
 
     private MavenProjectBuilder mavenProjectBuilder;
 
-    private ArtifactRepositoryFactory artifactRepositoryFactory;
-
     private WagonManager wagonManager;
 
     private MavenXpp3Reader modelReader;
@@ -103,6 +99,8 @@
 
     private PluginDescriptorBuilder pluginDescriptorBuilder;
 
+    private ArtifactRepositoryFactory artifactRepositoryFactory;
+
     private ArtifactFactory artifactFactory;
 
     private ArtifactResolver artifactResolver;
@@ -121,39 +119,54 @@
 
     private ArtifactRepository localRepository;
 
-    private ClassLoader classLoader;
-
     private ClassWorld classWorld;
 
+    private ClassRealm realm;
+
     private MavenEmbedderLogger logger;
 
     // ----------------------------------------------------------------------
     // User options
     // ----------------------------------------------------------------------
 
-    private boolean started = false;
-
     private MavenEmbedRequest embedderRequest;
 
-    // ----------------------------------------------------------------------
-    // Accessors
-    // ----------------------------------------------------------------------
+    // ----------------------------------------------------------------------------
+    // Constructors
+    // ----------------------------------------------------------------------------
 
-    public void setClassLoader( ClassLoader classLoader )
+    public MavenEmbedder( ClassWorld classWorld )
+        throws MavenEmbedderException
     {
-        this.classLoader = classLoader;
+        this( classWorld, null );
     }
 
-    public ClassLoader getClassLoader()
+    public MavenEmbedder( ClassWorld classWorld, MavenEmbedderLogger logger )
+        throws MavenEmbedderException
     {
-        return classLoader;
+        this.classWorld = classWorld;
+
+        this.logger = logger;
+
+        start();
     }
 
-    public void setClassWorld( ClassWorld classWorld )
+    public MavenEmbedder( ClassLoader classLoader )
+        throws MavenEmbedderException
     {
-        this.classWorld = classWorld;
+        this( classLoader, null );
+    }
+
+    public MavenEmbedder( ClassLoader classLoader, MavenEmbedderLogger logger )
+        throws MavenEmbedderException
+    {
+        this( new ClassWorld( "plexus.core", classLoader ), logger );
     }
 
+    // ----------------------------------------------------------------------
+    // Accessors
+    // ----------------------------------------------------------------------
+
     public ClassWorld getClassWorld()
     {
         return classWorld;
@@ -177,7 +190,6 @@
     public Model readModel( File model )
         throws XmlPullParserException, IOException
     {
-        checkStarted();
         return modelReader.read( new FileReader( model ) );
     }
 
@@ -185,7 +197,6 @@
                             Model model )
         throws IOException
     {
-        checkStarted();
         modelWriter.write( writer, model );
     }
 
@@ -196,77 +207,62 @@
     public MavenProject readProject( File mavenProject )
         throws ProjectBuildingException
     {
-        checkStarted();
         return mavenProjectBuilder.build( mavenProject, localRepository, \
profileManager );  }
 
-    /** @deprecated */
+    /** @deprecated  */
     public MavenProject readProjectWithDependencies( File mavenProject,
                                                      TransferListener \
                transferListener )
         throws ProjectBuildingException, ArtifactResolutionException, \
ArtifactNotFoundException  {
-        checkStarted();
         return mavenProjectBuilder.buildWithDependencies( mavenProject, \
                localRepository, profileManager,
                                                           transferListener );
     }
 
-    /** @deprecated */
+    /** @deprecated  */
     public MavenProject readProjectWithDependencies( File mavenProject )
         throws ProjectBuildingException, ArtifactResolutionException, \
ArtifactNotFoundException  {
-        checkStarted();
         return mavenProjectBuilder.buildWithDependencies( mavenProject, \
localRepository, profileManager );  }
 
-    private MavenExecutionRequest populateMavenExecutionRequestWithDefaults( \
MavenExecutionRequest request ) +    private MavenExecutionRequest \
populateMavenExecutionRequestWithDefaults( MavenExecutionRequest r ) +        throws \
MavenEmbedderException  {
-        // Local repository    	    	
-        if ( request.getLocalRepository() == null )
+        // Settings        
+        // Local repository  
+        // TransferListener
+        // EventMonitor
+
+        if ( r.getSettings() == null )
         {
-            request.setLocalRepository( localRepository );
+            File userSettingsPath = mavenTools.getUserSettingsPath( \
r.getSettingsFile() );  
-            File localRepository = new File( \
request.getLocalRepository().getBasedir() ); +            File globalSettingsFile = \
mavenTools.getGlobalSettingsPath();  
-            if ( !localRepository.exists() )
+            try
+            {
+                r.setSettings( mavenTools.buildSettings( userSettingsPath, \
globalSettingsFile, r.isInteractiveMode(), +                                          \
r.isOffline(), r.isUsePluginRegistry(), +                                             \
r.isUsePluginUpdateOverride() ) ); +            }
+            catch ( SettingsConfigurationException e )
             {
-                localRepository.mkdirs();
+                throw new MavenEmbedderException( "Error processing settings.xml.", \
e );  }
         }
 
-        // Settings
-
-        if ( request.getSettings() == null )
+        if ( r.getLocalRepository() == null )
         {
-            request.setSettings( settings );
-        }
-
-        /*
-        MavenExecutionRequest request = new DefaultMavenExecutionRequest()
-            .setBasedir( baseDirectory )
-            .setGoals( goals )
-            .setLocalRepositoryPath( localRepositoryPath ) // default: \
                ~/.m2/repository
-            .setReactorFailureBehavior( reactorFailureBehaviour ) // default: fail \
                fast
-            .setRecursive( recursive ) // default: false
-            .setUseReactor( useReactor ) // default: true
-            .setShowErrors( showErrors ) // default: false
-            .setInteractiveMode( interactive ) // default: false
-            .setLoggingLevel( loggingLevel ) // default: info
-            .setSettings( settings ) // default: ~/.m2/settings.xml
-            .setTransferListener( transferListener ) // default: batch mode which \
                goes along with interactive
-            .setOffline( offline ) // default: false
-            .setUpdateSnapshots( updateSnapshots ) // default: false
-            .setNoSnapshotUpdates( noSnapshotUpdates ) // default: false
-            .setGlobalChecksumPolicy( globalChecksumPolicy ); // default: warn
-        */
+            String localRepositoryPath = mavenTools.getLocalRepositoryPath( \
r.getSettings() );  
-        // Classify settings as being used for the life of session or request
-
-        if ( request.getLocalRepository() == null )
-        {
+            if ( r.getLocalRepository() == null )
+            {
+                r.setLocalRepository( mavenTools.createLocalRepository( new File( \
localRepositoryPath ) ) ); +            }
         }
 
-
-        return request;
+        return r;
     }
 
     /**
@@ -287,14 +283,18 @@
     {
         MavenProject project = null;
 
-        request = populateMavenExecutionRequestWithDefaults( request );
-
         try
         {
+            request = populateMavenExecutionRequestWithDefaults( request );
+
             project = mavenProjectBuilder.buildWithDependencies( new File( \
                request.getPomFile() ),
                                                                  \
                request.getLocalRepository(), profileManager,
                                                                  \
request.getTransferListener() );  }
+        catch ( MavenEmbedderException e )
+        {
+            return new DefaultMavenExecutionResult( project, \
Collections.singletonList( e ) ); +        }
         catch ( ProjectBuildingException e )
         {
             return new DefaultMavenExecutionResult( project, \
Collections.singletonList( e ) ); @@ -321,7 +321,6 @@
                                     String scope,
                                     String type )
     {
-        checkStarted();
         return artifactFactory.createArtifact( groupId, artifactId, version, scope, \
type );  }
 
@@ -331,7 +330,6 @@
                                                   String type,
                                                   String classifier )
     {
-        checkStarted();
         return artifactFactory.createArtifactWithClassifier( groupId, artifactId, \
version, type, classifier );  }
 
@@ -340,7 +338,6 @@
                          ArtifactRepository localRepository )
         throws ArtifactResolutionException, ArtifactNotFoundException
     {
-        checkStarted();
         artifactResolver.resolve( artifact, remoteRepositories, localRepository );
     }
 
@@ -367,7 +364,7 @@
         try
         {
             InputStream is =
-                classLoader.getResourceAsStream( "/plugins/" + \
summaryPluginDescriptor.getArtifactId() + ".xml" ); +                \
realm.getResourceAsStream( "/plugins/" + summaryPluginDescriptor.getArtifactId() + \
".xml" );  
             pluginDescriptor = pluginDescriptorBuilder.build( new InputStreamReader( \
is ) );  }
@@ -397,7 +394,6 @@
     public List getLifecyclePhases()
         throws MavenEmbedderException
     {
-        checkStarted();
         List phases = new ArrayList();
 
         ComponentDescriptor descriptor = container.getComponentDescriptor( \
LifecycleExecutor.ROLE ); @@ -459,7 +455,6 @@
     public ArtifactRepository createRepository( String url,
                                                 String repositoryId )
     {
-        checkStarted();
         // snapshots vs releases
         // offline = to turning the update policy off
 
@@ -483,7 +478,7 @@
     //  Lifecycle
     // ----------------------------------------------------------------------
 
-    public void start()
+    private void start()
         throws MavenEmbedderException
     {
         start( new DefaultMavenEmbedRequest() );
@@ -494,31 +489,6 @@
     {
         this.embedderRequest = req;
 
-        // ----------------------------------------------------------------------
-        // Set the maven.home system property which is need by components like
-        // the plugin registry builder.
-        // ----------------------------------------------------------------------
-
-        if ( classWorld == null && classLoader == null )
-        {
-            throw new IllegalStateException(
-                "A classWorld or classloader must be specified using \
                setClassLoader|World(ClassLoader)." );
-        }
-
-        if ( classWorld == null )
-        {
-            classWorld = new ClassWorld();
-
-            try
-            {
-                classWorld.newRealm( "plexus.core", classLoader );
-            }
-            catch ( DuplicateRealmException e )
-            {
-                // won't happen
-            }
-        }
-
         try
         {
             container = new DefaultPlexusContainer( null, null, null, classWorld );
@@ -578,8 +548,6 @@
 
             wagonManager = (WagonManager) container.lookup( WagonManager.ROLE );
 
-            started = true;
-            
             // ----------------------------------------------------------------------------
  // Settings
             //
@@ -597,7 +565,7 @@
                 req.setGlobalSettingsFile( mavenTools.getGlobalSettingsPath() );
             }
 
-            settings = mavenTools.buildSettings( req.getUserSettingsFile(), \
req.getGlobalSettingsFile(), null ); +            settings = \
mavenTools.buildSettings( req.getUserSettingsFile(), req.getGlobalSettingsFile(), \
false );  
             resolveParameters( settings );
 
@@ -671,7 +639,6 @@
     public void stop()
         throws MavenEmbedderException
     {
-        started = false;
         try
         {
             container.release( mavenProjectBuilder );
@@ -688,82 +655,18 @@
     // Start of new embedder API
     // ----------------------------------------------------------------------
 
-    public void execute( MavenExecutionRequest request )
+    public MavenExecutionResult execute( MavenExecutionRequest request )
         throws MavenExecutionException
     {
-        checkStarted();
-
-        maven.execute( request );
-    }
-
-    public Settings buildSettings( File userSettingsPath,
-                                   File globalSettingsPath,
-                                   boolean interactive,
-                                   boolean offline,
-                                   boolean usePluginRegistry,
-                                   Boolean pluginUpdateOverride )
-        throws SettingsConfigurationException
-    {
-        checkStarted();
-        return mavenTools.buildSettings( userSettingsPath, globalSettingsPath, \
                interactive, offline, usePluginRegistry,
-                                         pluginUpdateOverride );
-    }
-
-    public Settings buildSettings( File userSettingsPath,
-                                   File globalSettingsPath,
-                                   boolean interactive,
-                                   boolean offline,
-                                   boolean usePluginRegistry,
-                                   boolean pluginUpdateOverride )
-        throws SettingsConfigurationException
-    {
-        checkStarted();
-        return mavenTools.buildSettings( userSettingsPath, globalSettingsPath, \
                interactive, offline, usePluginRegistry,
-                                         Boolean.valueOf( pluginUpdateOverride ) );
-    }
-
-    public Settings buildSettings( File userSettingsPath,
-                                   File globalSettingsPath,
-                                   Boolean pluginUpdateOverride )
-        throws SettingsConfigurationException
-    {
-        checkStarted();
-        return mavenTools.buildSettings( userSettingsPath, globalSettingsPath, \
                pluginUpdateOverride );
-    }
-
-    public Settings buildSettings( File userSettingsPath,
-                                   File globalSettingsPath,
-                                   boolean pluginUpdateOverride )
-        throws SettingsConfigurationException
-    {
-        checkStarted();
-        return mavenTools.buildSettings( userSettingsPath, globalSettingsPath, \
                Boolean.valueOf( pluginUpdateOverride ) );
-    }
-
-    public File getUserSettingsPath( String optionalSettingsPath )
-    {
-        checkStarted();
-        return mavenTools.getUserSettingsPath( optionalSettingsPath );
-    }
-
-    public File getGlobalSettingsPath()
-    {
-        checkStarted();
-        return mavenTools.getGlobalSettingsPath();
-    }
-
-    public String getLocalRepositoryPath( Settings settings )
-    {
-        checkStarted();
-        return mavenTools.getLocalRepositoryPath( settings );
-    }
-
-    private void checkStarted()
-    {
-        if ( !started )
+        try
         {
-            throw new IllegalStateException(
-                "The embedder is not started, you need to call start() on the \
embedder prior to calling this method" ); +            request = \
populateMavenExecutionRequestWithDefaults( request );  }
+        catch ( MavenEmbedderException e )
+        {
+            throw new MavenExecutionException( "Error populating request with \
default values.", e ); +        }
+
+        return maven.execute( request );
     }
 }

Modified: maven/components/trunk/maven-tools/src/main/java/org/apache/maven/DefaultMavenTools.java
                
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-tools/src/main/java/org/apache/maven/DefaultMavenTools.java?view=diff&rev=491468&r1=491467&r2=491468
 ==============================================================================
--- maven/components/trunk/maven-tools/src/main/java/org/apache/maven/DefaultMavenTools.java \
                (original)
+++ maven/components/trunk/maven-tools/src/main/java/org/apache/maven/DefaultMavenTools.java \
Sun Dec 31 11:20:44 2006 @@ -81,7 +81,7 @@
                                    boolean interactive,
                                    boolean offline,
                                    boolean usePluginRegistry,
-                                   Boolean pluginUpdateOverride )
+                                   boolean pluginUpdateOverride )
         throws SettingsConfigurationException
     {
         Settings settings = buildSettings(userSettingsPath,
@@ -101,7 +101,7 @@
     
     public Settings buildSettings( File userSettingsPath,
                                    File globalSettingsPath,
-                                   Boolean pluginUpdateOverride )
+                                   boolean pluginUpdateOverride )
         throws SettingsConfigurationException
     {
         Settings settings;
@@ -122,7 +122,7 @@
 
         RuntimeInfo runtimeInfo = new RuntimeInfo( settings );
 
-        runtimeInfo.setPluginUpdateOverride( pluginUpdateOverride );
+        runtimeInfo.setPluginUpdateOverride( Boolean.valueOf( pluginUpdateOverride ) \
);  
         settings.setRuntimeInfo( runtimeInfo );
 
@@ -326,7 +326,7 @@
                                                       false,
                                                       true,
                                                       false,
-                                                      Boolean.FALSE) );
+                                                      false ) );
     }
 
     public ArtifactRepository getLocalRepository()

Modified: maven/components/trunk/maven-tools/src/main/java/org/apache/maven/MavenTools.java
                
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-tools/src/main/java/org/apache/maven/MavenTools.java?view=diff&rev=491468&r1=491467&r2=491468
 ==============================================================================
--- maven/components/trunk/maven-tools/src/main/java/org/apache/maven/MavenTools.java \
                (original)
+++ maven/components/trunk/maven-tools/src/main/java/org/apache/maven/MavenTools.java \
Sun Dec 31 11:20:44 2006 @@ -56,12 +56,12 @@
                             boolean interactive,
                             boolean offline,
                             boolean usePluginRegistry,
-                            Boolean pluginUpdateOverride )
+                            boolean pluginUpdateOverride )
         throws SettingsConfigurationException;
     
     Settings buildSettings( File userSettingsPath,
                             File globalSettingsPath,
-                            Boolean pluginUpdateOverride )
+                            boolean pluginUpdateOverride )
         throws SettingsConfigurationException;
 
     // ----------------------------------------------------------------------------


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic