Created the ticket: https://issues.apache.org/jira/browse/SLING-2526

 Are all registered and Active  ResourceDecorators  called?
What if I have more than one ResourceDecorator  that sets resourceType of
a certain resource(s)?  Which decorator wins?



On Wed, Jun 27, 2012 at 4:19 PM, Justin Edelson <[email protected]>wrote:

> Hi Sam,
>
> On Jun 27, 2012 3:56 PM, "sam ”" <[email protected]> wrote:
> >
> > Thanks Justin.
> > Works well!
>
> Glad to hear.
>
> >
> > =8<=
> >    @Override
> >    public Resource decorate(Resource resource, HttpServletRequest
> request)
> > {
> >        final String resourceType = resource.getResourceType();
> >        if ("old/handler".equals(resourceType)) {
> >            return new ResourceWrapper(resource) {
> >                @Override
> >                public String getResourceType() {
> >                    return "new/handler";
> >                }
> >            };
> >        }
> >        return resource;
> >    }
> >
> > =>8=
> >
> >
> > Is there a way to register my ResourceDecorator service for certain
> > resource types only  instead of that if conditional above?
>
> Not AFAIK, but this seems like it would be a useful feature. Can you create
> a JIRA issue?
>
> Justin
> >
> >
> >
> >
> >
> >
> > On Wed, Jun 27, 2012 at 3:06 PM, Justin Edelson <[email protected]
> >wrote:
> >
> > > Hi Sam,
> > > ResoureDecorators must be registered add OSGi services.
> > >
> > > Justin
> > > On Jun 27, 2012 3:00 PM, "sam ”" <[email protected]> wrote:
> > >
> > > > Ah thanks.
> > > >
> > > > Is there a way to provide ResourceDecorator implementation in script
> > > (jsp)?
> > > > Or, do I have to provide OSGi bundle/component?
> > > >
> > > >
> > > > On Wed, Jun 27, 2012 at 2:34 PM, Justin Edelson <
> [email protected]
> > > > >wrote:
> > > >
> > > > > Hi Sam,
> > > > > You should be able to do this with a  ResourceDecorator service to
> > > change
> > > > > the resource type at runtime.
> > > > >
> > > > > Regards,
> > > > > Justin
> > > > > On Jun 27, 2012 2:25 PM, "sam ”" <[email protected]> wrote:
> > > > >
> > > > > > Hey,
> > > > > >
> > > > > > I have a large number of resources with sling:resourceType =
> > > > old/handler
> > > > > >
> > > > > > I don't want to modify their sling:resourceType property.  But, I
> > > want
> > > > to
> > > > > > have old/handler actually resolve to  /apps/new/handler
> > > > > >
> > > > > > For example, given a resource:
> > > > > > /content/mypage
> > > > > > whose sling:resourceType = old/hander,
> > > > > >
> > > > > > GET /content/mypage.html
> > > > > > is handled by:
> > > > > > /apps/old/handler/html.jsp
> > > > > >
> > > > > >
> > > > > > Without modifying /content/mypage,  can I have the same GET
> request
> > > be
> > > > > > handled by:
> > > > > > /apps/new/handler/html.jsp   ?
> > > > > >
> > > > > > I tried /etc/maps/oldToNew
> > > > > > sling:internalRedirect = /apps/new/handler$1
> > > > > > sling:match = .*/apps/old/handler(.*)
> > > > > >
> > > > > > GET /apps/old/handler
> > > > > > does redirect to /apps/new/handler.
> > > > > > But, script resolution doesn't seem to use /etc/maps.
> > > > > >
> > > > >
> > > >
> > >
>

Reply via email to