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 yo...@apache.org on 2006/05/21 23:55:12 UTC

svn commit: r408501 - in /incubator/solr/trunk: example/solr/conf/ src/java/org/apache/solr/core/ src/webapp/WEB-INF/ src/webapp/resources/admin/ src/webapp/src/org/apache/solr/servlet/

Author: yonik
Date: Sun May 21 14:55:12 2006
New Revision: 408501

URL: http://svn.apache.org/viewvc?rev=408501&view=rev
Log:
enable multiple solr webapps with JNDI config

Modified:
    incubator/solr/trunk/example/solr/conf/schema.xml
    incubator/solr/trunk/example/solr/conf/solrconfig.xml
    incubator/solr/trunk/src/java/org/apache/solr/core/Config.java
    incubator/solr/trunk/src/webapp/WEB-INF/web.xml
    incubator/solr/trunk/src/webapp/resources/admin/_info.jsp
    incubator/solr/trunk/src/webapp/resources/admin/header.jsp
    incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServlet.java
    incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrUpdateServlet.java

Modified: incubator/solr/trunk/example/solr/conf/schema.xml
URL: http://svn.apache.org/viewvc/incubator/solr/trunk/example/solr/conf/schema.xml?rev=408501&r1=408500&r2=408501&view=diff
==============================================================================
--- incubator/solr/trunk/example/solr/conf/schema.xml (original)
+++ incubator/solr/trunk/example/solr/conf/schema.xml Sun May 21 14:55:12 2006
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
 <!-- The Solr schema file. This file should be named "schema.xml" and
-     should be in the solrconf directory or located where the classloader 
-     for the Solr webapp can find it.
+ should be in the conf directory under the solr home
+ (i.e. ./solr/conf/schema.xml by default) 
+ or located where the classloader for the Solr webapp can find it.
 
  For more information, on how to customize this file, please see...
  http://wiki.apache.org/solr/SchemaXml
-
- -->
+-->
 
 <schema name="example" version="1.1">
   <types>

Modified: incubator/solr/trunk/example/solr/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/incubator/solr/trunk/example/solr/conf/solrconfig.xml?rev=408501&r1=408500&r2=408501&view=diff
==============================================================================
--- incubator/solr/trunk/example/solr/conf/solrconfig.xml (original)
+++ incubator/solr/trunk/example/solr/conf/solrconfig.xml Sun May 21 14:55:12 2006
@@ -3,7 +3,7 @@
 <config>
 
   <!-- Used to specify an alternate directory to hold all index data
-       other than the default ./solr/data
+       other than the default ./data under the Solr home.
        If replication is in use, this should match the replication configuration. -->
   <!--
   <dataDir>./solr/data</dataDir>

Modified: incubator/solr/trunk/src/java/org/apache/solr/core/Config.java
URL: http://svn.apache.org/viewvc/incubator/solr/trunk/src/java/org/apache/solr/core/Config.java?rev=408501&r1=408500&r2=408501&view=diff
==============================================================================
--- incubator/solr/trunk/src/java/org/apache/solr/core/Config.java (original)
+++ incubator/solr/trunk/src/java/org/apache/solr/core/Config.java Sun May 21 14:55:12 2006
@@ -214,23 +214,32 @@
     }
   }
 
