[Yanel-commits] rev 58790 - public/yanel/trunk/src/realms/welcome-admin/yanel/resources/show-realms/src/java/org/wyona/yanel/impl/resources/showrealms

michi at wyona.com michi at wyona.com
Fri Jun 17 15:05:31 CEST 2011


Author: michi
Date: 2011-06-17 15:05:31 +0200 (Fri, 17 Jun 2011)
New Revision: 58790

Modified:
   public/yanel/trunk/src/realms/welcome-admin/yanel/resources/show-realms/src/java/org/wyona/yanel/impl/resources/showrealms/ShowRealms.java
Log:
xml generation refactored

Modified: public/yanel/trunk/src/realms/welcome-admin/yanel/resources/show-realms/src/java/org/wyona/yanel/impl/resources/showrealms/ShowRealms.java
===================================================================
--- public/yanel/trunk/src/realms/welcome-admin/yanel/resources/show-realms/src/java/org/wyona/yanel/impl/resources/showrealms/ShowRealms.java	2011-06-17 12:45:48 UTC (rev 58789)
+++ public/yanel/trunk/src/realms/welcome-admin/yanel/resources/show-realms/src/java/org/wyona/yanel/impl/resources/showrealms/ShowRealms.java	2011-06-17 13:05:31 UTC (rev 58790)
@@ -58,15 +58,43 @@
      * @see org.wyona.yanel.core.api.attributes.ViewableV2#getView(String)
      */
     public View getView(String viewId) throws Exception {
+        StringBuilder sb = getXML();
+
+        if (viewId != null && viewId.equals("source-xml")) {
+            View xmlView = new View();
+            xmlView.setMimeType("application/xml");
+            xmlView.setInputStream(new java.io.StringBufferInputStream(sb.toString()));
+            return xmlView;
+        }
+
+        // INFO: Init XSLT
+        Transformer transformer = TransformerFactory.newInstance().newTransformer(getXSLTStreamSource(getPath(), getRealm().getRepository()));
+        transformer.setParameter("yanel.path.name", org.wyona.commons.io.PathUtil.getName(getPath()));
+        transformer.setParameter("servlet.context", request.getContextPath());
+        transformer.setParameter("yanel.path", getPath());
+        transformer.setParameter("yanel.back2context", backToRoot(getPath(), ""));
+        transformer.setParameter("yarep.back2realm", backToRoot(getPath(), ""));
+
+        // TODO: Is this the best way to generate an InputStream from an
+        // OutputStream?
+        java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
+        transformer.transform(new StreamSource(new java.io.StringBufferInputStream(sb.toString())), new StreamResult(baos));
+
+
         View defaultView = new View();
-        defaultView.setMimeType("application/xml");
-        StringBuffer sb = new StringBuffer("<?xml version=\"1.0\"?>");
-        defaultView.setInputStream(new java.io.StringBufferInputStream(sb
-                .toString()));
-        String servletContext =  request.getContextPath();
+        defaultView.setMimeType(getMimeType(getPath()));
+        defaultView.setMimeType("application/xhtml+xml");
+        defaultView.setInputStream(new java.io.ByteArrayInputStream(baos.toByteArray()));
+
+        return defaultView;
+    }
+
+    /**
+     * Generate XML
+     */
+    private StringBuilder getXML() {
+        StringBuilder sb = new StringBuilder("<?xml version=\"1.0\"?>");
         
-        Repository contentRepo = getRealm().getRepository();
-        
         sb.append("<yanel-info>");
         sb.append("<realms config=\"" + yanel.getRealmConfiguration().getRealmsConfigurationFile() + " \">");
         
@@ -116,27 +144,7 @@
         
         sb.append("</resourcetypes>");
         sb.append("</yanel-info>");
-
-        // INFO: Init XSLT
-        Transformer transformer = TransformerFactory.newInstance().newTransformer(getXSLTStreamSource(getPath(), contentRepo));
-        transformer.setParameter("yanel.path.name", org.wyona.commons.io.PathUtil.getName(getPath()));
-        transformer.setParameter("servlet.context", servletContext);
-        transformer.setParameter("yanel.path", getPath());
-        transformer.setParameter("yanel.back2context", backToRoot(getPath(), ""));
-        transformer.setParameter("yarep.back2realm", backToRoot(getPath(), ""));
-
-        // TODO: Is this the best way to generate an InputStream from an
-        // OutputStream?
-        java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
-        transformer.transform(new StreamSource(new java.io.StringBufferInputStream(sb.toString())), new StreamResult(baos));
-
-
-        defaultView.setInputStream(new java.io.ByteArrayInputStream(baos.toByteArray()));
-        defaultView.setMimeType(getMimeType(getPath()));
-        defaultView.setInputStream(new java.io.ByteArrayInputStream(baos.toByteArray()));
-
-        defaultView.setMimeType("application/xhtml+xml");
-        return defaultView;
+        return sb;
     }
 
     /**



More information about the Yanel-commits mailing list