Author: shalin
Date: Thu Aug 28 12:38:05 2008
New Revision: 689947
URL: http://svn.apache.org/viewvc?rev=689947&view=rev
Log:
SOLR-729 -- Context.getDataSource(String) gives current entity's DataSource
instance regardless of argument.
Added:
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml
(with props)
Modified:
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/CHANGES.txt
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/Context.java
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder2.java
Modified: lucene/solr/branches/branch-1.3/contrib/dataimporthandler/CHANGES.txt
URL:
http://svn.apache.org/viewvc/lucene/solr/branches/branch-1.3/contrib/dataimporthandler/CHANGES.txt?rev=689947&r1=689946&r2=689947&view=diff
==============================================================================
--- lucene/solr/branches/branch-1.3/contrib/dataimporthandler/CHANGES.txt
(original)
+++ lucene/solr/branches/branch-1.3/contrib/dataimporthandler/CHANGES.txt Thu
Aug 28 12:38:05 2008
@@ -32,6 +32,9 @@
use the complete string for parsing. Failure to do so will
result in an exception.
(Stefan Oestreicher via shalin)
+2. SOLR-729: Context.getDataSource(String) gives current entity's DataSource
instance regardless of argument.
+ (Noble Paul, shalin)
+
Other Changes
Modified:
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/Context.java
URL:
http://svn.apache.org/viewvc/lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/Context.java?rev=689947&r1=689946&r2=689947&view=diff
==============================================================================
---
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/Context.java
(original)
+++
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/Context.java
Thu Aug 28 12:38:05 2008
@@ -72,18 +72,21 @@
public abstract VariableResolver getVariableResolver();
/**
- * Gets the datasource instance defined for this entity.
+ * Gets the datasource instance defined for this entity. Do not close() this
instance.
+ * Transformers should use the getDataSource(String name) method.
*
* @return a new DataSource instance as configured for the current entity
* @see org.apache.solr.handler.dataimport.DataSource
+ * @see #getDataSource(String)
*/
public abstract DataSource getDataSource();
/**
- * Gets a new DataSource instance with a name.
- *
+ * Gets a new DataSource instance with a name. Ensure that you close() this
after use
+ * because this is created just for this method call.
+ *
* @param name Name of the dataSource as defined in the dataSource tag
- * @return a new DataSource instance as configured for the named entity
+ * @return a new DataSource instance
* @see org.apache.solr.handler.dataimport.DataSource
*/
public abstract DataSource getDataSource(String name);
Modified:
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java
URL:
http://svn.apache.org/viewvc/lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java?rev=689947&r1=689946&r2=689947&view=diff
==============================================================================
---
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java
(original)
+++
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java
Thu Aug 28 12:38:05 2008
@@ -63,7 +63,7 @@
}
public DataSource getDataSource(String name) {
- return dataImporter.getDataSourceInstance(entity);
+ return dataImporter.getDataSourceInstance(entity, name, this);
}
public boolean isRootEntity() {
Modified:
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java
URL:
http://svn.apache.org/viewvc/lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java?rev=689947&r1=689946&r2=689947&view=diff
==============================================================================
---
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java
(original)
+++
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java
Thu Aug 28 12:38:05 2008
@@ -270,20 +270,20 @@
key.dataSrc = new MockDataSource();
return;
}
- key.dataSrc = getDataSourceInstance(key);
+ key.dataSrc = getDataSourceInstance(key, key.dataSource, null);
}
- DataSource getDataSourceInstance(DataConfig.Entity key) {
- Properties p = dataSourceProps.get(key.dataSource);
+ DataSource getDataSourceInstance(DataConfig.Entity key, String name, Context
ctx ) {
+ Properties p = dataSourceProps.get(name);
if (p == null)
- p = config.dataSources.get(key.dataSource);
+ p = config.dataSources.get(name);
if (p == null)
p = dataSourceProps.get(null);// for default data source
if (p == null)
p = config.dataSources.get(null);
if (p == null)
throw new DataImportHandlerException(DataImportHandlerException.SEVERE,
- "No dataSource :" + key.dataSource + " available for entity :"
+ "No dataSource :" + name + " available for entity :"
+ key.name);
String impl = p.getProperty(TYPE);
DataSource dataSrc = null;
@@ -300,8 +300,10 @@
try {
Properties copyProps = new Properties();
copyProps.putAll(p);
- dataSrc.init(new ContextImpl(key, null, dataSrc, 0,
- Collections.EMPTY_MAP, new HashMap(), null, this), copyProps);
+ if(ctx == null)
+ ctx = new ContextImpl(key, null, dataSrc, 0,
+ Collections.EMPTY_MAP, new HashMap(), null, this);
+ dataSrc.init(ctx, copyProps);
} catch (Exception e) {
throw new DataImportHandlerException(DataImportHandlerException.SEVERE,
"Failed to initialize DataSource: " + key.dataSource, e);
Modified:
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder2.java
URL:
http://svn.apache.org/viewvc/lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder2.java?rev=689947&r1=689946&r2=689947&view=diff
==============================================================================
---
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder2.java
(original)
+++
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder2.java
Thu Aug 28 12:38:05 2008
@@ -19,9 +19,11 @@
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.Assert;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
/**
* <p>
@@ -65,4 +67,25 @@
assertQ(req("id:1"), "//[EMAIL PROTECTED]'1']");
}
+ @Test
+ @SuppressWarnings("unchecked")
+ public void testContext() throws Exception {
+ List rows = new ArrayList();
+ rows.add(createMap("id", "1", "desc", "one"));
+ MockDataSource.setIterator("select * from x", rows.iterator());
+
+ super.runFullImport(loadDataConfig("data-config-with-transformer.xml"));
+ }
+
+ public static class MockTransformer extends Transformer {
+ public Object transformRow(Map<String, Object> row, Context context) {
+ Assert.assertTrue("Context gave incorrect data source",
context.getDataSource("mockDs") instanceof MockDataSource2);
+ return row;
+ }
+ }
+
+ public static class MockDataSource2 extends MockDataSource {
+
+ }
+
}
Added:
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml
URL:
http://svn.apache.org/viewvc/lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml?rev=689947&view=auto
==============================================================================
---
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml
(added)
+++
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml
Thu Aug 28 12:38:05 2008
@@ -0,0 +1,10 @@
+<dataConfig>
+ <dataSource type="MockDataSource" />
+ <dataSource name="mockDs" type="TestDocBuilder2$MockDataSource2" />
+ <document>
+ <entity name="x" query="select * from x"
transformer="TestDocBuilder2$MockTransformer">
+ <field column="id" />
+ <field column="desc" />
+ </entity>
+ </document>
+</dataConfig>
Propchange:
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
lucene/solr/branches/branch-1.3/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL