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();
}