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/10/27 09:39:28 UTC
svn commit: r708106 - in
/maven/components/branches/sisbell-maven-3.0-mercury/maven-project-builder/src/main/java/org/apache/maven/project/builder/profile:
ByDefaultMatcher.java ProfileContext.java
Author: sisbell
Date: Mon Oct 27 01:39:27 2008
New Revision: 708106
URL: http://svn.apache.org/viewvc?rev=708106&view=rev
Log:
Profile context. Manages the matching of active profiles.
Added:
maven/components/branches/sisbell-maven-3.0-mercury/maven-project-builder/src/main/java/org/apache/maven/project/builder/profile/ProfileContext.java
Modified:
maven/components/branches/sisbell-maven-3.0-mercury/maven-project-builder/src/main/java/org/apache/maven/project/builder/profile/ByDefaultMatcher.java
Modified: maven/components/branches/sisbell-maven-3.0-mercury/maven-project-builder/src/main/java/org/apache/maven/project/builder/profile/ByDefaultMatcher.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-project-builder/src/main/java/org/apache/maven/project/builder/profile/ByDefaultMatcher.java?rev=708106&r1=708105&r2=708106&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-project-builder/src/main/java/org/apache/maven/project/builder/profile/ByDefaultMatcher.java (original)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-project-builder/src/main/java/org/apache/maven/project/builder/profile/ByDefaultMatcher.java Mon Oct 27 01:39:27 2008
@@ -9,7 +9,6 @@
public class ByDefaultMatcher implements ActiveProfileMatcher {
-
public boolean isMatch(ModelContainer modelContainer, List<InterpolatorProperty> properties) {
if(modelContainer == null ) {
throw new IllegalArgumentException("modelContainer: null");
Added: maven/components/branches/sisbell-maven-3.0-mercury/maven-project-builder/src/main/java/org/apache/maven/project/builder/profile/ProfileContext.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-project-builder/src/main/java/org/apache/maven/project/builder/profile/ProfileContext.java?rev=708106&view=auto
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-project-builder/src/main/java/org/apache/maven/project/builder/profile/ProfileContext.java (added)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-project-builder/src/main/java/org/apache/maven/project/builder/profile/ProfileContext.java Mon Oct 27 01:39:27 2008
@@ -0,0 +1,41 @@
+package org.apache.maven.project.builder.profile;
+
+import org.apache.maven.shared.model.ModelContainer;
+import org.apache.maven.shared.model.ModelDataSource;
+import org.apache.maven.shared.model.DataSourceException;
+import org.apache.maven.shared.model.InterpolatorProperty;
+import org.apache.maven.project.builder.ProjectUri;
+
+import java.util.*;
+
+
+public class ProfileContext {
+
+ private ModelDataSource modelDataSource;
+
+ private List<InterpolatorProperty> properties;
+
+ List<ActiveProfileMatcher> matchers = Collections.unmodifiableList( Arrays.asList(new ByDefaultMatcher(),
+ new FileMatcher(), new JdkMatcher(), new OperatingSystemMatcher(), new PropertyMatcher()
+ ) );
+
+ public ProfileContext(ModelDataSource modelDataSource, List<InterpolatorProperty> properties) {
+ this.modelDataSource = modelDataSource;
+ this.properties = new ArrayList<InterpolatorProperty>(properties);
+ }
+
+ Collection<ModelContainer> getActiveProfiles() throws DataSourceException {
+ List<ModelContainer> matchedContainers = new ArrayList<ModelContainer>();
+
+ List<ModelContainer> modelContainers = modelDataSource.queryFor(ProjectUri.Profiles.Profile.xUri);
+ for(ModelContainer mc : modelContainers) {
+ for(ActiveProfileMatcher matcher : matchers) {
+ if(matcher.isMatch(mc, properties)) {
+ matchedContainers.add(mc);
+ }
+ }
+ }
+
+ return matchedContainers;
+ }
+}