Re: Sling models - Resource decorator

2017-06-12 Thread Roy Teeuwen
798489 checking
>>>> that
>>>>> the wrapped resource is injected via the @Self annotation. Would be
>>>>> interesting to see how this differs from what you are doing.
>>>>> 
>>>>> Regards,
>>>>> Justin
>>>>> 
>>>>> On Mon, Jun 12, 2017 at 12:23 PM Justin Edelson <
>>>> jus...@justinedelson.com>
>>>>> wrote:
>>>>> 
>>>>>> Hi Roy,
>>>>>> This sounds like unexpected behavior. Please create a JIRA for this,
>>>>>> ideally with a test case, if you have not already.
>>>>>> 
>>>>>> Thanks,
>>>>>> Justin
>>>>>> 
>>>>>> On Mon, Jun 12, 2017 at 4:38 AM Roy Teeuwen <r...@teeuwen.be> wrote:
>>>>>> 
>>>>>>> Hey Jason, Guys,
>>>>>>> 
>>>>>>> No one can give me an answer if this is a bug or something wanted? I
>>>> can
>>>>>>> always register a Jira ticket for and put it on the dev list of
>> course
>>>>>>> 
>>>>>>> Greets,
>>>>>>> Roy
>>>>>>>> On 6 Jun 2017, at 21:50, Roy Teeuwen <r...@teeuwen.be> wrote:
>>>>>>>> 
>>>>>>>> Hey Jason,
>>>>>>>> 
>>>>>>>> No to both assumptions
>>>>>>>> 
>>>>>>>> - I used @Inject public Resource resource. Just tried the @Self,
>> same
>>>>>>> result
>>>>>>>> - I have @Model(adaptables = Resource.class). I don't want to bind
>> my
>>>>>>> model to a custom Resource class, that would be the same as saying I
>>>> have
>>>>>>> to do @Model(adaptables = JcrNodeResource.class), the decorator just
>>>>>>> decorates your resource implementation class, has nothing to do with
>>>> your
>>>>>>> Resource interface you are coming from.
>>>>>>>> 
>>>>>>>> Greets,
>>>>>>>> Roy
>>>>>>>>> On 6 Jun 2017, at 21:41, Jason Bailey <jason.bai...@sas.com>
>> wrote:
>>>>>>>>> 
>>>>>>>>> Hey Roy,
>>>>>>>>> 
>>>>>>>>> Couple of Assumptions:
>>>>>>>>> 
>>>>>>>>> For the Self resource you have it defined as:
>>>>>>>>> 
>>>>>>>>> @Self
>>>>>>>>> public Resource resource;
>>>>>>>>> 
>>>>>>>>> and for the @Model you have something like
>>>>>>>>> @Model(adaptables = RoysCustomDecorator.class)
>>>>>>>>> 
>>>>>>>>> Am I close?
>>>>>>>>> 
>>>>>>>>> -Jason
>>>>>>>>> 
>>>>>>>>> -Original Message-
>>>>>>>>> From: Roy Teeuwen [mailto:r...@teeuwen.be]
>>>>>>>>> Sent: Tuesday, June 06, 2017 10:08 AM
>>>>>>>>> To: users@sling.apache.org
>>>>>>>>> Subject: Sling models - Resource decorator
>>>>>>>>> 
>>>>>>>>> Hey all,
>>>>>>>>> 
>>>>>>>>> I am using sling models version 1.2.2, and I have the following
>>>> logic:
>>>>>>>>> 
>>>>>>>>> - I find some resources with the resource resolver
>>>>>>> (resourceResolver.findResources)
>>>>>>>>> - The returned resources are the correct resources which are
>>>> decorated
>>>>>>> by my custom resource decorator
>>>>>>>>> - I iterate the list to cast them to the sling model I want them to
>>>>>>> be, using a resource.adaptTo
>>>>>>>>> - The sling model itself has a field Resource resource, to inject
>>>>>>> itself
>>>>>>>>> 
>>>>>>>>> What I notice now is that the injected resource is a
>> JcrNodeResource
>>>>>>> and not my decorated resource class anymore. I guess this is a bug in
>>>> the
>>>>>>> sling models implementation? Am I doing something wrong here or is
>>>> this an
>>>>>>> actual bug in the sling models implementation? Is this maybe already
>>>> fixed
>>>>>>> in any of the future versions?
>>>>>>>>> 
>>>>>>>>> Greets,
>>>>>>>>> Roy
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>> 
>>>> 
>> 
>> 



