You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Felix Meschberger (JIRA)" <ji...@apache.org> on 2014/01/29 23:26:16 UTC

[jira] [Created] (SLING-3350) Simplify Feature Flags API

Felix Meschberger created SLING-3350:
----------------------------------------

             Summary: Simplify Feature Flags API
                 Key: SLING-3350
                 URL: https://issues.apache.org/jira/browse/SLING-3350
             Project: Sling
          Issue Type: Improvement
          Components: Extensions
    Affects Versions: Feature Flags 1.0.0
            Reporter: Felix Meschberger


The Feature Flags API currently is quite complex involving a helper object making query for FeatureFlag status quite complex. Also, setting the current context is clumsy with (currently) two filters.

I propose a few changes:

(a) Remove ClientContext object. Checking for feature enablement should be as simple as just calling "Features.isEnabled(featureName)". Currently the curent ClientContext has to be retrieved and then the isEnabled method being called there.

(b) Feature flag values are egerly evaluated. This should be done on demand making the context setup much quicker and light-weight. For added performance the evaluation results can still be cached.

(c) The duplicate filter can be removed by code directly grabbing the ResourceResolver from the request attribute just like the SlingMainServlet does (thanks CarstenZ for the hint).

(d) We don't currently need the explicit "context" management because the servlet filter does that directly using internal API.

(e) I wonder, whether we need all these feature accessors in the Features service, some look like convenience methods, particularly the one of getFeatureNames and getFeatures.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)