Author: sisbell Date: Fri Apr 3 11:45:45 2009 New Revision: 761629 URL: http://svn.apache.org/viewvc?rev=761629&view=rev Log: Collapsed the ProfileContext into the ProfileManager - serves similar function.
Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManagerInfo.java (contents, props changed) - copied, changed from r761609, maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileContextInfo.java Removed: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileContext.java maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileContextInfo.java Modified: 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/ProfileManager.java maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java 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=761629&r1=761628&r2=761629&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 11:45:45 2009 @@ -30,6 +30,7 @@ import org.apache.maven.profiles.matchers.ProfileMatcher; import org.apache.maven.profiles.matchers.PropertyMatcher; import org.apache.maven.shared.model.InterpolatorProperty; +import org.apache.maven.project.ProjectBuilderConfiguration; import org.apache.maven.project.builder.PomInterpolatorTag; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.MutablePlexusContainer; @@ -45,6 +46,11 @@ private Map<String, Profile> profilesById = new LinkedHashMap<String, Profile>(); private ProfileActivationContext profileActivationContext; + + private static final ProfileMatcher defaultMatcher = new DefaultMatcher(); + + private static final List<ProfileMatcher> matchers = + Collections.unmodifiableList( Arrays.asList( new DefaultMatcher(), new PropertyMatcher() ) ); /** * the properties passed to the profile manager are the props that @@ -195,6 +201,83 @@ return allActive; } + public static List<Profile> getActiveProfilesFrom(ProjectBuilderConfiguration config, Model model, PlexusContainer container) + throws ProfileActivationException + { + List<Profile> projectProfiles = new ArrayList<Profile>(); + ProfileManager externalProfileManager = config.getGlobalProfileManager(); + + ProfileActivationContext profileActivationContext = (externalProfileManager == null) ? new ProfileActivationContext( config.getExecutionProperties(), false ): + externalProfileManager.getProfileActivationContext(); + + if(externalProfileManager != null) + { + projectProfiles.addAll( externalProfileManager.getActiveProfiles() ); + } + + ProfileManager profileManager = new DefaultProfileManager( container, profileActivationContext ); + profileManager.addProfiles( model.getProfiles() ); + projectProfiles.addAll( profileManager.getActiveProfiles() ); + return projectProfiles; + } + + public static Collection<Profile> getActiveProfiles(List<Profile> profiles, ProfileManagerInfo profileContextInfo) + { + List<InterpolatorProperty> properties = profileContextInfo.getInterpolatorProperties(); + Collection<String> activeProfileIds = profileContextInfo.getActiveProfileIds(); + Collection<String> inactiveProfileIds = profileContextInfo.getInactiveProfileIds(); + + List<Profile> matchedProfiles = new ArrayList<Profile>(); + List<Profile> defaultProfiles = new ArrayList<Profile>(); + for ( Profile profile : profiles ) + { + String profileId = profile.getId(); + + if ( !inactiveProfileIds.contains( profileId ) ) + { + if ( activeProfileIds.contains( profileId ) ) + { + matchedProfiles.add( profile ); + } + else if ( defaultMatcher.isMatch( profile, properties ) ) + { + defaultProfiles.add( profile ); + } + else + { + for ( ProfileMatcher matcher : matchers ) + { + if ( matcher.isMatch( profile, properties ) ) + { + matchedProfiles.add( profile ); + break; + } + } + } + } + } + + if ( matchedProfiles.isEmpty() ) + { + matchedProfiles = defaultProfiles; + } + + return matchedProfiles; + } + + /* (non-Javadoc) + * @see org.apache.maven.project.ProfileManager#addProfiles(java.util.List) + */ + public void addProfiles( List<Profile> profiles ) + { + for ( Iterator it = profiles.iterator(); it.hasNext(); ) + { + Profile profile = (Profile) it.next(); + + addProfile( profile ); + } + } + private static List<Profile> getDefaultProfiles(List<Profile> profiles) { List<Profile> defaults = new ArrayList<Profile>(); @@ -208,9 +291,6 @@ return defaults; } - private static List<ProfileMatcher> matchers = Arrays.asList( (ProfileMatcher) new DefaultMatcher(), - (ProfileMatcher) new PropertyMatcher()); - private boolean isActive( Profile profile, ProfileActivationContext context ) throws ProfileActivationException { @@ -232,19 +312,6 @@ return false; } - /* (non-Javadoc) - * @see org.apache.maven.project.ProfileManager#addProfiles(java.util.List) - */ - public void addProfiles( List<Profile> profiles ) - { - for ( Iterator it = profiles.iterator(); it.hasNext(); ) - { - Profile profile = (Profile) it.next(); - - addProfile( profile ); - } - } - private void activateAsDefault( String profileId ) { List defaultIds = profileActivationContext.getActiveByDefaultProfileIds(); Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java?rev=761629&r1=761628&r2=761629&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java Fri Apr 3 11:45:45 2009 @@ -40,5 +40,5 @@ throws ProfileActivationException; List<Profile> getActiveProfiles( ) - throws ProfileActivationException; + throws ProfileActivationException; } \ No newline at end of file Copied: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManagerInfo.java (from r761609, maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileContextInfo.java) URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManagerInfo.java?p2=maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManagerInfo.java&p1=maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileContextInfo.java&r1=761609&r2=761629&rev=761629&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileContextInfo.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManagerInfo.java Fri Apr 3 11:45:45 2009 @@ -6,7 +6,7 @@ import org.apache.maven.shared.model.InterpolatorProperty; -public class ProfileContextInfo +public class ProfileManagerInfo { private List<InterpolatorProperty> interpolatorProperties; @@ -14,7 +14,7 @@ private Collection<String> inactiveProfileIds; - public ProfileContextInfo(List<InterpolatorProperty> interpolatorProperties, Collection<String> activeProfileIds, Collection<String> inactiveProfileIds) + public ProfileManagerInfo(List<InterpolatorProperty> interpolatorProperties, Collection<String> activeProfileIds, Collection<String> inactiveProfileIds) { this.interpolatorProperties = (interpolatorProperties != null) ? interpolatorProperties : new ArrayList<InterpolatorProperty>(); this.activeProfileIds = (activeProfileIds != null) ? activeProfileIds : new ArrayList<String>(); Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManagerInfo.java ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Fri Apr 3 11:45:45 2009 @@ -0,0 +1,7 @@ +/maven/components/branches/MNG-3932-1/maven-project/src/main/java/org/apache/maven/profiles/ProfileContextInfo.java:746145-746157 +/maven/components/branches/maven-2.0.10-RC/maven-project/src/main/java/org/apache/maven/profiles/ProfileContextInfo.java:680477 +/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/profiles/ProfileContextInfo.java:679206,708871,720042,726541,727548,727998,728264,728940,729060,729738,729785,730631 +/maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/profiles/ProfileContextInfo.java:739385,741841,747468,747683,748815,749612 +/maven/components/branches/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/ProfileContextInfo.java:738973-739966 +/maven/components/sisbell-plugin-manager/maven-project/src/main/java/org/apache/maven/profiles/ProfileContextInfo.java:738757-738972 +/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileContextInfo.java:688587-696625,696644-699681 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=761629&r1=761628&r2=761629&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 11:45:45 2009 @@ -45,12 +45,11 @@ import org.apache.maven.profiles.DefaultProfileManager; import org.apache.maven.profiles.ProfileActivationContext; import org.apache.maven.profiles.ProfileActivationException; -import org.apache.maven.profiles.ProfileContextInfo; +import org.apache.maven.profiles.ProfileManagerInfo; import org.apache.maven.profiles.ProfileManager; import org.apache.maven.project.artifact.InvalidDependencyVersionException; import org.apache.maven.project.builder.PomClassicDomainModel; import org.apache.maven.project.builder.PomInterpolatorTag; -import org.apache.maven.profiles.ProfileContext; import org.apache.maven.project.processor.ProcessorContext; import org.apache.maven.project.validation.ModelValidationResult; import org.apache.maven.project.validation.ModelValidator; @@ -127,7 +126,7 @@ PomClassicDomainModel domainModel; try { - domainModel = buildWithoutProfiles( "unknown", pomFile, configuration ); + domainModel = build( "unknown", pomFile, configuration ); } catch (IOException e) { @@ -138,7 +137,7 @@ List<Profile> projectProfiles; try { - projectProfiles = ProfileContext.getActiveProfilesFrom(configuration, domainModel.getModel(), container); + projectProfiles = DefaultProfileManager.getActiveProfilesFrom(configuration, domainModel.getModel(), container); } catch ( ProfileActivationException e ) { @@ -220,7 +219,7 @@ PomClassicDomainModel domainModel; try { - domainModel = buildWithoutProfiles( "unknown", artifact.getFile(), configuration ); + domainModel = build( "unknown", artifact.getFile(), configuration ); } catch (IOException e) { @@ -230,7 +229,7 @@ List<Profile> projectProfiles; try { - projectProfiles = ProfileContext.getActiveProfilesFrom(configuration, domainModel.getModel(), container); + projectProfiles = DefaultProfileManager.getActiveProfilesFrom(configuration, domainModel.getModel(), container); } catch ( ProfileActivationException e ) { @@ -414,7 +413,7 @@ return project; } - private PomClassicDomainModel buildWithoutProfiles( String projectId, File pomFile, ProjectBuilderConfiguration projectBuilderConfiguration ) + private PomClassicDomainModel build( String projectId, File pomFile, ProjectBuilderConfiguration projectBuilderConfiguration ) throws ProjectBuildingException, IOException { List<String> activeProfileIds = ( projectBuilderConfiguration != null && projectBuilderConfiguration.getGlobalProfileManager() != null && projectBuilderConfiguration.getGlobalProfileManager() @@ -424,7 +423,7 @@ .getGlobalProfileManager().getProfileActivationContext() != null ) ? projectBuilderConfiguration.getGlobalProfileManager().getProfileActivationContext().getExplicitlyInactiveProfileIds() : new ArrayList<String>(); - ProfileContextInfo profileInfo = new ProfileContextInfo(null, activeProfileIds, inactiveProfileIds); + ProfileManagerInfo profileInfo = new ProfileManagerInfo(null, activeProfileIds, inactiveProfileIds); PomClassicDomainModel domainModel = new PomClassicDomainModel( pomFile ); domainModel.setProjectDirectory( pomFile.getParentFile() ); domainModel.setMostSpecialized( true ); @@ -469,8 +468,7 @@ if(!dm.getModel().getProfiles().isEmpty()) { - ProfileContext profileContext1 = new ProfileContext( dm.getModel().getProfiles(), profileInfo ); - Collection<Profile> profiles = profileContext1.getActiveProfiles(); + Collection<Profile> profiles = DefaultProfileManager.getActiveProfiles(dm.getModel().getProfiles(), profileInfo); if(!profiles.isEmpty()) { profileModels.add(ProcessorContext.mergeProfilesIntoModel( profiles, dm ));