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 ry...@apache.org on 2007/09/09 06:34:54 UTC
svn commit: r573946 - in /lucene/solr/trunk/src: java/org/apache/solr/core/
java/org/apache/solr/handler/admin/ java/org/apache/solr/highlight/
java/org/apache/solr/schema/ java/org/apache/solr/search/
java/org/apache/solr/tst/ java/org/apache/solr/upd...
Author: ryan
Date: Sat Sep 8 21:34:44 2007
New Revision: 573946
URL: http://svn.apache.org/viewvc?rev=573946&view=rev
Log:
SOLR-215 -- removing static references to "instanceDir" -- this will let each core have its own instanceDir and ClassLoader
Modified:
lucene/solr/trunk/src/java/org/apache/solr/core/Config.java
lucene/solr/trunk/src/java/org/apache/solr/core/QuerySenderListener.java
lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java
lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java
lucene/solr/trunk/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
lucene/solr/trunk/src/java/org/apache/solr/highlight/SolrHighlighter.java
lucene/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java
lucene/solr/trunk/src/java/org/apache/solr/search/CacheConfig.java
lucene/solr/trunk/src/java/org/apache/solr/tst/OldRequestHandler.java
lucene/solr/trunk/src/java/org/apache/solr/tst/TestRequestHandler.java
lucene/solr/trunk/src/java/org/apache/solr/update/processor/ChainedUpdateProcessorFactory.java
lucene/solr/trunk/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java
lucene/solr/trunk/src/java/org/apache/solr/update/processor/RunUpdateProcessorFactory.java
lucene/solr/trunk/src/java/org/apache/solr/update/processor/UpdateRequestProcessorFactory.java
lucene/solr/trunk/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
lucene/solr/trunk/src/test/org/apache/solr/update/processor/CustomUpdateRequestProcessorFactory.java
lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-transformers.xml
lucene/solr/trunk/src/webapp/src/org/apache/solr/servlet/DirectSolrConnection.java
Modified: lucene/solr/trunk/src/java/org/apache/solr/core/Config.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/Config.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/Config.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/Config.java Sat Sep 8 21:34:44 2007
@@ -268,7 +268,7 @@
private static final String base = "org.apache" + "." + project;
private static final String[] packages = {"","analysis.","schema.","handler.","search.","update.","core.","request.","update.processor.","util."};
- public static Class findClass(String cname, String... subpackages) {
+ public Class findClass(String cname, String... subpackages) {
ClassLoader loader = getClassLoader();
if (subpackages.length==0) subpackages = packages;
@@ -294,16 +294,24 @@
}
}
- public static Object newInstance(String cname, String... subpackages) {
+ public Object newInstance(String cname, String... subpackages) {
Class clazz = findClass(cname,subpackages);
+ if( clazz == null ) {
+ throw new SolrException( SolrException.ErrorCode.SERVER_ERROR,
+ "Can not find class: "+cname + " in " + getClassLoader(), false);
+ }
try {
return clazz.newInstance();
- } catch (Exception e) {
- throw new SolrException( SolrException.ErrorCode.SERVER_ERROR,"Error instantiating class " + clazz, e, false);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+
+ throw new SolrException( SolrException.ErrorCode.SERVER_ERROR,
+ "Error instantiating class: '" + clazz.getName()+"'", e, false );
}
}
- private static String instanceDir; // solr home directory
+ private String instanceDir; // solr home directory
private static String normalizeDir(String path) {
if (path==null) return null;
if ( !(path.endsWith("/") || path.endsWith("\\")) ) {
@@ -312,14 +320,14 @@
return path;
}
- public static void setInstanceDir(String dir) {
+ public void setInstanceDir(String dir) {
instanceDir = normalizeDir(dir);
classLoader = null;
log.info("Solr home set to '" + instanceDir + "'");
}
- public static String getInstanceDir() {
- if ( ! isInstanceDirInitialized() ) {
+ public String getInstanceDir() {
+ if ( !isInstanceDirInitialized() ) {
String home = null;
// Try JNDI
try {
@@ -355,7 +363,7 @@
return instanceDir;
}
- public static boolean isInstanceDirInitialized() {
+ public boolean isInstanceDirInitialized() {
return instanceDir != null;
}
@@ -372,7 +380,7 @@
* found in the "lib/" directory in the "Solr Home" directory.
* <p>
*/
- static ClassLoader getClassLoader() {
+ ClassLoader getClassLoader() {
if (null == classLoader) {
// NB5.5/win32/1.5_10: need to go thru local var or classLoader is not set!
ClassLoader loader = Thread.currentThread().getContextClassLoader();
Modified: lucene/solr/trunk/src/java/org/apache/solr/core/QuerySenderListener.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/QuerySenderListener.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/QuerySenderListener.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/QuerySenderListener.java Sat Sep 8 21:34:44 2007
@@ -37,7 +37,6 @@
@Override
public void newSearcher(SolrIndexSearcher newSearcher, SolrIndexSearcher currentSearcher) {
final SolrIndexSearcher searcher = newSearcher;
- SolrCore core = SolrCore.getSolrCore();
log.info("QuerySenderListener sending requests to " + newSearcher);
for (NamedList nlst : (List<NamedList>)args.get("queries")) {
try {
Modified: lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/RequestHandlers.java Sat Sep 8 21:34:44 2007
@@ -126,14 +126,14 @@
*
* Handlers will be registered and initialized in the order they appear in solrconfig.xml
*/
- void initHandlersFromConfig( Config config )
+ void initHandlersFromConfig( final Config config )
{
final RequestHandlers handlers = this;
AbstractPluginLoader<SolrRequestHandler> loader =
new AbstractPluginLoader<SolrRequestHandler>( "[solrconfig.xml] requestHandler", true, true )
{
@Override
- protected SolrRequestHandler create( SolrCore core, String name, String className, Node node ) throws Exception
+ protected SolrRequestHandler create( Config config, String name, String className, Node node ) throws Exception
{
String startup = DOMUtil.getAttr( node, "startup" );
if( startup != null ) {
@@ -146,7 +146,7 @@
throw new Exception( "Unknown startup value: '"+startup+"' for: "+className );
}
}
- return super.create( core, name, className, node );
+ return super.create( config, name, className, node );
}
@Override
@@ -163,7 +163,7 @@
NodeList nodes = (NodeList)config.evaluate("requestHandler", XPathConstants.NODESET);
// Load the handlers and get the default one
- SolrRequestHandler defaultHandler = loader.load( core, nodes );
+ SolrRequestHandler defaultHandler = loader.load( config, nodes );
if( defaultHandler == null ) {
defaultHandler = get(RequestHandlers.DEFAULT_HANDLER_NAME);
if( defaultHandler == null ) {
Modified: lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java Sat Sep 8 21:34:44 2007
@@ -21,7 +21,6 @@
import java.io.IOException;
import java.util.Collections;
import java.util.ArrayList;
-import java.util.LinkedHashMap;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -34,7 +33,6 @@
import javax.xml.xpath.XPathConstants;
import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
@@ -57,7 +55,6 @@
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.search.SolrIndexSearcher;
import org.apache.solr.update.DirectUpdateHandler;
-import org.apache.solr.update.SolrIndexConfig;
import org.apache.solr.update.SolrIndexWriter;
import org.apache.solr.update.UpdateHandler;
import org.apache.solr.update.processor.ChainedUpdateProcessorFactory;
@@ -134,7 +131,7 @@
for (int i=0; i<nodes.getLength(); i++) {
Node node = nodes.item(i);
String className = DOMUtil.getAttr(node,"class");
- SolrEventListener listener = (SolrEventListener)Config.newInstance(className);
+ SolrEventListener listener = (SolrEventListener)solrConfig.newInstance(className);
listener.init(DOMUtil.childNodesToNamedList(node));
lst.add(listener);
log.info("added SolrEventListener: " + listener);
@@ -209,6 +206,7 @@
clazz = solrConfig.findClass(className);
if (cast != null && !cast.isAssignableFrom(clazz))
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,"Error Instantiating "+msg+", "+className+ " is not a " +cast.getName());
+
java.lang.reflect.Constructor cons = clazz.getConstructor(new Class[]{SolrCore.class});
return (T) cons.newInstance(new Object[]{this});
} catch(NoSuchMethodException xnomethod) {
@@ -235,9 +233,10 @@
// The registry of known cores
- private static Map<String, SolrCore> cores = new HashMap();
+ private static Map<String, SolrCore> cores = new HashMap<String, SolrCore>();
/** Alias for SolrCore.getSolrCore(null). */
+ @Deprecated
public static SolrCore getSolrCore() {
return getSolrCore(null);
}
@@ -328,7 +327,7 @@
else
this.schema = schema;
- this.dataDir = dataDir;
+ this.dataDir = dataDir;
if (name == null)
this.index_path = dataDir + "/index";
else
@@ -339,33 +338,33 @@
booleanQueryMaxClauseCount();
this.maxWarmingSearchers = solrConfig.getInt("query/maxWarmingSearchers",Integer.MAX_VALUE);
- parseListeners();
+ parseListeners();
- initIndex();
-
- initWriters();
-
- // Processors initialized before the handlers
- updateProcessors = loadUpdateProcessors();
- reqHandlers = new RequestHandlers(this);
- reqHandlers.initHandlersFromConfig( solrConfig );
+ initIndex();
+
+ initWriters();
+
+ // Processors initialized before the handlers
+ updateProcessors = loadUpdateProcessors();
+ reqHandlers = new RequestHandlers(this);
+ reqHandlers.initHandlersFromConfig( solrConfig );
- // TODO? could select the highlighter implementation
- highlighter = new SolrHighlighter();
+ // TODO? could select the highlighter implementation
+ highlighter = new SolrHighlighter();
highlighter.initalize( solrConfig );
-
- try {
- // Open the searcher *before* the handler so we don't end up opening
- // one in the middle.
- getSearcher(false,false,null);
-
- updateHandler = createUpdateHandler(
- solrConfig.get("updateHandler/@class", DirectUpdateHandler.class.getName())
- );
+
+ try {
+ // Open the searcher *before* the handler so we don't end up opening
+ // one in the middle.
+ getSearcher(false,false,null);
+
+ updateHandler = createUpdateHandler(
+ solrConfig.get("updateHandler/@class", DirectUpdateHandler.class.getName())
+ );
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
// register this core
synchronized(cores) {
SolrCore previous = cores.get(name);
@@ -383,12 +382,13 @@
final Map<String,UpdateRequestProcessorFactory> map = new HashMap<String, UpdateRequestProcessorFactory>();
// If this is a more general use-case, this could be a regular type
+ final SolrCore thiscore = this;
AbstractPluginLoader<UpdateRequestProcessorFactory> loader
= new AbstractPluginLoader<UpdateRequestProcessorFactory>( "updateRequestProcessor" ) {
@Override
protected void init(UpdateRequestProcessorFactory plugin, Node node) throws Exception {
- plugin.init( node );
+ plugin.init( thiscore, node );
}
@Override
@@ -398,10 +398,10 @@
};
NodeList nodes = (NodeList)solrConfig.evaluate("updateRequestProcessor/factory", XPathConstants.NODESET);
- UpdateRequestProcessorFactory def = loader.load( nodes );
+ UpdateRequestProcessorFactory def = loader.load( solrConfig, nodes );
if( def == null ) {
def = new ChainedUpdateProcessorFactory(); // the default
- def.init( null );
+ def.init( thiscore, null );
}
map.put( null, def );
map.put( "", def );
@@ -956,7 +956,7 @@
NamedListPluginLoader<QueryResponseWriter> loader =
new NamedListPluginLoader<QueryResponseWriter>( "[solrconfig.xml] "+xpath, responseWriters );
- defaultResponseWriter = loader.load( this, nodes );
+ defaultResponseWriter = loader.load( solrConfig, nodes );
// configure the default response writer; this one should never be null
if (defaultResponseWriter == null) {
Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java Sat Sep 8 21:34:44 2007
@@ -88,7 +88,7 @@
// Solr Home
SimpleOrderedMap<Object> dirs = new SimpleOrderedMap<Object>();
- dirs.add( "instance", new File( Config.getInstanceDir() ).getAbsolutePath() );
+ dirs.add( "instance", new File( core.getSolrConfig().getInstanceDir() ).getAbsolutePath() );
dirs.add( "data", new File( core.getDataDir() ).getAbsolutePath() );
dirs.add( "index", new File( core.getIndexDir() ).getAbsolutePath() );
info.add( "directory", dirs );
Modified: lucene/solr/trunk/src/java/org/apache/solr/highlight/SolrHighlighter.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/highlight/SolrHighlighter.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/highlight/SolrHighlighter.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/highlight/SolrHighlighter.java Sat Sep 8 21:34:44 2007
@@ -58,6 +58,10 @@
import org.apache.solr.util.plugin.NamedListPluginLoader;
import org.w3c.dom.NodeList;
+/**
+ *
+ * @since solr 1.3
+ */
public class SolrHighlighter
{
public static Logger log = Logger.getLogger(SolrHighlighter.class.getName());
@@ -70,7 +74,7 @@
protected final Map<String,SolrFragmenter> fragmenters =
Collections.synchronizedMap( new HashMap<String, SolrFragmenter>() );
- public void initalize( Config config )
+ public void initalize( final Config config )
{
formatters.clear();
fragmenters.clear();
@@ -78,7 +82,7 @@
// Load the fragmenters
String xpath = "highlighting/fragmenter";
NamedListPluginLoader<SolrFragmenter> fragloader = new NamedListPluginLoader<SolrFragmenter>( xpath, fragmenters );
- SolrFragmenter frag = fragloader.load( (NodeList)config.evaluate( xpath, XPathConstants.NODESET ) );
+ SolrFragmenter frag = fragloader.load( config, (NodeList)config.evaluate( xpath, XPathConstants.NODESET ) );
if( frag == null ) {
frag = new GapFragmenter();
}
@@ -88,7 +92,7 @@
// Load the formatters
xpath = "highlighting/formatter";
NamedListPluginLoader<SolrFormatter> fmtloader = new NamedListPluginLoader<SolrFormatter>( xpath, formatters );
- SolrFormatter fmt = fmtloader.load( (NodeList)config.evaluate( xpath, XPathConstants.NODESET ) );
+ SolrFormatter fmt = fmtloader.load( config, (NodeList)config.evaluate( xpath, XPathConstants.NODESET ) );
if( fmt == null ) {
fmt = new HtmlFormatter();
}
Modified: lucene/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/schema/IndexSchema.java Sat Sep 8 21:34:44 2007
@@ -77,7 +77,7 @@
return solrConfig;
}
/**
- * Direct acess to the InputStream for the schemaFile used by this instance.
+ * Direct access to the InputStream for the schemaFile used by this instance.
*
* @see Config#openResource
*/
@@ -293,7 +293,7 @@
}
- private void readSchema(SolrConfig solrConfig) {
+ private void readSchema(final SolrConfig solrConfig) {
log.info("Reading Solr Schema");
try {
@@ -320,9 +320,9 @@
AbstractPluginLoader<FieldType> loader = new AbstractPluginLoader<FieldType>( "[schema.xml] fieldType" ) {
@Override
- protected FieldType create( SolrCore core, String name, String className, Node node ) throws Exception
+ protected FieldType create( Config config, String name, String className, Node node ) throws Exception
{
- FieldType ft = (FieldType)Config.newInstance(className);
+ FieldType ft = (FieldType)solrConfig.newInstance(className);
ft.setTypeName(name);
String expression = "./analyzer[@type='query']";
@@ -359,7 +359,7 @@
String expression = "/schema/types/fieldtype | /schema/types/fieldType";
NodeList nodes = (NodeList) xpath.evaluate(expression, document, XPathConstants.NODESET);
- loader.load( nodes );
+ loader.load( solrConfig, nodes );
Modified: lucene/solr/trunk/src/java/org/apache/solr/search/CacheConfig.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/search/CacheConfig.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/search/CacheConfig.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/search/CacheConfig.java Sat Sep 8 21:34:44 2007
@@ -25,7 +25,6 @@
import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.core.SolrConfig;
-import org.apache.solr.core.Config;
import javax.xml.xpath.XPathConstants;
@@ -38,7 +37,7 @@
*/
public class CacheConfig {
private String nodeName;
- private Map args;
+ private Map<String,String> args;
private String cacheImpl;
private Class clazz;
@@ -61,7 +60,7 @@
if (nodes==null || nodes.getLength()==0) return null;
CacheConfig[] configs = new CacheConfig[nodes.getLength()];
for (int i=0; i<nodes.getLength(); i++) {
- configs[i] = getConfig(nodes.item(i));
+ configs[i] = getConfig(solrConfig, nodes.item(i));
}
return configs;
}
@@ -69,11 +68,11 @@
public static CacheConfig getConfig(SolrConfig solrConfig, String xpath) {
Node node = (Node)solrConfig.getNode(xpath, false);
- return getConfig(node);
+ return getConfig(solrConfig, node);
}
- public static CacheConfig getConfig(Node node) {
+ public static CacheConfig getConfig(SolrConfig solrConfig, Node node) {
if (node==null) return null;
CacheConfig config = new CacheConfig();
config.nodeName = node.getNodeName();
@@ -85,9 +84,9 @@
config.cacheImpl = (String)config.args.get("class");
config.regenImpl = (String)config.args.get("regenerator");
- config.clazz = Config.findClass(config.cacheImpl);
+ config.clazz = solrConfig.findClass(config.cacheImpl);
if (config.regenImpl != null) {
- config.regenerator = (CacheRegenerator) Config.newInstance(config.regenImpl);
+ config.regenerator = (CacheRegenerator) solrConfig.newInstance(config.regenImpl);
}
Modified: lucene/solr/trunk/src/java/org/apache/solr/tst/OldRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/tst/OldRequestHandler.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/tst/OldRequestHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/tst/OldRequestHandler.java Sat Sep 8 21:34:44 2007
@@ -37,16 +37,10 @@
/**
* @version $Id$
*/
-
-
+@Deprecated
public class OldRequestHandler implements SolrRequestHandler {
- SolrCore core;
long numRequests;
long numErrors;
-
- public OldRequestHandler(SolrCore core) {
- this.core = core;
- }
public void init(NamedList args) {
SolrCore.log.log(Level.INFO, "Unused request handler arguments:" + args);
Modified: lucene/solr/trunk/src/java/org/apache/solr/tst/TestRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/tst/TestRequestHandler.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/tst/TestRequestHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/tst/TestRequestHandler.java Sat Sep 8 21:34:44 2007
@@ -41,20 +41,13 @@
/**
* @version $Id$
*/
-
+@Deprecated
public class TestRequestHandler implements SolrRequestHandler {
private static Logger log = Logger.getLogger(SolrIndexSearcher.class.getName());
- SolrCore core;
-
- public TestRequestHandler(SolrCore core) {
- this.core = core;
- }
public void init(NamedList args) {
SolrCore.log.log(Level.INFO, "Unused request handler arguments:" + args);
}
-
-
// use test instead of assert since asserts may be turned off
public void test(boolean condition) {
Modified: lucene/solr/trunk/src/java/org/apache/solr/update/processor/ChainedUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/update/processor/ChainedUpdateProcessorFactory.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/update/processor/ChainedUpdateProcessorFactory.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/update/processor/ChainedUpdateProcessorFactory.java Sat Sep 8 21:34:44 2007
@@ -25,6 +25,7 @@
import javax.xml.xpath.XPathFactory;
import org.apache.solr.common.SolrException;
+import org.apache.solr.core.SolrCore;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.SolrQueryResponse;
import org.apache.solr.util.plugin.AbstractPluginLoader;
@@ -54,7 +55,7 @@
protected UpdateRequestProcessorFactory[] factory;
@Override
- public void init( Node node ) {
+ public void init( final SolrCore core, final Node node ) {
final ArrayList<UpdateRequestProcessorFactory> factories = new ArrayList<UpdateRequestProcessorFactory>();
if( node != null ) {
// Load and initialize the plugin chain
@@ -62,7 +63,7 @@
= new AbstractPluginLoader<UpdateRequestProcessorFactory>( "processor chain", false, false ) {
@Override
protected void init(UpdateRequestProcessorFactory plugin, Node node) throws Exception {
- plugin.init( node );
+ plugin.init( core, node );
}
@Override
@@ -74,7 +75,7 @@
XPath xpath = XPathFactory.newInstance().newXPath();
try {
- loader.load( (NodeList) xpath.evaluate( "chain", node, XPathConstants.NODESET ) );
+ loader.load( core.getSolrConfig(), (NodeList) xpath.evaluate( "chain", node, XPathConstants.NODESET ) );
}
catch (XPathExpressionException e) {
throw new SolrException( SolrException.ErrorCode.SERVER_ERROR,
Modified: lucene/solr/trunk/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java Sat Sep 8 21:34:44 2007
@@ -25,6 +25,7 @@
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.NamedList;
+import org.apache.solr.core.SolrCore;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.SolrQueryResponse;
import org.apache.solr.update.AddUpdateCommand;
@@ -45,7 +46,7 @@
int maxNumToLog = 8;
@Override
- public void init( Node node ) {
+ public void init( final SolrCore core, final Node node ) {
if( node != null ) {
NamedList<Object> args = DOMUtil.childNodesToNamedList( node );
SolrParams params = SolrParams.toSolrParams( args );
Modified: lucene/solr/trunk/src/java/org/apache/solr/update/processor/RunUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/update/processor/RunUpdateProcessorFactory.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/update/processor/RunUpdateProcessorFactory.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/update/processor/RunUpdateProcessorFactory.java Sat Sep 8 21:34:44 2007
@@ -19,6 +19,7 @@
import java.io.IOException;
+import org.apache.solr.core.SolrCore;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.SolrQueryResponse;
import org.apache.solr.update.AddUpdateCommand;
@@ -38,7 +39,7 @@
public class RunUpdateProcessorFactory extends UpdateRequestProcessorFactory
{
@Override
- public void init( Node node ) {
+ public void init( final SolrCore core, final Node node ) {
}
Modified: lucene/solr/trunk/src/java/org/apache/solr/update/processor/UpdateRequestProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/update/processor/UpdateRequestProcessorFactory.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/update/processor/UpdateRequestProcessorFactory.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/update/processor/UpdateRequestProcessorFactory.java Sat Sep 8 21:34:44 2007
@@ -17,6 +17,7 @@
package org.apache.solr.update.processor;
+import org.apache.solr.core.SolrCore;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.SolrQueryResponse;
import org.w3c.dom.Node;
@@ -28,7 +29,7 @@
*/
public abstract class UpdateRequestProcessorFactory
{
- public void init( Node node )
+ public void init( final SolrCore core, final Node node )
{
// could process the Node
}
Modified: lucene/solr/trunk/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java Sat Sep 8 21:34:44 2007
@@ -78,11 +78,9 @@
* @param node - the XML node defining this plugin
*/
@SuppressWarnings("unchecked")
- protected T create( SolrCore core, String name, String className, Node node ) throws Exception
+ protected T create( Config config, String name, String className, Node node ) throws Exception
{
- if (core != null)
- return (T) core.createInstance(className, null, "plug-in");
- return (T) Config.newInstance( className, getDefaultPackages() );
+ return (T) config.newInstance( className, getDefaultPackages() );
}
/**
@@ -123,10 +121,7 @@
* If a default element is defined, it will be returned from this function.
*
*/
- public T load( NodeList nodes ) {
- return load(null, nodes);
- }
- public T load( SolrCore core, NodeList nodes )
+ public T load( Config config, NodeList nodes )
{
List<PluginInitInfo> info = new ArrayList<PluginInitInfo>();
T defaultPlugin = null;
@@ -142,7 +137,7 @@
String className = DOMUtil.getAttr(node,"class", type);
String defaultStr = DOMUtil.getAttr(node,"default", null );
- T plugin = create(core, name, className, node );
+ T plugin = create(config, name, className, node );
log.info("created "+name+": " + plugin.getClass().getName() );
// Either initialize now or wait till everything has been registered
Modified: lucene/solr/trunk/src/test/org/apache/solr/update/processor/CustomUpdateRequestProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/org/apache/solr/update/processor/CustomUpdateRequestProcessorFactory.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/org/apache/solr/update/processor/CustomUpdateRequestProcessorFactory.java (original)
+++ lucene/solr/trunk/src/test/org/apache/solr/update/processor/CustomUpdateRequestProcessorFactory.java Sat Sep 8 21:34:44 2007
@@ -19,6 +19,7 @@
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.common.util.NamedList;
+import org.apache.solr.core.SolrCore;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.SolrQueryResponse;
import org.apache.solr.update.processor.UpdateRequestProcessor;
@@ -34,7 +35,7 @@
public NamedList args = null;
@Override
- public void init( Node node )
+ public void init( final SolrCore core, final Node node )
{
if( node != null ) {
args = DOMUtil.childNodesToNamedList( node );
Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-transformers.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-transformers.xml?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-transformers.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-transformers.xml Sat Sep 8 21:34:44 2007
@@ -19,26 +19,22 @@
<config>
- <requestHandler name="custom" class="solr.CustomUpdateRequestHandler" >
- <str name="update.processor.factory">custom</str>
- </requestHandler>
-
<updateRequestProcessor>
<factory name="standard" class="solr.ChainedUpdateProcessorFactory" >
<chain class="solr.LogUpdateProcessorFactory" >
- <int name="maxNumToLog">100</int>
+ <int name="maxNumToLog">100</int>
</chain>
<chain class="solr.CustomUpdateRequestProcessorFactory" >
- <lst name="name">
- <str name="n1">x1</str>
- <str name="n2">x2</str>
- </lst>
+ <lst name="name">
+ <str name="n1">x1</str>
+ <str name="n2">x2</str>
+ </lst>
</chain>
<chain class="solr.CustomUpdateRequestProcessorFactory" >
- <lst name="name">
- <str name="nA">xA</str>
- <str name="nA">xA</str>
- </lst>
+ <lst name="name">
+ <str name="nA">xA</str>
+ <str name="nA">xA</str>
+ </lst>
</chain>
</factory>
Modified: lucene/solr/trunk/src/webapp/src/org/apache/solr/servlet/DirectSolrConnection.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/webapp/src/org/apache/solr/servlet/DirectSolrConnection.java?rev=573946&r1=573945&r2=573946&view=diff
==============================================================================
--- lucene/solr/trunk/src/webapp/src/org/apache/solr/servlet/DirectSolrConnection.java (original)
+++ lucene/solr/trunk/src/webapp/src/org/apache/solr/servlet/DirectSolrConnection.java Sat Sep 8 21:34:44 2007
@@ -100,16 +100,16 @@
}
}
- // Set the instance directory
- if( instanceDir != null ) {
- if( Config.isInstanceDirInitialized() ) {
- String dir = Config.getInstanceDir();
- if( !dir.equals( instanceDir ) ) {
- throw new SolrException( SolrException.ErrorCode.SERVER_ERROR, "already initalized: "+dir );
- }
- }
- Config.setInstanceDir( instanceDir );
- }
+// TODO! Set the instance directory
+// if( instanceDir != null ) {
+// if( Config.isInstanceDirInitialized() ) {
+// String dir = Config.getInstanceDir();
+// if( !dir.equals( instanceDir ) ) {
+// throw new SolrException( SolrException.ErrorCode.SERVER_ERROR, "already initalized: "+dir );
+// }
+// }
+// Config.setInstanceDir( instanceDir );
+// }
SolrConfig config = SolrConfig.createInstance("solrconfig.xml");
// If the Data directory is specified, initialize SolrCore directly
@@ -129,7 +129,6 @@
*
* String json = solr.request( "/select?qt=dismax&wt=json&q=...", null );
* String xml = solr.request( "/update", "<add><doc><field ..." );
- *
*/
public String request( String pathAndParams, String body ) throws Exception
{