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 sh...@apache.org on 2009/03/20 07:27:01 UTC
svn commit: r756340 - in /lucene/solr/trunk/contrib/dataimporthandler:
CHANGES.txt
src/main/java/org/apache/solr/handler/dataimport/JdbcDataSource.java
Author: shalin
Date: Fri Mar 20 06:27:01 2009
New Revision: 756340
URL: http://svn.apache.org/viewvc?rev=756340&view=rev
Log:
SOLR-1076 -- JdbcDataSource should resolve variables in all its configuration parameters
Modified:
lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt
lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/JdbcDataSource.java
Modified: lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt?rev=756340&r1=756339&r2=756340&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt Fri Mar 20 06:27:01 2009
@@ -106,6 +106,9 @@
further transformers. New methods are introduced in Context for deleting by id and query.
(Noble Paul, Fergus McMenemie, shalin)
+25.SOLR-1076: JdbcDataSource should resolve variables in all its configuration parameters.
+ (shalin)
+
Optimizations
----------------------
1. SOLR-846: Reduce memory consumption during delta import by removing keys when used
Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/JdbcDataSource.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/JdbcDataSource.java?rev=756340&r1=756339&r2=756340&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/JdbcDataSource.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/JdbcDataSource.java Fri Mar 20 06:27:01 2009
@@ -61,6 +61,7 @@
String bsz = initProps.getProperty("batchSize");
if (bsz != null) {
+ bsz = (String) context.getVariableResolver().resolve(bsz);
try {
batchSize = Integer.parseInt(bsz);
if (batchSize == -1)
@@ -93,6 +94,9 @@
private void createConnectionFactory(final Context context,
final Properties initProps) {
+ final VariableResolver resolver = context.getVariableResolver();
+ resolveVariables(resolver, initProps);
+
final String url = initProps.getProperty(URL);
final String driver = initProps.getProperty(DRIVER);
@@ -117,11 +121,13 @@
factory = new Callable<Connection>() {
public Connection call() throws Exception {
+ // Resolve variables again because the variables may have changed
+ resolveVariables(resolver, initProps);
LOG.info("Creating a connection for entity "
+ context.getEntityAttribute(DataImporter.NAME) + " with URL: "
+ url);
long start = System.currentTimeMillis();
- Connection c = null;
+ Connection c;
try {
c = DriverManager.getConnection(url, initProps);
if (Boolean.parseBoolean(initProps.getProperty("readOnly"))) {
@@ -167,6 +173,14 @@
};
}
+ private void resolveVariables(VariableResolver resolver, Properties initProps) {
+ for (Map.Entry<Object, Object> entry : initProps.entrySet()) {
+ if (entry.getValue() != null) {
+ entry.setValue(resolver.replaceTokens((String) entry.getValue()));
+ }
+ }
+ }
+
public Iterator<Map<String, Object>> getData(String query) {
ResultSetIterator r = new ResultSetIterator(query);
return r.getIterator();