Hi Enrico

Yes I'm not sure if it make sense for freemarker only to use the
methods of public classes. Public interfaces are supported as well but
requiring this seems a lot of pointless work.

Cheers,
Reto

On Tue, Jul 16, 2013 at 12:36 PM, Enrico Daga <enricod...@gmail.com> wrote:
> 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

Reply via email to