Noble - how about a CHANGES.txt update for this?
Thanks,
Erik
Begin forwarded message:
From: no...@apache.org
Date: November 18, 2009 12:22:18 PM GMT+01:00
To: solr-comm...@lucene.apache.org
Subject: svn commit: r881724 - in /lucene/solr/trunk/contrib/
dataimporthandler/src: main/java/org/apache/solr/handler/dataimport/
test/java/org/apache/solr/handler/dataimport/
Reply-To: solr-dev@lucene.apache.org
Author: noble
Date: Wed Nov 18 11:22:17 2009
New Revision: 881724
URL: http://svn.apache.org/viewvc?rev=881724&view=rev
Log:
SOLR-1525 allow DIH to refer to core properties
Modified:
lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/
apache/solr/handler/dataimport/DocBuilder.java
lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/
apache/solr/handler/dataimport/VariableResolverImpl.java
lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/
apache/solr/handler/dataimport/TestVariableResolver.java
Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/
org/apache/solr/handler/dataimport/DocBuilder.java
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java?rev=881724&r1=881723&r2=881724&view=diff
=
=
=
=
=
=
=
=
======================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/
apache/solr/handler/dataimport/DocBuilder.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/
apache/solr/handler/dataimport/DocBuilder.java Wed Nov 18 11:22:17
2009
@@ -80,7 +80,9 @@
public VariableResolverImpl getVariableResolver() {
try {
- VariableResolverImpl resolver = new VariableResolverImpl();
+ VariableResolverImpl resolver = null;
+ if(dataImporter != null && dataImporter.getCore() != null)
resolver = new
VariableResolverImpl
(dataImporter.getCore().getResourceLoader().getCoreProperties());
+ else resolver = new VariableResolverImpl();
Map<String, Object> indexerNamespace = new HashMap<String,
Object>();
if (persistedProperties.getProperty(LAST_INDEX_TIME) != null) {
indexerNamespace.put(LAST_INDEX_TIME,
persistedProperties.getProperty(LAST_INDEX_TIME));
Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/
org/apache/solr/handler/dataimport/VariableResolverImpl.java
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/VariableResolverImpl.java?rev=881724&r1=881723&r2=881724&view=diff
=
=
=
=
=
=
=
=
======================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/
apache/solr/handler/dataimport/VariableResolverImpl.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/
apache/solr/handler/dataimport/VariableResolverImpl.java Wed Nov 18
11:22:17 2009
@@ -18,6 +18,7 @@
import java.util.HashMap;
import java.util.Map;
+import java.util.Collections;
import java.util.regex.Pattern;
/**
@@ -41,7 +42,14 @@
private final TemplateString templateString = new TemplateString();
+ private final Map defaults ;
+
public VariableResolverImpl() {
+ defaults = Collections.emptyMap();
+ }
+
+ public VariableResolverImpl(Map defaults) {
+ this.defaults = defaults;
}
/**
@@ -100,23 +108,30 @@
for (int i = 0; i < parts.length; i++) {
String thePart = parts[i];
if (i == parts.length - 1) {
- return namespace.get(thePart);
+ Object val = namespace.get(thePart);
+ return val == null ? getDefault(name): val ;
}
Object temp = namespace.get(thePart);
if (temp == null) {
- return namespace.get(mergeAll(parts, i));
+ Object val = namespace.get(mergeAll(parts, i));
+ return val == null ? getDefault(name): val ;
} else {
if (temp instanceof Map) {
namespace = (Map) temp;
} else {
- return null;
+ return getDefault(name);
}
}
}
} finally {
- CURRENT_VARIABLE_RESOLVER.set(null);
+ CURRENT_VARIABLE_RESOLVER.remove();
}
- return null;
+ return getDefault(name);
+ }
+
+ private Object getDefault(String name) {
+ Object val = defaults.get(name);
+ return val == null? System.getProperty(name) : val;
}
private String mergeAll(String[] parts, int i) {
Modified: lucene/solr/trunk/contrib/dataimporthandler/src/test/java/
org/apache/solr/handler/dataimport/TestVariableResolver.java
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/apache/solr/handler/dataimport/TestVariableResolver.java?rev=881724&r1=881723&r2=881724&view=diff
=
=
=
=
=
=
=
=
======================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/
apache/solr/handler/dataimport/TestVariableResolver.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/test/java/org/
apache/solr/handler/dataimport/TestVariableResolver.java Wed Nov 18
11:22:17 2009
@@ -43,6 +43,21 @@
}
@Test
+ public void testDefaults(){
+
System
.out
.println
(System.setProperty(TestVariableResolver.class.getName(),"hello"));
+ System.out.println("s.gP()"+
System.getProperty(TestVariableResolver.class.getName()));
+
+ HashMap m = new HashMap();
+ m.put("hello","world");
+ VariableResolverImpl vri = new VariableResolverImpl(m);
+ Object val = vri.resolve(TestVariableResolver.class.getName());
+ System.out.println("val = " + val);
+ Assert.assertEquals("hello", val);
+ Assert.assertEquals("world",vri.resolve("hello"));
+
+ }
+
+ @Test
public void testNestedNamespace() {
VariableResolverImpl vri = new VariableResolverImpl();
Map<String, Object> ns = new HashMap<String, Object>();