Author: cziegeler Date: Thu Dec 19 04:48:45 2013 New Revision: 1552226 URL: http://svn.apache.org/r1552226 Log: Take II for the feature flags, separate into different contexts to avoid duplicate evaluation
Added: sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/ProviderContextImpl.java - copied, changed from r1552225, sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/FeatureContextImpl.java Removed: sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/FeatureContextImpl.java Modified: sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/FeatureManager.java Modified: sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/FeatureManager.java URL: http://svn.apache.org/viewvc/sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/FeatureManager.java?rev=1552226&r1=1552225&r2=1552226&view=diff ============================================================================== --- sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/FeatureManager.java (original) +++ sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/FeatureManager.java Thu Dec 19 04:48:45 2013 @@ -32,9 +32,9 @@ import org.apache.sling.api.SlingHttpSer import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.extensions.featureflags.ClientContext; -import org.apache.sling.extensions.featureflags.ProviderContext; import org.apache.sling.extensions.featureflags.FeatureProvider; import org.apache.sling.extensions.featureflags.Features; +import org.apache.sling.extensions.featureflags.ProviderContext; import org.osgi.framework.Constants; /** @@ -130,8 +130,8 @@ public class FeatureManager implements F } public void setCurrentClientContext(final SlingHttpServletRequest request) { - final ProviderContext featureContext = new FeatureContextImpl(request); - final ClientContextImpl ctx = this.createClientContext(featureContext); + final ProviderContext providerContext = new ProviderContextImpl(request); + final ClientContextImpl ctx = this.createClientContext(providerContext); perThreadClientContext.set(ctx); } @@ -144,8 +144,8 @@ public class FeatureManager implements F if ( resolver == null ) { throw new IllegalArgumentException("Resolver must not be null."); } - final ProviderContext featureContext = new FeatureContextImpl(resolver); - final ClientContext ctx = this.createClientContext(featureContext); + final ProviderContext providerContext = new ProviderContextImpl(resolver); + final ClientContext ctx = this.createClientContext(providerContext); return ctx; } @@ -154,19 +154,19 @@ public class FeatureManager implements F if ( request == null ) { throw new IllegalArgumentException("Request must not be null."); } - final ProviderContext featureContext = new FeatureContextImpl(request); - final ClientContext ctx = this.createClientContext(featureContext); + final ProviderContext providerContext = new ProviderContextImpl(request); + final ClientContext ctx = this.createClientContext(providerContext); return ctx; } - private ClientContextImpl createClientContext(final ProviderContext featureContext) { - final ClientContextImpl ctx = new ClientContextImpl(featureContext); + private ClientContextImpl createClientContext(final ProviderContext providerContext) { + final ClientContextImpl ctx = new ClientContextImpl(providerContext); for(final Map.Entry<String, FeatureProvider> entry : this.activeProviders.entrySet()) { final String name = entry.getKey(); final FeatureProvider provider = entry.getValue(); - if ( provider.isEnabled(name, featureContext) ) { + if ( provider.isEnabled(name, providerContext) ) { ctx.addFeature(name); } } Copied: sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/ProviderContextImpl.java (from r1552225, sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/FeatureContextImpl.java) URL: http://svn.apache.org/viewvc/sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/ProviderContextImpl.java?p2=sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/ProviderContextImpl.java&p1=sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/FeatureContextImpl.java&r1=1552225&r2=1552226&rev=1552226&view=diff ============================================================================== --- sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/FeatureContextImpl.java (original) +++ sling/whiteboard/feature-flags/src/main/java/org/apache/sling/extensions/featureflags/impl/ProviderContextImpl.java Thu Dec 19 04:48:45 2013 @@ -22,18 +22,21 @@ import org.apache.sling.api.SlingHttpSer import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.extensions.featureflags.ProviderContext; -public class FeatureContextImpl implements ProviderContext { +/** + * Implementation of the provider context. + */ +public class ProviderContextImpl implements ProviderContext { private final ResourceResolver resourceResolver; private final SlingHttpServletRequest request; - public FeatureContextImpl(final ResourceResolver resourceResolver) { + public ProviderContextImpl(final ResourceResolver resourceResolver) { this.request = null; this.resourceResolver = resourceResolver; } - public FeatureContextImpl(final SlingHttpServletRequest request) { + public ProviderContextImpl(final SlingHttpServletRequest request) { this.request = request; this.resourceResolver = request.getResourceResolver(); }