diff --git a/contrib/dataimporthandler/src/extras/main/java/org/apache/solr/handler/dataimport/MailEntityProcessor.java b/contrib/dataimporthandler/src/extras/main/java/org/apache/solr/handler/dataimport/MailEntityProcessor.java index 559a1cf0713..7e464bf3f20 100644 --- a/contrib/dataimporthandler/src/extras/main/java/org/apache/solr/handler/dataimport/MailEntityProcessor.java +++ b/contrib/dataimporthandler/src/extras/main/java/org/apache/solr/handler/dataimport/MailEntityProcessor.java @@ -568,7 +568,7 @@ public class MailEntityProcessor extends EntityProcessorBase { try { String val = context.getEntityAttribute(prop); if (val != null) { - val = context.getVariableResolver().replaceTokens(val); + val = context.replaceTokens(val); v = Integer.valueOf(val); } } catch (NumberFormatException e) { @@ -581,7 +581,7 @@ public class MailEntityProcessor extends EntityProcessorBase { boolean v = ifNull; String val = context.getEntityAttribute(prop); if (val != null) { - val = context.getVariableResolver().replaceTokens(val); + val = context.replaceTokens(val); v = Boolean.valueOf(val); } return v; @@ -591,7 +591,7 @@ public class MailEntityProcessor extends EntityProcessorBase { String v = ifNull; String val = context.getEntityAttribute(prop); if (val != null) { - val = context.getVariableResolver().replaceTokens(val); + val = context.replaceTokens(val); v = val; } return v; diff --git a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/CachedSqlEntityProcessor.java b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/CachedSqlEntityProcessor.java index 6ba535d6614..69b7b2b6f18 100644 --- a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/CachedSqlEntityProcessor.java +++ b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/CachedSqlEntityProcessor.java @@ -50,7 +50,7 @@ public class CachedSqlEntityProcessor extends SqlEntityProcessor { return getFromRowCacheTransformed(); if (!isFirst) return null; - String query = resolver.replaceTokens(context.getEntityAttribute("query")); + String query = context.replaceTokens(context.getEntityAttribute("query")); isFirst = false; if (simpleCache != null) { return getSimpleCacheData(query); @@ -63,7 +63,7 @@ public class CachedSqlEntityProcessor extends SqlEntityProcessor { protected List> getAllNonCachedRows() { List> rows = new ArrayList>(); String q = getQuery(); - initQuery(resolver.replaceTokens(q)); + initQuery(context.replaceTokens(q)); if (rowIterator == null) return rows; while (rowIterator.hasNext()) { diff --git a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorBase.java b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorBase.java index 2cee9d43f6e..db19a3c624d 100644 --- a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorBase.java +++ b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorBase.java @@ -40,8 +40,6 @@ public class EntityProcessorBase extends EntityProcessor { protected Context context; - protected VariableResolverImpl resolver; - protected Iterator> rowIterator; protected List transformers; @@ -54,7 +52,6 @@ public class EntityProcessorBase extends EntityProcessor { public void init(Context context) { rowIterator = null; this.context = context; - resolver = (VariableResolverImpl) context.getVariableResolver(); if (isFirstInit) { firstInit(context); } @@ -180,7 +177,7 @@ public class EntityProcessorBase extends EntityProcessor { Map>> rowIdVsRows = cacheWithWhereClause .get(query); List> rows = null; - Object key = resolver.resolve(cacheVariableName); + Object key = context.resolve(cacheVariableName); if (key == null) { throw new DataImportHandlerException(DataImportHandlerException.WARN, "The cache lookup value : " + cacheVariableName + " is resolved to be null in the entity :" + diff --git a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorWrapper.java b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorWrapper.java index c42acf31a6c..872fa90e313 100644 --- a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorWrapper.java +++ b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorWrapper.java @@ -166,6 +166,7 @@ public class EntityProcessorWrapper extends EntityProcessor { Map transformedRow = row; List> rows = null; boolean stopTransform = checkStopTransform(row); + VariableResolverImpl resolver = (VariableResolverImpl) context.getVariableResolver(); for (Transformer t : transformers) { if (stopTransform) break; try { @@ -269,7 +270,7 @@ public class EntityProcessorWrapper extends EntityProcessor { } public VariableResolverImpl getVariableResolver() { - return resolver; + return (VariableResolverImpl) context.getVariableResolver(); } public Context getContext() { diff --git a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/FileListEntityProcessor.java b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/FileListEntityProcessor.java index 86d4e4c3c87..7fa3ab1fdce 100644 --- a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/FileListEntityProcessor.java +++ b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/FileListEntityProcessor.java @@ -109,14 +109,14 @@ public class FileListEntityProcessor extends EntityProcessorBase { super.init(context); fileName = context.getEntityAttribute(FILE_NAME); if (fileName != null) { - fileName = resolver.replaceTokens(fileName); + fileName = context.replaceTokens(fileName); fileNamePattern = Pattern.compile(fileName); } baseDir = context.getEntityAttribute(BASE_DIR); if (baseDir == null) throw new DataImportHandlerException(DataImportHandlerException.SEVERE, "'baseDir' is a required attribute"); - baseDir = resolver.replaceTokens(baseDir); + baseDir = context.replaceTokens(baseDir); File dir = new File(baseDir); if (!dir.isDirectory()) throw new DataImportHandlerException(DataImportHandlerException.SEVERE, @@ -127,7 +127,7 @@ public class FileListEntityProcessor extends EntityProcessorBase { recursive = Boolean.parseBoolean(r); excludes = context.getEntityAttribute(EXCLUDES); if (excludes != null) { - excludes = resolver.replaceTokens(excludes); + excludes = context.replaceTokens(excludes); excludesPattern = Pattern.compile(excludes); } } @@ -144,11 +144,11 @@ public class FileListEntityProcessor extends EntityProcessorBase { Matcher m = PLACE_HOLDER_PATTERN.matcher(dateStr); if (m.find()) { - Object o = resolver.resolve(m.group(1)); + Object o = context.resolve(m.group(1)); if (o instanceof Date) return (Date)o; dateStr = (String) o; } else { - dateStr = resolver.replaceTokens(dateStr); + dateStr = context.replaceTokens(dateStr); } m = EvaluatorBag.IN_SINGLE_QUOTES.matcher(dateStr); if (m.find()) { @@ -181,14 +181,14 @@ public class FileListEntityProcessor extends EntityProcessorBase { Matcher m = PLACE_HOLDER_PATTERN.matcher(sizeStr); if (m.find()) { - Object o = resolver.resolve(m.group(1)); + Object o = context.resolve(m.group(1)); if (o instanceof Number) { Number number = (Number) o; return number.longValue(); } sizeStr = (String) o; } else { - sizeStr = resolver.replaceTokens(sizeStr); + sizeStr = context.replaceTokens(sizeStr); } return Long.parseLong(sizeStr); diff --git a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/HTMLStripTransformer.java b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/HTMLStripTransformer.java index 485f90a66c2..9d2f7034fc0 100644 --- a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/HTMLStripTransformer.java +++ b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/HTMLStripTransformer.java @@ -39,11 +39,10 @@ public class HTMLStripTransformer extends Transformer { @Override @SuppressWarnings("unchecked") public Object transformRow(Map row, Context context) { - VariableResolver resolver = context.getVariableResolver(); List> fields = context.getAllEntityFields(); for (Map field : fields) { String col = field.get(DataImporter.COLUMN); - String splitHTML = resolver.replaceTokens(field.get(STRIP_HTML)); + String splitHTML = context.replaceTokens(field.get(STRIP_HTML)); if (!TRUE.equals(splitHTML)) continue; Object tmpVal = row.get(col); diff --git a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/JdbcDataSource.java b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/JdbcDataSource.java index 98c58f5325e..6398cf6e870 100644 --- a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/JdbcDataSource.java +++ b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/JdbcDataSource.java @@ -63,7 +63,7 @@ public class JdbcDataSource extends String bsz = initProps.getProperty("batchSize"); if (bsz != null) { - bsz = context.getVariableResolver().replaceTokens(bsz); + bsz = context.replaceTokens(bsz); try { batchSize = Integer.parseInt(bsz); if (batchSize == -1) @@ -97,8 +97,8 @@ public class JdbcDataSource extends protected Callable createConnectionFactory(final Context context, final Properties initProps) { - final VariableResolver resolver = context.getVariableResolver(); - resolveVariables(resolver, initProps); +// final VariableResolver resolver = context.getVariableResolver(); + resolveVariables(context, initProps); final String jndiName = initProps.getProperty(JNDI_NAME); final String url = initProps.getProperty(URL); final String driver = initProps.getProperty(DRIVER); @@ -127,7 +127,7 @@ public class JdbcDataSource extends return factory = new Callable() { public Connection call() throws Exception { // Resolve variables again because the variables may have changed - resolveVariables(resolver, initProps); + resolveVariables(context, initProps); LOG.info("Creating a connection for entity " + context.getEntityAttribute(DataImporter.NAME) + " with URL: " + url); @@ -198,10 +198,10 @@ public class JdbcDataSource extends }; } - private void resolveVariables(VariableResolver resolver, Properties initProps) { + private void resolveVariables(Context ctx, Properties initProps) { for (Map.Entry entry : initProps.entrySet()) { if (entry.getValue() != null) { - entry.setValue(resolver.replaceTokens((String) entry.getValue())); + entry.setValue(ctx.replaceTokens((String) entry.getValue())); } } } diff --git a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/LogTransformer.java b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/LogTransformer.java index 6ce2d5494cc..9831290baea 100644 --- a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/LogTransformer.java +++ b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/LogTransformer.java @@ -35,28 +35,27 @@ import java.util.Map; public class LogTransformer extends Transformer { Logger LOG = LoggerFactory.getLogger(LogTransformer.class); - public Object transformRow(Map row, Context context) { - VariableResolver vr = context.getVariableResolver(); - String expr = context.getEntityAttribute(LOG_TEMPLATE); - String level = vr.replaceTokens(context.getEntityAttribute(LOG_LEVEL)); + public Object transformRow(Map row, Context ctx) { + String expr = ctx.getEntityAttribute(LOG_TEMPLATE); + String level = ctx.replaceTokens(ctx.getEntityAttribute(LOG_LEVEL)); if (expr == null || level == null) return row; if ("info".equals(level)) { if (LOG.isInfoEnabled()) - LOG.info(vr.replaceTokens(expr)); + LOG.info(ctx.replaceTokens(expr)); } else if ("trace".equals(level)) { if (LOG.isTraceEnabled()) - LOG.trace(vr.replaceTokens(expr)); + LOG.trace(ctx.replaceTokens(expr)); } else if ("warn".equals(level)) { if (LOG.isWarnEnabled()) - LOG.warn(vr.replaceTokens(expr)); + LOG.warn(ctx.replaceTokens(expr)); } else if ("error".equals(level)) { if (LOG.isErrorEnabled()) - LOG.error(vr.replaceTokens(expr)); + LOG.error(ctx.replaceTokens(expr)); } else if ("debug".equals(level)) { if (LOG.isDebugEnabled()) - LOG.debug(vr.replaceTokens(expr)); + LOG.debug(ctx.replaceTokens(expr)); } return row; diff --git a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/NumberFormatTransformer.java b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/NumberFormatTransformer.java index 96f49442dc2..00bad109615 100644 --- a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/NumberFormatTransformer.java +++ b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/NumberFormatTransformer.java @@ -51,14 +51,13 @@ public class NumberFormatTransformer extends Transformer { @SuppressWarnings("unchecked") public Object transformRow(Map row, Context context) { - VariableResolver resolver = context.getVariableResolver(); for (Map fld : context.getAllEntityFields()) { - String style = resolver.replaceTokens(fld.get(FORMAT_STYLE)); + String style = context.replaceTokens(fld.get(FORMAT_STYLE)); if (style != null) { String column = fld.get(DataImporter.COLUMN); String srcCol = fld.get(RegexTransformer.SRC_COL_NAME); Locale locale = null; - String localeStr = resolver.replaceTokens(fld.get(LOCALE)); + String localeStr = context.replaceTokens(fld.get(LOCALE)); if (srcCol == null) srcCol = column; if (localeStr != null) { diff --git a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/PlainTextEntityProcessor.java b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/PlainTextEntityProcessor.java index 11a96d9122c..4b18d3c0d8d 100644 --- a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/PlainTextEntityProcessor.java +++ b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/PlainTextEntityProcessor.java @@ -47,7 +47,7 @@ public class PlainTextEntityProcessor extends EntityProcessorBase { public Map nextRow() { if (ended) return null; DataSource ds = context.getDataSource(); - String url = context.getVariableResolver().replaceTokens(context.getEntityAttribute(URL)); + String url = context.replaceTokens(context.getEntityAttribute(URL)); Reader r = null; try { r = ds.getData(url); diff --git a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SqlEntityProcessor.java b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SqlEntityProcessor.java index 130426c6a7f..1ae8b2dea99 100644 --- a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SqlEntityProcessor.java +++ b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/SqlEntityProcessor.java @@ -68,7 +68,7 @@ public class SqlEntityProcessor extends EntityProcessorBase { public Map nextRow() { if (rowIterator == null) { String q = getQuery(); - initQuery(resolver.replaceTokens(q)); + initQuery(context.replaceTokens(q)); } return getNext(); } @@ -78,7 +78,7 @@ public class SqlEntityProcessor extends EntityProcessorBase { String deltaQuery = context.getEntityAttribute(DELTA_QUERY); if (deltaQuery == null) return null; - initQuery(resolver.replaceTokens(deltaQuery)); + initQuery(context.replaceTokens(deltaQuery)); } return getNext(); } @@ -88,7 +88,7 @@ public class SqlEntityProcessor extends EntityProcessorBase { String deletedPkQuery = context.getEntityAttribute(DEL_PK_QUERY); if (deletedPkQuery == null) return null; - initQuery(resolver.replaceTokens(deletedPkQuery)); + initQuery(context.replaceTokens(deletedPkQuery)); } return getNext(); } @@ -100,7 +100,7 @@ public class SqlEntityProcessor extends EntityProcessorBase { return null; LOG.info("Running parentDeltaQuery for Entity: " + context.getEntityAttribute("name")); - initQuery(resolver.replaceTokens(parentDeltaQuery)); + initQuery(context.replaceTokens(parentDeltaQuery)); } return getNext(); } @@ -132,11 +132,11 @@ public class SqlEntityProcessor extends EntityProcessorBase { sb.append(" and "); } first = false; - Object val = resolver.resolve("dataimporter.delta." + primaryKey); + Object val = context.resolve("dataimporter.delta." + primaryKey); if (val == null) { Matcher m = DOT_PATTERN.matcher(primaryKey); if (m.find()) { - val = resolver.resolve("dataimporter.delta." + m.group(1)); + val = context.resolve("dataimporter.delta." + m.group(1)); } } sb.append(primaryKey).append(" = "); diff --git a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/URLDataSource.java b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/URLDataSource.java index 9aec3295bdb..ffdbdadf519 100644 --- a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/URLDataSource.java +++ b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/URLDataSource.java @@ -126,7 +126,7 @@ public class URLDataSource extends DataSource { if (expr == null) { return null; } - return context.getVariableResolver().replaceTokens(expr); + return context.replaceTokens(expr); } private static final Pattern URIMETHOD = Pattern.compile("\\w{3,}:/"); diff --git a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/XPathEntityProcessor.java b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/XPathEntityProcessor.java index fe8c43e805c..a82077b070f 100644 --- a/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/XPathEntityProcessor.java +++ b/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/XPathEntityProcessor.java @@ -104,7 +104,7 @@ public class XPathEntityProcessor extends EntityProcessorBase { } String xslt = context.getEntityAttribute(XSL); if (xslt != null) { - xslt = resolver.replaceTokens(xslt); + xslt = context.replaceTokens(xslt); try { Source xsltSource = new StreamSource(xslt); // create an instance of TransformerFactory @@ -141,7 +141,7 @@ public class XPathEntityProcessor extends EntityProcessorBase { flags = XPathRecordReader.FLATTEN; } String xpath = field.get(XPATH); - xpath = resolver.replaceTokens(xpath); + xpath = context.replaceTokens(xpath); xpathReader.addField(field.get(DataImporter.COLUMN), xpath, Boolean.parseBoolean(field.get(DataImporter.MULTI_VALUED)), @@ -198,7 +198,7 @@ public class XPathEntityProcessor extends EntityProcessorBase { Map r = null; while (true) { if (rowIterator == null) - initQuery(resolver.replaceTokens(context.getEntityAttribute(URL))); + initQuery(context.replaceTokens(context.getEntityAttribute(URL))); r = getNext(); if (r == null) { Object hasMore = context.getSessionAttribute(HAS_MORE, Context.SCOPE_ENTITY); @@ -208,7 +208,7 @@ public class XPathEntityProcessor extends EntityProcessorBase { if (url == null) url = context.getEntityAttribute(URL); addNamespace(); - initQuery(resolver.replaceTokens(url)); + initQuery(context.replaceTokens(url)); r = getNext(); if (r == null) return null; @@ -236,8 +236,7 @@ public class XPathEntityProcessor extends EntityProcessorBase { Object val = context.getSessionAttribute(name, Context.SCOPE_ENTITY); if (val != null) namespace.put(name, val); } - resolver.addNamespace(entityName, namespace); - + ((VariableResolverImpl)context.getVariableResolver()).addNamespace(entityName, namespace); } private void addCommonFields(Map r) {