signature.asc
Description: Message signed with OpenPGP


Re: Sling models - Resource decorator

2017-06-12 Thread Roy Teeuwen
Hey Justin,

The reason why it is odd to me is that it should be agnostic to being wrapped 
or not.

You use the resourceresolver to get the resource and then do an adapt, all not 
knowing anything about being wrapped or not, seeing as the resource resolver 
also does the wrapping internally, why wouldn't the adaptTo do it?

Resource resource = resourceResolver.getResource("/my/path");
SelfModel selfModel = resource.adaptTo(SelfModel.class);

Greets,
Roy

> On 12 Jun 2017, at 21:32, Justin Edelson <jus...@justinedelson.com> wrote:
> 
> Hi Roy,
> OK. That makes sense (and I'm sorry I missed that part in your original
> email). The problem is that if you use WrappedResource, it delegates the
> adaptTo() call to the wrapped resource, i.e. the wrapper is lost at that
> point and the AdapterFactory (i.e. Sling Models) doesn't have access to it
> anymore. I'm not sure how this can be best be handled. One approach would
> be in your wrapper class to implement the adaptTo method. Something like:
> 
> class Wrapper extends ResourceWrapper {
>private Wrapper(Resource r) {
>super(r);
>}
> 
>@Override
>public  AdapterType adaptTo(Class type) {
>AdapterType adapter = adapterManager.getAdapter(this, type);
>if (adapter != null) {
>return adapter;
>} else {
>return super.adaptTo(type);
>}
>}
>}
> 
> But this looks a bit odd to me, although I can't quite put my finger on why.
> 
> Regards,
> Justin
> 
> On Mon, Jun 12, 2017 at 3:21 PM Roy Teeuwen <r...@teeuwen.be> wrote:
> 
>> Hey Justin,
>> 
>> Cool, thanks for the integration test!
>> Just change the modelFactory.createModel to
>> resource.adaptTo(SelfModel.class) and you will see that the test fails :)
>> 
>> Greets,
>> Roy
>>> On 12 Jun 2017, at 18:52, Justin Edelson <jus...@justinedelson.com>
>> wrote:
>>> 
>>> FWIW, I committed an integration test at
>>> http://svn.apache.org/viewvc?view=revision=1798489 checking
>> that
>>> the wrapped resource is injected via the @Self annotation. Would be
>>> interesting to see how this differs from what you are doing.
>>> 
>>> Regards,
>>> Justin
>>> 
>>> On Mon, Jun 12, 2017 at 12:23 PM Justin Edelson <
>> jus...@justinedelson.com>
>>> wrote:
>>> 
>>>> Hi Roy,
>>>> This sounds like unexpected behavior. Please create a JIRA for this,
>>>> ideally with a test case, if you have not already.
>>>> 
>>>> Thanks,
>>>> Justin
>>>> 
>>>> On Mon, Jun 12, 2017 at 4:38 AM Roy Teeuwen <r...@teeuwen.be> wrote:
>>>> 
>>>>> Hey Jason, Guys,
>>>>> 
>>>>> No one can give me an answer if this is a bug or something wanted? I
>> can
>>>>> always register a Jira ticket for and put it on the dev list of course
>>>>> 
>>>>> Greets,
>>>>> Roy
>>>>>> On 6 Jun 2017, at 21:50, Roy Teeuwen <r...@teeuwen.be> wrote:
>>>>>> 
>>>>>> Hey Jason,
>>>>>> 
>>>>>> No to both assumptions
>>>>>> 
>>>>>> - I used @Inject public Resource resource. Just tried the @Self, same
>>>>> result
>>>>>> - I have @Model(adaptables = Resource.class). I don't want to bind my
>>>>> model to a custom Resource class, that would be the same as saying I
>> have
>>>>> to do @Model(adaptables = JcrNodeResource.class), the decorator just
>>>>> decorates your resource implementation class, has nothing to do with
>> your
>>>>> Resource interface you are coming from.
>>>>>> 
>>>>>> Greets,
>>>>>> Roy
>>>>>>> On 6 Jun 2017, at 21:41, Jason Bailey <jason.bai...@sas.com> wrote:
>>>>>>> 
>>>>>>> Hey Roy,
>>>>>>> 
>>>>>>> Couple of Assumptions:
>>>>>>> 
>>>>>>> For the Self resource you have it defined as:
>>>>>>> 
>>>>>>> @Self
>>>>>>> public Resource resource;
>>>>>>> 
>>>>>>> and for the @Model you have something like
>>>>>>> @Model(adaptables = RoysCustomDecorator.class)
>>>>>>> 
>>>>>>> Am I close?
>>>

