diff --git a/source/java/org/alfresco/web/templating/OutputUtil.java b/source/java/org/alfresco/web/templating/OutputUtil.java index 221796c509..6ce5399db3 100644 --- a/source/java/org/alfresco/web/templating/OutputUtil.java +++ b/source/java/org/alfresco/web/templating/OutputUtil.java @@ -18,6 +18,8 @@ package org.alfresco.web.templating; import java.io.OutputStream; import java.io.OutputStreamWriter; +import java.util.HashMap; +import java.util.Map; import org.alfresco.model.ContentModel; import org.alfresco.repo.avm.AVMNodeConverter; @@ -71,7 +73,10 @@ public class OutputUtil LOGGER.debug("Created file node for file: " + fullAvmPath); final OutputStreamWriter out = new OutputStreamWriter(fileOut); - tom.generate(xml, tt, sandBoxUrl, out); + + final HashMap parameters = + getOutputMethodParameters(sandBoxUrl, fileName, generatedFileName); + tom.generate(xml, tt, parameters, out); out.close(); NodeRef outputNodeRef = AVMNodeConverter.ToNodeRef(-1, fullAvmPath); @@ -136,7 +141,9 @@ public class OutputUtil } final OutputStreamWriter writer = new OutputStreamWriter(out); - tom.generate(xml, tt, sandBoxUrl, writer); + final HashMap parameters = + getOutputMethodParameters(sandBoxUrl, fileName, generatedFileName); + tom.generate(xml, tt, parameters, writer); writer.close(); LOGGER.debug("generated " + fileName + " using " + tom); } @@ -148,4 +155,15 @@ public class OutputUtil throw e; } } + + private static HashMap getOutputMethodParameters(final String sandBoxUrl, + final String fileName, + final String generatedFileName) + { + final HashMap parameters = new HashMap(); + parameters.put("avm_store_url", sandBoxUrl); + parameters.put("derived_from_file_name", fileName); + parameters.put("generated_file_name", generatedFileName); + return parameters; + } } diff --git a/source/java/org/alfresco/web/templating/TemplateOutputMethod.java b/source/java/org/alfresco/web/templating/TemplateOutputMethod.java index ed0e5ab309..bef2d55da1 100644 --- a/source/java/org/alfresco/web/templating/TemplateOutputMethod.java +++ b/source/java/org/alfresco/web/templating/TemplateOutputMethod.java @@ -18,6 +18,7 @@ package org.alfresco.web.templating; import java.io.Serializable; import java.io.Writer; +import java.util.Map; import org.w3c.dom.Document; /** @@ -37,7 +38,7 @@ public interface TemplateOutputMethod */ public void generate(final Document xmlContent, final TemplateType tt, - final String sandBoxUrl, + final Map parameters, final Writer out) throws Exception; diff --git a/source/java/org/alfresco/web/templating/xforms/FreeMarkerOutputMethod.java b/source/java/org/alfresco/web/templating/xforms/FreeMarkerOutputMethod.java index 5dde4b54f8..1ef78f806d 100644 --- a/source/java/org/alfresco/web/templating/xforms/FreeMarkerOutputMethod.java +++ b/source/java/org/alfresco/web/templating/xforms/FreeMarkerOutputMethod.java @@ -17,6 +17,7 @@ package org.alfresco.web.templating.xforms; import java.io.*; +import java.util.Map; import org.alfresco.web.templating.*; import org.chiba.xml.util.DOMUtil; @@ -33,7 +34,7 @@ public class FreeMarkerOutputMethod public void generate(final Document xmlContent, final TemplateType tt, - final String sandBoxUrl, + final Map parameters, final Writer out) { } diff --git a/source/java/org/alfresco/web/templating/xforms/XSLTOutputMethod.java b/source/java/org/alfresco/web/templating/xforms/XSLTOutputMethod.java index 492e7a9963..fba24b598b 100644 --- a/source/java/org/alfresco/web/templating/xforms/XSLTOutputMethod.java +++ b/source/java/org/alfresco/web/templating/xforms/XSLTOutputMethod.java @@ -43,6 +43,7 @@ import org.w3c.dom.Document; import org.w3c.dom.Node; import org.xml.sax.SAXException; import org.alfresco.service.cmr.repository.NodeRef; +import java.util.Map; public class XSLTOutputMethod implements TemplateOutputMethod @@ -62,7 +63,7 @@ public class XSLTOutputMethod public void generate(final Document xmlContent, final TemplateType tt, - final String sandBoxUrl, + final Map parameters, final Writer out) throws ParserConfigurationException, TransformerConfigurationException, @@ -70,6 +71,8 @@ public class XSLTOutputMethod SAXException, IOException { + // XXXarielb - dirty - fix this + final String sandBoxUrl = (String)parameters.get("avm_store_url"); final TransformerFactory tf = TransformerFactory.newInstance(); final TemplatingService ts = TemplatingService.getInstance(); final DOMSource source = new DOMSource(ts.parseXML(this.nodeRef)); @@ -103,7 +106,12 @@ public class XSLTOutputMethod } } }); - t.setParameter("avm_store_url", sandBoxUrl); + + for (Map.Entry e : parameters.entrySet()) + { + t.setParameter(e.getKey(), e.getValue()); + } + LOGGER.debug("setting parameter avm_store_url=" + sandBoxUrl); final StreamResult result = new StreamResult(out); try diff --git a/source/test-resources/websites/alfresco/ROOT/media/releases/get_company_footer_simple_type.jsp b/source/test-resources/websites/alfresco/ROOT/media/releases/get_company_footer_simple_type.jsp index 907382a3d1..95d96bc81f 100644 --- a/source/test-resources/websites/alfresco/ROOT/media/releases/get_company_footer_simple_type.jsp +++ b/source/test-resources/websites/alfresco/ROOT/media/releases/get_company_footer_simple_type.jsp @@ -1,12 +1,12 @@ + xmlns:alfresco="http://www.alfresco.org/alfresco" + elementFormDefault="qualified"> diff --git a/source/test-resources/xforms/demos/press-release/company-footer.xsl b/source/test-resources/xforms/demos/press-release/company-footer.xsl deleted file mode 100644 index ffa9fa7d3b..0000000000 --- a/source/test-resources/xforms/demos/press-release/company-footer.xsl +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - this template produces no output. the xml is used by press-release.xsl - - diff --git a/source/test-resources/xforms/demos/press-release/press-release.xsl b/source/test-resources/xforms/demos/press-release/press-release.xsl index 240557b3c2..7d0a89dac3 100644 --- a/source/test-resources/xforms/demos/press-release/press-release.xsl +++ b/source/test-resources/xforms/demos/press-release/press-release.xsl @@ -3,6 +3,7 @@ xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:alfresco="http://www.alfresco.org/alfresco" + xmlns:fn="http://www.w3.org/2005/02/xpath-functions" exclude-result-prefixes="xhtml"> + @@ -98,6 +100,10 @@

Chuck Tanowitz
Schwartz Communications
+1 781 684-0770
alfresco@schwartz-pr.com

+ + + view plain text version +