[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