Re: Sling models - Resource decorator

2017-06-12 Thread Roy Teeuwen
Hey Justin,

Cool, thanks for the integration test!
Just change the modelFactory.createModel to resource.adaptTo(SelfModel.class) 
and you will see that the test fails :)

Greets,
Roy
> On 12 Jun 2017, at 18:52, Justin Edelson <jus...@justinedelson.com> wrote:
> 
> FWIW, I committed an integration test at
> http://svn.apache.org/viewvc?view=revision=1798489 checking that
> the wrapped resource is injected via the @Self annotation. Would be
> interesting to see how this differs from what you are doing.
> 
> Regards,
> Justin
> 
> On Mon, Jun 12, 2017 at 12:23 PM Justin Edelson <jus...@justinedelson.com>
> wrote:
> 
>> Hi Roy,
>> This sounds like unexpected behavior. Please create a JIRA for this,
>> ideally with a test case, if you have not already.
>> 
>> Thanks,
>> Justin
>> 
>> On Mon, Jun 12, 2017 at 4:38 AM Roy Teeuwen <r...@teeuwen.be> wrote:
>> 
>>> Hey Jason, Guys,
>>> 
>>> No one can give me an answer if this is a bug or something wanted? I can
>>> always register a Jira ticket for and put it on the dev list of course
>>> 
>>> Greets,
>>> Roy
>>>> On 6 Jun 2017, at 21:50, Roy Teeuwen <r...@teeuwen.be> wrote:
>>>> 
>>>> Hey Jason,
>>>> 
>>>> No to both assumptions
>>>> 
>>>> - I used @Inject public Resource resource. Just tried the @Self, same
>>> result
>>>> - I have @Model(adaptables = Resource.class). I don't want to bind my
>>> model to a custom Resource class, that would be the same as saying I have
>>> to do @Model(adaptables = JcrNodeResource.class), the decorator just
>>> decorates your resource implementation class, has nothing to do with your
>>> Resource interface you are coming from.
>>>> 
>>>> Greets,
>>>> Roy
>>>>> On 6 Jun 2017, at 21:41, Jason Bailey <jason.bai...@sas.com> wrote:
>>>>> 
>>>>> Hey Roy,
>>>>> 
>>>>> Couple of Assumptions:
>>>>> 
>>>>> For the Self resource you have it defined as:
>>>>> 
>>>>> @Self
>>>>> public Resource resource;
>>>>> 
>>>>> and for the @Model you have something like
>>>>> @Model(adaptables = RoysCustomDecorator.class)
>>>>> 
>>>>> Am I close?
>>>>> 
>>>>> -Jason
>>>>> 
>>>>> -Original Message-
>>>>> From: Roy Teeuwen [mailto:r...@teeuwen.be]
>>>>> Sent: Tuesday, June 06, 2017 10:08 AM
>>>>> To: users@sling.apache.org
>>>>> Subject: Sling models - Resource decorator
>>>>> 
>>>>> Hey all,
>>>>> 
>>>>> I am using sling models version 1.2.2, and I have the following logic:
>>>>> 
>>>>> - I find some resources with the resource resolver
>>> (resourceResolver.findResources)
>>>>> - The returned resources are the correct resources which are decorated
>>> by my custom resource decorator
>>>>> - I iterate the list to cast them to the sling model I want them to
>>> be, using a resource.adaptTo
>>>>> - The sling model itself has a field Resource resource, to inject
>>> itself
>>>>> 
>>>>> What I notice now is that the injected resource is a JcrNodeResource
>>> and not my decorated resource class anymore. I guess this is a bug in the
>>> sling models implementation? Am I doing something wrong here or is this an
>>> actual bug in the sling models implementation? Is this maybe already fixed
>>> in any of the future versions?
>>>>> 
>>>>> Greets,
>>>>> Roy
>>>> 
>>> 
>>> 



