[Yanel-commits] rev 23297 - in public/yanel/trunk/src/resources: directory/src/java/org/wyona/yanel/impl/resources xml/src/java/org/wyona/yanel/impl/resources

michi at wyona.com michi at wyona.com
Mon Mar 19 10:19:17 CET 2007


Author: michi
Date: 2007-03-19 10:19:15 +0100 (Mon, 19 Mar 2007)
New Revision: 23297

Modified:
   public/yanel/trunk/src/resources/directory/src/java/org/wyona/yanel/impl/resources/DirectoryResource.java
   public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java
Log:
getProperties implemented

Modified: public/yanel/trunk/src/resources/directory/src/java/org/wyona/yanel/impl/resources/DirectoryResource.java
===================================================================
--- public/yanel/trunk/src/resources/directory/src/java/org/wyona/yanel/impl/resources/DirectoryResource.java	2007-03-19 09:19:06 UTC (rev 23296)
+++ public/yanel/trunk/src/resources/directory/src/java/org/wyona/yanel/impl/resources/DirectoryResource.java	2007-03-19 09:19:15 UTC (rev 23297)
@@ -200,9 +200,7 @@
      * Get XSLT
      */
     private String[] getXSLTprop() {
-        String xslt = getRTI().getProperty("xslt");
-        if (xslt != null) return xslt.split(",");
-        return null;
+        return getRTI().getProperties("xslt");
     }
 
     /**

Modified: public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java
===================================================================
--- public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java	2007-03-19 09:19:06 UTC (rev 23296)
+++ public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java	2007-03-19 09:19:15 UTC (rev 23297)
@@ -128,7 +128,7 @@
                 return defaultView;
             }
 
-            String xsltPath = getXSLTPath(getPath());
+            String[] xsltPath = getXSLTPath(getPath());
             if (xsltPath != null) {
                 
                 // create reader:
@@ -138,18 +138,22 @@
                 
                 // create xslt transformer:
                 SAXTransformerFactory tf = (SAXTransformerFactory)TransformerFactory.newInstance();
-                TransformerHandler xsltHandler = tf.newTransformerHandler(new StreamSource(repo.getNode(xsltPath).getInputStream()));
-                xsltHandler.getTransformer().setParameter("yanel.path.name", PathUtil.getName(getPath()));
-                xsltHandler.getTransformer().setParameter("yanel.path", getPath());
-                xsltHandler.getTransformer().setParameter("yanel.back2context", PathUtil.backToContext(realm, getPath()));
-                xsltHandler.getTransformer().setParameter("yarep.back2realm", PathUtil.backToRealm(getPath()));
-                String userAgent = getRequest().getHeader("User-Agent");
-                String os = getOS(userAgent);
-                if (os != null) xsltHandler.getTransformer().setParameter("os", os);
-                String client = getClient(userAgent);
-                if (client != null) xsltHandler.getTransformer().setParameter("client", client);
-                xsltHandler.getTransformer().setParameter("language", getLanguage());
-
+                
+                TransformerHandler[] xsltHandlers = new TransformerHandler[xsltPath.length];
+                for (int i = 0; i < xsltPath.length; i++) {
+                    xsltHandlers[i] = tf.newTransformerHandler(new StreamSource(repo.getNode(xsltPath[i]).getInputStream()));
+                    xsltHandlers[i].getTransformer().setParameter("yanel.path.name", PathUtil.getName(getPath()));
+                    xsltHandlers[i].getTransformer().setParameter("yanel.path", getPath());
+                    xsltHandlers[i].getTransformer().setParameter("yanel.back2context", PathUtil.backToContext(realm, getPath()));
+                    xsltHandlers[i].getTransformer().setParameter("yarep.back2realm", PathUtil.backToRealm(getPath()));
+                    String userAgent = getRequest().getHeader("User-Agent");
+                    String os = getOS(userAgent);
+                    if (os != null) xsltHandlers[i].getTransformer().setParameter("os", os);
+                    String client = getClient(userAgent);
+                    if (client != null) xsltHandlers[i].getTransformer().setParameter("client", client);
+                    xsltHandlers[i].getTransformer().setParameter("language", getLanguage());
+                }
+                
                 // create i18n transformer:
                 I18nTransformer2 i18nTransformer = new I18nTransformer2("global", getLanguage());
                 i18nTransformer.setEntityResolver(catalogResolver);
@@ -159,8 +163,11 @@
                 ByteArrayOutputStream baos = new ByteArrayOutputStream();
                 
                 // chain everything together (create a pipeline):
-                xmlReader.setContentHandler(xsltHandler);
-                xsltHandler.setResult(new SAXResult(i18nTransformer));
+                xmlReader.setContentHandler(xsltHandlers[0]);
+                for (int i=0; i<xsltHandlers.length-1; i++) {
+                    xsltHandlers[i].setResult(new SAXResult(xsltHandlers[i+1]));
+                }
+                xsltHandlers[xsltHandlers.length-1].setResult(new SAXResult(i18nTransformer));
                 i18nTransformer.setResult(new SAXResult(serializer.asContentHandler()));
                 serializer.setOutputStream(baos);
                 
@@ -308,8 +315,8 @@
     /**
      * Get XSLT path
      */
-    private String getXSLTPath(String path) throws Exception {
-        String xsltPath = getResourceConfigProperty("xslt");
+    private String[] getXSLTPath(String path) throws Exception {
+        String[] xsltPath = getResourceConfigProperties("xslt");
         if (xsltPath != null) return xsltPath;
         log.info("No XSLT Path within: " + path);
         return null;
@@ -444,16 +451,26 @@
             return null;
         }
     }
-
+    
     /**
      * Get property value from resource configuration
      */
     private String getResourceConfigProperty(String name) throws Exception {
-        ResourceConfiguration rc = getConfiguration();
-        if (rc != null) return rc.getProperty(name);
-        return getRTI().getProperty(name);
+    	ResourceConfiguration rc = getConfiguration();
+    	if (rc != null) return rc.getProperty(name);
+    	return getRTI().getProperty(name);
     }
+    
+    /**
+     * Get property value from resource configuration
+     */
+    private String[] getResourceConfigProperties(String name) throws Exception {
+    	ResourceConfiguration rc = getConfiguration();
+    	if (rc != null) return rc.getProperties(name);
+    	return getRTI().getProperties(name);
+    }
 
+
     /**
      *
      */




More information about the Yanel-commits mailing list