Hi Enrico

Thanks for analyzing this further. It' really weird that freemarker
doesn't get all the methods of the anonymous inner class. I guess an
optimization attempt going wrong. Debugging freemarker code is not a
nice thing to do ...

Cheers,
Reto

On Tue, Jul 16, 2013 at 11:44 AM, Enrico Daga <enricod...@gmail.com> wrote:
> (some) more insight.
>
> Another thing I tried is the following in the fm template:
>
>  ${it.class.getMethod("getJobInfo").getName()}
> ${it.jobInfo!"NULL"}
> ${it.getJobInfo()}
>
> While the first line works, displaying the method name, the second displays
> NULL and the third throws the exception. Another note is that the method
> getJobInfo() is never called by the template, while if I override a method
> defined in a supertype (for example getUriInfo) it is executed regularly.
> So I guess there is some problem in the way the template engine evaluate
> the expression looking for the actual method of an inline instance.
>
> I have setup a sling logger for freemarker and found that the method
> getJobInfo is not included in the introspection info for the actual object
> (big log [1]).
>
> So this pattern won't work at least with the actual configuration of the
> template engine.
>
> Enrico
>
>
>
> [1] Follows the log:
> -------------
>
> 16.07.2013 10:32:40.573 *DEBUG* [1106793701@qtp-2017787826-51]
> freemarker.beans Key "jobInfo" was not found on instance of
> org.apache.stanbol.commons.jobs.web.resources.JobsResource$2. Introspection
> information for the class is: {getRootUrl=public java.lang.String
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getRootUrl(),
> getRequestUri=public java.net.URI
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getRequestUri(),
> mainMenuItems=java.beans.PropertyDescriptor@6398d702, hashCode=public
> native int java.lang.Object.hashCode(),
> registeredLinkResources=java.beans.PropertyDescriptor@bf736045,
> java.lang.Object@11496fc2={public java.net.URI
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getPublicBaseUri()=[Ljava.lang.Class;@2c69c4e9,
> public boolean
> java.lang.Object.equals(java.lang.Object)=[Ljava.lang.Class;@53feb3c6,
> public java.util.List
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getNavigationLinks()=[Ljava.lang.Class;@76ccb73e,
> public java.lang.String
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getStaticResourcesRootUrl()=[Ljava.lang.Class;@7a128460,
> public java.util.List
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getRegisteredLinkResources()=[Ljava.lang.Class;@55b0f93c,
> public final native java.lang.Class
> java.lang.Object.getClass()=[Ljava.lang.Class;@55bafe17, public
> java.lang.String
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getStaticRootUrl()=[Ljava.lang.Class;@677fc3f9,
> public java.net.URI
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getConsoleBaseUri()=[Ljava.lang.Class;@751b4584,
> public native int java.lang.Object.hashCode()=[Ljava.lang.Class;@5171192c,
> public java.util.List
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getRegisteredScriptResources()=[Ljava.lang.Class;@582bc179,
> public java.util.List
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getMainMenuItems()=[Ljava.lang.Class;@20ab1c28,
> public java.net.URI
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getRequestUri()=[Ljava.lang.Class;@41c596d9,
> public java.lang.String
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getRootUrl()=[Ljava.lang.Class;@1332a24b,
> public java.lang.String
> java.lang.Object.toString()=[Ljava.lang.Class;@613cf3c5},
> requestUri=java.beans.PropertyDescriptor@a9193b22,
> staticRootUrl=java.beans.PropertyDescriptor@ac5c5fb,
> getNavigationLinks=public java.util.List
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getNavigationLinks(),
> getPublicBaseUri=public java.net.URI
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getPublicBaseUri(),
> getRegisteredScriptResources=public java.util.List
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getRegisteredScriptResources(),
> registeredScriptResources=java.beans.PropertyDescriptor@1b975b12,
> getClass=public final native java.lang.Class java.lang.Object.getClass(),
> getMainMenuItems=public java.util.List
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getMainMenuItems(),
> equals=public boolean java.lang.Object.equals(java.lang.Object),
> class=java.beans.PropertyDescriptor@88f57024,
> staticResourcesRootUrl=java.beans.PropertyDescriptor@dd57bb70,
> consoleBaseUri=java.beans.PropertyDescriptor@5cd93387,
> getConsoleBaseUri=public java.net.URI
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getConsoleBaseUri(),
> getStaticRootUrl=public java.lang.String
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getStaticRootUrl(),
> getStaticResourcesRootUrl=public java.lang.String
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getStaticResourcesRootUrl(),
> rootUrl=java.beans.PropertyDescriptor@575a742d,
> getRegisteredLinkResources=public java.util.List
> org.apache.stanbol.commons.web.base.resource.TemplateLayoutConfiguration.getRegisteredLinkResources(),
> publicBaseUri=java.beans.PropertyDescriptor@14a41d71,
> navigationLinks=java.beans.PropertyDescriptor@9297e601, toString=public
> java.lang.String java.lang.Object.toString()}
>
>
>
> On 14 July 2013 23:20, Enrico Daga <enricod...@gmail.com> wrote:
>
>> Hi Reto,
>> Yes 1.2 is around and works well.
>>
>> I had a look at JobsResource and I found that freemarker variables do not
>> work at all. I can't say why at the moment, but replacing "this" with an
>> inline subclass of ResultData deals to an InvalidReferenceException for
>> anything I try to reference from it even if the "it" var is not null and is
>> the actual pojo.
>> Invoking /jobs/test starts a fake background job, you can easily see the
>> problem by following the url to ping the status (/jobs/{jobId}).
>> Needs more insight.
>>
>>
>> On 14 July 2013 13:05, Reto Bachmann-Gmür <r...@wymiwyg.com> wrote:
>>
>>> Hi Enrico
>>>
>>>
>>> Had quite some problems with this things. On hand OSGi stuff:
>>>
>>>
>>> http://mail-archives.apache.org/mod_mbox/felix-users/201306.mbox/%3CCALvhUEWRe+XKW=2M0e7DwNC8bm=mrakpqng5uq+ax5mocws...@mail.gmail.com%3E
>>>
>>> On the other hands jersey dependency on stuff that wasn't yet in central.
>>>
>>> If the final version's out and things are working, great!
>>>
>>> Reto
>>>
>>>
>>> On Sun, Jul 14, 2013 at 1:13 PM, Enrico Daga <enricod...@gmail.com>
>>> wrote:
>>> > Hi Reto,
>>> > I am trying to run the mini launcher as test but jersey did not start
>>> > because javax.annotation was 1.1.9-b02 (saw on felix console). The weird
>>> > thing is that the deployed bundle was 1.2-b04 (as configured in
>>> bundlelist
>>> > stanbolcommons and present in .../startup/1/). I changed the bundle
>>> version
>>> > to 1.2 and now it starts. Don't know why 1.2-b04 was seen as 1.1.9-b02,
>>> but
>>> > is there a special reason why we would need 1.2-b04?
>>> >
>>> > Enrico
>>> >
>>> >
>>> > On 12 July 2013 19:15, Enrico Daga <enricod...@gmail.com> wrote:
>>> >
>>> >> Hi Reto, yes, now works. Thank you.
>>> >>
>>> >>
>>> >> On 12 July 2013 13:27, Reto Bachmann-Gmür <r...@wymiwyg.com> wrote:
>>> >>
>>> >>> Hi Enrico
>>> >>>
>>> >>> Thanks a lot for looking into this.
>>> >>>
>>> >>> The aim of the ng branch is to be more portable. Most notably this is
>>> >>> independence of jersey and of the ServletContext hacks.
>>> >>>
>>> >>> I'm sorry I removed the jersey specific test only locally. I committed
>>> >>> the removal and hope that it now compiles for you too.
>>> >>>
>>> >>> Cheers,
>>> >>> Reto
>>> >>>
>>> >>> On Fri, Jul 12, 2013 at 2:13 PM, Enrico Daga <enricod...@gmail.com>
>>> >>> wrote:
>>> >>> > Hi Reto,
>>> >>> > sorry for this late reply, for some reasons I skipped this thread
>>> >>> > entirely...
>>> >>> > For what concerns the Commons Jobs API it is only used by
>>> reasoners. It
>>> >>> is
>>> >>> > a bit explained in a README file even if probably a documentation
>>> >>> targeted
>>> >>> > to developers would help. I could add it to the web site
>>> documentation.
>>> >>> > About the branch commons-ng, if I understood the aim is to clear the
>>> >>> JAX-RS
>>> >>> > implementation in order to be jersey independent, right?
>>> >>> > I downloded the branch to have a look to your examples but had the
>>> >>> > following:
>>> >>> >
>>> >>> > [ERROR] Failed to execute goal
>>> >>> > org.apache.maven.plugins:maven-compiler-plugin:2.3.1:testCompile
>>> >>> > (default-testCompile) on project
>>> org.apache.stanbol.entityhub.jersey:
>>> >>> > Compilation failure: Compilation failure:
>>> >>> > [ERROR]
>>> >>> >
>>> >>>
>>> /Users/enricox/Development/Stanbol-commons-ng/entityhub/jersey/src/test/java/org/apache/stanbol/entityhub/jersey/parsers/RepresetnationReaderTest.java:[27,40]
>>> >>> > package com.sun.jersey.api.representation does not exist
>>> >>> >
>>> >>> > My idea was to have a look, learn howto and migrate the reasoners.
>>> I'll
>>> >>> add
>>> >>> > the documentation of Jobs, if you think it is useful (I like that
>>> small
>>> >>> > thing btw, I would like to see it reused)
>>> >>> >
>>> >>> > Cheers,
>>> >>> > Enrico
>>> >>> >
>>> >>> >
>>> >>> >
>>> >>> > On 10 July 2013 15:11, Rupert Westenthaler <
>>> >>> rupert.westentha...@gmail.com>wrote:
>>> >>> >
>>> >>> >> Hi Reto
>>> >>> >>
>>> >>> >> Generally I find this API very interesting and I was considering
>>> this
>>> >>> >> as useful for the implementation of the Stanbol Enhancer "/task"
>>> >>> >> endpoint as suggested by David in [1]. For the current services
>>> >>> >> provided by the Enhancer and Entityhub this is not applicable as
>>> there
>>> >>> >> are no async services where users would like to interact with
>>> running
>>> >>> >> jobs.
>>> >>> >>
>>> >>> >> best
>>> >>> >> Rupert
>>> >>> >>
>>> >>> >> [1] http://stanbol.markmail.org/thread/npwf7olw2jemvu37
>>> >>> >>
>>> >>> >> On Wed, Jul 10, 2013 at 3:56 PM, Reto Bachmann-Gmür <
>>> r...@apache.org>
>>> >>> >> wrote:
>>> >>> >> > After not getting any answer I used grep myself ;)
>>> >>> >> >
>>> >>> >> > It seems commons.job is currently only used in the reasoner.web.
>>> >>> >> >
>>> >>> >> > Are there plans to use this elsewhere? Or to add some
>>> documentation
>>> >>> >> > for it to be more likely to be adopted?
>>> >>> >> >
>>> >>> >> > Cheers,
>>> >>> >> > Reto
>>> >>> >> >
>>> >>> >> > On Wed, Jun 26, 2013 at 10:14 PM, Reto Bachmann-Gmür <
>>> >>> r...@apache.org>
>>> >>> >> wrote:
>>> >>> >> >> Did anybody have a chance to try this out? Where is Commons Job
>>> >>> >> documented?
>>> >>> >> >>
>>> >>> >> >> Cheers,
>>> >>> >> >> Reto
>>> >>> >> >>
>>> >>> >> >>
>>> >>> >> >> On Fri, Jun 7, 2013 at 11:56 PM, Reto Bachmann-Gmür <
>>> >>> r...@apache.org>
>>> >>> >> wrote:
>>> >>> >> >>>
>>> >>> >> >>> At least I think it runs again.I'm not sure how to test it.
>>> Would
>>> >>> be
>>> >>> >> great
>>> >>> >> >>> if somebody else could check it out.
>>> >>> >> >>>
>>> >>> >> >>> Cheers,
>>> >>> >> >>> Reto
>>> >>> >> >>
>>> >>> >> >>
>>> >>> >>
>>> >>> >>
>>> >>> >>
>>> >>> >> --
>>> >>> >> | Rupert Westenthaler             rupert.westentha...@gmail.com
>>> >>> >> | Bodenlehenstraße 11                             ++43-699-11108907
>>> >>> >> | A-5500 Bischofshofen
>>> >>> >>
>>> >>> >
>>> >>> >
>>> >>> >
>>> >>> > --
>>> >>> > Enrico Daga
>>> >>> >
>>> >>> > --
>>> >>> > http://www.enridaga.net
>>> >>> > skype: enri-pan
>>> >>>
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Enrico Daga
>>> >>
>>> >> --
>>> >> http://www.enridaga.net
>>> >> skype: enri-pan
>>> >>
>>> >>
>>> >>
>>> >
>>> >
>>> > --
>>> > Enrico Daga
>>> >
>>> > --
>>> > http://www.enridaga.net
>>> > skype: enri-pan
>>>
>>
>>
>>
>> --
>> Enrico Daga
>>
>> --
>> http://www.enridaga.net
>> skype: enri-pan
>>
>>
>>
>
>
> --
> Enrico Daga
>
> --
> http://www.enridaga.net
> skype: enri-pan

Reply via email to