signature.asc
Description: Message signed with OpenPGP


Re: Sling models - Resource decorator

2017-06-12 Thread Justin Edelson
FWIW, I committed an integration test at
http://svn.apache.org/viewvc?view=revision=1798489 checking that
the wrapped resource is injected via the @Self annotation. Would be
interesting to see how this differs from what you are doing.

Regards,
Justin

On Mon, Jun 12, 2017 at 12:23 PM Justin Edelson <jus...@justinedelson.com>
wrote:

> Hi Roy,
> This sounds like unexpected behavior. Please create a JIRA for this,
> ideally with a test case, if you have not already.
>
> Thanks,
> Justin
>
> On Mon, Jun 12, 2017 at 4:38 AM Roy Teeuwen <r...@teeuwen.be> wrote:
>
>> Hey Jason, Guys,
>>
>> No one can give me an answer if this is a bug or something wanted? I can
>> always register a Jira ticket for and put it on the dev list of course
>>
>> Greets,
>> Roy
>> > On 6 Jun 2017, at 21:50, Roy Teeuwen <r...@teeuwen.be> wrote:
>> >
>> > Hey Jason,
>> >
>> > No to both assumptions
>> >
>> > - I used @Inject public Resource resource. Just tried the @Self, same
>> result
>> > - I have @Model(adaptables = Resource.class). I don't want to bind my
>> model to a custom Resource class, that would be the same as saying I have
>> to do @Model(adaptables = JcrNodeResource.class), the decorator just
>> decorates your resource implementation class, has nothing to do with your
>> Resource interface you are coming from.
>> >
>> > Greets,
>> > Roy
>> >> On 6 Jun 2017, at 21:41, Jason Bailey <jason.bai...@sas.com> wrote:
>> >>
>> >> Hey Roy,
>> >>
>> >> Couple of Assumptions:
>> >>
>> >> For the Self resource you have it defined as:
>> >>
>> >> @Self
>> >> public Resource resource;
>> >>
>> >> and for the @Model you have something like
>> >> @Model(adaptables = RoysCustomDecorator.class)
>> >>
>> >> Am I close?
>> >>
>> >> -Jason
>> >>
>> >> -Original Message-
>> >> From: Roy Teeuwen [mailto:r...@teeuwen.be]
>> >> Sent: Tuesday, June 06, 2017 10:08 AM
>> >> To: users@sling.apache.org
>> >> Subject: Sling models - Resource decorator
>> >>
>> >> Hey all,
>> >>
>> >> I am using sling models version 1.2.2, and I have the following logic:
>> >>
>> >> - I find some resources with the resource resolver
>> (resourceResolver.findResources)
>> >> - The returned resources are the correct resources which are decorated
>> by my custom resource decorator
>> >> - I iterate the list to cast them to the sling model I want them to
>> be, using a resource.adaptTo
>> >> - The sling model itself has a field Resource resource, to inject
>> itself
>> >>
>> >> What I notice now is that the injected resource is a JcrNodeResource
>> and not my decorated resource class anymore. I guess this is a bug in the
>> sling models implementation? Am I doing something wrong here or is this an
>> actual bug in the sling models implementation? Is this maybe already fixed
>> in any of the future versions?
>> >>
>> >> Greets,
>> >> Roy
>> >
>>
>>


Re: Sling models - Resource decorator

2017-06-12 Thread Justin Edelson
Hi Roy,
This sounds like unexpected behavior. Please create a JIRA for this,
ideally with a test case, if you have not already.

Thanks,
Justin

On Mon, Jun 12, 2017 at 4:38 AM Roy Teeuwen <r...@teeuwen.be> wrote:

