[ https://issues.apache.org/jira/browse/MNG-6056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15369573#comment-15369573 ]
Karl Heinz Marbaise commented on MNG-6056: ------------------------------------------ Hm...But could the user make a decision simply on command line via an option? activate/deactivate a feature ? Furthermore many of the features we have or would like to disable are simply if statements in the code to get slight different behaviour ? Is there really a complete {{@Component}} needed for ? > 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: 3.4.0 > Reporter: Karl Heinz Marbaise > Assignee: Karl Heinz Marbaise > Priority: Minor > Fix For: 3.4.0 > > > 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)