You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Bertrand Delacretaz (JIRA)" <ji...@apache.org> on 2014/03/27 10:57:16 UTC

[jira] [Created] (SLING-3483) Remove sling:features support from the resource resolver, for now

Bertrand Delacretaz created SLING-3483:
------------------------------------------

             Summary: Remove sling:features support from the resource resolver, for now
                 Key: SLING-3483
                 URL: https://issues.apache.org/jira/browse/SLING-3483
             Project: Sling
          Issue Type: Improvement
          Components: ResourceResolver
    Affects Versions: Resource Resolver 1.0.6
            Reporter: Bertrand Delacretaz
            Assignee: Bertrand Delacretaz
            Priority: Minor


As discussed on list ( http://markmail.org/message/nuaiox2gkmutttdo ) I believe the current "magic" support of the sling:features resource property in the resource resolver core opens a can of worms in some cases. Carsten agrees and we'd like to remove that support from the core resource resolver bundle for now.

[~justinedelson] was not fully convinced of removing it in that discussion, but AFAICS he agrees about moving that functionality to a separate bundle that we can then clearly label as experimental.

In the current code, the decision to hide a resource based on feature flags is done in a single place, in the ProviderHandler class:

{code}
Resource getReadableResource ( final ResourceResolverContext ctx, ...){
  Resource returnValue = null;
  ...set returnValue unless resourceAccessSecurity objects...
  ...and now ctx can decide to hide the resource based on sling:features
  return ctx.applyFeatures(returnValue);
    }
{code}

So using a service implemented in a different bundle is not a problem, it would just be used instead of (or inside) the ResourceResolverContext. That service only needs to know about the Resource and the features services, it doesn't need any internal knowledge of the resource resolver state.

For now I'll go ahead and remove the sling:features support from the resourceresolver bundle, and we can later experiment and re-add it with a more modular design.



--
This message was sent by Atlassian JIRA
(v6.2#6252)