Thanks Guillaume for the explanation. I will say that this is very confusing beyond the error message displayed since a feature can still be "not required" and yet be reported as installed via the isInstall() or listInstalledFeatures().
In addition, calling uninstallFeature() does more than simply mark the feature as "not required" as it actually removes it from the internal 'state.installedFeatures' table at which point isInstall() will return false and listInstalledFeature() will no longer report it (same for the cmd shell). There is definitely a difference in the implementation between installed/not-installed vs required/not-required. Maybe specific methods to mark a feature required or not beyond the confusing use of addRequirements(), removeRequirements() and installFeature(), uninstallFeature() is in order. -- Sent from: http://karaf.922171.n3.nabble.com/Karaf-Dev-f930721.html
