You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2016/07/02 21:42:15 UTC

maven git commit: [MNG-6056] Implement Feature Toggle Module to handle Feature Toggles o Changed the names of the classes etc. to better fit into what we mean. FeatureToggles instead of SelectedFeatures.

Repository: maven
Updated Branches:
  refs/heads/MNG-6056 1ca28417f -> 5a72f9552


[MNG-6056] Implement Feature Toggle Module to handle Feature Toggles
 o Changed the names of the classes etc. to better fit into what we
   mean. FeatureToggles instead of SelectedFeatures.


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/5a72f955
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/5a72f955
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/5a72f955

Branch: refs/heads/MNG-6056
Commit: 5a72f95521af91384972112eedb42ede69e382fb
Parents: 1ca2841
Author: Karl Heinz Marbaise <kh...@apache.org>
Authored: Sat Jul 2 23:41:27 2016 +0200
Committer: Karl Heinz Marbaise <kh...@apache.org>
Committed: Sat Jul 2 23:41:27 2016 +0200

----------------------------------------------------------------------
 .../java/org/apache/maven/DefaultMaven.java     | 10 +--
 .../apache/maven/graph/DefaultGraphBuilder.java |  8 +-
 .../java/org/apache/maven/cli/MavenCli.java     | 18 ++---
 .../java/org/apache/maven/cli/MavenCliTest.java |  2 +-
 .../maven/feature/AvailableFeatureToggles.java  | 62 +++++++++++++++
 .../apache/maven/feature/AvailableFeatures.java | 62 ---------------
 .../maven/feature/DefaultFeatureToggles.java    | 84 ++++++++++++++++++++
 .../maven/feature/DefaultSelectedFeatures.java  | 75 -----------------
 .../apache/maven/feature/FeatureToggles.java    | 62 +++++++++++++++
 .../apache/maven/feature/SelectedFeatures.java  | 56 -------------
 .../feature/DefaultSelectedFeaturesTest.java    | 18 ++---
 11 files changed, 236 insertions(+), 221 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/5a72f955/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index d2cabac..a46aea9 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -38,8 +38,8 @@ import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionResult;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.execution.ProjectDependencyGraph;
-import org.apache.maven.feature.AvailableFeatures;
-import org.apache.maven.feature.SelectedFeatures;
+import org.apache.maven.feature.AvailableFeatureToggles;
+import org.apache.maven.feature.FeatureToggles;
 import org.apache.maven.graph.GraphBuilder;
 import org.apache.maven.internal.aether.DefaultRepositorySystemSessionFactory;
 import org.apache.maven.lifecycle.internal.ExecutionEventCatapult;
@@ -96,7 +96,7 @@ public class DefaultMaven
     private DefaultRepositorySystemSessionFactory repositorySessionFactory;
     
     @Requirement
-    private SelectedFeatures selectedFeatures;
+    private FeatureToggles selectedFeatures;
 
     @Requirement( hint = GraphBuilder.HINT )
     private GraphBuilder graphBuilder;
