[ https://issues.apache.org/jira/browse/MNG-6056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15369565#comment-15369565 ]
Robert Scholte commented on MNG-6056: ------------------------------------- I would expect that any feature is simply a different implementation of a {{@Component}}. So I would look for a services solution where you specify which hint/name should be used for a specific role. I'm not sure if this should be an extension for the project or for the Maven installation. Anyhow, it would make these flags unnecessary. > 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)