[MNG-6056] Implement Feature Toggle Module to handle Feature Toggles o Improved JavaDocs o Improved unit test.
Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/7fdce687 Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/7fdce687 Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/7fdce687 Branch: refs/heads/MNG-6056 Commit: 7fdce687f3708e4b6ce6ceb77bf44367775c8f24 Parents: 2a8bafd Author: Karl Heinz Marbaise <khmarba...@apache.org> Authored: Sun Jul 3 00:27:09 2016 +0200 Committer: Karl Heinz Marbaise <khmarba...@apache.org> Committed: Sun Jul 3 00:27:09 2016 +0200 ---------------------------------------------------------------------- .../apache/maven/graph/DefaultGraphBuilder.java | 6 ++-- .../maven/feature/AvailableFeatureToggles.java | 30 +++++++++++------ .../maven/feature/DefaultFeatureToggles.java | 4 +-- .../apache/maven/feature/FeatureToggles.java | 5 ++- .../feature/DefaultSelectedFeaturesTest.java | 34 +++++++++++++------- 5 files changed, 51 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/7fdce687/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 4b03f02..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 @@ -80,9 +80,9 @@ public class DefaultGraphBuilder return dependencyGraph( session, session.getProjects(), false ); } -// if (selectedFeatures.isToggleActive( AvailableFeatureToggles.MNG10000 )) { -// logger.info( " -> Features MNG 10000 is activated." ); -// } + if (selectedFeatures.isToggleActive( AvailableFeatureToggles.MNG10000 )) { + logger.info( " -> Features MNG 10000 is activated." ); + } List<MavenProject> projects = session.getProjects(); http://git-wip-us.apache.org/repos/asf/maven/blob/7fdce687/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 index a0b0d83..7241944 100644 --- a/maven-feature/src/main/java/org/apache/maven/feature/AvailableFeatureToggles.java +++ b/maven-feature/src/main/java/org/apache/maven/feature/AvailableFeatureToggles.java @@ -32,20 +32,32 @@ 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." ), + /** + * MNG9991 this feature toggle is intended to do the following.. + */ + MNG9991( "MNG-9991", "First Feature to be toggable via command line option. " + + "First Feature to be toggable via command line option." ), + /** + * MNG9992 this feature toggle is intended to do the following.. + */ + 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 this feature toggle is intended to do the following.. + */ + MNG9993( "MNG-9993", "First Feature to be toggable via command line option. " + + "More text than you think." ), + /** + * MNG10000 this feature toggle is intended to do the following.. + */ + MNG10000( "MNG-10000", "First Feature to be toggable via command line option. " + + "Here much more than you thing." ), /** * This is an feature toggle which will never being used nor does it exist. * This is only to mark the end of feature toggles. Also used for unit tests. * - * Keep it at the end. + * Keep it at the last position in this enumeration. */ UNKNOWN ("UNKNOWN", "The unknown feature."); http://git-wip-us.apache.org/repos/asf/maven/blob/7fdce687/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 index 543a59d..2f75fbe 100644 --- a/maven-feature/src/main/java/org/apache/maven/feature/DefaultFeatureToggles.java +++ b/maven-feature/src/main/java/org/apache/maven/feature/DefaultFeatureToggles.java @@ -44,7 +44,7 @@ public class DefaultFeatureToggles private List<AvailableFeatureToggles> activatedFeatureToggles; - @Override + /** {@inheritDoc} */ public void setActivatedFeatureToggles( List<AvailableFeatureToggles> featuresToBeActivated ) { if ( featuresToBeActivated == null ) @@ -58,7 +58,6 @@ public class DefaultFeatureToggles } /** {@inheritDoc} */ - @Override public boolean isToggleActive( AvailableFeatureToggles feature ) { if ( activatedFeatureToggles != null ) @@ -68,7 +67,6 @@ public class DefaultFeatureToggles return false; } - @Override public List<AvailableFeatureToggles> getActiveFeatureToggles() { if ( activatedFeatureToggles == null ) http://git-wip-us.apache.org/repos/asf/maven/blob/7fdce687/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 index 998b79e..099b83e 100644 --- a/maven-feature/src/main/java/org/apache/maven/feature/FeatureToggles.java +++ b/maven-feature/src/main/java/org/apache/maven/feature/FeatureToggles.java @@ -31,8 +31,9 @@ public interface FeatureToggles { /** - * @since 3.4.0 * @return The list of features which will be activated. + * @see AvailableFeatureToggles + * @since 3.4.0 */ void setActivatedFeatureToggles( List<AvailableFeatureToggles> activatedFeatures ); @@ -49,12 +50,14 @@ public interface FeatureToggles * @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. + * @see AvailableFeatureToggles * @since 3.4.0 */ boolean isToggleActive( AvailableFeatureToggles feature ); /** * @return The list of feature toggles which have been activated. + * @see AvailableFeatureToggles * @since 3.4.0 */ List<AvailableFeatureToggles> getActiveFeatureToggles(); http://git-wip-us.apache.org/repos/asf/maven/blob/7fdce687/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 112bea4..f04a0e2 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 @@ -26,15 +26,28 @@ import static org.junit.Assert.assertTrue; import java.util.Arrays; +import org.junit.Before; import org.junit.Test; +/** + * This implements some unit tests for checking the behaviour of the implementaiton. + * + * @author Karl Heinz Marbaise <a href="mailto:khmarba...@apache.org">khmarba...@apache.org</a> + * @since 3.4.0 + */ public class DefaultSelectedFeaturesTest { + private FeatureToggles sf; + + @Before + public void before() + { + sf = new DefaultFeatureToggles(); + } @Test public void getActiveFeaturesShouldNotReturnNotNullAndSizeOfListZero() { - DefaultFeatureToggles sf = new DefaultFeatureToggles(); assertNotNull( sf.getActiveFeatureToggles() ); assertEquals( sf.getActiveFeatureToggles().size(), 0 ); } @@ -42,18 +55,15 @@ public class DefaultSelectedFeaturesTest @Test public void isToggleActiveShouldReturnFalseIfNoTogglesHadBeenActivatedAtAll() { - DefaultFeatureToggles sf = new DefaultFeatureToggles(); assertFalse( sf.isToggleActive( AvailableFeatureToggles.UNKNOWN ) ); } -// @Test -// public void isToggleActiveShouldReturnFalseIfNotTheCorrectFeatureIsActivated() -// { -// DefaultFeatureToggles sf = new DefaultFeatureToggles(); -// -// sf.setActivatedFeatureToggles( Arrays.asList( AvailableFeatureToggles.UNKNOWN ) ); -// assertFalse( sf.isToggleActive( AvailableFeatureToggles.MNG10000 ) ); -// assertTrue( sf.isToggleActive( AvailableFeatureToggles.UNKNOWN ) ); -// -// } + @Test + public void isToggleActiveShouldReturnFalseIfNotTheCorrectFeatureIsActivated() + { + sf.setActivatedFeatureToggles( Arrays.asList( AvailableFeatureToggles.UNKNOWN ) ); + assertFalse( sf.isToggleActive( AvailableFeatureToggles.MNG10000 ) ); + assertTrue( sf.isToggleActive( AvailableFeatureToggles.UNKNOWN ) ); + + } }