@@ -106,11 +106,11 @@ public class DefaultMaven
     {
         MavenExecutionResult result;
 
-        List<AvailableFeatures> activatedFeatures = selectedFeatures.getActiveFeatures();
+        List<AvailableFeatureToggles> activatedFeatures = selectedFeatures.getActiveFeatureToggles();
         if ( !activatedFeatures.isEmpty() )
         {
             logger.debug( "-------------------------------------------" );
-            for ( AvailableFeatures feature : activatedFeatures )
+            for ( AvailableFeatureToggles feature : activatedFeatures )
             {
                 logger.debug( "Feature: " + feature.name() + " activated.");
             }

http://git-wip-us.apache.org/repos/asf/maven/blob/5a72f955/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java b/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java
index fc78f78..a41f6ba 100644
--- a/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java
@@ -36,8 +36,8 @@ import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionResult;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.execution.ProjectDependencyGraph;
-import org.apache.maven.feature.AvailableFeatures;
-import org.apache.maven.feature.SelectedFeatures;
+import org.apache.maven.feature.AvailableFeatureToggles;
+import org.apache.maven.feature.FeatureToggles;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.building.DefaultModelProblem;
 import org.apache.maven.model.building.ModelProblem;
@@ -69,7 +69,7 @@ public class DefaultGraphBuilder
     protected ProjectBuilder projectBuilder;
     
     @Requirement
-    private SelectedFeatures selectedFeatures;
+    private FeatureToggles selectedFeatures;
     
 
     @Override
@@ -80,7 +80,7 @@ public class DefaultGraphBuilder
             return dependencyGraph( session, session.getProjects(), false );
         }
         
-        if (selectedFeatures.isFeatureActive( AvailableFeatures.MNG10000 )) {
+        if (selectedFeatures.isToggleActive( AvailableFeatureToggles.MNG10000 )) {
             logger.info( " -> Features MNG 10000 is activated." );
         }
 

http://git-wip-us.apache.org/repos/asf/maven/blob/5a72f955/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
----------------------------------------------------------------------
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index a50bd75..9b5d24d 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -80,8 +80,8 @@ import org.apache.maven.execution.MavenExecutionRequestPopulator;
 import org.apache.maven.execution.MavenExecutionResult;
 import org.apache.maven.extension.internal.CoreExports;
 import org.apache.maven.extension.internal.CoreExtensionEntry;
-import org.apache.maven.feature.AvailableFeatures;
-import org.apache.maven.feature.SelectedFeatures;
+import org.apache.maven.feature.AvailableFeatureToggles;
+import org.apache.maven.feature.FeatureToggles;
 import org.apache.maven.lifecycle.LifecycleExecutionException;
 import org.apache.maven.model.Profile;
 import org.apache.maven.model.Repository;
@@ -194,7 +194,7 @@ public class MavenCli
     private ProfileSelector profileSelector;
     
     @Requirement
-    private SelectedFeatures selectedFeatures;
+    private FeatureToggles selectedFeatures;
 
     public MavenCli()
     {
@@ -458,14 +458,14 @@ public class MavenCli
 
         if ( cliRequest.commandLine.hasOption( CLIManager.LIST_FEATURES ) )
         {
-            AvailableFeatures[] availableFeatures = AvailableFeatures.values();
+            AvailableFeatureToggles[] availableFeatures = AvailableFeatureToggles.values();
 
             System.out.println( "" );
             System.out.println( "Currently existing feature toggles which you can enable:" );
             System.out.println( "" );
             System.out.println( "Issue     Option   Description" );
             System.out.println( "--------- -------- ----------------------------------------------------" );
-            for ( AvailableFeatures feature : availableFeatures )
+            for ( AvailableFeatureToggles feature : availableFeatures )
             {
                 String wrappedString = WordUtils.wrap( feature.getDescription(), 60 );
                 List<String> splitToList = Splitter.on( System.lineSeparator() ).splitToList( wrappedString );
@@ -640,7 +640,7 @@ public class MavenCli
 
         //Explicitly startup lookup for the component, cause it's used during command line
         //parsing etc.
-        selectedFeatures = container.lookup( SelectedFeatures.class );
+        selectedFeatures = container.lookup( FeatureToggles.class );
         
         eventSpyDispatcher = container.lookup( EventSpyDispatcher.class );
 
@@ -1651,7 +1651,7 @@ public class MavenCli
         {
             String activateFeaturesOptionValue = commandLine.getOptionValue( CLIManager.ACTIVATE_FEATURES );
 
-            List<AvailableFeatures> activatedFeatures = new ArrayList<>();
+            List<AvailableFeatureToggles> activatedFeatures = new ArrayList<>();
 
             if ( activateFeaturesOptionValue != null )
             {
@@ -1663,7 +1663,7 @@ public class MavenCli
 
                     try
                     {
-                        AvailableFeatures resultingFeature = AvailableFeatures.valueOf( featureToken.toUpperCase() );
+                        AvailableFeatureToggles resultingFeature = AvailableFeatureToggles.valueOf( featureToken.toUpperCase() );
                         activatedFeatures.add( resultingFeature );
                     }
                     catch ( java.lang.IllegalArgumentException e )
@@ -1673,7 +1673,7 @@ public class MavenCli
                 }
             }
 
-            selectedFeatures.setActivatedFeatures( activatedFeatures );
+            selectedFeatures.setActivatedFeatureToggles( activatedFeatures );
         }
 
         return request;

http://git-wip-us.apache.org/repos/asf/maven/blob/5a72f955/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
----------------------------------------------------------------------
diff --git a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
index 6bd5f5b..9f18c4b 100644
--- a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
+++ b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
@@ -24,7 +24,7 @@ import java.io.File;
 import junit.framework.TestCase;
 
 import org.apache.commons.cli.ParseException;
-import org.apache.maven.feature.AvailableFeatures;
+import org.apache.maven.feature.AvailableFeatureToggles;
 
 public class MavenCliTest
     extends TestCase

http://git-wip-us.apache.org/repos/asf/maven/blob/5a72f955/maven-feature/src/main/java/org/apache/maven/feature/AvailableFeatureToggles.java
----------------------------------------------------------------------
diff --git a/maven-feature/src/main/java/org/apache/maven/feature/AvailableFeatureToggles.java b/maven-feature/src/main/java/org/apache/maven/feature/AvailableFeatureToggles.java
new file mode 100644
index 0000000..1294e59
--- /dev/null
+++ b/maven-feature/src/main/java/org/apache/maven/feature/AvailableFeatureToggles.java
@@ -0,0 +1,62 @@
+package org.apache.maven.feature;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * @author Karl Heinz Marbaise <a href="mailto:khmarbaise@apache.org">khmarbaise@apache.org</a>
+ *
+ * @since 3.4.0
+ */
+public enum AvailableFeatureToggles
+{
+
+    //FIXME: Only some examples given. Nothing which exists in reality.
+
+    MNG9991( "MNG-9991", "First Feature to be toggable via command line option. "
+        + "First Feature to be toggable via command line option." ),
+    MNG9992( "MNG-9992", "First Feature to be toggable via command line option. "
+        + "First Feature to be toggable via command line option. XX asdfa. asdf dsf." ),
+    MNG9993( "MNG-9993", "First Feature to be toggable via command line option. "
+        + "More text than you think." ),
+    MNG10000( "MNG-10000", "First Feature to be toggable via command line option. "
+        + "Here much more than you thing." );
+
+//    UNKNONW ("UNKNOWN", "The unknown feature.");
+
+    private String issue;
+
+    private String description;
+
+    private AvailableFeatureToggles( String issue, String description )
+    {
+        this.issue = issue;
+        this.description = description;
+    }
+
+    public String getDescription()
+    {
+        return this.description;
+    }
+
+    public String getIssue()
+    {
+        return this.issue;
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven/blob/5a72f955/maven-feature/src/main/java/org/apache/maven/feature/AvailableFeatures.java
----------------------------------------------------------------------
diff --git a/maven-feature/src/main/java/org/apache/maven/feature/AvailableFeatures.java b/maven-feature/src/main/java/org/apache/maven/feature/AvailableFeatures.java
deleted file mode 100644
index 473a40c..0000000
--- a/maven-feature/src/main/java/org/apache/maven/feature/AvailableFeatures.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.apache.maven.feature;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * @author Karl Heinz Marbaise <a href="mailto:khmarbaise@apache.org">khmarbaise@apache.org</a>
- *
- * @since 3.4.0
- */
-public enum AvailableFeatures
-{
-
-    //FIXME: Only some examples given. Nothing which exists in reality.
-
-    MNG9991( "MNG-9991", "First Feature to be toggable via command line option. "
-        + "First Feature to be toggable via command line option." ),
-    MNG9992( "MNG-9992", "First Feature to be toggable via command line option. "
-        + "First Feature to be toggable via command line option. XX asdfa. asdf dsf." ),
-    MNG9993( "MNG-9993", "First Feature to be toggable via command line option. "
-        + "More text than you think." ),
-    MNG10000( "MNG-10000", "First Feature to be toggable via command line option. "
-        + "Here much more than you thing." );
-
-//    UNKNONW ("UNKNOWN", "The unknown feature.");
-
-    private String issue;
-
-    private String description;
-
-    private AvailableFeatures( String issue, String description )
-    {
-        this.issue = issue;
-        this.description = description;
-    }
-
-    public String getDescription()
-    {
-        return this.description;
-    }
-
-    public String getIssue()
-    {
-        return this.issue;
-    }
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/5a72f955/maven-feature/src/main/java/org/apache/maven/feature/DefaultFeatureToggles.java
----------------------------------------------------------------------
diff --git a/maven-feature/src/main/java/org/apache/maven/feature/DefaultFeatureToggles.java b/maven-feature/src/main/java/org/apache/maven/feature/DefaultFeatureToggles.java
new file mode 100644
index 0000000..543a59d
--- /dev/null
+++ b/maven-feature/src/main/java/org/apache/maven/feature/DefaultFeatureToggles.java
@@ -0,0 +1,84 @@
+package org.apache.maven.feature;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.logging.Logger;
+
+/**
+ * This implements features toggles which can activated or 
+ * asked if a particular feature toggle is active or not.
+ * 
+ * @author Karl Heinz Marbaise <a href="mailto:khmarbaise@apache.org">khmarbaise@apache.org</a>
+ *
+ * @since 3.4.0
+ */
+@Component( instantiationStrategy = "singleton", role = FeatureToggles.class )
+public class DefaultFeatureToggles
+    implements FeatureToggles
+{
+    @Requirement
+    private Logger logger;
+
+    private List<AvailableFeatureToggles> activatedFeatureToggles;
+
+    @Override
+    public void setActivatedFeatureToggles( List<AvailableFeatureToggles> featuresToBeActivated )
+    {
+        if ( featuresToBeActivated == null )
+        {
+            this.activatedFeatureToggles = new ArrayList<>();
+        }
+        else
+        {
+            this.activatedFeatureToggles = featuresToBeActivated;
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public boolean isToggleActive( AvailableFeatureToggles feature )
+    {
+        if ( activatedFeatureToggles != null )
+        {
+            return activatedFeatureToggles.contains( feature );
+        }
+        return false;
+    }
+
+    @Override
+    public List<AvailableFeatureToggles> getActiveFeatureToggles()
+    {
+        if ( activatedFeatureToggles == null )
+        {
+            return Collections.emptyList();
+        }
+        else
+        {
+            return activatedFeatureToggles;
+        }
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/maven/blob/5a72f955/maven-feature/src/main/java/org/apache/maven/feature/DefaultSelectedFeatures.java
----------------------------------------------------------------------
diff --git a/maven-feature/src/main/java/org/apache/maven/feature/DefaultSelectedFeatures.java b/maven-feature/src/main/java/org/apache/maven/feature/DefaultSelectedFeatures.java
deleted file mode 100644
index cc11462..0000000
--- a/maven-feature/src/main/java/org/apache/maven/feature/DefaultSelectedFeatures.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package org.apache.maven.feature;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
-import org.codehaus.plexus.logging.Logger;
-
-@Component( instantiationStrategy = "singleton", role = SelectedFeatures.class )
-public class DefaultSelectedFeatures
-    implements SelectedFeatures
-{
-    @Requirement
-    private Logger logger;
-
-    private List<AvailableFeatures> activatedFeatures;
-
-    @Override
-    public void setActivatedFeatures( List<AvailableFeatures> featuresToBeActivated )
-    {
-        if ( featuresToBeActivated == null )
-        {
-            this.activatedFeatures = new ArrayList<>();
-        }
-        else
-        {
-            this.activatedFeatures = featuresToBeActivated;
-        }
-    }
-
-    @Override
-    public boolean isFeatureActive( AvailableFeatures feature )
-    {
-        if ( activatedFeatures != null )
-        {
-            return activatedFeatures.contains( feature );
-        }
-        return false;
-    }
-
-    @Override
-    public List<AvailableFeatures> getActiveFeatures()
-    {
-        if ( activatedFeatures == null )
-        {
-            return Collections.emptyList();
-        }
-        else
-        {
-            return activatedFeatures;
-        }
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/5a72f955/maven-feature/src/main/java/org/apache/maven/feature/FeatureToggles.java
----------------------------------------------------------------------
diff --git a/maven-feature/src/main/java/org/apache/maven/feature/FeatureToggles.java b/maven-feature/src/main/java/org/apache/maven/feature/FeatureToggles.java
new file mode 100644
index 0000000..998b79e
--- /dev/null
+++ b/maven-feature/src/main/java/org/apache/maven/feature/FeatureToggles.java
@@ -0,0 +1,62 @@
+package org.apache.maven.feature;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.List;
+
+/**
+ * This gives access to the feature toggles which can be used during the run of Maven.
+ * 
+ * @author Karl Heinz Marbaise <a href="mailto:khmarbaise@apache.org">khmarbaise@apache.org</a>
+ * @since 3.4.0
+ */
+public interface FeatureToggles
+{
+
+    /**
+     * @since 3.4.0
+     * @return The list of features which will be activated.
+     */
+    void setActivatedFeatureToggles( List<AvailableFeatureToggles> activatedFeatures );
+
+    /**
+     * Example code looks like this:
+     * <pre>
+     * <code>
+     *  if (selectedFeatures.isToggleActive( AvailableFeatureToggles.MNG10000 )) {
+     *      // Do what is needed for the particular feature
+     *  }
+     * </code>
+     * </pre>
+     * 
+     * @param feature The feature toggle to check for if it is activated or not.
+     * @return <code>true</code> in case of feature has been activated via command line.
+     *         <code>--activate-features MNG10000</code>, <code>false</code> otherwise.
+     * @since 3.4.0
+     */
+    boolean isToggleActive( AvailableFeatureToggles feature );
+
+    /**
+     * @return The list of feature toggles which have been activated.
+     * @since 3.4.0
+     */
+    List<AvailableFeatureToggles> getActiveFeatureToggles();
+
+}

http://git-wip-us.apache.org/repos/asf/maven/blob/5a72f955/maven-feature/src/main/java/org/apache/maven/feature/SelectedFeatures.java
----------------------------------------------------------------------
diff --git a/maven-feature/src/main/java/org/apache/maven/feature/SelectedFeatures.java b/maven-feature/src/main/java/org/apache/maven/feature/SelectedFeatures.java
deleted file mode 100644
index 6f6007a..0000000
--- a/maven-feature/src/main/java/org/apache/maven/feature/SelectedFeatures.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.apache.maven.feature;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.List;
-
-/**
- * This gives access to the feature storage which can be used during the 
- * run of Maven to access information about the activated features.
- * 
- * @author Karl Heinz Marbaise <a href="mailto:khmarbaise@apache.org">khmarbaise@apache.org</a>
- *
- * @since 3.4.0
- */
-public interface SelectedFeatures
-{
-
-    /**
-     * @since 3.4.0
-     * @return The list of features which will be activated.
-     */
-    void setActivatedFeatures(List<AvailableFeatures> activatedFeatures);
-
-    /**
-     * @param feature The feature to check for if it is activated or not.
-     * @return <code>true</code> in case of feature has been activated via command line.
-     * <code>--activate-feature FEATURE</code> <code>false</code> otherwise.
-     * @since 3.4.0
-     */
-    boolean isFeatureActive(AvailableFeatures feature);
-    
-    /**
-     * @return The list of features which are activated.
-     * @since 3.4.0
-     */
-    List<AvailableFeatures> getActiveFeatures();
-    
-
-}

http://git-wip-us.apache.org/repos/asf/maven/blob/5a72f955/maven-feature/src/test/java/org/apache/maven/feature/DefaultSelectedFeaturesTest.java
----------------------------------------------------------------------
diff --git a/maven-feature/src/test/java/org/apache/maven/feature/DefaultSelectedFeaturesTest.java b/maven-feature/src/test/java/org/apache/maven/feature/DefaultSelectedFeaturesTest.java
index 0790134..cef2f57 100644
--- a/maven-feature/src/test/java/org/apache/maven/feature/DefaultSelectedFeaturesTest.java
+++ b/maven-feature/src/test/java/org/apache/maven/feature/DefaultSelectedFeaturesTest.java
@@ -34,25 +34,25 @@ public class DefaultSelectedFeaturesTest
     @Test
     public void getActiveFeaturesShouldNotReturnNull()
     {
-        DefaultSelectedFeatures sf = new DefaultSelectedFeatures();
-        assertNotNull( sf.getActiveFeatures() );
-        assertEquals( sf.getActiveFeatures().size(), 0 );
+        DefaultFeatureToggles sf = new DefaultFeatureToggles();
+        assertNotNull( sf.getActiveFeatureToggles() );
+        assertEquals( sf.getActiveFeatureToggles().size(), 0 );
     }
 
     @Test
     public void isFeatureActiveShouldReturnFalse()
     {
-        DefaultSelectedFeatures sf = new DefaultSelectedFeatures();
-        assertFalse( sf.isFeatureActive( AvailableFeatures.MNG10000 ) );
+        DefaultFeatureToggles sf = new DefaultFeatureToggles();
+        assertFalse( sf.isToggleActive( AvailableFeatureToggles.MNG10000 ) );
     }
 
     @Test
     public void isFeatureActiveShouldReturnFalseIfNotTheCorrectFeatureIsActivated()
     {
-        DefaultSelectedFeatures sf = new DefaultSelectedFeatures();
+        DefaultFeatureToggles sf = new DefaultFeatureToggles();
 
-        sf.setActivatedFeatures( Arrays.asList( AvailableFeatures.MNG9991, AvailableFeatures.MNG9992 ) );
-        assertFalse( sf.isFeatureActive( AvailableFeatures.MNG10000 ) );
-        assertTrue( sf.isFeatureActive( AvailableFeatures.MNG9991 ) );
+        sf.setActivatedFeatureToggles( Arrays.asList( AvailableFeatureToggles.MNG9991, AvailableFeatureToggles.MNG9992 ) );
+        assertFalse( sf.isToggleActive( AvailableFeatureToggles.MNG10000 ) );
+        assertTrue( sf.isToggleActive( AvailableFeatureToggles.MNG9991 ) );
     }
 }