Hi,

On Mon, Jan 20, 2014 at 9:35 AM, Felix Meschberger <fmesc...@adobe.com> wrote:
> Am 20.01.2014 um 04:19 schrieb Carsten Ziegeler <cziege...@apache.org>:
>>... It seems we have use cases, like A-B testing where you want to hide a
>> resource if a feature is enabled..
>> ...We can easily implement this with negating the value, like
>> !featureX as a single string property value...

Agreed, but isn't -featureX more readable? We are using - already to
negate tags when selecting health checks for example, not sure if we
are already using ! in other places at the user level.

> ...So to do A-B testing in this case your resources will have to be one in 
> front of
> another in the virtual candidate list and the feature flag on the first 
> indicating whether
> to accept it or not....

And how do you "put a resource in front of the other" ? Doesn't seem
convenient to me, the -featureX syntax is simple and unsurprising.

>
> ...I think we should come up with really concrete requirements and 
> implementation proposals
> to be able to discuss this further...

We do have use cases at
https://cwiki.apache.org/confluence/display/SLING/Sling+Feature+Flags+support,
this one is "alternate between resources based on feature flags".

As for the implementation, adding support for negated feature names in
ResourceResolverContext.applyFeatures() in your current whiteboard
prototype looks trivial.

>> Now, how do we treat a multi value for sling:features, like ["featureA",
>> "featureB"]? Is this resource visible if both features are active (AND) or
>> if at least one of the two is active (OR)?...

Like Felix I think using OR here is the simplest, if someone needs AND
they can always implement a Feature that's a composite of others.

If you then have  sling:features = "A, -B, C" the resource is visible
if feature A is enabled OR feature B is disabled OR feature C is
enabled, that's clear IMO.

I also agree with leaving feature tree inheritance for later, that
shouldn't have impact on APIs, it's only an implementation change.

-Bertrand

Reply via email to