On Thursday 14 April 2016 07:47:33 Stefan Seifert wrote:
> please try to use use @Inject or even better @SlingObject on the "request"
> variable instead of @Self - then is should work.
>
> for the "resource" parameter i would prefer @SlingObject as well instead of
> @Inject to make it more explicit and a litte bit more efficient (no need it
> iterate over all potential injectors internally to find the right match).
That way it works:
@Model(adaptables = {Resource.class, SlingHttpServletRequest.class})
public class MyModel {
@SlingObject
private Resource resource;
@SlingObject(optional = true)
private SlingHttpServletRequest request;
}
Using @Optional instead of optional = true breaks injection. So there is a
problem with @Optional. Can you have a look? Should I file an issue?
Thanks, Stefan!
O.
> stefan
>
> >-----Original Message-----
> >From: Oliver Lietz [mailto:[email protected]]
> >Sent: Thursday, April 14, 2016 9:42 AM
> >To: [email protected]
> >Subject: [Models] Injecting from two sources
> >
> >Hi,
> >
> >is it somehow possible to inject both a resource and a request where the
> >request is optional and should not break injection when not available?
> >
> >@Model(adaptables = {Resource.class, SlingHttpServletRequest.class})
> >public class MyModel {
> >
> > @Inject
> > private Resource resource;
> >
> > @Self
> > @Optional
> > private SlingHttpServletRequest request;
> >
> >}
> >
> >In my case injection fails with SlingHttpServletRequest not adaptable from
> >JcrNodeResource.
> >
> >Thanks,
> >O.