Hi Reto, yes, debugging freemarker code is not fun at all :D BTW, if I create a new class, say JobResultData extending ResultData and explicitly declaring the method, then it works.
FYI the key method should be freemarker.ext.beans.BeansWrapper.discoverAccessibleMethods (if I followed correctly the method calls...). So the model should be a Java Bean, and I don't think that anonymous classes are it. So we could change the object wrapper to support our inline methods, or ask the freemarker ml howto. But at this point I am not sure that it is a recommended way of providing the pojo to fm. Cheers, Enrico On 16 July 2013 11:04, Reto Bachmann-Gmür <r...@wymiwyg.com> wrote: > 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 > -- Enrico Daga -- http://www.enridaga.net skype: enri-pan