[Yanel-commits] rev 43977 - in public/yanel/trunk/src/contributions/resources/search/src: build java/org/wyona/yanel/impl/resources/search

michi at wyona.com michi at wyona.com
Tue Aug 4 14:11:13 CEST 2009


Author: michi
Date: 2009-08-04 14:11:12 +0200 (Tue, 04 Aug 2009)
New Revision: 43977

Modified:
   public/yanel/trunk/src/contributions/resources/search/src/build/dependencies.xml
   public/yanel/trunk/src/contributions/resources/search/src/java/org/wyona/yanel/impl/resources/search/SearchResource.java
Log:
different providers added

Modified: public/yanel/trunk/src/contributions/resources/search/src/build/dependencies.xml
===================================================================
--- public/yanel/trunk/src/contributions/resources/search/src/build/dependencies.xml	2009-08-04 12:09:50 UTC (rev 43976)
+++ public/yanel/trunk/src/contributions/resources/search/src/build/dependencies.xml	2009-08-04 12:11:12 UTC (rev 43977)
@@ -10,10 +10,12 @@
       <dependency groupId="wyona-org-yanel" artifactId="yanel-core" version="${yanel.source.version}"/>
       <dependency groupId="wyona-org-yanel" artifactId="yanel-impl" version="${yanel.source.version}"/>
       <dependency groupId="javax.servlet" artifactId="servlet-api" version="2.3"/>
+      <dependency groupId="wyona-org-meguni" artifactId="wyona-org-meguni" version="0.1-rREVISION"/>
     </artifact:dependencies>
 
     <artifact:dependencies pathId="maven2.resource.classpath" filesetId="maven2.resource.fileset">
       <remoteRepository refid="wyona.remote.repository"/>
+      <dependency groupId="wyona-org-meguni" artifactId="wyona-org-meguni" version="0.1-rREVISION"/>
       <!-- No resource specific libs yet -->
     </artifact:dependencies>
 

Modified: public/yanel/trunk/src/contributions/resources/search/src/java/org/wyona/yanel/impl/resources/search/SearchResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/search/src/java/org/wyona/yanel/impl/resources/search/SearchResource.java	2009-08-04 12:09:50 UTC (rev 43976)
+++ public/yanel/trunk/src/contributions/resources/search/src/java/org/wyona/yanel/impl/resources/search/SearchResource.java	2009-08-04 12:11:12 UTC (rev 43977)
@@ -11,6 +11,9 @@
 
 import org.apache.log4j.Logger;
 
+import org.wyona.meguni.parser.Parser;
+import org.wyona.meguni.util.ResultSet;
+
 /**
  * Search resource
  */
@@ -38,12 +41,9 @@
                     if (provider.equals("yanel")) {
                         results = getLocalResults(query);
                     } else if (provider.equals("google")) {
-                        log.warn("Provider '" + provider + "' not implemented yet!");
-                        results = new Result[0];
-                        log.warn("Provider '" + provider + "' not implemented yet!");
+                        results = getGoogleResults(query);
                     } else if (provider.equals("bing")) {
-                        results = new Result[0];
-                        log.warn("Provider '" + provider + "' not implemented yet!");
+                        results = getMSNResults(query);
                     } else {
                         results = getLocalResults(query);
                         log.warn("No such provider: " + provider);
@@ -54,7 +54,7 @@
                     log.warn("No search provider specified!");
                 }
 
-                sb.append("<y:provider>" + provider + "</y:provider>");
+                sb.append("<y:provider id=\"" + provider + "\">" + provider + "</y:provider>");
 
                 if (results != null && results.length > 0) {
                     sb.append("<y:results>");
@@ -95,6 +95,47 @@
     }
 
     /**
+     *
+     */
+    private Result[] getGoogleResults(String query) throws Exception {
+        String className = getResourceConfigProperty("parser");
+        if (className == null) className = "org.wyona.meguni.parser.impl.GoogleParser";
+        //if (className == null) className = "org.wyona.meguni.parser.impl.MSNParser";
+        Parser parser = (Parser) Class.forName(className).newInstance();
+        ResultSet rs = parser.parse(query);
+
+        if (rs != null && rs.size() > 0) {
+            Result[] results = new Result[rs.size()];
+            for (int i = 0; i < rs.size(); i++) {
+                results[i] = new Result(rs.get(i).url.toString(), null, null, null);
+            }
+            return results;
+        } else {
+            return new Result[0];
+        }
+    }
+
+    /**
+     *
+     */
+    private Result[] getMSNResults(String query) throws Exception {
+        String className = getResourceConfigProperty("parser");
+        if (className == null) className = "org.wyona.meguni.parser.impl.MSNParser";
+        Parser parser = (Parser) Class.forName(className).newInstance();
+        ResultSet rs = parser.parse(query);
+
+        if (rs != null && rs.size() > 0) {
+            Result[] results = new Result[rs.size()];
+            for (int i = 0; i < rs.size(); i++) {
+                results[i] = new Result(rs.get(i).url.toString(), null, null, null);
+            }
+            return results;
+        } else {
+            return new Result[0];
+        }
+    }
+
+    /**
      * @see ViewableV2#exists()
      */
     public boolean exists() {



More information about the Yanel-commits mailing list