> Hey Jason, Guys,
>
> No one can give me an answer if this is a bug or something wanted? I can
> always register a Jira ticket for and put it on the dev list of course
>
> Greets,
> Roy
> > On 6 Jun 2017, at 21:50, Roy Teeuwen <r...@teeuwen.be> wrote:
> >
> > Hey Jason,
> >
> > No to both assumptions
> >
> > - I used @Inject public Resource resource. Just tried the @Self, same
> result
> > - I have @Model(adaptables = Resource.class). I don't want to bind my
> model to a custom Resource class, that would be the same as saying I have
> to do @Model(adaptables = JcrNodeResource.class), the decorator just
> decorates your resource implementation class, has nothing to do with your
> Resource interface you are coming from.
> >
> > Greets,
> > Roy
> >> On 6 Jun 2017, at 21:41, Jason Bailey <jason.bai...@sas.com> wrote:
> >>
> >> Hey Roy,
> >>
> >> Couple of Assumptions:
> >>
> >> For the Self resource you have it defined as:
> >>
> >> @Self
> >> public Resource resource;
> >>
> >> and for the @Model you have something like
> >> @Model(adaptables = RoysCustomDecorator.class)
> >>
> >> Am I close?
> >>
> >> -Jason
> >>
> >> -Original Message-
> >> From: Roy Teeuwen [mailto:r...@teeuwen.be]
> >> Sent: Tuesday, June 06, 2017 10:08 AM
> >> To: users@sling.apache.org
> >> Subject: Sling models - Resource decorator
> >>
> >> Hey all,
> >>
> >> I am using sling models version 1.2.2, and I have the following logic:
> >>
> >> - I find some resources with the resource resolver
> (resourceResolver.findResources)
> >> - The returned resources are the correct resources which are decorated
> by my custom resource decorator
> >> - I iterate the list to cast them to the sling model I want them to be,
> using a resource.adaptTo
> >> - The sling model itself has a field Resource resource, to inject itself
> >>
> >> What I notice now is that the injected resource is a JcrNodeResource
> and not my decorated resource class anymore. I guess this is a bug in the
> sling models implementation? Am I doing something wrong here or is this an
> actual bug in the sling models implementation? Is this maybe already fixed
> in any of the future versions?
> >>
> >> Greets,
> >> Roy
> >
>
>


Re: Sling models - Resource decorator

2017-06-12 Thread Roy Teeuwen
Hey Jason, Guys,

No one can give me an answer if this is a bug or something wanted? I can always 
register a Jira ticket for and put it on the dev list of course

Greets,
Roy
> On 6 Jun 2017, at 21:50, Roy Teeuwen <r...@teeuwen.be> wrote:
> 
> Hey Jason,
> 
> No to both assumptions
> 
> - I used @Inject public Resource resource. Just tried the @Self, same result
> - I have @Model(adaptables = Resource.class). I don't want to bind my model 
> to a custom Resource class, that would be the same as saying I have to do 
> @Model(adaptables = JcrNodeResource.class), the decorator just decorates your 
> resource implementation class, has nothing to do with your Resource interface 
> you are coming from.
> 
> Greets,
> Roy
>> On 6 Jun 2017, at 21:41, Jason Bailey <jason.bai...@sas.com> wrote:
>> 
>> Hey Roy,
>> 
>> Couple of Assumptions:
>> 
>> For the Self resource you have it defined as:
>> 
>> @Self
>> public Resource resource;
>> 
>> and for the @Model you have something like
>> @Model(adaptables = RoysCustomDecorator.class)
>> 
>> Am I close?
>> 
>> -Jason
>> 
>> -Original Message-
>> From: Roy Teeuwen [mailto:r...@teeuwen.be]
>> Sent: Tuesday, June 06, 2017 10:08 AM
>> To: users@sling.apache.org
>> Subject: Sling models - Resource decorator
>> 
>> Hey all,
>> 
>> I am using sling models version 1.2.2, and I have the following logic:
>> 
>> - I find some resources with the resource resolver 
>> (resourceResolver.findResources)
>> - The returned resources are the correct resources which are decorated by my 
>> custom resource decorator
>> - I iterate the list to cast them to the sling model I want them to be, 
>> using a resource.adaptTo
>> - The sling model itself has a field Resource resource, to inject itself
>> 
>> What I notice now is that the injected resource is a JcrNodeResource and not 
>> my decorated resource class anymore. I guess this is a bug in the sling 
>> models implementation? Am I doing something wrong here or is this an actual 
>> bug in the sling models implementation? Is this maybe already fixed in any 
>> of the future versions?
>> 
>> Greets,
>> Roy
> 



