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 2009/04/04 00:35:03 UTC
svn commit: r761825 - in /maven/components/trunk:
maven-project-builder/src/main/java/org/apache/maven/project/processor/
maven-project/src/main/java/org/apache/maven/profiles/
maven-project/src/main/java/org/apache/maven/profiles/matchers/
maven-proje...
Author: sisbell
Date: Fri Apr 3 22:35:02 2009
New Revision: 761825
URL: http://svn.apache.org/viewvc?rev=761825&view=rev
Log:
[MNG-3106,3983,4107] - profile fixes.
Added:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/matchers/FileMatcher.java
Modified:
maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/ProcessorContext.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/matchers/PropertyMatcher.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/MavenProject.java
Modified: maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/ProcessorContext.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/ProcessorContext.java?rev=761825&r1=761824&r2=761825&view=diff
==============================================================================
--- maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/ProcessorContext.java (original)
+++ maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/processor/ProcessorContext.java Fri Apr 3 22:35:02 2009
@@ -133,6 +133,9 @@
model.setDistributionManagement( p.getDistributionManagement() );
model.setProperties( p.getProperties() );
model.setModules( new ArrayList<String>(p.getModules() ) );
+ model.setRepositories(p.getRepositories());
+ model.setPluginRepositories(p.getPluginRepositories());
+ model.setReporting(p.getReporting());
BuildProcessor proc = new BuildProcessor( new ArrayList<Processor>());
proc.processWithProfile( p.getBuild(), model);
return model;
@@ -548,6 +551,9 @@
p.setBuild( copyBuild(profile.getBuild()) );
p.setId( profile.getId() );
p.setActivation( profile.getActivation() );
+ p.setRepositories(profile.getRepositories());
+ p.setPluginRepositories(profile.getPluginRepositories());
+ p.setReporting(profile.getReporting());
return p;
}
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=761825&r1=761824&r2=761825&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 Fri Apr 3 22:35:02 2009
@@ -22,11 +22,11 @@
import org.apache.maven.model.Activation;
import org.apache.maven.model.Model;
import org.apache.maven.model.Profile;
-import org.apache.maven.model.Parent;
import org.apache.maven.profiles.ProfileActivationContext;
import org.apache.maven.profiles.ProfileActivationException;
import org.apache.maven.profiles.ProfileManager;
import org.apache.maven.profiles.matchers.DefaultMatcher;
+import org.apache.maven.profiles.matchers.FileMatcher;
import org.apache.maven.profiles.matchers.ProfileMatcher;
import org.apache.maven.profiles.matchers.PropertyMatcher;
import org.apache.maven.shared.model.InterpolatorProperty;
@@ -50,7 +50,7 @@
private static final ProfileMatcher defaultMatcher = new DefaultMatcher();
private static final List<ProfileMatcher> matchers =
- Collections.unmodifiableList( Arrays.asList( new DefaultMatcher(), new PropertyMatcher() ) );
+ (List<ProfileMatcher>) Collections.unmodifiableList( Arrays.asList( new DefaultMatcher(), new PropertyMatcher(), new FileMatcher() ) );
/**
* the properties passed to the profile manager are the props that
@@ -134,7 +134,6 @@
{
List<Profile> activeFromPom = new ArrayList<Profile>();
List<Profile> activeExternal = new ArrayList<Profile>();
-
for ( Iterator it = profilesById.entrySet().iterator(); it.hasNext(); )
{
Map.Entry entry = (Entry) it.next();
@@ -142,17 +141,8 @@
String profileId = (String) entry.getKey();
Profile profile = (Profile) entry.getValue();
- boolean shouldAdd = false;
- if ( profileActivationContext.isExplicitlyActive( profileId ) )
- {
- shouldAdd = true;
- }
- else if ( isActive( profile, profileActivationContext ) )
- {
- shouldAdd = true;
- }
-
- if ( !profileActivationContext.isExplicitlyInactive( profileId ) && shouldAdd )
+ if ( !profileActivationContext.isExplicitlyInactive( profileId )
+ && (profileActivationContext.isExplicitlyActive( profileId ) || isActive( profile, profileActivationContext ) ) )
{
if ( "pom".equals( profile.getSource() ) )
{
@@ -207,9 +197,12 @@
List<Profile> projectProfiles = new ArrayList<Profile>();
ProfileManager externalProfileManager = config.getGlobalProfileManager();
- ProfileActivationContext profileActivationContext = (externalProfileManager == null) ? new ProfileActivationContext( config.getExecutionProperties(), false ):
+ Properties props = new Properties(config.getExecutionProperties());
+ props.putAll(config.getUserProperties());
+
+ ProfileActivationContext profileActivationContext = (externalProfileManager == null) ? new ProfileActivationContext( props, false ):
externalProfileManager.getProfileActivationContext();
-
+
if(externalProfileManager != null)
{
projectProfiles.addAll( externalProfileManager.getActiveProfiles() );
Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/matchers/FileMatcher.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/matchers/FileMatcher.java?rev=761825&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/matchers/FileMatcher.java (added)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/matchers/FileMatcher.java Fri Apr 3 22:35:02 2009
@@ -0,0 +1,34 @@
+package org.apache.maven.profiles.matchers;
+
+import java.io.File;
+import java.util.List;
+
+import org.apache.maven.model.ActivationFile;
+import org.apache.maven.model.Profile;
+import org.apache.maven.shared.model.InterpolatorProperty;
+
+public class FileMatcher implements ProfileMatcher {
+
+ public boolean isMatch(Profile profile, List<InterpolatorProperty> properties) {
+ if (profile == null) {
+ throw new IllegalArgumentException("profile: null");
+ }
+
+ if(profile.getActivation() == null || profile.getActivation().getFile() == null)
+ {
+ return false;
+ }
+
+ ActivationFile f = profile.getActivation().getFile();
+
+ if (f.getExists() != null && !new File(f.getExists()).exists()) {
+ return false;
+ }
+
+ if (f.getMissing() != null && new File(f.getMissing()).exists()) {
+ return false;
+ }
+
+ return true;
+ }
+}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/matchers/PropertyMatcher.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/matchers/PropertyMatcher.java?rev=761825&r1=761824&r2=761825&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/matchers/PropertyMatcher.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/matchers/PropertyMatcher.java Fri Apr 3 22:35:02 2009
@@ -31,7 +31,7 @@
if (profile == null) {
throw new IllegalArgumentException("profile: null");
}
-
+
if(profile.getActivation() == null || profile.getActivation().getProperty() == null)
{
return false;
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=761825&r1=761824&r2=761825&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 Fri Apr 3 22:35:02 2009
@@ -43,7 +43,6 @@
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
import org.apache.maven.profiles.DefaultProfileManager;
-import org.apache.maven.profiles.ProfileActivationContext;
import org.apache.maven.profiles.ProfileActivationException;
import org.apache.maven.profiles.ProfileManagerInfo;
import org.apache.maven.profiles.ProfileManager;
@@ -147,9 +146,14 @@
{
throw new ProjectBuildingException( "", "Failed to activate pom profiles.");
}
-
+
try
{
+ for(Profile p : projectProfiles)
+ {
+ logger.debug("Merging profile into model (build): Model = " + domainModel.getId() + ", Profile = " + p.getId() );
+ }
+
domainModel = ProcessorContext.mergeProfilesIntoModel( projectProfiles, domainModel );
}
catch ( IOException e )
@@ -159,7 +163,7 @@
//Interpolation
MavenProject project = interpolateDomainModel( domainModel, configuration, pomFile );
project.setActiveProfiles( projectProfiles );
-
+
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.
@@ -174,6 +178,8 @@
return project;
}
+
+ // private static void setRepositoriesOn(MavenProject project, )
//!! This is used by the RR plugin
public MavenProject buildFromRepository( Artifact artifact, List<ArtifactRepository> remoteArtifactRepositories, ArtifactRepository localRepository, boolean allowStubs )
@@ -242,6 +248,11 @@
try
{
+ for(Profile p : projectProfiles)
+ {
+ logger.debug("Merging profile into model (buildFromRepository): Model = " + domainModel.getId() + ", Profile = " + p.getId() );
+ }
+
domainModel = ProcessorContext.mergeProfilesIntoModel( projectProfiles, domainModel );
}
catch ( IOException e )
@@ -471,6 +482,10 @@
Collection<Profile> profiles = DefaultProfileManager.getActiveProfiles(dm.getModel().getProfiles(), profileInfo);
if(!profiles.isEmpty())
{
+ for(Profile p : profiles)
+ {
+ logger.debug("Merging profile into model: Model = " + dm.getId() + ", Profile = " + p.getId() );
+ }
profileModels.add(ProcessorContext.mergeProfilesIntoModel( profiles, dm ));
}
else
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=761825&r1=761824&r2=761825&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Fri Apr 3 22:35:02 2009
@@ -240,7 +240,15 @@
}
*/
- setRemoteArtifactRepositories( (projectBuilderConfiguration.getRemoteRepositories() != null) ? projectBuilderConfiguration.getRemoteRepositories() : new ArrayList<ArtifactRepository>());
+ setRemoteArtifactRepositories( (projectBuilderConfiguration.getRemoteRepositories() != null) ? projectBuilderConfiguration.getRemoteRepositories() : new ArrayList<ArtifactRepository>());
+ for(Repository r: model.getPluginRepositories())
+ {
+ try {
+ remoteArtifactRepositories.add(repositorySystem.buildArtifactRepository( r ));
+ } catch (InvalidRepositoryException e) {
+
+ }
+ }
}
/**
@@ -378,7 +386,7 @@
{
return remoteArtifactRepositories;
}
-
+
public boolean hasParent()
{
return getParent() != null;