You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by eh...@apache.org on 2009/02/25 13:10:04 UTC

svn commit: r747761 - /lucene/solr/trunk/contrib/velocity/src/main/java/org/apache/solr/request/VelocityResponseWriter.java

Author: ehatcher
Date: Wed Feb 25 12:10:03 2009
New Revision: 747761

URL: http://svn.apache.org/viewvc?rev=747761&view=rev
Log:
Add Velocity engine and list tool objects, and default template based on path if not explicitly specified

Modified:
    lucene/solr/trunk/contrib/velocity/src/main/java/org/apache/solr/request/VelocityResponseWriter.java

Modified: lucene/solr/trunk/contrib/velocity/src/main/java/org/apache/solr/request/VelocityResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/velocity/src/main/java/org/apache/solr/request/VelocityResponseWriter.java?rev=747761&r1=747760&r2=747761&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/velocity/src/main/java/org/apache/solr/request/VelocityResponseWriter.java (original)
+++ lucene/solr/trunk/contrib/velocity/src/main/java/org/apache/solr/request/VelocityResponseWriter.java Wed Feb 25 12:10:03 2009
@@ -24,12 +24,7 @@
 import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
-import org.apache.velocity.tools.generic.ComparisonDateTool;
-import org.apache.velocity.tools.generic.DateTool;
-import org.apache.velocity.tools.generic.EscapeTool;
-import org.apache.velocity.tools.generic.MathTool;
-import org.apache.velocity.tools.generic.NumberTool;
-import org.apache.velocity.tools.generic.SortTool;
+import org.apache.velocity.tools.generic.*;
 import org.apache.velocity.app.VelocityEngine;
 
 import java.io.File;
@@ -76,9 +71,11 @@
     context.put("esc", new EscapeTool());
     context.put("sort", new SortTool());
     context.put("number", new NumberTool());
+    context.put("list", new ListTool());
     context.put("date", new ComparisonDateTool());
     context.put("math", new MathTool());
-   
+    context.put("engine", engine);  // for $engine.resourceExists(...)
+
     String layout_template = request.getParams().get("v.layout");
     String json_wrapper = request.getParams().get("v.json");
     boolean wrap_response = (layout_template != null) || (json_wrapper !=null);
@@ -128,8 +125,19 @@
 
   private Template getTemplate(VelocityEngine engine, SolrQueryRequest request) throws IOException {
     Template template;
+
+    String template_name = request.getParams().get("v.template");
+    String qt = request.getParams().get("qt");
+    String path = (String) request.getContext().get("path");
+    if (template_name == null && path != null) {
+      template_name = path;
+    }  // TODO: path is never null, so qt won't get picked up  maybe special case for '/select' to use qt, otherwise use path?
+    if (template_name == null && qt != null) {
+      template_name = qt;
+    }
+    if (template_name == null) template_name = "index";
     try {
-      template = engine.getTemplate(request.getParams().get("v.template", "browse") + ".vm");
+      template = engine.getTemplate(template_name + ".vm");
     } catch (Exception e) {
       throw new IOException(e.getMessage());
     }