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 );
         }