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