[ 
https://issues.apache.org/jira/browse/MNG-6056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christian Schulte updated MNG-6056:
-----------------------------------
    Fix Version/s:     (was: 3.5.0)

> Implement Feature Toggle Module to handle Feature Toggles
> ---------------------------------------------------------
>
>                 Key: MNG-6056
>                 URL: https://issues.apache.org/jira/browse/MNG-6056
>             Project: Maven
>          Issue Type: Task
>    Affects Versions: needing-scrub-3.4.0-fallout
>            Reporter: Karl Heinz Marbaise
>            Assignee: Karl Heinz Marbaise
>            Priority: Minor
>         Attachments: knob.jpg
>
>
> Implement a feature toggle module to handle feature toggles in Maven. The 
> best from my point of view at the moment is having a relationship to the JIRA 
> which defines all kinds of bugs, issues and of course features.
> Create a separate module: {{maven-feature}} to have no other dependency which 
> means it can be integrated into any other module of maven.
> Add appropriate command line option like {{--activate-features}} to activate 
> one or more features in one go. This prevents us from changing the command 
> line every time we add or remove a feature toggle.
> So a command line option could look like this:
> {code}
> mvn --activate-features MNG2345,MNG1299 clean package
> {code}
> This will activate the features {{MNG2345}} and {{MNG1299}}. If you try to 
> activate a feature toggle which does not exist we should simply print out a 
> warning and just continue. This will simplify also future changes which means 
> if 3.4.0 introduces a feature toggle {{MNG-XXXX}} but in Maven 3.5.0 this 
> feature toggle does not exists anymore or made default calling the command 
> line that way will only produce a warning nothing more.
> It should be compile time save which means if the feature toggle will be 
> removed the compiler should show where this features has been used or 
> questioned if it is activated. This will simplify the removal of the 
> dependent code.
> Simplify adding of new feature toggles.
> Currently the best seemed to be an enumeration which contains this 
> information.
> It should also be possible to list all available feature toggles via command 
> line option like {{--list-features}} which should print out the existing 
> feature toggles plus an appropriate description for the user (in particular 
> intended for maven devs).
> It should also be simple to query for a feature toggle like:
> {code:java}
>   @Requirement
>   private SelectedFeatures featureToggle;
>   ...
>   if (featureToggle.isFeatureActive(Feature.MNG10000)) {
>     // The feature is implemented here or a different selection is done.
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to