signature.asc
Description: Message signed with OpenPGP


Re: Sling models - Resource decorator

2017-06-06 Thread Roy Teeuwen
Hey Jason,

No to both assumptions

- I used @Inject public Resource resource. Just tried the @Self, same result
- I have @Model(adaptables = Resource.class). I don't want to bind my model to 
a custom Resource class, that would be the same as saying I have to do 
@Model(adaptables = JcrNodeResource.class), the decorator just decorates your 
resource implementation class, has nothing to do with your Resource interface 
you are coming from.

Greets,
Roy
> On 6 Jun 2017, at 21:41, Jason Bailey <jason.bai...@sas.com> wrote:
> 
> Hey Roy,
> 
> Couple of Assumptions:
> 
> For the Self resource you have it defined as:
> 
> @Self
> public Resource resource;
> 
> and for the @Model you have something like
> @Model(adaptables = RoysCustomDecorator.class)
> 
> Am I close?
> 
> -Jason
> 
> -Original Message-
> From: Roy Teeuwen [mailto:r...@teeuwen.be]
> Sent: Tuesday, June 06, 2017 10:08 AM
> To: users@sling.apache.org
> Subject: Sling models - Resource decorator
> 
> Hey all,
> 
> I am using sling models version 1.2.2, and I have the following logic:
> 
> - I find some resources with the resource resolver 
> (resourceResolver.findResources)
> - The returned resources are the correct resources which are decorated by my 
> custom resource decorator
> - I iterate the list to cast them to the sling model I want them to be, using 
> a resource.adaptTo
> - The sling model itself has a field Resource resource, to inject itself
> 
> What I notice now is that the injected resource is a JcrNodeResource and not 
> my decorated resource class anymore. I guess this is a bug in the sling 
> models implementation? Am I doing something wrong here or is this an actual 
> bug in the sling models implementation? Is this maybe already fixed in any of 
> the future versions?
> 
> Greets,
> Roy



signature.asc
Description: Message signed with OpenPGP


RE: Sling models - Resource decorator

2017-06-06 Thread Jason Bailey
Hey Roy,

Couple of Assumptions:

For the Self resource you have it defined as:

@Self
public Resource resource;

and for the @Model you have something like
@Model(adaptables = RoysCustomDecorator.class)

Am I close?

-Jason

-Original Message-
From: Roy Teeuwen [mailto:r...@teeuwen.be] 
Sent: Tuesday, June 06, 2017 10:08 AM
To: users@sling.apache.org
Subject: Sling models - Resource decorator

Hey all,

I am using sling models version 1.2.2, and I have the following logic:

- I find some resources with the resource resolver 
(resourceResolver.findResources)
- The returned resources are the correct resources which are decorated by my 
custom resource decorator
- I iterate the list to cast them to the sling model I want them to be, using a 
resource.adaptTo
- The sling model itself has a field Resource resource, to inject itself

What I notice now is that the injected resource is a JcrNodeResource and not my 
decorated resource class anymore. I guess this is a bug in the sling models 
implementation? Am I doing something wrong here or is this an actual bug in the 
sling models implementation? Is this maybe already fixed in any of the future 
versions?

Greets,
Roy


Sling models - Resource decorator

2017-06-06 Thread Roy Teeuwen
Hey all,

I am using sling models version 1.2.2, and I have the following logic:

- I find some resources with the resource resolver 
(resourceResolver.findResources)
- The returned resources are the correct resources which are decorated by my 
custom resource decorator
- I iterate the list to cast them to the sling model I want them to be, using a 
resource.adaptTo
- The sling model itself has a field Resource resource, to inject itself

What I notice now is that the injected resource is a JcrNodeResource and not my 
decorated resource class anymore. I guess this is a bug in the sling models 
implementation? Am I doing something wrong here or is this an actual bug in the 
sling models implementation? Is this maybe already fixed in any of the future 
versions?

Greets,
Roy


signature.asc
Description: Message signed with OpenPGP