[Yanel-dev] Re: [Yanel-commits] rev 46786 - public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform

Guillaume Déflache guillaume.deflache at wyona.com
Wed Jan 6 19:27:24 CET 2010


michi at wyona.com wrote:
> Author: michi
> Date: 2009-12-22 22:40:14 +0100 (Tue, 22 Dec 2009)
> New Revision: 46786
> 
> Modified:
>    public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform/ContactResource.java
> Log:
> check if global XSLT actually exists
> 
> Modified: public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform/ContactResource.java
> ===================================================================
> --- public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform/ContactResource.java	2009-12-22 21:38:18 UTC (rev 46785)
> +++ public/yanel/trunk/src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform/ContactResource.java	2009-12-22 21:40:14 UTC (rev 46786)
> @@ -125,14 +125,6 @@
>                  }
>              }
>  
> -            // create xslt transformer for global layout
> -            TransformerHandler xsltHandler2 = tf.newTransformerHandler(getGlobalXSLTStreamSource(path));
> -            transformer = xsltHandler2.getTransformer();
> -            transformer.setParameter("yanel.path.name", org.wyona.commons.io.PathUtil.getName(getPath()));
> -            transformer.setParameter("yanel.path", getPath());
> -            transformer.setParameter("yanel.back2context", PathUtil.backToContext(realm, getPath()));
> -            transformer.setParameter("yarep.back2realm", PathUtil.backToRealm(getPath()));
> -
>              // create xinclude transformer:
>              XIncludeTransformer xIncludeTransformer = new XIncludeTransformer();
>              ResourceResolver resolver = new ResourceResolver(this);
> @@ -152,8 +144,22 @@
>  
>              // chain everything together (create a pipeline):
>              xmlReader.setContentHandler(xsltHandler1);
> -            xsltHandler1.setResult(new SAXResult(xsltHandler2));
> -            xsltHandler2.setResult(new SAXResult(xIncludeTransformer));
> +
> +            // create xslt transformer for global layout
> +            StreamSource globalStreamSource = getGlobalXSLTStreamSource();
> +            if (globalStreamSource != null) {
> +                TransformerHandler xsltHandlerGlobal = tf.newTransformerHandler(globalStreamSource);
> +                transformer = xsltHandlerGlobal.getTransformer();
> +                transformer.setParameter("yanel.path.name", org.wyona.commons.io.PathUtil.getName(getPath()));
> +                transformer.setParameter("yanel.path", getPath());
> +                transformer.setParameter("yanel.back2context", PathUtil.backToContext(realm, getPath()));
> +                transformer.setParameter("yarep.back2realm", PathUtil.backToRealm(getPath()));
> +                xsltHandler1.setResult(new SAXResult(xsltHandlerGlobal));
> +                xsltHandlerGlobal.setResult(new SAXResult(xIncludeTransformer));
> +            } else {
> +                xsltHandler1.setResult(new SAXResult(xIncludeTransformer));
> +            }
> +
>              xIncludeTransformer.setResult(new SAXResult(i18nTransformer));
>              i18nTransformer.setResult(new SAXResult(serializer.asContentHandler()));
>              serializer.setOutputStream(baos);
> @@ -236,16 +242,21 @@
>  
>      /**
>       * Get global XSLT
> -     * @param path
>       */
> -    private StreamSource getGlobalXSLTStreamSource(Path path) throws NoSuchNodeException, RepositoryException, Exception {
> +    private StreamSource getGlobalXSLTStreamSource() throws NoSuchNodeException, RepositoryException, Exception {
>          String xsltPath = getResourceConfigProperty("xslt");
>          if (xsltPath != null) {
>              return new StreamSource(getRealm().getRepository().getNode(xsltPath).getInputStream());
>          }
> +
> +        log.warn("No global XSLT has been set/configured.");
> +        return null;
> +
> +/*
>          File xsltFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile().getAbsolutePath(), "xslt" + File.separator + "global.xsl");
>          log.error("DEBUG: XSLT file: " + xsltFile);
>          return new StreamSource(xsltFile);
> +*/
>      }
>  
>      /**
> 

Wouldn't inheriting from BasicXMLResource (have) help(ed) (see XXX on 
class declaration)?


More information about the Yanel-development mailing list