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 {