You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2006/02/21 21:56:35 UTC
svn commit: r379580 - in
/maven/components/branches/maven-2.0.x/maven-embedder: pom.xml
src/main/java/org/apache/maven/embedder/MavenEmbedder.java
Author: jvanzyl
Date: Tue Feb 21 12:56:34 2006
New Revision: 379580
URL: http://svn.apache.org/viewcvs?rev=379580&view=rev
Log:
o fix typo in method call, merging with trunk
Modified:
maven/components/branches/maven-2.0.x/maven-embedder/pom.xml
maven/components/branches/maven-2.0.x/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
Modified: maven/components/branches/maven-2.0.x/maven-embedder/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/branches/maven-2.0.x/maven-embedder/pom.xml?rev=379580&r1=379579&r2=379580&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-embedder/pom.xml (original)
+++ maven/components/branches/maven-2.0.x/maven-embedder/pom.xml Tue Feb 21 12:56:34 2006
@@ -44,6 +44,6 @@
</plugins>
</reporting>
<properties>
- <mavenVersion>2.0.2</mavenVersion>
+ <mavenVersion>2.0.3-SNAPSHOT</mavenVersion>
</properties>
-</project>
\ No newline at end of file
+</project>
Modified: maven/components/branches/maven-2.0.x/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: http://svn.apache.org/viewcvs/maven/components/branches/maven-2.0.x/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=379580&r1=379579&r2=379580&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
+++ maven/components/branches/maven-2.0.x/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Tue Feb 21 12:56:34 2006
@@ -16,67 +16,66 @@
* limitations under the License.
*/
+import org.apache.maven.BuildFailureException;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
-import org.apache.maven.artifact.repository.DefaultArtifactRepository;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolver;
-import org.apache.maven.artifact.manager.WagonManager;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.Artifact;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.execution.ReactorManager;
+import org.apache.maven.lifecycle.LifecycleExecutionException;
+import org.apache.maven.lifecycle.LifecycleExecutor;
import org.apache.maven.model.Model;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
-import org.apache.maven.profiles.ProfileManager;
+import org.apache.maven.monitor.event.DefaultEventDispatcher;
+import org.apache.maven.monitor.event.EventDispatcher;
+import org.apache.maven.monitor.event.EventMonitor;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
import org.apache.maven.profiles.DefaultProfileManager;
+import org.apache.maven.profiles.ProfileManager;
+import org.apache.maven.project.DuplicateProjectException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
-import org.apache.maven.project.DuplicateProjectException;
import org.apache.maven.settings.MavenSettingsBuilder;
-import org.apache.maven.settings.Settings;
import org.apache.maven.settings.RuntimeInfo;
+import org.apache.maven.settings.Settings;
import org.apache.maven.wagon.events.TransferListener;
-import org.apache.maven.lifecycle.LifecycleExecutionException;
-import org.apache.maven.lifecycle.LifecycleExecutor;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.descriptor.PluginDescriptor;
-import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
-import org.apache.maven.execution.ReactorManager;
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.monitor.event.EventDispatcher;
-import org.apache.maven.monitor.event.DefaultEventDispatcher;
-import org.apache.maven.monitor.event.EventMonitor;
-import org.apache.maven.BuildFailureException;
import org.codehaus.classworlds.ClassWorld;
import org.codehaus.classworlds.DuplicateRealmException;
import org.codehaus.plexus.PlexusContainerException;
-import org.codehaus.plexus.configuration.PlexusConfigurationException;
-import org.codehaus.plexus.configuration.PlexusConfiguration;
+import org.codehaus.plexus.component.repository.ComponentDescriptor;
import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.component.repository.ComponentDescriptor;
+import org.codehaus.plexus.configuration.PlexusConfiguration;
+import org.codehaus.plexus.configuration.PlexusConfigurationException;
import org.codehaus.plexus.embed.Embedder;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-import org.codehaus.plexus.util.dag.CycleDetectedException;
import org.codehaus.plexus.util.DirectoryScanner;
+import org.codehaus.plexus.util.dag.CycleDetectedException;
+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.InputStreamReader;
import java.io.InputStream;
+import java.io.InputStreamReader;
import java.io.Writer;
-import java.util.List;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.Collections;
-import java.util.Properties;
import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
/**
* Class intended to be used by clients who wish to embed Maven into their applications
@@ -119,6 +118,8 @@
private ArtifactResolver artifactResolver;
+ private ArtifactRepositoryLayout defaultArtifactRepositoryLayout;
+
// ----------------------------------------------------------------------
// Configuration
// ----------------------------------------------------------------------
@@ -453,7 +454,7 @@
PlexusConfiguration configuration = descriptor.getConfiguration();
- PlexusConfiguration[] phasesConfigurations = configuration.getChild( "lifecycles" ).getChild( 0 ).getChild( "phases" ).getChildren( "phase" );
+ PlexusConfiguration[] phasesConfigurations = configuration.getChild( "lifecycles" ).getChild( 0 ).getChild( "phases" ).getChildren( "phase" );
try
{
@@ -464,49 +465,70 @@
}
catch ( PlexusConfigurationException e )
{
- throw new MavenEmbedderException( "Cannot retrieve default lifecycle phasesConfigurations.", e );
+ throw new MavenEmbedderException( "Cannot retrieve default lifecycle phasesConfigurations.", e );
}
return phases;
}
// ----------------------------------------------------------------------
- // Internal utility code
+ // Remote Repository
+ // ----------------------------------------------------------------------
+
+ // ----------------------------------------------------------------------
+ // Local Repository
// ----------------------------------------------------------------------
- private ArtifactRepository createLocalRepository( Settings settings )
+ public static final String DEFAULT_LOCAL_REPO_ID = "local";
+
+ public static final String DEFAULT_LAYOUT_ID = "default";
+
+ public ArtifactRepository createLocalRepository( File localRepository )
throws ComponentLookupException
{
- ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout) embedder.lookup( ArtifactRepositoryLayout.ROLE, "default" );
+ return createLocalRepository( localRepository.getAbsolutePath(), DEFAULT_LOCAL_REPO_ID );
+ }
- String url = settings.getLocalRepository();
+ public ArtifactRepository createLocalRepository( Settings settings )
+ throws ComponentLookupException
+ {
+ return createLocalRepository( settings.getLocalRepository(), DEFAULT_LOCAL_REPO_ID );
+ }
+ public ArtifactRepository createLocalRepository( String url, String repositoryId )
+ throws ComponentLookupException
+ {
if ( !url.startsWith( "file:" ) )
{
url = "file://" + url;
}
- ArtifactRepository localRepository = new DefaultArtifactRepository( "local", url, repositoryLayout );
+ return createRepository( url, repositoryId );
+ }
- boolean snapshotPolicySet = false;
+ public ArtifactRepository createRepository( String url, String repositoryId )
+ throws ComponentLookupException
+ {
+ // snapshots vs releases
+ // offline = to turning the update policy off
- if ( offline )
- {
- settings.setOffline( true );
+ //TODO: we'll need to allow finer grained creation of repositories but this will do for now
- snapshotPolicySet = true;
- }
+ String updatePolicyFlag = ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS;
- if ( !snapshotPolicySet && updateSnapshots )
- {
- artifactRepositoryFactory.setGlobalUpdatePolicy( ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS );
- }
+ String checksumPolicyFlag = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN;
- artifactRepositoryFactory.setGlobalChecksumPolicy( globalChecksumPolicy );
+ ArtifactRepositoryPolicy snapshotsPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag );
- return localRepository;
+ ArtifactRepositoryPolicy releasesPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag );
+
+ return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout, snapshotsPolicy, releasesPolicy );
}
+ // ----------------------------------------------------------------------
+ // Internal utility code
+ // ----------------------------------------------------------------------
+
private RuntimeInfo createRuntimeInfo( Settings settings )
{
RuntimeInfo runtimeInfo = new RuntimeInfo( settings );
@@ -597,11 +619,15 @@
artifactResolver = (ArtifactResolver) embedder.lookup( ArtifactResolver.ROLE );
+ defaultArtifactRepositoryLayout = (ArtifactRepositoryLayout) embedder.lookup( ArtifactRepositoryLayout.ROLE, DEFAULT_LAYOUT_ID );
+
lifecycleExecutor = (LifecycleExecutor) embedder.lookup( LifecycleExecutor.ROLE );
wagonManager = (WagonManager) embedder.lookup( WagonManager.ROLE );
createMavenSettings();
+
+ profileManager.loadSettingsProfiles( settings );
localRepository = createLocalRepository( settings );
}