-
-  private static String instance = project;
-  public static void setInstanceName(String name) {
-    instance = name;
+  private static String instanceDir; // solr home directory
+  private static String normalizeDir(String path) {
+    if (path==null) return null;
+    if ( !(path.endsWith("/") || path.endsWith("\\")) ) {
+      path+='/';
+    }
+    return path;
   }
-  public static String getInstanceName() {
-    return instance;
+
+  public static void setInstanceDir(String dir) {
+    instanceDir = normalizeDir(dir);
+    log.info("Solr home set to '" + instanceDir + "'");
   }
 
   public static String getInstanceDir() {
-    String str = System.getProperty(instance + ".solr.home");
-    if (str==null) {
-      str=instance + '/';
-    } else if ( !(str.endsWith("/") || str.endsWith("\\")) ) {
-      str+='/';
+    if (instanceDir==null) {
+      String prop = project + ".solr.home";
+      instanceDir = normalizeDir(System.getProperty(prop));
+      if (instanceDir==null) {
+        instanceDir=project + '/';
+        log.info("Solr home defaulted to '" + instanceDir + "'");
+      } else {
+        log.info("Solr home set to '" + instanceDir + "' from system property " + prop);
+      }
     }
-    return str;
+    return instanceDir;
   }
 
   // The directory where solr will look for config files by default.

Modified: incubator/solr/trunk/src/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/incubator/solr/trunk/src/webapp/WEB-INF/web.xml?rev=408501&r1=408500&r2=408501&view=diff
==============================================================================
--- incubator/solr/trunk/src/webapp/WEB-INF/web.xml (original)
+++ incubator/solr/trunk/src/webapp/WEB-INF/web.xml Sun May 21 14:55:12 2006
@@ -15,12 +15,13 @@
              "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"/>
    -->
 
+
   <servlet>
     <servlet-name>SolrServer</servlet-name>
     <display-name>Solr</display-name>
     <description>Solr Server</description>
     <servlet-class>org.apache.solr.servlet.SolrServlet</servlet-class>
-    <load-on-startup>0</load-on-startup>
+    <load-on-startup>1</load-on-startup>
   </servlet>
 
   <servlet>
@@ -28,7 +29,7 @@
     <display-name>SolrUpdate</display-name>
     <description>Solr Update Handler</description>
     <servlet-class>org.apache.solr.servlet.SolrUpdateServlet</servlet-class>
-    <load-on-startup>1</load-on-startup>
+    <load-on-startup>2</load-on-startup>
   </servlet>
 
   <servlet>

Modified: incubator/solr/trunk/src/webapp/resources/admin/_info.jsp
URL: http://svn.apache.org/viewvc/incubator/solr/trunk/src/webapp/resources/admin/_info.jsp?rev=408501&r1=408500&r2=408501&view=diff
==============================================================================
--- incubator/solr/trunk/src/webapp/resources/admin/_info.jsp (original)
+++ incubator/solr/trunk/src/webapp/resources/admin/_info.jsp Sun May 21 14:55:12 2006
@@ -3,6 +3,7 @@
                  org.apache.solr.schema.IndexSchema,
                  java.io.File"%>
 <%@ page import="java.net.InetAddress"%>
+<%@ page import="org.apache.solr.core.Config"%>
 
 <%
   SolrCore core = SolrCore.getSolrCore();
@@ -25,4 +26,5 @@
 
   String defaultSearch = SolrConfig.config.get("admin/defaultQuery/text()",null);
   String cwd=System.getProperty("user.dir");
+  String solrHome= Config.getInstanceDir();
 %>

Modified: incubator/solr/trunk/src/webapp/resources/admin/header.jsp
URL: http://svn.apache.org/viewvc/incubator/solr/trunk/src/webapp/resources/admin/header.jsp?rev=408501&r1=408500&r2=408501&view=diff
==============================================================================
--- incubator/solr/trunk/src/webapp/resources/admin/header.jsp (original)
+++ incubator/solr/trunk/src/webapp/resources/admin/header.jsp Sun May 21 14:55:12 2006
@@ -17,4 +17,4 @@
 <%= enabledStatus==null ? "" : (isEnabled ? " - Enabled" : " - Disabled") %> </h1>
 
 <%= hostname %>:<%= port %><br/>
-<%= cwd %>
+cwd=<%= cwd %>  SolrHome=<%= solrHome %>

Modified: incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServlet.java
URL: http://svn.apache.org/viewvc/incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServlet.java?rev=408501&r1=408500&r2=408501&view=diff
==============================================================================
--- incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServlet.java (original)
+++ incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrServlet.java Sun May 21 14:55:12 2006
@@ -16,23 +16,23 @@
 
 package org.apache.solr.servlet;
 
-import org.apache.solr.core.*;
-import org.apache.solr.request.*;
-import org.apache.solr.schema.IndexSchema;
-import org.apache.solr.util.StrUtils;
-
+import org.apache.solr.core.Config;
+import org.apache.solr.core.SolrCore;
+import org.apache.solr.core.SolrException;
+import org.apache.solr.request.SolrQueryResponse;
+import org.apache.solr.request.XMLResponseWriter;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.naming.NoInitialContextException;
 import javax.servlet.ServletException;
-import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.io.BufferedReader;
 import java.util.logging.Logger;
-import java.util.Map;
-import java.util.Set;
-import java.net.MalformedURLException;
 
 /**
  * @author yonik
@@ -47,13 +47,27 @@
 
   public void init() throws ServletException
   {
-    ServletContext ctx = getServletContext();
+    log.info("SolrServlet.init()");
     try {
-      System.out.println("RESOURCE URL FOR .="+ctx.getResource("/select"));
-    } catch (MalformedURLException e) {
-      e.printStackTrace();
-    }
+      Context c = new InitialContext();
 
+      /***
+      System.out.println("Enumerating JNDI Context=" + c);
+      NamingEnumeration<NameClassPair> en = c.list("java:comp/env");
+      while (en.hasMore()) {
+        NameClassPair ncp = en.next();
+        System.out.println("  ENTRY:" + ncp);
+      }
+      System.out.println("JNDI lookup=" + c.lookup("java:comp/env/solr/home"));
+      ***/
+
+      String home = (String)c.lookup("java:comp/env/solr/home");
+      if (home!=null) Config.setInstanceDir(home);
+    } catch (NoInitialContextException e) {
+      log.info("JNDI not configured for Solr (NoInitialContextEx)");
+    } catch (NamingException e) {
+      log.info("No /solr/home in JNDI");
+    }
 
     log.info("user.dir=" + System.getProperty("user.dir"));
     core = SolrCore.getSolrCore();

Modified: incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrUpdateServlet.java
URL: http://svn.apache.org/viewvc/incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrUpdateServlet.java?rev=408501&r1=408500&r2=408501&view=diff
==============================================================================
--- incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrUpdateServlet.java (original)
+++ incubator/solr/trunk/src/webapp/src/org/apache/solr/servlet/SolrUpdateServlet.java Sun May 21 14:55:12 2006
@@ -42,6 +42,7 @@
   public void init() throws ServletException
   {
     core = SolrCore.getSolrCore();
+    log.info("SolrUpdateServlet.init() done");
   }
 
   public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {