El lun, 08-05-2006 a las 11:59 +1000, Michael Ralston escribió: > I've been working on an EJB content repository for a while now, and I'm > having > some trouble understanding a fairly fundamental concept. > > How do I set up my content generator in the cocoon xmap so lenya sources > content via my generator? > > I've made a class which extends ServiceableGenerator and I've modelled its > behaviour around the LenyaMetaDataGenerator. It gets the publication, area, > documentId and language from the session and then fetches the appropriate > content via the NodeBean I've created. >
ok, I will pick it up later on again. > I think this might actually work, but what should I be putting into the > sitemap.xmap to make it use this class for content generation? I've read the > cocoon generator tutorial > http://cocoon.apache.org/2.1/tutorial/tutorial-generator.html and I have a > basic understanding of how generators work and how to define them in the > xmap, just wanted to know what to match in the pipeline to get the content > passed through to my class. You need to define the <map:generator name="ejb" src="org.apache.lenya.EJBGenerator"/> in the component section. Then you need to add a match like <map:match pattern="ejb.xml"> <map:generate type="ejb"/> <map:serialize type="xml"/> </map:match> > > In the jcrsource/sitemap.xmap I've found the following snippets of xml which > seems to be doing what I need, but I don't really understand how they work. > Why is this matching 'lenya-repository-content.xml'? How can that make all > content requests go through to the jcr generator? I know I'm missing > something really obvious, can somebody please point it out? :) http://cocoon.apache.org/2.1/tutorial/tutorial-generator.html#New +Concepts The answer is lying in the parameter. <map:generate type="requestExample"> <parameter name="param1" value="{visibleName1}"/> <parameter name="param2" value="{visibleName2}"/> </map:generate> The normal situation would be to pass parameter to the generator. You wrote: "It gets the publication, area, > documentId and language from the session and then fetches the appropriate > content via the NodeBean I've created." That can be easy be done with parameter of the sitemap. <map:generate type="ejb"> <parameter name="publication-id" value="{page-envelope:publication-id}"/> <parameter name="doc-id" value="{page-envelope:doc-id}"/> </map:generate> Makes sense? salu2 > > Michael > > -- from jcrsource/sitemap.xmap > <map:pipeline> > <map:match pattern="lenya-repository-content.xml"> > <map:select type="parameter"> > <map:parameter name="parameter-selector-test" > value="{request-param:scope}"/> > <map:when test="repository"> > <map:generate type="jcr-sys-view"> > <map:parameter name="root" value="/lenya"/> > </map:generate> > </map:when> > <map:otherwise> > <map:generate type="jcr-sys-view"> > <map:parameter name="root" > value="/lenya/pubs/{page-envelope:publication-id}"/> > </map:generate> > </map:otherwise> > </map:select> > <map:serialize type="xml"/> > </map:match> > > </map:pipeline> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > -- thorsten "Together we stand, divided we fall!" Hey you (Pink Floyd) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
