[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