You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/09/17 15:52:48 UTC
svn commit: r696299 - in /maven/components/trunk:
maven-core/src/main/java/org/apache/maven/extension/
maven-core/src/main/java/org/apache/maven/plugin/
maven-project/src/main/java/org/apache/maven/profiles/
maven-project/src/main/java/org/apache/maven...
Author: sisbell
Date: Wed Sep 17 06:52:46 2008
New Revision: 696299
URL: http://svn.apache.org/viewvc?rev=696299&view=rev
Log:
Some fixes for adding properties from active profiles to the interpolation list.
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/injection/DefaultProfileInjector.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/builder/ArtifactModelContainerFactory.java
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java?rev=696299&r1=696298&r2=696299&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java Wed Sep 17 06:52:46 2008
@@ -29,6 +29,7 @@
import org.apache.maven.model.Plugin;
import org.apache.maven.model.PluginManagement;
import org.apache.maven.profiles.ProfileManager;
+import org.apache.maven.profiles.Profile;
import org.apache.maven.profiles.activation.DefaultProfileActivationContext;
import org.apache.maven.profiles.activation.ProfileActivationContext;
import org.apache.maven.project.MavenProject;
@@ -146,23 +147,24 @@
execProps.putAll( config.getExecutionProperties() );
}
- if ( inheritedInterpolationValues != null )
- {
- execProps.putAll( inheritedInterpolationValues );
- }
- else
- {
- inheritedInterpolationValues = new HashMap();
- }
+ execProps.putAll( inheritedInterpolationValues );
config.setExecutionProperties( execProps );
- //INTERPOLATION
+ //INTERPOLATION
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()));
+ /*
+ for(Profile profile : (List<Profile>) request.getActiveProfiles())
+ {
+ interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( profile.getProperties(),
+ PomInterpolatorTag.SYSTEM_PROPERTIES.name()));
+ }
+ */
+ interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getExecutionProperties(),
+ PomInterpolatorTag.SYSTEM_PROPERTIES.name()));
+
+ interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getUserProperties(),
+ PomInterpolatorTag.USER_PROPERTIES.name()));
if(config.getBuildStartTime() != null)
{
interpolatorProperties.add(new InterpolatorProperty("${build.timestamp}",
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=696299&r1=696298&r2=696299&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 Wed Sep 17 06:52:46 2008
@@ -20,6 +20,7 @@
*/
import org.apache.maven.ArtifactFilterManager;
+import org.apache.maven.profiles.Profile;
import org.apache.maven.path.PathTranslator;
import org.apache.maven.shared.model.InterpolatorProperty;
import org.apache.maven.artifact.Artifact;
@@ -557,8 +558,15 @@
if ( dom != null )
{
try
- {
+ {
List<InterpolatorProperty> interpolatorProperties = new ArrayList<InterpolatorProperty>();
+ /*
+ for(Profile profile : (List<Profile>) project.getActiveProfiles())
+ {
+ interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( profile.getProperties(),
+ PomInterpolatorTag.SYSTEM_PROPERTIES.name()));
+ }
+ */
interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( session.getProjectBuilderConfiguration().getExecutionProperties(),
PomInterpolatorTag.SYSTEM_PROPERTIES.name()));
interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( session.getProjectBuilderConfiguration().getUserProperties(),
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java?rev=696299&r1=696298&r2=696299&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java Wed Sep 17 06:52:46 2008
@@ -341,19 +341,6 @@
return profileActivationContext.getActiveByDefaultProfileIds();
}
- private static String getVersion( Model model )
- {
- Parent parent = model.getParent();
-
- String version = model.getVersion();
- if ( ( parent != null ) && ( version == null ) )
- {
- version = parent.getVersion();
- }
-
- return version;
- }
-
public static String getGroupId( Model model )
{
Parent parent = model.getParent();
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/injection/DefaultProfileInjector.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/injection/DefaultProfileInjector.java?rev=696299&r1=696298&r2=696299&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/injection/DefaultProfileInjector.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/injection/DefaultProfileInjector.java Wed Sep 17 06:52:46 2008
@@ -70,8 +70,7 @@
injectBuild( profile, model );
Properties props = new Properties();
- props.putAll( model.getProperties() );
- props.putAll( profile.getProperties() );
+
model.setProperties( props );
}
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=696299&r1=696298&r2=696299&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 Wed Sep 17 06:52:46 2008
@@ -42,10 +42,7 @@
import org.apache.maven.profiles.activation.ProfileActivationException;
import org.apache.maven.profiles.build.ProfileAdvisor;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
-import org.apache.maven.project.builder.PomArtifactResolver;
-import org.apache.maven.project.builder.ProjectBuilder;
-import org.apache.maven.project.builder.PomInterpolatorTag;
-import org.apache.maven.project.builder.PomClassicTransformer;
+import org.apache.maven.project.builder.*;
import org.apache.maven.project.validation.ModelValidationResult;
import org.apache.maven.project.validation.ModelValidator;
import org.apache.maven.project.workspace.ProjectWorkspace;
@@ -136,12 +133,30 @@
if ( project == null )
{
+ List<Profile> activeProfiles;
+ try
+ {
+ activeProfiles = getActiveProfilesFromModel(new PomClassicDomainModel(
+ new FileInputStream( projectDescriptor )).getModel(), config, projectDescriptor, true);
+ } catch (IOException e)
+ {
+ throw new ProjectBuildingException("", e.getMessage());
+ }
+
+ Properties activeProfileProperties = new Properties();
+ for(Profile profile : activeProfiles)
+ {
+ activeProfileProperties.putAll(profile.getProperties());
+ }
+
project = readModelFromLocalPath( "unknown", projectDescriptor, new PomArtifactResolver(
config.getLocalRepository(), repositoryHelper.buildArtifactRepositories(
- getSuperProject( config, projectDescriptor, true ).getModel() ), artifactResolver ), config );
+ getSuperProject( config, projectDescriptor, true ).getModel() ), artifactResolver ), config,
+ activeProfileProperties );
project.setFile( projectDescriptor );
- project = buildInternal( project.getModel(), config, projectDescriptor, project.getParentFile(), true );
+
+ project = buildMavenProject( project.getModel(), config, projectDescriptor, project.getParentFile(), activeProfiles);
Build build = project.getBuild();
// NOTE: setting this script-source root before path translation, because
@@ -195,9 +210,27 @@
artifactRepositories.addAll( repositoryHelper.buildArtifactRepositories(
getSuperProject( config, artifact.getFile(), false ).getModel() ) );
+
+ List<Profile> activeProfiles;
+ try
+ {
+ activeProfiles = this.getActiveProfilesFromModel(new PomClassicDomainModel(
+ new FileInputStream( artifact.getFile())).getModel(), config, artifact.getFile(), true);
+ } catch (IOException e)
+ {
+ throw new ProjectBuildingException("", e.getMessage());
+ }
+
+ Properties activeProfileProperties = new Properties();
+ for(Profile profile : activeProfiles)
+ {
+ activeProfileProperties.putAll(profile.getProperties());
+ }
+
project = readModelFromLocalPath( "unknown", artifact.getFile(), new PomArtifactResolver(
- config.getLocalRepository(), artifactRepositories, artifactResolver ), config );
- project = buildInternal( project.getModel(), config, artifact.getFile(), project.getParentFile(), false );
+ config.getLocalRepository(), artifactRepositories, artifactResolver ), config, activeProfileProperties );
+ project = buildMavenProject( project.getModel(), config, artifact.getFile(), project.getParentFile(),
+ activeProfiles);
}
artifact.setFile( f );
@@ -396,9 +429,9 @@
return logger;
}
- private MavenProject buildInternal( Model model, ProjectBuilderConfiguration config, File projectDescriptor,
- File parentDescriptor, boolean isReactorProject )
- throws ProjectBuildingException
+ private List<Profile> getActiveProfilesFromModel(Model model, ProjectBuilderConfiguration config,
+ File projectDescriptor, boolean isReactorProject)
+ throws ProjectBuildingException
{
String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
@@ -423,6 +456,21 @@
profileActivationContext = new DefaultProfileActivationContext( config.getExecutionProperties(), false );
}
+
+ List<Profile> projectProfiles = new ArrayList<Profile>();
+ projectProfiles.addAll( profileAdvisor.applyActivatedProfiles( model, projectDescriptor,
+ isReactorProject, profileActivationContext ) );
+ projectProfiles.addAll( profileAdvisor.applyActivatedExternalProfiles( model, projectDescriptor,
+ externalProfileManager ) );
+ return projectProfiles;
+ }
+
+ private MavenProject buildMavenProject( Model model, ProjectBuilderConfiguration config, File projectDescriptor,
+ File parentDescriptor, List<Profile> projectProfiles )
+ throws ProjectBuildingException
+ {
+ String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
+
MavenProject project;
try
{
@@ -433,11 +481,6 @@
throw new InvalidProjectModelException( projectId, e.getMessage(), projectDescriptor, e );
}
- List<Profile> projectProfiles = new ArrayList<Profile>();
- projectProfiles.addAll( profileAdvisor.applyActivatedProfiles( project.getModel(), project.getFile(),
- isReactorProject, profileActivationContext ) );
- projectProfiles.addAll( profileAdvisor.applyActivatedExternalProfiles( project.getModel(), project.getFile(),
- externalProfileManager ) );
project.setActiveProfiles( projectProfiles );
projectWorkspace.storeProjectByCoordinate( project );
@@ -479,35 +522,7 @@
"Maven super-POM contains an invalid repository!", e );
}
- String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
-
- ProfileActivationContext profileActivationContext;
- ProfileManager externalProfileManager = config.getGlobalProfileManager();
- if ( externalProfileManager != null )
- {
- // used to trigger the caching of SystemProperties in the container context...
- try
- {
- externalProfileManager.getActiveProfiles();
- }
- catch ( ProfileActivationException e )
- {
- throw new ProjectBuildingException( projectId, "Failed to activate external profiles.",
- projectDescriptor, e );
- }
- profileActivationContext = externalProfileManager.getProfileActivationContext();
- }
- else
- {
- profileActivationContext = new DefaultProfileActivationContext( config.getExecutionProperties(), false );
- }
-
- List<Profile> superProjectProfiles = new ArrayList<Profile>();
- superProjectProfiles.addAll( profileAdvisor.applyActivatedProfiles( model, projectDescriptor, isReactorProject,
- profileActivationContext ) );
- superProjectProfiles.addAll(
- profileAdvisor.applyActivatedExternalProfiles( model, projectDescriptor, externalProfileManager ) );
- superProject.setActiveProfiles( superProjectProfiles );
+ superProject.setActiveProfiles( getActiveProfilesFromModel(model, config, projectDescriptor, isReactorProject) );
return superProject;
}
@@ -559,7 +574,7 @@
}
private MavenProject readModelFromLocalPath( String projectId, File projectDescriptor, PomArtifactResolver resolver,
- ProjectBuilderConfiguration config )
+ ProjectBuilderConfiguration config, Properties profileProperties )
throws ProjectBuildingException
{
if ( projectDescriptor == null )
@@ -577,6 +592,11 @@
PomInterpolatorTag.SYSTEM_PROPERTIES.name()));
interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getUserProperties(),
PomInterpolatorTag.USER_PROPERTIES.name()));
+ if(profileProperties != null)
+ {
+ interpolatorProperties.addAll(InterpolatorProperty.toInterpolatorProperties( profileProperties,
+ PomInterpolatorTag.SYSTEM_PROPERTIES.name()));
+ }
if(config.getBuildStartTime() != null)
{
@@ -597,7 +617,7 @@
{
throw new ProjectBuildingException( projectId, "File = " + projectDescriptor.getAbsolutePath(), e );
}
-
+ mavenProject.getProperties().putAll(profileProperties);
return mavenProject;
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java?rev=696299&r1=696298&r2=696299&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ArtifactModelContainerFactory.java Wed Sep 17 06:52:46 2008
@@ -165,7 +165,18 @@
return ModelContainerAction.NOP;
}
}
- return ModelContainerAction.DELETE;//TODO Verify - PluginManagement Section may make versions equal
+ else
+ {
+ if ( c.type.equals( type ) )
+ {
+ return ModelContainerAction.DELETE;
+ }
+ else
+ {
+ return ModelContainerAction.NOP;
+ }
+ }
+ //TODO Verify - PluginManagement Section may make versions equal
}
if ( c.version.equals( version ) )
@@ -181,7 +192,14 @@
}
else
{
- return ModelContainerAction.DELETE;
+ if ( c.type.equals( type ) )
+ {
+ return ModelContainerAction.DELETE;
+ }
+ else
+ {
+ return ModelContainerAction.NOP;
+ }
}
}
else