[Yanel-dev] Switching the layout/design of the from scratch realm

Michael Wechner michael.wechner at wyona.com
Mon Jun 8 11:39:58 CEST 2009


Prabodh Upreti schrieb:
> Thank you.  That clarified the next email I had sent you.
>  
> I tried to check in the resource and not sure if I have the checkin 
> permission.
>

as noted within my previous email please attach a patch to

http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7055
> Please let me know which directories/files I need to check in for the 
> resource beside the jave file directory.
>

basically everything except the build dir (which we will ignore with SVN 
ignore).
You can also just zip it and attach it to Bugzilla
> I will also update the new resource-types.xml in conf and other 
> configuration and xslt.
>

Thanks

Michael
>  
>  
> Prabodh
>
> --- On *Fri, 6/5/09, Michael Wechner /<michael.wechner at wyona.com>/* wrote:
>
>
>     From: Michael Wechner <michael.wechner at wyona.com>
>     Subject: Re: [Yanel-dev] Switching the layout/design of the from
>     scratch realm
>     To: yanel-development at wyona.com
>     Date: Friday, June 5, 2009, 10:43 AM
>
>     Prabodh Upreti schrieb:
>     > Hi Michael
>     >  Thank you for the input.  I was doing just that in my original
>     Resource where I was modifying the getNode method to get the
>     querystring and set the session object etc.  This worked fine. 
>     Then I say reference to /app/images/...  within the global.xsl.  I
>     wanted the ability to change that to /app{$xslt-version}/images/...
>     >
>
>     you mean within the XSLT itself, right?
>     > To provide this capibility I need to handle the transformation
>     where I can pass that as a parameter.
>     >
>
>     I would suggest just to use relative paths inside the XSLT, for
>     example
>
>     images/foo.gif
>
>     for the moment, instead
>
>     {$yanel.back2realm}/app{$xslt-version}/images/...
>
>     which is btw also a relative path, because $yanel.back2realm will
>     be relative.
>
>     This is very important in case one is settting up Yanel behind a
>     reverse proxy (for example using Apache mod_proxy), where
>     we don't know how the reverse proxy prefix will be set.
>     > I believe with the NodeResource the YanelServelet does the
>     transformation based the stream from the NodeResource.
>     >  Once again, I hope I am not making it more complicated than it
>     really is.
>     >
>
>     no, but I would suggest a simple version is sufficient at the
>     moment and we can still improve it later on ;-)
>
>     Cheers
>
>     Michael
>     >   Thank you.
>     >  Regards
>     >  Prabodh
>     >
>     > --- On *Fri, 6/5/09, Michael Wechner /<michael.wechner at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>>/*
>     wrote:
>     >
>     >
>     >     From: Michael Wechner <michael.wechner at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>>
>     >     Subject: Re: [Yanel-dev] Switching the layout/design of the from
>     >     scratch realm
>     >     To: yanel-development at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=yanel-development@wyona.com>
>     >     Date: Friday, June 5, 2009, 5:13 AM
>     >
>     >     Prabodh Upreti schrieb:
>     >     > Hi Michael
>     >     >  I think I am close to getting this done.
>     >     >  I created a new resource to handle the session setting
>     and also
>     >     changing the path based on the querystring.  For my first step I
>     >     to created this Resource similar to the file "NodeResource" to
>     >     make sure that it worked as I had expected.  It was working
>     fine.
>     >     >
>     >
>     >     great :-)
>     >     >  I understand this does not handle passing the param to
>     the xsl
>     >     to build the correct path.  I then started creating a Resource
>     >     similar to the BasicXMLResource so that I can set the parameter
>     >     xslt-version for the transformer.  I will then change the
>     >     global.xsl to reflect the new passed variable to it resolves to
>     >     the correct path.
>     >     >
>     >
>     >     I don' t think you need to build this on the
>     BasicXMLResource, but
>     >     rather keep extending the NodeResource by overwriting the
>     >     getNode() method.
>     >
>     >     Inside the getNode() method the method
>     >     getResourceConfigProperty("src") is called which is getting the
>     >     path from
>     >
>     > 
>        src/realms/from-scratch-realm-template/res-configs/my-global.xsl.yanel-rc
>     >
>     >     <yanel:property name="src" value="/app/xslt/global.xsl"/>
>     >
>     >
>     >     So I would suggest to introduce a new method called
>     >
>     >     getNode(String layoutVersion) which shall replace the getNode()
>     >     method and also a new resource type property for this new
>     >     resource, for example
>     >
>     >     <yanel:property name="default-layout-version" value="2"/>
>     >     <yanel:property name="src"
>     >     value="/appTEMPLATE_VERSION/xslt/global.xsl"/>
>     >
>     >
>     >     and the template version can be retrieved from the query string
>     >     inside the resource by
>     >
>     >     String layoutVersion =
>     getRequest().getParameter("layout-version");
>     >     if (layoutVersion != null) {
>     >         getRequest().getSession().setAttribute("layout-version",
>     >     layoutVersion)
>     >     } else {
>     >        if
>     (getRequest().getSession().getAttribute("layout-version")) {
>     >            layoutVersion = 
>        getRequest().getSession().getAttribute("layout-version");
>     >        } else {
>     >            layoutVersion =
>     >     getResourceConfigProperty("default-layout-version")
>     >        }
>     >     }
>     >
>     >
>     >     HTH
>     >
>     >     Michael
>     >
>     >
>     >     >  I just want to make sure I am on the right track.  Please let
>     >     me know if anything I am doing here is not correct.  Thank
>     you in
>     >     advance.
>     >     >  Regards
>     >     >  Prabodh
>     >     >     --- On *Wed, 6/3/09, Michael Wechner
>     >     /<michael.wechner at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>
>     > 
>        <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>>/*
>     >     wrote:
>     >     >
>     >     >
>     >     >     From: Michael Wechner <michael.wechner at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>
>     > 
>        <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>>
>     >     >     Subject: Re: [Yanel-dev] Switching the layout/design
>     of the from
>     >     >     scratch realm
>     >     >     To: yanel-development at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=yanel-development@wyona.com>
>     > 
>        <http://us.mc522.mail.yahoo.com/mc/compose?to=yanel-development@wyona.com>
>     >     >     Date: Wednesday, June 3, 2009, 3:09 AM
>     >     >
>     >     >     Hi Prabodh
>     >     >
>     >     >     Prabodh Upreti schrieb:
>     >     >     >
>     >     >     >     > Hi Everyone
>     >     >     >
>     >     >     >     > I was tracing through the code to understand how
>     >     things were
>     >     >     working.  I see that YanelServlet is calling
>     >     SourceResolver-à     ResourceResolver--à  ResourceManager
>     which in
>     >     turn is loads
>     >     >     map.rc-map file.
>     >     >     >
>     >     >
>     >     >
>     >     >     each realm can have such a file, whereas it is optional,
>     >     whereas a
>     >     >     warning is logged nevertheless if a realm does not
>     have one
>     >     >
>     >     >     >     > I understand that one based on map.rc-map setting
>     >     all *.html
>     >     >     calls are being targeted to
>     generic-xhtml-page_yanel-rc.xml
>     >     setting.
>     >     >     >
>     >     >
>     >     >     this is what's happening in the "from scratch realm". The
>     >     general
>     >     >     chain of responsibility is as follows:
>     >     >
>     >     >     URL: http://127.0.0.1:8080/yanel/REALM_ID/foo/bar.html
>     >     >
>     >     >     and then Yanel will first check if a 1-to-1 mapping exists
>     >     >
>     >     >     SRC: REALM_HOME_DIR/res-configs/foo/bar.html.yanel-rc
>     >     >
>     >     >     and if such a 1-to-1 does not exist, then it will
>     check for
>     >     >     matching patterns within
>     >     >
>     >     >     SRC: REALM_HOME_DIR/res-confgis/map.rc-map
>     >     >
>     >     >     and if no pattern exists, then Yanel will use by
>     default the
>     >     >     "file" (aka "node") resource type
>     >     >
>     >     >     > Based on the previous setting global.xsl was being
>     called to
>     >     >     translate the template.
>     >     >     >     > With the new changes Michael made I understand
>     >     global.xsl needs
>     >     >     to be picked up from app or app2.  A variable needs to
>     be set on
>     >     >     the Session based on the previous settings.
>     >     >     >
>     >     >     >     > Listed below are my questions:
>     >     >     >
>     >     >     >     >    1. I can create a resource to perform the above
>     >     task. Does that
>     >     >     >       mean I can remove the rti “xml” currently set in
>     >     >     >       generic-xhtml-page_yanel-rc.xm and add my new
>     resource?
>     >     >     >
>     >     >
>     >     >     no, you should replace the rti "file" within
>     >     >
>     >     >       
>     src/realms/from-scratch-realm-template/res-configs/my-global.xsl.yanel-rc
>     >     >
>     >     >     by your own resource, because this is where the actual
>     switch of
>     >     >     the XSLT is happening
>     >     >
>     >     >
>     >     >     >    1. This resource will check the
>     >     yanelresource:/my-global.xsl     find
>     >     >     >       my-global.xsl then the right template.  I
>     understand
>     >     most of
>     >     >     >       this logic is in YanelServlet at present. 
>     Should I
>     >     take that
>     >     >     >       code from there and add it to the new resource and
>     >     everything
>     >     >     >       should work as usual?  Servlet will
>     automatically pickup
>     >     >     the new
>     >     >     >       resource and let me perform the rest of the task.
>     >     >     >
>     >     >     > 2.  Why not pass a value via the querystring so that
>     developer
>     >     >     do not need to go and modify my-global.xsl file to
>     find the
>     >     >     template.  That way they could have 5-6 templates and
>     they can
>     >     >     quickly test them without modifying the my-global.xsl
>     file.
>     >     >     >
>     >     >
>     >     >     that's exactly what your resource should be doing. For
>     >     example the
>     >     >     query string could be something like
>     >     >
>     >     >     /foo/bar.html?xslt-version=2
>     >     >
>     >     >     which your resource would read from the request (if
>     set) and
>     >     then
>     >     >     set it within the session, such that you don't always
>     have to
>     >     >     attach it to all following URLs. And then your resource
>     >     would for
>     >     >     example build the location dynamically
>     >     >
>     >     >     /app{$xslt-version}/xslt/globals.xsl
>     >     >
>     >     >     instead reading it statically from within
>     >     >
>     >     >       
>     src/realms/from-scratch-realm-template/res-configs/my-global.xsl.yanel-rc
>     >     >
>     >     >     as the "file" resource type does. (or something
>     similar along
>     >     >     these lines)
>     >     >     >
>     >     >     > It may not be as simple as I am thinking so pls free
>     to point
>     >     >     out the flaw with this process
>     >     >     >
>     >     >     >     > Could you please let me know if I am in the
>     right track?
>     >     >     >
>     >     >
>     >     >     I think you are very much on the right track, except which
>     >     >     resource type to replace (as described above)
>     >     >
>     >     >     Hope my comments help, otherwise please ask again.
>     >     >
>     >     >     Cheers
>     >     >
>     >     >     Michael
>     >     >     >
>     >     >     >   Thank you in advance.
>     >     >     >
>     >     >     >     > Regards
>     >     >     >
>     >     >     >  Prabodh
>     >     >     >
>     >     >     > --- On *Fri, 5/29/09, Michael Wechner
>     >     >     /<michael.wechner at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>
>     > 
>        <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>
>     >     >       
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>>/*
>     >     >     wrote:
>     >     >     >
>     >     >     >
>     >     >     >     From: Michael Wechner <michael.wechner at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>
>     > 
>        <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>
>     >     >       
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=michael.wechner@wyona.com>>
>     >     >     >     Subject: [Yanel-dev] Switching the layout/design of
>     >     the from
>     >     >     >     scratch realm
>     >     >     >     To: yanel-development at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=yanel-development@wyona.com>
>     > 
>        <http://us.mc522.mail.yahoo.com/mc/compose?to=yanel-development@wyona.com>
>     >     >       
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=yanel-development@wyona.com>
>     >     >     >     Date: Friday, May 29, 2009, 5:07 AM
>     >     >     >
>     >     >     >     Hi
>     >     >     >
>     >     >     >     We have made some progress re switching the
>     >     layout/design of the
>     >     >     >     from scratch realm dynamically.
>     >     >     >
>     >     >     >     Please update your local SVN version and take a look
>     >     at the
>     >     >     notes at
>     >     >     >
>     >     >     >     svn ci -m "note about switching the layout
>     added"           data-repo/data/de/index.html
>     data-repo/data/en/index.html
>     >     >     >     Sende          data-repo/data/de/index.html
>     >     >     >     Sende          data-repo/data/en/index.html
>     >     >     >     Übertrage Daten ..
>     >     >     >     Revision 43093 übertragen.
>     >     >     >
>     >     >     >     or rather
>     >     >     >
>     >     >     >       
>     http://127.0.0.1:8080/yanel/from-scratch-realm/en/index.html
>     >     >     >       
>     http://127.0.0.1:8080/yanel/from-scratch-realm/de/index.html
>     >     >     >
>     >     >     >     The TODOs are actually create another layout
>     within the
>     >     >     >     data-repo/data/app2 folder and create a resource
>     >     >     >     which is switching between the various folders app1
>     >     and app2 as
>     >     >     >     noted within
>     >     >     >
>     >     >     >     res-configs/my-global.xsl.yanel-rc
>     >     >     >
>     >     >     >     (instead of using the static file resource)
>     >     >     >
>     >     >     >     Cheers
>     >     >     >
>     >     >     >     Michael
>     >     >     >     -- Yanel-development mailing list
>     >     >     Yanel-development at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
>     > 
>        <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
>     >     >       
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
>     >     >     >       
>        <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
>     >     >     >       
>        http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>     >     >     >
>     >     >     >
>     >     >
>     >     >     -- Yanel-development mailing list
>     >     Yanel-development at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
>     > 
>        <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
>     >     >       
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
>     >     >       
>     http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>     >     >
>     >     >
>     >
>     >     -- Yanel-development mailing list
>     Yanel-development at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
>     > 
>        <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
>     > 
>        http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>     >
>     >
>
>     -- Yanel-development mailing list Yanel-development at wyona.com
>     <http://us.mc522.mail.yahoo.com/mc/compose?to=Yanel-development@wyona.com>
>     http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>
>



More information about the Yanel-development mailing list