Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-6056

Implement Feature Toggle Module to handle Feature Toggles

    Details

    • Type: Task
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: needing-scrub-3.4.0-fallout
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      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:

      mvn --activate-features MNG2345,MNG1299 clean package
      

      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:

        @Requirement
        private SelectedFeatures featureToggle;
        ...
        if (featureToggle.isFeatureActive(Feature.MNG10000)) {
          // The feature is implemented here or a different selection is done.
        }
      

        Attachments

        1. knob.jpg
          23 kB
          Christian Schulte

          Issue Links

            Activity

              People

              • Assignee:
                khmarbaise Karl Heinz Marbaise
                Reporter:
                khmarbaise Karl Heinz Marbaise
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated: