cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Carsten Ziegeler" <cziege...@sundn.de>
Subject AW: cvs commit: xml-cocoon/src/org/apache/cocoon/transformation TraxTransformer.java
Date Wed, 09 May 2001 12:29:54 GMT
Hi,

I cleaned the code of the TraxTransformer a little bit. The Stylesheets
are only cached if a last modification date is available, this means,
currently it is only used for files.

If someone of could please report if we still have problems when
the store for the TraxTransformer is turned on.

Carsten

>
> cziegeler    01/05/09 05:09:18
>
>   Modified:    src/org/apache/cocoon/transformation Tag: xml-cocoon2
>                         TraxTransformer.java
>   Log:
>   Cleaned up TraxTransformer
>
>   Revision  Changes    Path
>   No                   revision
>
>
>   No                   revision
>
>
>   1.1.2.31  +29 -33
> xml-cocoon/src/org/apache/cocoon/transformation/Attic/TraxTransformer.java
>
>   Index: TraxTransformer.java
>   ===================================================================
>   RCS file:
> /home/cvs/xml-cocoon/src/org/apache/cocoon/transformation/Attic/Tr
> axTransformer.java,v
>   retrieving revision 1.1.2.30
>   retrieving revision 1.1.2.31
>   diff -u -r1.1.2.30 -r1.1.2.31
>   --- TraxTransformer.java	2001/05/04 13:49:32	1.1.2.30
>   +++ TraxTransformer.java	2001/05/09 12:09:16	1.1.2.31
>   @@ -98,7 +98,7 @@
>     * @author <a href="mailto:dims@yahoo.com">Davanum Srinivas</a>
>     * @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
>     * @author <a href="mailto:giacomo@apache.org">Giacomo Pati</a>
>   - * @version CVS $Id: TraxTransformer.java,v 1.1.2.30
> 2001/05/04 13:49:32 giacomo Exp $
>   + * @version CVS $Id: TraxTransformer.java,v 1.1.2.31
> 2001/05/09 12:09:16 cziegeler Exp $
>     */
>    public class TraxTransformer extends ContentHandlerWrapper
>    implements Transformer, Composable, Recyclable, Configurable,
> Cacheable, Disposable {
>   @@ -138,12 +138,12 @@
>        private EntityResolver resolver;
>
>        TransformerHandler getTransformerHandler(EntityResolver resolver)
>   -      throws SAXException, ProcessingException, IOException,
> TransformerConfigurationException {
>   -        Templates templates = getTemplates(systemID, xsluri);
>   +    throws SAXException, ProcessingException, IOException,
> TransformerConfigurationException {
>   +        Templates templates = getTemplates();
>            if(templates == null) {
>                getLogger().debug("Creating new Templates in " +
> this + " for" + systemID + ":" + xsluri);
>   -            templates =
> getTransformerFactory().newTemplates(new SAXSource(new
> InputSource(systemID)));
>   -            putTemplates (systemID, xsluri, templates);
>   +            templates =
> getTransformerFactory().newTemplates(new SAXSource(this.inputSource));
>   +            putTemplates (templates);
>            } else {
>                getLogger().debug("Reusing Templates in " + this +
> " for" + systemID + ":" + xsluri);
>            }
>   @@ -152,8 +152,8 @@
>            if(handler == null) {
>                /* If there is a problem in getting the handler,
> try using a brand new Templates object */
>                getLogger().debug("Re-creating new Templates in "
> + this + " for" + systemID + ":" + xsluri);
>   -            templates =
> getTransformerFactory().newTemplates(new SAXSource(new
> InputSource(systemID)));
>   -            putTemplates (systemID, xsluri, templates);
>   +            templates =
> getTransformerFactory().newTemplates(new
> SAXSource(resolver.resolveEntity(null, this.xsluri)));
>   +            putTemplates (templates);
>                handler =
> getTransformerFactory().newTransformerHandler(templates);
>            }
>
>   @@ -161,54 +161,49 @@
>            return handler;
>        }
>
>   -    private Templates getTemplates (String systemID, String xsluri)
>   -       throws IOException {
>   +    private Templates getTemplates ()
>   +    throws IOException {
>            Templates templates = null;
>            if (this.useStore == false)
>                return null;
>
>   -        // Only local files are checked for modification for
> compatibility reasons!
>   -        // Using the entity resolver we get the filename of
> the current file:
>   -        // The systemID if such a resource starts with file://.
>   +        // only stylesheets with a last modification date are stored
>   +        if (this.xslFileLastModified != 0) {
>
>   -        // Is this a local file
>   -        if (systemID.startsWith(FILE) == true) {
>                // Stored is an array of the template and the caching time
>                if (store.containsKey(xsluri) == true) {
>                    Object[] templateAndTime = (Object[])store.get(xsluri);
>                    if(templateAndTime != null &&
> templateAndTime[1] != null) {
>   -                    File xslFile = new
> File(systemID.substring(FILE.length()));
>                        long storedTime =
> ((Long)templateAndTime[1]).longValue();
>   -                    if (storedTime < xslFile.lastModified()) {
>   -                        templates = null;
>   +                    if (storedTime < this.xslFileLastModified) {
>   +                        store.remove(xsluri);
>                        } else {
>                            templates = (Templates)templateAndTime[0];
>                        }
>                    }
>                }
>            } else {
>   -            // only the template is stored
>   +            // remove an old template if it exists
>                if (store.containsKey(xsluri) == true) {
>   -               templates = (Templates)store.get(xsluri);
>   +               store.remove(xsluri);
>                }
>            }
>            return templates;
>        }
>
>   -    private void putTemplates (String systemID, String xsluri,
> Templates templates)
>   -       throws IOException {
>   +    private void putTemplates (Templates templates)
>   +    throws IOException {
>            if (this.useStore == false)
>                return;
>   +
>   +        // only stylesheets with a last modification date are stored
>   +        if (this.xslFileLastModified != 0) {
>
>   -        // Is this a local file
>   -        if (systemID.startsWith(FILE) == true) {
>                // Stored is an array of the template and the current time
>                Object[] templateAndTime = new Object[2];
>                templateAndTime[0] = templates;
>   -            templateAndTime[1] = new Long(System.currentTimeMillis());
>   -            store.hold(xsluri, templateAndTime);
>   -        } else {
>   -            store.hold(xsluri,templates);
>   +            templateAndTime[1] = new Long(this.xslFileLastModified);
>   +            store.hold(this.xsluri, templateAndTime);
>            }
>        }
>
>   @@ -275,10 +270,13 @@
>            this.inputSource = resolver.resolveEntity(null, this.xsluri);
>            this.systemID = inputSource.getSystemId();
>            this.resolver = resolver;
>   -        if (this.systemID.startsWith("file:") == true) {
>   -            File xslFile = new
> File(this.systemID.substring("file:".length()));
>   +
>   +        this.xslFileLastModified = 0;
>   +        if (this.systemID.startsWith(FILE) == true) {
>   +            File xslFile = new
> File(this.systemID.substring(FILE.length()));
>                this.xslFileLastModified = xslFile.lastModified();
>            }
>   +        getLogger().debug("Using stylesheet: '"+this.xsluri+"'
> in " + this + ", last modified: " + this.xslFileLastModified);
>        }
>
>        /**
>   @@ -288,7 +286,7 @@
>         * @return The generated key hashes the src
>         */
>        public long generateKey() {
>   -        if (this.systemID.startsWith("file:") == true) {
>   +        if (this.xslFileLastModified != 0) {
>                return HashUtil.hash(this.xsluri);
>            } else {
>                return 0;
>   @@ -302,9 +300,8 @@
>         *         component is currently not cacheable.
>         */
>        public CacheValidity generateValidity() {
>   -        HashMap map = getLogicSheetParameters();
>   -
>            if (this.xslFileLastModified != 0) {
>   +            HashMap map = getLogicSheetParameters();
>                if (map == null) {
>                    return new
> TimeStampCacheValidity(this.xslFileLastModified);
>                } else {
>   @@ -519,7 +516,6 @@
>            this.systemID = null;
>            this.xsluri = null;
>            this.resolver = null;
>   -        this.xslFileLastModified = 0;
>            super.recycle();
>        }
>    }
>
>
>
>
> ----------------------------------------------------------------------
> In case of troubles, e-mail:     webmaster@xml.apache.org
> To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
> For additional commands, e-mail: cocoon-cvs-help@xml.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Mime
View raw message