vgritsenko 02/01/29 07:46:08 Modified: . changes.xml src/java/org/apache/cocoon/components/language/markup AbstractMarkupLanguage.java src/java/org/apache/cocoon/components/language/markup/sitemap SitemapMarkupLanguage.java src/java/org/apache/cocoon/components/language/markup/xsp XSPMarkupLanguage.java Log: XSP Engine fixes - dispose abstract markup language - reflect changes Revision Changes Path 1.81 +6 -1 xml-cocoon2/changes.xml Index: changes.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/changes.xml,v retrieving revision 1.80 retrieving revision 1.81 diff -u -r1.80 -r1.81 --- changes.xml 28 Jan 2002 23:06:32 -0000 1.80 +++ changes.xml 29 Jan 2002 15:46:07 -0000 1.81 @@ -4,7 +4,7 @@ <!-- History of Cocoon changes - $Id: changes.xml,v 1.80 2002/01/28 23:06:32 vgritsenko Exp $ + $Id: changes.xml,v 1.81 2002/01/29 15:46:07 vgritsenko Exp $ --> <changes title="History of Changes"> @@ -31,6 +31,11 @@ </devs> <release version="@version@" date="@date@"> + <action dev="VG" type="fix"> + XSP engine now correctly works with dynamically generated sources + with last modification date of 0, and it is correctly reloaded on Cocoon + reload. + </action> <action dev="VG" type="update"> Logicsheets are resolved using instance of url factory source resolver (URLFactorySourceResolver), and not the current request resolver (which 1.6 +51 -35 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/AbstractMarkupLanguage.java Index: AbstractMarkupLanguage.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/AbstractMarkupLanguage.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- AbstractMarkupLanguage.java 28 Jan 2002 23:06:10 -0000 1.5 +++ AbstractMarkupLanguage.java 29 Jan 2002 15:46:08 -0000 1.6 @@ -15,6 +15,7 @@ import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.framework.logger.AbstractLoggable; import org.apache.avalon.framework.parameters.Parameters; +import org.apache.avalon.framework.activity.Disposable; import org.apache.avalon.excalibur.pool.Recyclable; import org.apache.cocoon.ProcessingException; @@ -51,10 +52,10 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a> * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a> * @author <a href="mailto:[EMAIL PROTECTED]">Ovidiu Predescu</a> - * @version CVS $Revision: 1.5 $ $Date: 2002/01/28 23:06:10 $ + * @version CVS $Revision: 1.6 $ $Date: 2002/01/29 15:46:08 $ */ public abstract class AbstractMarkupLanguage extends AbstractLoggable - implements MarkupLanguage, Composable, Configurable, Recyclable + implements MarkupLanguage, Composable, Configurable, Recyclable, Disposable { /** The 'file' URL protocol. */ private static final String FILE = "file:"; @@ -77,34 +78,15 @@ /** The component manager */ protected ComponentManager manager; - /** - * The URL factory used to resolve URIs. - */ + /** The URL factory to create source resolver */ + private URLFactory urlFactory; + + /** The URL factory source resolver used to resolve URIs */ private URLFactorySourceResolver urlResolver; private final LinkedList logicSheetList = new LinkedList(); - public void recycle() - { - this.logicSheetList.clear(); - } - - /** - * Set the global component manager. - * @param manager The sitemap-specified component manager - */ - public void compose(ComponentManager manager) throws ComponentException { - this.manager = manager; - - // Initialize logicsheet cache - this.logicsheetCache = (Store) manager.lookup(Store.ROLE); - - // Initialize the URL factory source resolver - URLFactory urlFactory = (URLFactory)this.manager.lookup(URLFactory.ROLE); - this.urlResolver = new URLFactorySourceResolver(urlFactory, manager); - } - /** The default constructor. */ public AbstractMarkupLanguage() throws SAXException, IOException { // Initialize language table @@ -112,16 +94,6 @@ } /** - * Initialize the (required) markup language namespace definition. - * @param params The sitemap-supplied parameters - * @exception Exception Not actually thrown - */ - protected void setParameters(Parameters params) throws Exception { - this.uri = params.getParameter("uri", null); - this.prefix = params.getParameter("prefix", null); - } - - /** * Process additional configuration. Load supported programming * language definitions * @@ -191,6 +163,50 @@ return logicsheet; } + + /** + * Set the global component manager. + * @param manager The sitemap-specified component manager + */ + public void compose(ComponentManager manager) throws ComponentException { + this.manager = manager; + + // Initialize logicsheet cache + this.logicsheetCache = (Store) manager.lookup(Store.ROLE); + + // Initialize the URL factory source resolver + this.urlFactory = (URLFactory)this.manager.lookup(URLFactory.ROLE); + this.urlResolver = new URLFactorySourceResolver(this.urlFactory, manager); + } + + public void recycle() + { + this.logicSheetList.clear(); + } + + public void dispose() { + if (this.logicsheetCache != null) + this.manager.release(this.logicsheetCache); + this.logicsheetCache = null; + + if (this.urlFactory != null) + this.manager.release(this.urlFactory); + this.urlFactory = null; + this.urlResolver = null; + this.manager = null; + this.languages.clear(); + } + + /** + * Initialize the (required) markup language namespace definition. + * @param params The sitemap-supplied parameters + * @exception Exception Not actually thrown + */ + protected void setParameters(Parameters params) throws Exception { + this.uri = params.getParameter("uri", null); + this.prefix = params.getParameter("prefix", null); + } + /** * Return the source document's encoding. This can be <code>null</code> for 1.4 +8 -7 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/sitemap/SitemapMarkupLanguage.java Index: SitemapMarkupLanguage.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/sitemap/SitemapMarkupLanguage.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- SitemapMarkupLanguage.java 26 Jan 2002 17:13:33 -0000 1.3 +++ SitemapMarkupLanguage.java 29 Jan 2002 15:46:08 -0000 1.4 @@ -32,7 +32,7 @@ * <a href="http://xml.apache.org/cocoon2/userdocs/concepts/sitemap.html">Sitemap</a>. * * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> - * @version CVS $Revision: 1.3 $ $Date: 2002/01/26 17:13:33 $ + * @version CVS $Revision: 1.4 $ $Date: 2002/01/29 15:46:08 $ */ public class SitemapMarkupLanguage extends AbstractMarkupLanguage { @@ -41,12 +41,6 @@ */ private Set dependencies; - public void recycle() - { - super.recycle(); - this.dependencies.clear(); - } - /** * The default constructor. */ @@ -54,6 +48,13 @@ super(); dependencies = new HashSet(); } + + public void recycle() + { + super.recycle(); + this.dependencies.clear(); + } + /** * Return the Sitemap language name: <i>map</i> :-) 1.4 +8 -7 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/XSPMarkupLanguage.java Index: XSPMarkupLanguage.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/XSPMarkupLanguage.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- XSPMarkupLanguage.java 26 Jan 2002 17:13:33 -0000 1.3 +++ XSPMarkupLanguage.java 29 Jan 2002 15:46:08 -0000 1.4 @@ -34,7 +34,7 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a> * @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Sahuc</a> - * @version CVS $Revision: 1.3 $ $Date: 2002/01/26 17:13:33 $ + * @version CVS $Revision: 1.4 $ $Date: 2002/01/29 15:46:08 $ */ public class XSPMarkupLanguage extends AbstractMarkupLanguage { @@ -46,12 +46,6 @@ */ private Set dependencies; - public void recycle() - { - super.recycle(); - this.dependencies.clear(); - } - /** * The default constructor. */ @@ -59,6 +53,13 @@ super(); dependencies = new HashSet(); } + + public void recycle() + { + super.recycle(); + this.dependencies.clear(); + } + /** * Return the XSP language name: <i>xsp</i> :-)
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]