You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jd...@apache.org on 2012/08/03 17:03:06 UTC
svn commit: r1369009 - in /lucene/dev/branches/branch_4x/solr: ./
contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/
contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/
contrib/dataimporthandler/src/test-fi...
Author: jdyer
Date: Fri Aug 3 15:03:06 2012
New Revision: 1369009
URL: http://svn.apache.org/viewvc?rev=1369009&view=rev
Log:
SOLR-2115: more flexible loading of DIH configuration
Modified:
lucene/dev/branches/branch_4x/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ContextImpl.java
lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImportHandler.java
lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java
lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/RequestInfo.java
lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/DIHConfiguration.java
lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-solrconfig-end-to-end.xml
lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestDIHEndToEnd.java
Modified: lucene/dev/branches/branch_4x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/CHANGES.txt?rev=1369009&r1=1369008&r2=1369009&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Fri Aug 3 15:03:06 2012
@@ -206,6 +206,14 @@ Other Changes
* SOLR-3682: Fail to parse schema.xml if uniqueKeyField is multivalued (hossman)
+* SOLR-2115: DIH no longer requires the "config" parameter to be specified in solrconfig.xml.
+ Instead, the configuration is loaded and parsed with every import. This allows the use of
+ a different configuration with each import, and makes correcting configuration errors simpler.
+ Also, the configuration itself can be passed using the "dataConfig" parameter rather than
+ using a file (this previously worked in debug mode only). When configuration errors are
+ encountered, the error message is returned in XML format. (James Dyer)
+
+
================== 4.0.0-ALPHA ==================
More information about this release, including any errata related to the
release notes, upgrade instructions, or other changes may be found online at:
Modified: lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ContextImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ContextImpl.java?rev=1369009&r1=1369008&r2=1369009&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ContextImpl.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ContextImpl.java Fri Aug 3 15:03:06 2012
@@ -152,7 +152,7 @@ public class ContextImpl extends Context
}
} else if (SCOPE_SOLR_CORE.equals(scope)){
if(dataImporter != null) {
- dataImporter.getCoreScopeSession().put(name, val);
+ dataImporter.putToCoreScopeSession(name, val);
}
}
}
@@ -171,7 +171,7 @@ public class ContextImpl extends Context
DocBuilder.DocWrapper doc = getDocument();
return doc == null ? null: doc.getSessionAttribute(name);
} else if (SCOPE_SOLR_CORE.equals(scope)){
- return dataImporter == null ? null : dataImporter.getCoreScopeSession().get(name);
+ return dataImporter == null ? null : dataImporter.getFromCoreScopeSession(name);
}
return null;
}
Modified: lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImportHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImportHandler.java?rev=1369009&r1=1369008&r2=1369009&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImportHandler.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImportHandler.java Fri Aug 3 15:03:06 2012
@@ -71,14 +71,10 @@ public class DataImportHandler extends R
private DataImporter importer;
- private Map<String, Properties> dataSources = new HashMap<String, Properties>();
-
private boolean debugEnabled = true;
private String myName = "dataimport";
- private Map<String , Object> coreScopeSession = new HashMap<String, Object>();
-
@Override
@SuppressWarnings("unchecked")
public void init(NamedList args) {
@@ -102,21 +98,10 @@ public class DataImportHandler extends R
}
}
debugEnabled = StrUtils.parseBool((String)initArgs.get(ENABLE_DEBUG), true);
- NamedList defaults = (NamedList) initArgs.get("defaults");
- if (defaults != null) {
- String configLoc = (String) defaults.get("config");
- if (configLoc != null && configLoc.length() != 0) {
- processConfiguration(defaults);
- final InputSource is = new InputSource(core.getResourceLoader().openResource(configLoc));
- is.setSystemId(SystemIdResolver.createSystemIdFromResourceName(configLoc));
- importer = new DataImporter(is, core,
- dataSources, coreScopeSession, myName);
- }
- }
+ importer = new DataImporter(core, myName);
} catch (Throwable e) {
LOG.error( DataImporter.MSG.LOAD_EXP, e);
- throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,
- DataImporter.MSG.INVALID_CONFIG, e);
+ throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, DataImporter.MSG.LOAD_EXP, e);
}
}
@@ -136,48 +121,35 @@ public class DataImportHandler extends R
}
}
SolrParams params = req.getParams();
+ NamedList defaultParams = (NamedList) initArgs.get("defaults");
RequestInfo requestParams = new RequestInfo(getParamsMap(params), contentStream);
String command = requestParams.getCommand();
-
- if (DataImporter.SHOW_CONF_CMD.equals(command)) {
- // Modify incoming request params to add wt=raw
- ModifiableSolrParams rawParams = new ModifiableSolrParams(req.getParams());
- rawParams.set(CommonParams.WT, "raw");
- req.setParams(rawParams);
- String dataConfigFile = defaults.get("config");
- ContentStreamBase content = new ContentStreamBase.StringStream(SolrWriter
- .getResourceAsString(req.getCore().getResourceLoader().openResource(
- dataConfigFile)));
- rsp.add(RawResponseWriter.CONTENT, content);
+ if (DataImporter.SHOW_CONF_CMD.equals(command)) {
+ String dataConfigFile = params.get("config");
+ String dataConfig = params.get("dataConfig");
+ if(dataConfigFile != null) {
+ dataConfig = SolrWriter.getResourceAsString(req.getCore().getResourceLoader().openResource(dataConfigFile));
+ }
+ if(dataConfig==null) {
+ rsp.add("status", DataImporter.MSG.NO_CONFIG_FOUND);
+ } else {
+ // Modify incoming request params to add wt=raw
+ ModifiableSolrParams rawParams = new ModifiableSolrParams(req.getParams());
+ rawParams.set(CommonParams.WT, "raw");
+ req.setParams(rawParams);
+ ContentStreamBase content = new ContentStreamBase.StringStream(dataConfig);
+ rsp.add(RawResponseWriter.CONTENT, content);
+ }
return;
}
rsp.add("initArgs", initArgs);
String message = "";
- if (command != null)
+ if (command != null) {
rsp.add("command", command);
-
- if (requestParams.isDebug() && (importer == null || !importer.isBusy())) {
- // Reload the data-config.xml
- importer = null;
- if (requestParams.getDataConfig() != null) {
- try {
- processConfiguration((NamedList) initArgs.get("defaults"));
- importer = new DataImporter(new InputSource(new StringReader(requestParams.getDataConfig())), req.getCore()
- , dataSources, coreScopeSession, myName);
- } catch (RuntimeException e) {
- rsp.add("exception", DebugLogger.getStacktraceString(e));
- importer = null;
- return;
- }
- } else {
- inform(req.getCore());
- }
- message = DataImporter.MSG.CONFIG_RELOADED;
}
-
// If importer is still null
if (importer == null) {
rsp.add("status", DataImporter.MSG.NO_INIT);
@@ -192,7 +164,7 @@ public class DataImportHandler extends R
if (DataImporter.FULL_IMPORT_CMD.equals(command)
|| DataImporter.DELTA_IMPORT_CMD.equals(command) ||
IMPORT_CMD.equals(command)) {
-
+ importer.maybeReloadConfiguration(requestParams, defaultParams);
UpdateRequestProcessorChain processorChain =
req.getCore().getUpdateProcessingChain(params.get(UpdateParams.UPDATE_CHAIN));
UpdateRequestProcessor processor = processorChain.createProcessor(req, rsp);
@@ -219,10 +191,12 @@ public class DataImportHandler extends R
importer.runCmd(requestParams, sw);
}
}
- } else if (DataImporter.RELOAD_CONF_CMD.equals(command)) {
- importer = null;
- inform(req.getCore());
- message = DataImporter.MSG.CONFIG_RELOADED;
+ } else if (DataImporter.RELOAD_CONF_CMD.equals(command)) {
+ if(importer.maybeReloadConfiguration(requestParams, defaultParams)) {
+ message = DataImporter.MSG.CONFIG_RELOADED;
+ } else {
+ message = DataImporter.MSG.CONFIG_NOT_RELOADED;
+ }
}
}
rsp.add("status", importer.isBusy() ? "busy" : "idle");
@@ -248,36 +222,6 @@ public class DataImportHandler extends R
return result;
}
- @SuppressWarnings("unchecked")
- private void processConfiguration(NamedList defaults) {
- if (defaults == null) {
- LOG.info("No configuration specified in solrconfig.xml for DataImportHandler");
- return;
- }
-
- LOG.info("Processing configuration from solrconfig.xml: " + defaults);
-
- dataSources = new HashMap<String, Properties>();
-
- int position = 0;
-
- while (position < defaults.size()) {
- if (defaults.getName(position) == null)
- break;
-
- String name = defaults.getName(position);
- if (name.equals("datasource")) {
- NamedList dsConfig = (NamedList) defaults.getVal(position);
- Properties props = new Properties();
- for (int i = 0; i < dsConfig.size(); i++)
- props.put(dsConfig.getName(i), dsConfig.getVal(i));
- LOG.info("Adding properties to datasource: " + props);
- dataSources.put((String) dsConfig.get("name"), props);
- }
- position++;
- }
- }
-
private SolrWriter getSolrWriter(final UpdateRequestProcessor processor,
final SolrResourceLoader loader, final RequestInfo requestParams, SolrQueryRequest req) {
Modified: lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java?rev=1369009&r1=1369008&r2=1369009&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java Fri Aug 3 15:03:06 2012
@@ -22,6 +22,8 @@ import org.apache.solr.core.SolrCore;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
import org.apache.solr.util.SystemIdResolver;
+import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.XMLErrorLogger;
import org.apache.solr.handler.dataimport.config.ConfigNameConstants;
import org.apache.solr.handler.dataimport.config.ConfigParseUtil;
@@ -41,9 +43,12 @@ import org.apache.commons.io.IOUtils;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
+
+import java.io.IOException;
import java.io.StringReader;
import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.ReentrantLock;
@@ -67,14 +72,14 @@ public class DataImporter {
private DIHConfiguration config;
private Date indexStartTime;
private Properties store = new Properties();
- private Map<String, Properties> dataSourceProps = new HashMap<String, Properties>();
+ private Map<String, Map<String,String>> requestLevelDataSourceProps = new HashMap<String, Map<String,String>>();
private IndexSchema schema;
public DocBuilder docBuilder;
public DocBuilder.Statistics cumulativeStatistics = new DocBuilder.Statistics();
private SolrCore core;
+ private Map<String, Object> coreScopeSession = new ConcurrentHashMap<String,Object>();
private DIHPropertiesWriter propWriter;
private ReentrantLock importLock = new ReentrantLock();
- private final Map<String , Object> coreScopeSession;
private boolean isDeltaImportSupported = false;
private final String handlerName;
private Map<String, SchemaField> lowerNameVsSchemaField = new HashMap<String, SchemaField>();
@@ -83,12 +88,19 @@ public class DataImporter {
* Only for testing purposes
*/
DataImporter() {
- coreScopeSession = new HashMap<String, Object>();
createPropertyWriter();
propWriter.init(this);
this.handlerName = "dataimport" ;
}
-
+
+ DataImporter(SolrCore core, String handlerName) {
+ this.handlerName = handlerName;
+ this.core = core;
+ this.schema = core.getSchema();
+ loadSchemaFieldMap();
+ createPropertyWriter();
+ }
+
private void createPropertyWriter() {
if (this.core == null
|| !this.core.getCoreDescriptor().getCoreContainer().isZooKeeperAware()) {
@@ -99,27 +111,58 @@ public class DataImporter {
propWriter.init(this);
}
- DataImporter(InputSource dataConfig, SolrCore core, Map<String, Properties> ds, Map<String, Object> session, String handlerName) {
- this.handlerName = handlerName;
- if (dataConfig == null) {
- throw new DataImportHandlerException(SEVERE, "Configuration not found");
- }
- this.core = core;
- this.schema = core.getSchema();
- loadSchemaFieldMap();
- createPropertyWriter();
-
- dataSourceProps = ds;
- if (session == null)
- session = new HashMap<String, Object>();
- coreScopeSession = session;
- loadDataConfig(dataConfig);
-
- for (Entity e : config.getEntities()) {
- if (e.getAllAttributes().containsKey(SqlEntityProcessor.DELTA_QUERY)) {
- isDeltaImportSupported = true;
- break;
+
+ boolean maybeReloadConfiguration(RequestInfo params,
+ NamedList<?> defaultParams) throws IOException {
+ if (importLock.tryLock()) {
+ boolean success = false;
+ try {
+ String dataConfigText = params.getDataConfig();
+ String dataconfigFile = (String) params.getConfigFile();
+ InputSource is = null;
+ if(dataConfigText!=null && dataConfigText.length()>0) {
+ is = new InputSource(new StringReader(dataConfigText));
+ } else if(dataconfigFile!=null) {
+ is = new InputSource(core.getResourceLoader().openResource(dataconfigFile));
+ is.setSystemId(SystemIdResolver.createSystemIdFromResourceName(dataconfigFile));
+ LOG.info("Loading DIH Configuration: " + dataconfigFile);
+ }
+ if(is!=null) {
+ loadDataConfig(is);
+ success = true;
+ }
+
+ Map<String,Map<String,String>> dsProps = new HashMap<String,Map<String,String>>();
+ if(defaultParams!=null) {
+ int position = 0;
+ while (position < defaultParams.size()) {
+ if (defaultParams.getName(position) == null) {
+ break;
+ }
+ String name = defaultParams.getName(position);
+ if (name.equals("datasource")) {
+ success = true;
+ NamedList dsConfig = (NamedList) defaultParams.getVal(position);
+ LOG.info("Getting configuration for Global Datasource...");
+ Map<String,String> props = new HashMap<String,String>();
+ for (int i = 0; i < dsConfig.size(); i++) {
+ props.put(dsConfig.getName(i), dsConfig.getVal(i).toString());
+ }
+ LOG.info("Adding properties to datasource: " + props);
+ dsProps.put((String) dsConfig.get("name"), props);
+ }
+ position++;
+ }
+ }
+ requestLevelDataSourceProps = Collections.unmodifiableMap(dsProps);
+ } catch(IOException ioe) {
+ throw ioe;
+ } finally {
+ importLock.unlock();
}
+ return success;
+ } else {
+ return false;
}
}
@@ -188,7 +231,13 @@ public class DataImporter {
LOG.info("Data Configuration loaded successfully");
} catch (Exception e) {
throw new DataImportHandlerException(SEVERE,
- "Exception occurred while initializing context", e);
+ "Data Config problem: " + e.getMessage(), e);
+ }
+ for (Entity e : config.getEntities()) {
+ if (e.getAllAttributes().containsKey(SqlEntityProcessor.DELTA_QUERY)) {
+ isDeltaImportSupported = true;
+ break;
+ }
}
}
@@ -196,7 +245,7 @@ public class DataImporter {
DIHConfiguration config;
List<Map<String, String >> functions = new ArrayList<Map<String ,String>>();
Script script = null;
- Map<String, Properties> dataSources = new HashMap<String, Properties>();
+ Map<String, Map<String,String>> dataSources = new HashMap<String, Map<String,String>>();
NodeList dataConfigTags = xmlDocument.getElementsByTagName("dataConfig");
if(dataConfigTags == null || dataConfigTags.getLength() == 0) {
@@ -232,16 +281,16 @@ public class DataImporter {
List<Element> dataSourceTags = ConfigParseUtil.getChildNodes(e, DATA_SRC);
if (!dataSourceTags.isEmpty()) {
for (Element element : dataSourceTags) {
- Properties p = new Properties();
+ Map<String,String> p = new HashMap<String,String>();
HashMap<String, String> attrs = ConfigParseUtil.getAllAttributes(element);
for (Map.Entry<String, String> entry : attrs.entrySet()) {
- p.setProperty(entry.getKey(), entry.getValue());
+ p.put(entry.getKey(), entry.getValue());
}
- dataSources.put(p.getProperty("name"), p);
+ dataSources.put(p.get("name"), p);
}
}
if(dataSources.get(null) == null){
- for (Properties properties : dataSources.values()) {
+ for (Map<String,String> properties : dataSources.values()) {
dataSources.put(null,properties);
break;
}
@@ -270,17 +319,17 @@ public class DataImporter {
}
DataSource getDataSourceInstance(Entity key, String name, Context ctx) {
- Properties p = dataSourceProps.get(name);
+ Map<String,String> p = requestLevelDataSourceProps.get(name);
if (p == null)
p = config.getDataSources().get(name);
if (p == null)
- p = dataSourceProps.get(null);// for default data source
+ p = requestLevelDataSourceProps.get(null);// for default data source
if (p == null)
p = config.getDataSources().get(null);
if (p == null)
throw new DataImportHandlerException(SEVERE,
"No dataSource :" + name + " available for entity :" + key.getName());
- String type = p.getProperty(TYPE);
+ String type = p.get(TYPE);
DataSource dataSrc = null;
if (type == null) {
dataSrc = new JdbcDataSource();
@@ -458,6 +507,8 @@ public class DataImporter {
public static final String DEBUG_NOT_ENABLED = "Debug not enabled. Add a tag <str name=\"enableDebug\">true</str> in solrconfig.xml";
public static final String CONFIG_RELOADED = "Configuration Re-loaded sucessfully";
+
+ public static final String CONFIG_NOT_RELOADED = "Configuration NOT Re-loaded...Data Importer is busy.";
public static final String TOTAL_DOC_PROCESSED = "Total Documents Processed";
@@ -476,13 +527,16 @@ public class DataImporter {
return schema;
}
- Map<String, Object> getCoreScopeSession() {
- return coreScopeSession;
- }
-
SolrCore getCore() {
return core;
}
+
+ void putToCoreScopeSession(String key, Object val) {
+ coreScopeSession.put(key, val);
+ }
+ Object getFromCoreScopeSession(String key) {
+ return coreScopeSession.get(key);
+ }
public static final String COLUMN = "column";
Modified: lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/RequestInfo.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/RequestInfo.java?rev=1369009&r1=1369008&r2=1369009&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/RequestInfo.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/RequestInfo.java Fri Aug 3 15:03:06 2012
@@ -36,6 +36,7 @@ public class RequestInfo {
private final boolean clean;
private final List<String> entitiesToRun;
private final Map<String,Object> rawParams;
+ private final String configFile;
private final String dataConfig;
//TODO: find a different home for these two...
@@ -98,7 +99,8 @@ public class RequestInfo {
} else {
entitiesToRun = null;
}
-
+ String configFileParam = (String) requestParams.get("config");
+ configFile = configFileParam;
String dataConfigParam = (String) requestParams.get("dataConfig");
if (dataConfigParam != null && dataConfigParam.trim().length() == 0) {
// Empty data-config param is not valid, change it to null
@@ -161,4 +163,8 @@ public class RequestInfo {
public DebugInfo getDebugInfo() {
return debugInfo;
}
+
+ public String getConfigFile() {
+ return configFile;
+ }
}
\ No newline at end of file
Modified: lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/DIHConfiguration.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/DIHConfiguration.java?rev=1369009&r1=1369008&r2=1369009&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/DIHConfiguration.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/config/DIHConfiguration.java Fri Aug 3 15:03:06 2012
@@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
-import java.util.Properties;
import org.apache.solr.handler.dataimport.DataImporter;
import org.w3c.dom.Element;
@@ -49,8 +48,8 @@ public class DIHConfiguration {
private final String onImportEnd;
private final List<Map<String, String>> functions;
private final Script script;
- private final Map<String, Properties> dataSources;
- public DIHConfiguration(Element element, DataImporter di, List<Map<String, String>> functions, Script script, Map<String, Properties> dataSources) {
+ private final Map<String, Map<String,String>> dataSources;
+ public DIHConfiguration(Element element, DataImporter di, List<Map<String, String>> functions, Script script, Map<String, Map<String,String>> dataSources) {
this.deleteQuery = ConfigParseUtil.getStringAttribute(element, "deleteQuery", null);
this.onImportStart = ConfigParseUtil.getStringAttribute(element, "onImportStart", null);
this.onImportEnd = ConfigParseUtil.getStringAttribute(element, "onImportEnd", null);
@@ -90,7 +89,7 @@ public class DIHConfiguration {
public List<Map<String,String>> getFunctions() {
return functions;
}
- public Map<String,Properties> getDataSources() {
+ public Map<String,Map<String,String>> getDataSources() {
return dataSources;
}
public Script getScript() {
Modified: lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-solrconfig-end-to-end.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-solrconfig-end-to-end.xml?rev=1369009&r1=1369008&r2=1369009&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-solrconfig-end-to-end.xml (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test-files/dih/solr/collection1/conf/dataimport-solrconfig-end-to-end.xml Fri Aug 3 15:03:06 2012
@@ -31,11 +31,7 @@
<str name="echoParams">explicit</str>
</lst>
</requestHandler>
- <requestHandler name="/dataimport-end-to-end" class="org.apache.solr.handler.dataimport.DataImportHandler">
- <lst name="defaults">
- <str name="config">data-config-end-to-end.xml</str>
- </lst>
- </requestHandler>
+ <requestHandler name="/dataimport-end-to-end" class="org.apache.solr.handler.dataimport.DataImportHandler" />
<requestHandler name="/search" class="org.apache.solr.handler.component.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
Modified: lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestDIHEndToEnd.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestDIHEndToEnd.java?rev=1369009&r1=1369008&r2=1369009&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestDIHEndToEnd.java (original)
+++ lucene/dev/branches/branch_4x/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestDIHEndToEnd.java Fri Aug 3 15:03:06 2012
@@ -31,7 +31,8 @@ public class TestDIHEndToEnd extends Abs
}
@Test
public void testEndToEnd() throws Exception {
- LocalSolrQueryRequest request = lrf.makeRequest("command", "full-import",
+ LocalSolrQueryRequest request = lrf.makeRequest(
+ "command", "full-import", "config", "data-config-end-to-end.xml",
"clean", "true", "commit", "true", "synchronous", "true", "indent", "true");
h.query("/dataimport-end-to-end", request);
assertQ(req("*:*"), "//*[@numFound='20']");