Author: jvanzyl Date: Sat Dec 13 22:24:01 2008 New Revision: 726383 URL: http://svn.apache.org/viewvc?rev=726383&view=rev Log: MNG-3905 First pass at collecting all the repository related code and started to decouple from maven-artifact
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java maven/components/trunk/pom.xml Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=726383&r1=726382&r2=726383&view=diff ============================================================================== --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original) +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Sat Dec 13 22:24:01 2008 @@ -558,17 +558,21 @@ PluginDescriptor pluginDescriptor = mojoDescriptor.getPluginDescriptor(); Xpp3Dom dom = mojoExecution.getConfiguration(); + if ( dom != null ) { try { List<InterpolatorProperty> interpolatorProperties = new ArrayList<InterpolatorProperty>(); + interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( session.getProjectBuilderConfiguration().getExecutionProperties(), PomInterpolatorTag.SYSTEM_PROPERTIES.name())); + interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( session.getProjectBuilderConfiguration().getUserProperties(), PomInterpolatorTag.USER_PROPERTIES.name())); - String interpolatedDom = - Interpolator.interpolateXmlString( String.valueOf( dom ), interpolatorProperties ); + + String interpolatedDom = Interpolator.interpolateXmlString( String.valueOf( dom ), interpolatorProperties ); + dom = Xpp3DomBuilder.build( new StringReader( interpolatedDom ) ); } catch ( XmlPullParserException e ) Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java?rev=726383&r1=726382&r2=726383&view=diff ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java (original) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java Sat Dec 13 22:24:01 2008 @@ -26,11 +26,10 @@ import java.util.Properties; import org.apache.maven.Maven; +import org.apache.maven.MavenTools; 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.layout.ArtifactRepositoryLayout; import org.apache.maven.embedder.Configuration; import org.apache.maven.embedder.MavenEmbedder; import org.apache.maven.embedder.MavenEmbedderException; @@ -53,15 +52,11 @@ import org.apache.maven.settings.SettingsConfigurationException; import org.apache.maven.settings.SettingsUtils; import org.apache.maven.wagon.repository.RepositoryPermissions; -import org.codehaus.plexus.MutablePlexusContainer; -import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; -import org.codehaus.plexus.context.Context; -import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.Xpp3Dom; @@ -86,12 +81,6 @@ implements MavenExecutionRequestPopulator { @Requirement - private ArtifactRepositoryFactory artifactRepositoryFactory; - - @Requirement - private ArtifactRepositoryLayout defaultArtifactRepositoryLayout; - - @Requirement private PlexusContainer container; @Requirement @@ -100,6 +89,9 @@ @Requirement private MavenSettingsBuilder settingsBuilder; + @Requirement + private MavenTools mavenTools; + public MavenExecutionRequest populateDefaults( MavenExecutionRequest request, Configuration configuration ) throws MavenEmbedderException @@ -259,8 +251,7 @@ snapshots.setUpdatePolicy( ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN ); } - ArtifactRepository ar = artifactRepositoryFactory.createArtifactRepository( r.getId(), r.getUrl(), - defaultArtifactRepositoryLayout, snapshots, releases ); + ArtifactRepository ar = mavenTools.createRepository( r.getId(), r.getUrl(), snapshots, releases ); request.addRemoteRepository( ar ); } @@ -347,10 +338,6 @@ } } - // ------------------------------------------------------------------------ - // Local Repository - // ------------------------------------------------------------------------ - private void localRepository( MavenExecutionRequest request, Configuration configuration ) throws MavenEmbedderException @@ -368,119 +355,7 @@ request.setLocalRepository( createLocalRepository( request, request.getSettings(), configuration ) ); } } - - - public ArtifactRepository createLocalRepository( MavenExecutionRequest request, - Settings settings, - Configuration configuration ) - throws MavenEmbedderException - { - String localRepositoryPath = null; - - if ( request.getLocalRepositoryPath() != null ) - { - localRepositoryPath = request.getLocalRepositoryPath().getAbsolutePath(); - } - - if ( StringUtils.isEmpty( localRepositoryPath ) && ( configuration.getLocalRepository() != null ) ) - { - localRepositoryPath = configuration.getLocalRepository().getAbsolutePath(); - } - - if ( StringUtils.isEmpty( localRepositoryPath ) ) - { - localRepositoryPath = settings.getLocalRepository(); - } - - if ( StringUtils.isEmpty( localRepositoryPath ) ) - { - localRepositoryPath = MavenEmbedder.defaultUserLocalRepository.getAbsolutePath(); - } - - return createLocalRepository( - localRepositoryPath, - MavenEmbedder.DEFAULT_LOCAL_REPO_ID ); - } - - public ArtifactRepository createLocalRepository( String url, - String repositoryId ) - throws MavenEmbedderException - { - try - { - return createRepository( - canonicalFileUrl( url ), - repositoryId ); - } - catch ( IOException e ) - { - throw new MavenEmbedderException( - "Unable to resolve canonical path for local repository " + url, - e ); - } - } - - private String canonicalFileUrl( String url ) - throws IOException - { - if ( !url.startsWith( "file:" ) ) - { - url = "file://" + url; - } - else if ( url.startsWith( "file:" ) && !url.startsWith( "file://" ) ) - { - url = "file://" + url.substring( "file:".length() ); - } - - // So now we have an url of the form file://<path> - - // We want to eliminate any relative path nonsense and lock down the path so we - // need to fully resolve it before any sub-modules use the path. This can happen - // when you are using a custom settings.xml that contains a relative path entry - // for the local repository setting. - - File localRepository = new File( url.substring( "file://".length() ) ); - - if ( !localRepository.isAbsolute() ) - { - url = "file://" + localRepository.getCanonicalPath(); - } - - return url; - } - - public ArtifactRepository createRepository( String url, - String repositoryId ) - { - // snapshots vs releases - // offline = to turning the update policy off - - //TODO: we'll need to allow finer grained creation of repositories but this will do for now - - String updatePolicyFlag = ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS; - - String checksumPolicyFlag = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN; - - ArtifactRepositoryPolicy snapshotsPolicy = - new ArtifactRepositoryPolicy( - true, - updatePolicyFlag, - checksumPolicyFlag ); - - ArtifactRepositoryPolicy releasesPolicy = - new ArtifactRepositoryPolicy( - true, - updatePolicyFlag, - checksumPolicyFlag ); - - return artifactRepositoryFactory.createArtifactRepository( - repositoryId, - url, - defaultArtifactRepositoryLayout, - snapshotsPolicy, - releasesPolicy ); - } - + // ------------------------------------------------------------------------ // Snapshot Policy // ------------------------------------------------------------------------ @@ -505,12 +380,12 @@ { if ( request.isUpdateSnapshots() ) { - artifactRepositoryFactory.setGlobalUpdatePolicy( ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS ); + mavenTools.setGlobalUpdatePolicy( ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS ); } else if ( request.isNoSnapshotUpdates() ) { getLogger().info( "+ Supressing SNAPSHOT updates." ); - artifactRepositoryFactory.setGlobalUpdatePolicy( ArtifactRepositoryPolicy.UPDATE_POLICY_NEVER ); + mavenTools.setGlobalUpdatePolicy( ArtifactRepositoryPolicy.UPDATE_POLICY_NEVER ); } } } @@ -528,7 +403,7 @@ // We take the checksum passed in via the request. // ------------------------------------------------------------------------ - artifactRepositoryFactory.setGlobalChecksumPolicy( request.getGlobalChecksumPolicy() ); + mavenTools.setGlobalChecksumPolicy( request.getGlobalChecksumPolicy() ); } // ------------------------------------------------------------------------ @@ -626,7 +501,7 @@ } RepositoryPermissions defaultPermissions = new RepositoryPermissions(); - + defaultPermissions.setDirectoryMode( "775" ); defaultPermissions.setFileMode( "664" ); @@ -649,6 +524,43 @@ } } + public ArtifactRepository createLocalRepository( MavenExecutionRequest request, + Settings settings, + Configuration configuration ) + throws MavenEmbedderException + { + String localRepositoryPath = null; + + if ( request.getLocalRepositoryPath() != null ) + { + localRepositoryPath = request.getLocalRepositoryPath().getAbsolutePath(); + } + + if ( StringUtils.isEmpty( localRepositoryPath ) && ( configuration.getLocalRepository() != null ) ) + { + localRepositoryPath = configuration.getLocalRepository().getAbsolutePath(); + } + + if ( StringUtils.isEmpty( localRepositoryPath ) ) + { + localRepositoryPath = settings.getLocalRepository(); + } + + if ( StringUtils.isEmpty( localRepositoryPath ) ) + { + localRepositoryPath = MavenEmbedder.defaultUserLocalRepository.getAbsolutePath(); + } + + try + { + return mavenTools.createLocalRepository( localRepositoryPath, MavenEmbedder.DEFAULT_LOCAL_REPO_ID ); + } + catch ( IOException e ) + { + throw new MavenEmbedderException( "Cannot create local repository.", e ); + } + } + // ------------------------------------------------------------------------ // Eventing // ------------------------------------------------------------------------ @@ -689,15 +601,12 @@ { // ------------------------------------------------------------------------ // Profile Manager - // - // // ------------------------------------------------------------------------ ProfileActivationContext activationContext = request.getProfileActivationContext(); if ( activationContext == null ) { - activationContext = new DefaultProfileActivationContext( - request.getProperties(), false ); + activationContext = new DefaultProfileActivationContext( request.getProperties(), false ); } activationContext.setExplicitlyActiveProfileIds( request.getActiveProfiles() ); Modified: maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java?rev=726383&r1=726382&r2=726383&view=diff ============================================================================== --- maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java (original) +++ maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomTransformer.java Sat Dec 13 22:24:01 2008 @@ -169,13 +169,16 @@ } } - List<ModelProperty> pList = new ArrayList<ModelProperty>(); + List<ModelProperty> pList; + if ( !hasExecutionsTag ) { pList = managementContainer.getProperties(); } else { + pList = new ArrayList<ModelProperty>(); + for ( ModelProperty mp : managementContainer.getProperties() ) { if ( !mp.getUri().equals( ProjectUri.Build.Plugins.Plugin.Executions.xUri ) ) @@ -191,8 +194,8 @@ if ( action.equals( ModelContainerAction.JOIN ) || action.equals( ModelContainerAction.DELETE ) ) { - ModelDataSource dependencyDatasource = new DefaultModelDataSource(); - dependencyDatasource.init( pluginContainer.getProperties(), Arrays.asList( new ArtifactModelContainerFactory(), + ModelDataSource pluginDatasource = new DefaultModelDataSource(); + pluginDatasource.init( pluginContainer.getProperties(), Arrays.asList( new ArtifactModelContainerFactory(), new IdModelContainerFactory() ) ); ModelDataSource managementDatasource = new DefaultModelDataSource(); @@ -208,12 +211,12 @@ source.join( pluginContainer, new ArtifactModelContainerFactory().create(managementPropertiesWithoutExecutions) ); - List<ModelContainer> dependencyExecutionContainers = dependencyDatasource.queryFor(ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri); + List<ModelContainer> pluginExecutionContainers = pluginDatasource.queryFor(ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri); List<ModelContainer> joinedExecutionContainers = new ArrayList<ModelContainer>(); for(ModelContainer a : managementExecutionContainers) { - for(ModelContainer b : dependencyExecutionContainers) + for(ModelContainer b : pluginExecutionContainers) { if(b.containerAction(a).equals(ModelContainerAction.JOIN)) { @@ -269,8 +272,8 @@ ModelDataSource executionSource = new DefaultModelDataSource(); executionSource.init( pluginContainer.getProperties(), Arrays.asList( new ArtifactModelContainerFactory(), new PluginExecutionIdModelContainerFactory() ) ); - List<ModelContainer> executionContainers = - executionSource.queryFor( ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri ); + List<ModelContainer> executionContainers = executionSource.queryFor( ProjectUri.Build.Plugins.Plugin.Executions.Execution.xUri ); + if ( executionContainers.size() < 2 ) { continue; Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java?rev=726383&r1=726382&r2=726383&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java Sat Dec 13 22:24:01 2008 @@ -19,6 +19,8 @@ * under the License. */ +import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -27,6 +29,7 @@ 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.layout.ArtifactRepositoryLayout; import org.apache.maven.model.DeploymentRepository; import org.apache.maven.model.Repository; import org.apache.maven.model.RepositoryPolicy; @@ -44,6 +47,9 @@ @Requirement private ArtifactRepositoryFactory artifactRepositoryFactory; + @Requirement + private ArtifactRepositoryLayout defaultArtifactRepositoryLayout; + // ---------------------------------------------------------------------------- // Code snagged from ProjectUtils: this will have to be moved somewhere else // but just trying to collect it all in one place right now. @@ -140,4 +146,78 @@ return new ArtifactRepositoryPolicy( enabled, updatePolicy, checksumPolicy ); } + + // From MavenExecutionRequestPopulator + + public ArtifactRepository createLocalRepository( String url, String repositoryId ) + throws IOException + { + return createRepository( canonicalFileUrl( url ), repositoryId ); + } + + private String canonicalFileUrl( String url ) + throws IOException + { + if ( !url.startsWith( "file:" ) ) + { + url = "file://" + url; + } + else if ( url.startsWith( "file:" ) && !url.startsWith( "file://" ) ) + { + url = "file://" + url.substring( "file:".length() ); + } + + // So now we have an url of the form file://<path> + + // We want to eliminate any relative path nonsense and lock down the path so we + // need to fully resolve it before any sub-modules use the path. This can happen + // when you are using a custom settings.xml that contains a relative path entry + // for the local repository setting. + + File localRepository = new File( url.substring( "file://".length() ) ); + + if ( !localRepository.isAbsolute() ) + { + url = "file://" + localRepository.getCanonicalPath(); + } + + return url; + } + + public ArtifactRepository createRepository( String url, + String repositoryId ) + { + // snapshots vs releases + // offline = to turning the update policy off + + //TODO: we'll need to allow finer grained creation of repositories but this will do for now + + String updatePolicyFlag = ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS; + + String checksumPolicyFlag = ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN; + + ArtifactRepositoryPolicy snapshotsPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag ); + + ArtifactRepositoryPolicy releasesPolicy = new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag ); + + return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout, snapshotsPolicy, releasesPolicy ); + } + + public ArtifactRepository createRepository( String url, + String repositoryId, + ArtifactRepositoryPolicy snapshotsPolicy, + ArtifactRepositoryPolicy releasesPolicy ) + { + return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout, snapshotsPolicy, releasesPolicy ); + } + + public void setGlobalUpdatePolicy( String policy ) + { + artifactRepositoryFactory.setGlobalUpdatePolicy( policy ); + } + + public void setGlobalChecksumPolicy( String policy ) + { + artifactRepositoryFactory.setGlobalChecksumPolicy( policy ); + } } Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java?rev=726383&r1=726382&r2=726383&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java Sat Dec 13 22:24:01 2008 @@ -21,9 +21,12 @@ import org.apache.maven.artifact.InvalidRepositoryException; import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; +import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.model.DeploymentRepository; import org.apache.maven.model.Repository; +import java.io.IOException; import java.util.List; /** @@ -45,4 +48,15 @@ ArtifactRepository buildArtifactRepository( Repository repo ) throws InvalidRepositoryException; + + ArtifactRepository createLocalRepository( String url, String repositoryId ) + throws IOException; + + ArtifactRepository createRepository( String url, String repositoryId ); + + ArtifactRepository createRepository( String url, String repositoryId, ArtifactRepositoryPolicy snapshotsPolicy, ArtifactRepositoryPolicy releasesPolicy ); + + void setGlobalUpdatePolicy( String policy ); + + void setGlobalChecksumPolicy( String policy ); } Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=726383&r1=726382&r2=726383&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Sat Dec 13 22:24:01 2008 @@ -75,15 +75,6 @@ protected MavenProfilesBuilder profilesBuilder; @Requirement - protected ArtifactResolver artifactResolver; - - @Requirement - protected ArtifactMetadataSource artifactMetadataSource; - - @Requirement - private ArtifactFactory artifactFactory; - - @Requirement private ModelValidator validator; @Requirement @@ -101,6 +92,15 @@ private MavenXpp3Reader modelReader; private Logger logger; + + @Requirement + protected ArtifactResolver artifactResolver; + + @Requirement + protected ArtifactMetadataSource artifactMetadataSource; + + @Requirement + private ArtifactFactory artifactFactory; //DO NOT USE, it is here only for backward compatibility reasons. The existing // maven-assembly-plugin (2.2-beta-1) is accessing it via reflection. @@ -135,22 +135,21 @@ public MavenProject build( File projectDescriptor, ProjectBuilderConfiguration config ) throws ProjectBuildingException { - MavenProject project = readModelFromLocalPath( "unknown", projectDescriptor, new PomArtifactResolver( - config.getLocalRepository(), repositoryHelper.buildArtifactRepositories( - getSuperProject( config, projectDescriptor, true ).getModel() ), artifactResolver ), config ); - - project.setFile( projectDescriptor ); - project = buildWithProfiles( project.getModel(), config, projectDescriptor, project.getParentFile(), true ); - - Build build = project.getBuild(); - // NOTE: setting this script-source root before path translation, because - // the plugin tools compose basedir and scriptSourceRoot into a single file. - project.addScriptSourceRoot( build.getScriptSourceDirectory() ); - project.addCompileSourceRoot( build.getSourceDirectory() ); - project.addTestCompileSourceRoot( build.getTestSourceDirectory() ); - project.setFile( projectDescriptor ); + MavenProject project = readModelFromLocalPath( "unknown", projectDescriptor, new PomArtifactResolver( config.getLocalRepository(), repositoryHelper + .buildArtifactRepositories( getSuperProject( config, projectDescriptor, true ).getModel() ), artifactResolver ), config ); + + project.setFile( projectDescriptor ); + project = buildWithProfiles( project.getModel(), config, projectDescriptor, project.getParentFile(), true ); + + Build build = project.getBuild(); + // NOTE: setting this script-source root before path translation, because + // the plugin tools compose basedir and scriptSourceRoot into a single file. + project.addScriptSourceRoot( build.getScriptSourceDirectory() ); + project.addCompileSourceRoot( build.getSourceDirectory() ); + project.addTestCompileSourceRoot( build.getTestSourceDirectory() ); + project.setFile( projectDescriptor ); - setBuildOutputDirectoryOnParent( project ); + setBuildOutputDirectoryOnParent( project ); return project; } @@ -189,8 +188,7 @@ return project; } - File f = (artifact.getFile() != null) ? artifact.getFile() : - new File( localRepository.getBasedir(), localRepository.pathOf( artifact ) );; + File f = (artifact.getFile() != null) ? artifact.getFile() : new File( localRepository.getBasedir(), localRepository.pathOf( artifact ) ); repositoryHelper.findModelFromRepository( artifact, remoteArtifactRepositories, localRepository ); ProjectBuilderConfiguration config = new DefaultProjectBuilderConfiguration().setLocalRepository( localRepository ); @@ -200,7 +198,6 @@ project = readModelFromLocalPath( "unknown", artifact.getFile(), new PomArtifactResolver( config.getLocalRepository(), artifactRepositories, artifactResolver ), config ); project = buildWithProfiles( project.getModel(), config, artifact.getFile(), project.getParentFile(), false ); - // project = readModelFromLocalPath( "unknown", artifact.getFile(), new PomArtifactResolver( config.getLocalRepository(), artifactRepositories, artifactResolver ), config ); artifact.setFile( f ); project.setVersion( artifact.getVersion() ); @@ -242,8 +239,10 @@ } List<InterpolatorProperty> interpolatorProperties = new ArrayList<InterpolatorProperty>(); + interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getExecutionProperties(), PomInterpolatorTag.SYSTEM_PROPERTIES.name())); + interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getUserProperties(), PomInterpolatorTag.USER_PROPERTIES.name())); @@ -482,6 +481,7 @@ } URL url = DefaultMavenProjectBuilder.class.getResource( "pom-" + MAVEN_MODEL_VERSION + ".xml" ); + String projectId = safeVersionlessKey( STANDALONE_SUPERPOM_GROUPID, STANDALONE_SUPERPOM_ARTIFACTID ); Reader reader = null; @@ -492,13 +492,13 @@ if ( modelSource.indexOf( "<modelVersion>" + MAVEN_MODEL_VERSION ) < 0 ) { - throw new InvalidProjectModelException( projectId, "Not a v" + MAVEN_MODEL_VERSION + " POM.", - new File( "." ) ); + throw new InvalidProjectModelException( projectId, "Not a v" + MAVEN_MODEL_VERSION + " POM.", new File( "." ) ); } StringReader sReader = new StringReader( modelSource ); superModel = modelReader.read( sReader, STRICT_MODEL_PARSING ); + return superModel; } catch ( XmlPullParserException e ) @@ -526,14 +526,11 @@ throw new IllegalArgumentException( "projectDescriptor: null, Project Id =" + projectId ); } - if ( projectBuilder == null ) - { - throw new IllegalArgumentException( "projectBuilder: not initialized" ); - } - List<InterpolatorProperty> interpolatorProperties = new ArrayList<InterpolatorProperty>(); + interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getExecutionProperties(), PomInterpolatorTag.SYSTEM_PROPERTIES.name())); + interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getUserProperties(), PomInterpolatorTag.USER_PROPERTIES.name())); @@ -545,13 +542,19 @@ } interpolatorProperties.add(new InterpolatorProperty("${mavenVersion}", MavenProjectBuilder.STANDALONE_SUPERPOM_VERSION, PomInterpolatorTag.SYSTEM_PROPERTIES.name())); + MavenProject mavenProject; + try { - mavenProject = projectBuilder.buildFromLocalPath( new FileInputStream( projectDescriptor ), Arrays.asList( - getSuperProject( config, projectDescriptor, true ).getModel() ), null, interpolatorProperties, resolver, - projectDescriptor.getParentFile(), - config ); + mavenProject = projectBuilder.buildFromLocalPath( new FileInputStream( projectDescriptor ), + Arrays.asList( + getSuperProject( config, projectDescriptor, true ).getModel() ), + null, + interpolatorProperties, + resolver, + projectDescriptor.getParentFile(), + config ); } catch ( IOException e ) { Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java?rev=726383&r1=726382&r2=726383&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java Sat Dec 13 22:24:01 2008 @@ -37,21 +37,20 @@ // site MavenProject build( File project, ArtifactRepository localRepository, ProfileManager profileManager ) throws ProjectBuildingException; - + // remote resources plugin MavenProject buildFromRepository( Artifact artifact, List remoteArtifactRepositories, ArtifactRepository localRepository, boolean allowStub ) - throws ProjectBuildingException; - // + throws ProjectBuildingException; MavenProject build( File project, ProjectBuilderConfiguration configuration ) throws ProjectBuildingException; - MavenProjectBuildingResult buildProjectWithDependencies( File project, ProjectBuilderConfiguration config ) + MavenProjectBuildingResult buildProjectWithDependencies( File project, ProjectBuilderConfiguration configuration ) throws ProjectBuildingException; MavenProject buildFromRepository( Artifact artifact, List remoteArtifactRepositories, ArtifactRepository localRepository ) throws ProjectBuildingException; - MavenProject buildStandaloneSuperProject( ProjectBuilderConfiguration config ) + MavenProject buildStandaloneSuperProject( ProjectBuilderConfiguration configuration ) throws ProjectBuildingException; } Modified: maven/components/trunk/pom.xml URL: http://svn.apache.org/viewvc/maven/components/trunk/pom.xml?rev=726383&r1=726382&r2=726383&view=diff ============================================================================== --- maven/components/trunk/pom.xml (original) +++ maven/components/trunk/pom.xml Sat Dec 13 22:24:01 2008 @@ -46,44 +46,6 @@ <system>jira</system> <url>http://jira.codehaus.org/browse/MNG</url> </issueManagement> - - <!-- TODO: TAKE THIS OUT BEFORE WE RELEASE! --> - <repositories> - <repository> - <id>sonatype.snapshots</id> - <url>http://repository.sonatype.org/service/local/repositories/snapshots/content/</url> - <releases> - <enabled>false</enabled> - </releases> - </repository> - <repository> - <id>sonatype.releases</id> - <url>http://repository.sonatype.org/service/local/repositories/releases/content/</url> - <snapshots> - <enabled>false</enabled> - </snapshots> - </repository> - <repository> - <id>apache.snapshots</id> - <url>http://people.apache.org/repo/m2-snapshot-repository/</url> - <snapshots> - <enabled>true</enabled> - </snapshots> - <releases> - <enabled>false</enabled> - </releases> - </repository> - <repository> - <id>codehaus.snapshots</id> - <url>http://snapshots.repository.codehaus.org/</url> - <snapshots> - <enabled>true</enabled> - </snapshots> - <releases> - <enabled>false</enabled> - </releases> - </repository> - </repositories> <mailingLists> <mailingList> <name>Maven Developer List</name> @@ -297,7 +259,7 @@ <plexusUtilsVersion>1.5.5</plexusUtilsVersion> <wagonVersion>1.0-beta-4</wagonVersion> <mavenSharedModel>1.0-SNAPSHOT</mavenSharedModel> - <mercuryVersion>1.0.0-alpha-2-SNAPSHOT</mercuryVersion> + <mercuryVersion>1.0.0-alpha-2</mercuryVersion> <woodstoxVersion>3.2.6</woodstoxVersion> <modelloVersion>1.0-alpha-22</modelloVersion> </properties>