[Yanel-commits] rev 20321 - in public/yanel/trunk/src: contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources realms/yanel-website/content/rtd

simon at wyona.com simon at wyona.com
Fri Nov 24 18:02:29 CET 2006


Author: simon
Date: 2006-11-24 18:02:27 +0100 (Fri, 24 Nov 2006)
New Revision: 20321

Modified:
   public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java
   public/yanel/trunk/src/realms/yanel-website/content/rtd/nutch.rtd
Log:
nutch layout modified to fit with yanel. thanks to david!

Modified: public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java	2006-11-24 16:57:55 UTC (rev 20320)
+++ public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java	2006-11-24 17:02:27 UTC (rev 20321)
@@ -82,6 +82,7 @@
     private String language = "en";
     //messages is the name of the ResourceBundle
     private String messages = "messages";
+    private RepoPath rp = null;
 
     /**
      * 
@@ -111,7 +112,7 @@
         this.path = path;
         this.language = language;
         try {
-            RepoPath rp = new org.wyona.yarep.util.YarepUtil().getRepositoryPath(new org.wyona.yarep.core.Path(path.toString()),
+            rp = new org.wyona.yarep.util.YarepUtil().getRepositoryPath(new org.wyona.yarep.core.Path(path.toString()),
                     getRepositoryFactory());
             repository = rp.getRepo();
 
@@ -216,23 +217,54 @@
             if (viewId != null && viewId.equals("source")) {
                 transformer = TransformerFactory.newInstance().newTransformer();
             } else {
-                transformer = TransformerFactory.newInstance().newTransformer(getXSLTStreamSource(path, repository));
+                File xsltFile = org.wyona.commons.io.FileUtil.file(rtd.getConfigFile().getParentFile().getAbsolutePath(), "xslt" + File.separator + "result2xhtml.xsl");
+                transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(xsltFile));
+                transformer.setParameter("yanel.path.name", path.getName());
+                transformer.setParameter("yanel.path", path.toString());
+                transformer.setParameter("yanel.back2context", backToRoot(path, ""));
+                transformer.setParameter("yarep.back2realm", backToRoot(new org.wyona.yanel.core.Path(rp.getPath().toString()), ""));
             }
             ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
             transformer.transform(new javax.xml.transform.dom.DOMSource(document), new StreamResult(byteArrayOutputStream));
+            
             InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
-            //return inputStream;
-
-            // Internationalization
             I18nTransformer i18nTransformer = new I18nTransformer(messages, language);
             SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser();
             saxParser.parse(inputStream, i18nTransformer);
-            return i18nTransformer.getInputStream();
+            
+            transformer = TransformerFactory.newInstance().newTransformer(getXSLTStreamSource(path, repository));
+            transformer.setParameter("yanel.path.name", path.getName());
+            transformer.setParameter("yanel.path", path.toString());
+            transformer.setParameter("yanel.back2context", backToRoot(path, ""));
+            transformer.setParameter("yarep.back2realm", backToRoot(new org.wyona.yanel.core.Path(rp.getPath().toString()), ""));
+            byteArrayOutputStream = new ByteArrayOutputStream();
+            transformer.transform(new StreamSource(i18nTransformer.getInputStream()), new StreamResult(byteArrayOutputStream));
+            
+            return new java.io.ByteArrayInputStream(byteArrayOutputStream.toByteArray());
         } catch (Exception e) {
             log.error(e.getMessage(), e);
         }
         return null;
     }
+
+    /**
+     *
+     */
+    private String backToRoot(Path path, String backToRoot) {
+        org.wyona.commons.io.Path parent = path.getParent();
+        if (parent != null && !isRoot(parent)) {
+            return backToRoot(new Path(parent.toString()), backToRoot + "../");
+        }
+        return backToRoot;
+    }
+
+    /**
+     *
+     */
+    private boolean isRoot(org.wyona.commons.io.Path path) {
+        if (path.toString().equals(File.separator)) return true;
+        return false;
+    }
     
     /**
      * this method creates a document for the given searchTerm starting at result <start> 

Modified: public/yanel/trunk/src/realms/yanel-website/content/rtd/nutch.rtd
===================================================================
--- public/yanel/trunk/src/realms/yanel-website/content/rtd/nutch.rtd	2006-11-24 16:57:55 UTC (rev 20320)
+++ public/yanel/trunk/src/realms/yanel-website/content/rtd/nutch.rtd	2006-11-24 17:02:27 UTC (rev 20321)
@@ -1,2 +1,3 @@
 <{http://www.wyona.org/yanel/resource/1.0}nutch/>
 #xslt: /xslt/myxslt.xsl
+xslt: /xslt/global.xsl




More information about the Yanel-commits mailing list