I just notice that the deprecated folder from cvs contains XMLDBGenerator and XMLDBCollectionGenerator. But I never tried out. Anyway, would you suggest how I could fix my generator to non-cached?
Thanks. --- Ken C <[EMAIL PROTECTED]> wrote: > Hi, > Having read the "write a custom generator" > tutorial, I am trying to write one that hooks up a > connection to an xmldb -- eXist; and then get an xml > back based on a request parameter. Everything seems > to > work fine for the first time the request is made. > Different request parameters on subsequent request > won't result a correct xml. I suspect that this > generator may have been cached, which is not what I > want. Following is the code, it's ugly but just a > first try... > > ========================================== > > import > org.apache.cocoon.generation.AbstractGenerator; > import org.xml.sax.helpers.AttributesImpl; > import org.xml.sax.SAXException; > // for the setup() method > import org.apache.cocoon.environment.SourceResolver; > import java.util.Map; > import > org.apache.avalon.framework.parameters.Parameters; > import org.apache.cocoon.ProcessingException; > import java.io.IOException; > // used to deal with the request parameters. > import > org.apache.cocoon.environment.ObjectModelHelper; > import org.apache.cocoon.environment.Request; > import java.util.Enumeration; > import java.util.Date; > > //xmldb > import org.xmldb.api.base.*; > import org.xmldb.api.modules.*; > import org.xmldb.api.*; > > public class ThreadGenerator extends > AbstractGenerator > > { > // Will be initialized in the setup() method and > used in generate() > Request request = null; > String threadID = null; //the thread we are > looking for > //todo: set threadID as > a > static final variable > > //xmldb > String driver = null; > Database database = null; > Collection col = null; > String[] resources = null; > XMLResource xmlres = null; > String forumURI = > "xmldb:exist:///db/cocoon/forum"; //db root > > > public void setup(SourceResolver resolver, Map > objectModel, > String src, Parameters parameters) > throws ProcessingException, SAXException, > IOException > { > super.setup(resolver, objectModel, src, > parameters); > request = > ObjectModelHelper.getRequest(objectModel); > forumURI = forumURI + "/" + > request.getParameter("groupID"); > forumURI = forumURI + "/" + > request.getParameter("forumID"); > > //xmldb > try { > driver = "org.exist.xmldb.DatabaseImpl"; > //todo: parameters.getParameter("driver"); > Class cl = Class.forName(driver); > database = (Database)cl.newInstance(); > DatabaseManager.registerDatabase(database); > database.setProperty("create-database", > "true"); > > > col = > DatabaseManager.getCollection(forumURI); > > col.setProperty("pretty", "true"); > col.setProperty("encoding", "UTF-8"); > > this.getLogger().debug("getting threadID"); > threadID = request.getParameter("threadID") > + > ".xml"; //todo: set threadID as a static final > variable > resources = col.listResources(); > this.getLogger().debug("getting threadID > done..."); > > } > catch(Exception e){} > } > /** > * Implement the generate() method from > AbstractGenerator. > */ > public void generate() throws SAXException > { > > if (threadID!=null) > { > try { > > xmlres = > (XMLResource)col.getResource(threadID); > if (xmlres==null) > throw new SAXException("Resource not > found:" + threadID + "doesn't not exist"); > > > xmlres.getContentAsSAX(this.contentHandler); > > contentHandler.startDocument(); > contentHandler.endDocument(); > > } > > catch (Exception e){} > } > } > public void recycle() { > super.recycle(); > this.request = null; > driver = null; > > try { > col.close(); > DatabaseManager.deregisterDatabase(database); > } > catch (Exception e){} > database = null; > resources = null; > xmlres = null; > forumURI = null; > } > } > //end class > > __________________________________________________ > Do you Yahoo!? > Yahoo! Shopping - Send Flowers for Valentine's Day > http://shopping.yahoo.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, email: > [EMAIL PROTECTED] > __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]