Karl Heinz Marbaise created MNG-6056:
----------------------------------------

             Summary: 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)

Reply via email to