SOLR-729 is marked as fixed in 1.3, but i don't see this commited to the 1.3 branch?
: Date: Thu, 28 Aug 2008 16:04:46 -0000 : From: [EMAIL PROTECTED] : Reply-To: [email protected] : To: [EMAIL PROTECTED] : Subject: svn commit: r689867 - in : /lucene/solr/trunk/contrib/dataimporthandler: ./ : src/main/java/org/apache/solr/handler/dataimport/ : src/test/java/org/apache/solr/handler/dataimport/ : src/test/resources/solr/conf/ : : Author: shalin : Date: Thu Aug 28 09:04:45 2008 : New Revision: 689867 : : URL: http://svn.apache.org/viewvc?rev=689867&view=rev : Log: : SOLR-729 -- Context.getDataSource(String) gives current entity's DataSource instance regardless of argument. : : Added: : lucene/solr/trunk/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml (with props) : Modified: : lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt : lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/Context.java : lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java : lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java : lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder2.java : : Modified: lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt : URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt?rev=689867&r1=689866&r2=689867&view=diff : ============================================================================== : --- lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt (original) : +++ lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt Thu Aug 28 09:04:45 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/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/Context.java : URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/Context.java?rev=689867&r1=689866&r2=689867&view=diff : ============================================================================== : --- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/Context.java (original) : +++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/Context.java Thu Aug 28 09:04:45 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/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java : URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java?rev=689867&r1=689866&r2=689867&view=diff : ============================================================================== : --- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java (original) : +++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java Thu Aug 28 09:04:45 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/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java : URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java?rev=689867&r1=689866&r2=689867&view=diff : ============================================================================== : --- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java (original) : +++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java Thu Aug 28 09:04:45 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/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder2.java : URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder2.java?rev=689867&r1=689866&r2=689867&view=diff : ============================================================================== : --- lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder2.java (original) : +++ lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestDocBuilder2.java Thu Aug 28 09:04:45 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/trunk/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml : URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml?rev=689867&view=auto : ============================================================================== : --- lucene/solr/trunk/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml (added) : +++ lucene/solr/trunk/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml Thu Aug 28 09:04:45 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/trunk/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml : ------------------------------------------------------------------------------ : svn:eol-style = native : : Propchange: lucene/solr/trunk/contrib/dataimporthandler/src/test/resources/solr/conf/data-config-with-transformer.xml : ------------------------------------------------------------------------------ : svn:keywords = Date Author Id Revision HeadURL : : -Hoss
