]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
NEW - bug 105: Pass parameters to XsltReportGenerator
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 22 Jan 2009 07:26:09 +0000 (07:26 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 22 Jan 2009 07:26:09 +0000 (07:26 +0000)
https://www.spartadn.com/bugzilla/show_bug.cgi?id=105

git-svn-id: https://svn.argeo.org/slc/trunk@2112 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

examples/org.argeo.slc.example01/src/slc/conf/runtime/default.xml
runtime/org.argeo.slc.support.castor/src/main/java/org/argeo/slc/xml/test/tree/XsltReportGenerator.java
runtime/org.argeo.slc.support.simple/src/main/resources/org/argeo/slc/core/test/tree/basicReport.xslt

index eb7204a9dc7da2b9fa608dad969c8e6b34a4b141..520e17547206180e7f8c143184e721fedc91dc05 100644 (file)
@@ -5,34 +5,38 @@
 
        <import
                resource="classpath:/org/argeo/slc/core/test/spring/applicationContext.xml" />
-       <import
-               resource="classpath:/org/argeo/slc/castor/spring/applicationContext.xml" />
+       <import resource="classpath:/org/argeo/slc/castor/spring.xml" />
 
-       <bean id="testResult"
-               parent="slcDefault.test.basicTreeTestResult">
-       <property name="attributes">
-            <map>
-                <entry key="test" value="TEST"/>
-            </map>
-        </property>       
+       <bean id="testResult" parent="slcDefault.test.basicTreeTestResult">
+               <property name="attributes">
+                       <map>
+                               <entry key="test" value="TEST" />
+                       </map>
+               </property>
                <property name="listeners">
                        <list merge="true">
-                               <ref bean="slcDefault.castor.xsltReportGenerator" />
+                               <ref bean="customXsltReportGenerator" />
                        </list>
                </property>
        </bean>
 
-       <bean id="testResult2"
-               parent="slcDefault.test.basicTreeTestResult">
+       <bean id="testResult2" parent="slcDefault.test.basicTreeTestResult">
                <property name="listeners">
                        <list merge="true">
-                               <ref bean="slcDefault.castor.xsltReportGenerator" />
+                               <ref bean="customXsltReportGenerator" />
                        </list>
                </property>
        </bean>
 
-       <bean name="executionBuildListener"
-               class="org.argeo.slc.ant.SlcExecutionBuildListener">
+       <bean id="customXsltReportGenerator" parent="slcDefault.castor.xsltReportGenerator">
+               <property name="xsltParameters">
+                       <map>
+                               <entry key="confDir" value="${slc.confDir}" />
+                       </map>
+               </property>
+       </bean>
+
+       <bean name="executionBuildListener" class="org.argeo.slc.ant.SlcExecutionBuildListener">
                <property name="logLevel" value="INFO" />
                <property name="notifiers">
                        <list>
index 51ad392b7cba99ef659c96ab7d02263c9015babf..11380875eda2bbf77eae47d5630bee8d1629c403 100644 (file)
@@ -4,6 +4,8 @@ import java.io.File;
 import java.io.FileOutputStream;\r
 import java.io.InputStream;\r
 import java.io.OutputStream;\r
+import java.util.HashMap;\r
+import java.util.Map;\r
 \r
 import javax.xml.parsers.DocumentBuilder;\r
 import javax.xml.parsers.DocumentBuilderFactory;\r
@@ -29,8 +31,9 @@ import org.argeo.slc.core.test.tree.TreeTestResult;
 import org.argeo.slc.test.TestResultListener;\r
 import org.argeo.slc.test.TestResultPart;\r
 \r
+/** Build a report based on a tree test result using an XSLT stylesheet. */\r
 public class XsltReportGenerator implements TestResultListener<TreeTestResult> {\r
-       private Log log = LogFactory.getLog(getClass());\r
+       private final static Log log = LogFactory.getLog(XsltReportGenerator.class);\r
 \r
        private DocumentBuilder documentBuilder = null;\r
 \r
@@ -45,6 +48,8 @@ public class XsltReportGenerator implements TestResultListener<TreeTestResult> {
 \r
        private Boolean logXml = false;\r
 \r
+       private Map<String, String> xsltParameters = new HashMap<String, String>();\r
+\r
        public void init() {\r
                if (templates != null)\r
                        return;\r
@@ -80,6 +85,13 @@ public class XsltReportGenerator implements TestResultListener<TreeTestResult> {
 \r
                try {\r
                        Transformer transformer = templates.newTransformer();\r
+                       for (String paramKey : xsltParameters.keySet()) {\r
+                               transformer\r
+                                               .setParameter(paramKey, xsltParameters.get(paramKey));\r
+                               if (log.isTraceEnabled())\r
+                                       log.trace("Set XSLT parameter " + paramKey + " to "\r
+                                                       + xsltParameters.get(paramKey));\r
+                       }\r
 \r
                        if (documentBuilder == null)\r
                                documentBuilder = DocumentBuilderFactory.newInstance()\r
@@ -154,4 +166,8 @@ public class XsltReportGenerator implements TestResultListener<TreeTestResult> {
                this.logXml = logXml;\r
        }\r
 \r
+       public void setXsltParameters(Map<String, String> xsltParameters) {\r
+               this.xsltParameters = xsltParameters;\r
+       }\r
+\r
 }\r
index 947cef0f9fe770462f7337d9352ddbfa9f8c75f1..37d76295cd1b065a84003affb675365d8c9f8418 100644 (file)
@@ -5,6 +5,8 @@
        exclude-result-prefixes="slc">\r
 \r
        <xsl:output method="html" omit-xml-declaration="yes" />\r
+       <xsl:param name="confDir" select="unkown_confDir"/>\r
+       \r
 \r
        <xsl:template match="/">\r
                <html>\r
@@ -16,6 +18,7 @@
                                        Result\r
                                        <xsl:value-of select="slc:tree-test-result/@uuid" />\r
                                </h1>\r
+                               <p>Conf dir: <xsl:value-of select="$confDir"/></p>\r
                                <xsl:for-each\r
                                        select="slc:tree-test-result/slc:result-parts/slc:result-part">\r
                                        <h2>\r