You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by kr...@apache.org on 2019/03/19 20:17:58 UTC
[lucene-solr] 01/01: SOLR-13335: Upgrade to velocity 2.0 and
velocity-tools 3.0
This is an automated email from the ASF dual-hosted git repository.
krisden pushed a commit to branch jira/solr-13335
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 927ab0b700882b5798dfdb39e94070158f5147d7
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Mar 19 13:08:26 2019 -0400
SOLR-13335: Upgrade to velocity 2.0 and velocity-tools 3.0
Signed-off-by: Kevin Risden <kr...@apache.org>
---
lucene/ivy-versions.properties | 9 +-
solr/contrib/velocity/ivy.xml | 10 +-
.../solr/response/SolrParamResourceLoader.java | 15 ++-
.../apache/solr/response/SolrVelocityLogger.java | 114 ---------------------
.../solr/response/SolrVelocityResourceLoader.java | 12 ++-
.../solr/response/VelocityResponseWriter.java | 26 +----
solr/licenses/velocity-1.7.jar.sha1 | 1 -
solr/licenses/velocity-engine-core-2.0.jar.sha1 | 1 +
...SL.txt => velocity-engine-core-LICENSE-ASL.txt} | 0
...-NOTICE.txt => velocity-engine-core-NOTICE.txt} | 0
solr/licenses/velocity-tools-2.0.jar.sha1 | 1 -
solr/licenses/velocity-tools-generic-3.0.jar.sha1 | 1 +
....txt => velocity-tools-generic-LICENSE-ASL.txt} | 0
...OTICE.txt => velocity-tools-generic-NOTICE.txt} | 0
solr/licenses/velocity-tools-view-3.0.jar.sha1 | 1 +
...ASL.txt => velocity-tools-view-LICENSE-ASL.txt} | 0
...s-NOTICE.txt => velocity-tools-view-NOTICE.txt} | 0
solr/licenses/velocity-tools-view-jsp-3.0.jar.sha1 | 1 +
...txt => velocity-tools-view-jsp-LICENSE-ASL.txt} | 0
...TICE.txt => velocity-tools-view-jsp-NOTICE.txt} | 0
20 files changed, 35 insertions(+), 157 deletions(-)
diff --git a/lucene/ivy-versions.properties b/lucene/ivy-versions.properties
index 51f05c4..2c83f4a 100644
--- a/lucene/ivy-versions.properties
+++ b/lucene/ivy-versions.properties
@@ -191,8 +191,13 @@ org.apache.tika.version = 1.19.1
/org.apache.tika/tika-parsers = ${org.apache.tika.version}
/org.apache.tika/tika-xmp = ${org.apache.tika.version}
-/org.apache.velocity/velocity = 1.7
-/org.apache.velocity/velocity-tools = 2.0
+org.apache.velocity.tools.version = 3.0
+/org.apache.velocity.tools/velocity-tools-generic = ${org.apache.velocity.tools.version}
+/org.apache.velocity.tools/velocity-tools-view = ${org.apache.velocity.tools.version}
+/org.apache.velocity.tools/velocity-tools-view-jsp = ${org.apache.velocity.tools.version}
+
+/org.apache.velocity/velocity-engine-core = 2.0
+
/org.apache.xmlbeans/xmlbeans = 3.0.1
/org.apache.zookeeper/zookeeper = 3.4.13
diff --git a/solr/contrib/velocity/ivy.xml b/solr/contrib/velocity/ivy.xml
index 561492d..ab8758b 100644
--- a/solr/contrib/velocity/ivy.xml
+++ b/solr/contrib/velocity/ivy.xml
@@ -23,9 +23,13 @@
<conf name="test" transitive="false"/>
</configurations>
<dependencies>
- <dependency org="commons-collections" name="commons-collections" rev="${/commons-collections/commons-collections}" conf="compile"/>
- <dependency org="org.apache.velocity" name="velocity" rev="${/org.apache.velocity/velocity}" conf="compile"/>
- <dependency org="org.apache.velocity" name="velocity-tools" rev="${/org.apache.velocity/velocity-tools}" conf="compile"/>
+ <dependency org="org.apache.commons" name="commons-lang3" rev="${/org.apache.commons/commons-lang3}" conf="compile"/>
+
+ <dependency org="org.apache.velocity" name="velocity-engine-core" rev="${/org.apache.velocity/velocity-engine-core}" conf="compile"/>
+
+ <dependency org="org.apache.velocity.tools" name="velocity-tools-generic" rev="${/org.apache.velocity.tools/velocity-tools-generic}" conf="compile"/>
+ <dependency org="org.apache.velocity.tools" name="velocity-tools-view" rev="${/org.apache.velocity.tools/velocity-tools-view}" conf="compile"/>
+ <dependency org="org.apache.velocity.tools" name="velocity-tools-view-jsp" rev="${/org.apache.velocity.tools/velocity-tools-view-jsp}" conf="compile"/>
<exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
</dependencies>
diff --git a/solr/contrib/velocity/src/java/org/apache/solr/response/SolrParamResourceLoader.java b/solr/contrib/velocity/src/java/org/apache/solr/response/SolrParamResourceLoader.java
index 17b2878..53e03d7 100644
--- a/solr/contrib/velocity/src/java/org/apache/solr/response/SolrParamResourceLoader.java
+++ b/solr/contrib/velocity/src/java/org/apache/solr/response/SolrParamResourceLoader.java
@@ -20,11 +20,10 @@ import org.apache.solr.request.SolrQueryRequest;
import org.apache.velocity.runtime.resource.loader.ResourceLoader;
import org.apache.velocity.runtime.resource.Resource;
import org.apache.velocity.exception.ResourceNotFoundException;
-import org.apache.commons.collections.ExtendedProperties;
+import org.apache.velocity.util.ExtProperties;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
+import java.io.Reader;
+import java.io.StringReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -52,13 +51,13 @@ public class SolrParamResourceLoader extends ResourceLoader {
}
@Override
- public void init(ExtendedProperties extendedProperties) {
+ public void init(ExtProperties extendedProperties) {
}
@Override
- public InputStream getResourceStream(String s) throws ResourceNotFoundException {
- String template = templates.get(s);
- return template == null ? null : new ByteArrayInputStream(template.getBytes(StandardCharsets.UTF_8));
+ public Reader getResourceReader(String source, String encoding) throws ResourceNotFoundException {
+ String template = templates.get(source);
+ return template == null ? null : new StringReader(template);
}
@Override
diff --git a/solr/contrib/velocity/src/java/org/apache/solr/response/SolrVelocityLogger.java b/solr/contrib/velocity/src/java/org/apache/solr/response/SolrVelocityLogger.java
deleted file mode 100644
index 00f817f..0000000
--- a/solr/contrib/velocity/src/java/org/apache/solr/response/SolrVelocityLogger.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.solr.response;
-
-import org.apache.velocity.runtime.RuntimeServices;
-import org.apache.velocity.runtime.log.LogChute;
-import org.slf4j.Logger;
-
-public class SolrVelocityLogger implements LogChute {
- private final Logger log;
-
- public SolrVelocityLogger(Logger log) {
- this.log = log;
- }
-
- @Override
- public void init(RuntimeServices runtimeServices) throws Exception {
- }
-
- @Override
- public void log(int level, String message) {
- switch(level) {
- case LogChute.TRACE_ID:
- log.trace(message);
- break;
-
- case LogChute.DEBUG_ID:
- log.debug(message);
- break;
-
- case LogChute.INFO_ID:
- log.info(message);
- break;
-
- case LogChute.WARN_ID:
- log.warn(message);
- break;
-
- case LogChute.ERROR_ID:
- log.error(message);
- break;
-
- default: // unknown logging level, use warn
- log.warn(message);
- break;
- }
- }
-
- @Override
- public void log(int level, String message, Throwable throwable) {
- switch(level) {
- case LogChute.TRACE_ID:
- log.trace(message, throwable);
- break;
-
- case LogChute.DEBUG_ID:
- log.debug(message, throwable);
- break;
-
- case LogChute.INFO_ID:
- log.info(message, throwable);
- break;
-
- case LogChute.WARN_ID:
- log.warn(message, throwable);
- break;
-
- case LogChute.ERROR_ID:
- log.error(message, throwable);
- break;
-
- default: // unknown logging level, use warn
- log.warn(message, throwable);
- break;
- }
- }
-
- @Override
- public boolean isLevelEnabled(int level) {
- switch(level) {
- case LogChute.TRACE_ID:
- return log.isTraceEnabled();
-
- case LogChute.DEBUG_ID:
- return log.isDebugEnabled();
-
- case LogChute.INFO_ID:
- return log.isInfoEnabled();
-
- case LogChute.WARN_ID:
- return log.isWarnEnabled();
-
- case LogChute.ERROR_ID:
- return log.isErrorEnabled();
-
- default:
- return false;
- }
- }
-}
diff --git a/solr/contrib/velocity/src/java/org/apache/solr/response/SolrVelocityResourceLoader.java b/solr/contrib/velocity/src/java/org/apache/solr/response/SolrVelocityResourceLoader.java
index c83a5a7..4fbbba0 100644
--- a/solr/contrib/velocity/src/java/org/apache/solr/response/SolrVelocityResourceLoader.java
+++ b/solr/contrib/velocity/src/java/org/apache/solr/response/SolrVelocityResourceLoader.java
@@ -17,13 +17,15 @@
package org.apache.solr.response;
import java.io.IOException;
-import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.nio.charset.StandardCharsets;
-import org.apache.commons.collections.ExtendedProperties;
import org.apache.solr.core.SolrResourceLoader;
import org.apache.velocity.exception.ResourceNotFoundException;
import org.apache.velocity.runtime.resource.Resource;
import org.apache.velocity.runtime.resource.loader.ResourceLoader;
+import org.apache.velocity.util.ExtProperties;
/**
* Velocity resource loader wrapper around Solr resource loader
@@ -37,13 +39,13 @@ public class SolrVelocityResourceLoader extends ResourceLoader {
}
@Override
- public void init(ExtendedProperties extendedProperties) {
+ public void init(ExtProperties extendedProperties) {
}
@Override
- public InputStream getResourceStream(String template_name) throws ResourceNotFoundException {
+ public Reader getResourceReader(String source, String encoding) throws ResourceNotFoundException {
try {
- return loader.openResource("velocity/" + template_name);
+ return new InputStreamReader(loader.openResource("velocity/" + source), StandardCharsets.UTF_8);
} catch (IOException ioe) {
throw new ResourceNotFoundException(ioe);
}
diff --git a/solr/contrib/velocity/src/java/org/apache/solr/response/VelocityResponseWriter.java b/solr/contrib/velocity/src/java/org/apache/solr/response/VelocityResponseWriter.java
index ad1ee39..5aa4afa 100644
--- a/solr/contrib/velocity/src/java/org/apache/solr/response/VelocityResponseWriter.java
+++ b/solr/contrib/velocity/src/java/org/apache/solr/response/VelocityResponseWriter.java
@@ -26,7 +26,6 @@ import java.lang.invoke.MethodHandles;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import java.util.ResourceBundle;
@@ -46,16 +45,14 @@ import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
-import org.apache.velocity.tools.ConversionUtils;
+import org.apache.velocity.tools.generic.CollectionTool;
import org.apache.velocity.tools.generic.ComparisonDateTool;
import org.apache.velocity.tools.generic.DisplayTool;
import org.apache.velocity.tools.generic.EscapeTool;
-import org.apache.velocity.tools.generic.ListTool;
import org.apache.velocity.tools.generic.LocaleConfig;
import org.apache.velocity.tools.generic.MathTool;
import org.apache.velocity.tools.generic.NumberTool;
import org.apache.velocity.tools.generic.ResourceTool;
-import org.apache.velocity.tools.generic.SortTool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -87,7 +84,6 @@ public class VelocityResponseWriter implements QueryResponseWriter, SolrCoreAwar
private String initPropertiesFileName; // used just to hold from init() to inform()
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- private static final SolrVelocityLogger velocityLogger = new SolrVelocityLogger(log);
private Properties velocityInitProps = new Properties();
private Map<String,String> customTools = new HashMap<String,String>();
@@ -211,8 +207,7 @@ public class VelocityResponseWriter implements QueryResponseWriter, SolrCoreAwar
context.put("log", log); // TODO: add test; TODO: should this be overridable with a custom "log" named tool?
context.put("esc", new EscapeTool());
context.put("date", new ComparisonDateTool());
- context.put("list", new ListTool());
- context.put(SORT, new SortTool());
+ context.put(SORT, new CollectionTool());
MathTool mathTool = new MathTool();
mathTool.configure(toolConfig);
@@ -285,9 +280,6 @@ public class VelocityResponseWriter implements QueryResponseWriter, SolrCoreAwar
private VelocityEngine createEngine(SolrQueryRequest request) {
VelocityEngine engine = new VelocityEngine();
- // route all Velocity logging through Solr's logging facility
- engine.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM, velocityLogger);
-
// Set some engine properties that improve the experience
// - these could be considered in the future for parameterization, but can also be overridden by using
// the init.properties.file setting. (TODO: add a test for this properties set here overridden)
@@ -381,7 +373,7 @@ public class VelocityResponseWriter implements QueryResponseWriter, SolrCoreAwar
return "{\"result\":\"" + replaced + "\"}";
}
- // see: http://svn.apache.org/repos/asf/velocity/tools/branches/2.0.x/src/main/java/org/apache/velocity/tools/generic/ResourceTool.java
+ // see: https://github.com/apache/velocity-tools/blob/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/ResourceTool.java
private static class SolrVelocityResourceTool extends ResourceTool {
private ClassLoader solrClassLoader;
@@ -398,17 +390,5 @@ public class VelocityResponseWriter implements QueryResponseWriter, SolrCoreAwar
(loc == null) ? this.getLocale() : this.toLocale(loc),
solrClassLoader);
}
-
- // Why did Velocity Tools make this private? Copied from ResourceTools.java
- private Locale toLocale(Object obj) {
- if (obj == null) {
- return null;
- }
- if (obj instanceof Locale) {
- return (Locale) obj;
- }
- String s = String.valueOf(obj);
- return ConversionUtils.toLocale(s);
- }
}
}
diff --git a/solr/licenses/velocity-1.7.jar.sha1 b/solr/licenses/velocity-1.7.jar.sha1
deleted file mode 100644
index e522a85..0000000
--- a/solr/licenses/velocity-1.7.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-2ceb567b8f3f21118ecdec129fe1271dbc09aa7a
diff --git a/solr/licenses/velocity-engine-core-2.0.jar.sha1 b/solr/licenses/velocity-engine-core-2.0.jar.sha1
new file mode 100644
index 0000000..9cbf13d
--- /dev/null
+++ b/solr/licenses/velocity-engine-core-2.0.jar.sha1
@@ -0,0 +1 @@
+6e5f29e1237b1764a4ce769feeffb85b0b19cfa7
diff --git a/solr/licenses/velocity-LICENSE-ASL.txt b/solr/licenses/velocity-engine-core-LICENSE-ASL.txt
similarity index 100%
rename from solr/licenses/velocity-LICENSE-ASL.txt
rename to solr/licenses/velocity-engine-core-LICENSE-ASL.txt
diff --git a/solr/licenses/velocity-NOTICE.txt b/solr/licenses/velocity-engine-core-NOTICE.txt
similarity index 100%
rename from solr/licenses/velocity-NOTICE.txt
rename to solr/licenses/velocity-engine-core-NOTICE.txt
diff --git a/solr/licenses/velocity-tools-2.0.jar.sha1 b/solr/licenses/velocity-tools-2.0.jar.sha1
deleted file mode 100644
index 579b5fc..0000000
--- a/solr/licenses/velocity-tools-2.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-69936384de86857018b023a8c56ae0635c56b6a0
diff --git a/solr/licenses/velocity-tools-generic-3.0.jar.sha1 b/solr/licenses/velocity-tools-generic-3.0.jar.sha1
new file mode 100644
index 0000000..018c1b3
--- /dev/null
+++ b/solr/licenses/velocity-tools-generic-3.0.jar.sha1
@@ -0,0 +1 @@
+e789f6ec06f9a69ccb8956f407fb685b2938e74b
diff --git a/solr/licenses/velocity-tools-LICENSE-ASL.txt b/solr/licenses/velocity-tools-generic-LICENSE-ASL.txt
similarity index 100%
copy from solr/licenses/velocity-tools-LICENSE-ASL.txt
copy to solr/licenses/velocity-tools-generic-LICENSE-ASL.txt
diff --git a/solr/licenses/velocity-tools-NOTICE.txt b/solr/licenses/velocity-tools-generic-NOTICE.txt
similarity index 100%
copy from solr/licenses/velocity-tools-NOTICE.txt
copy to solr/licenses/velocity-tools-generic-NOTICE.txt
diff --git a/solr/licenses/velocity-tools-view-3.0.jar.sha1 b/solr/licenses/velocity-tools-view-3.0.jar.sha1
new file mode 100644
index 0000000..67cf265
--- /dev/null
+++ b/solr/licenses/velocity-tools-view-3.0.jar.sha1
@@ -0,0 +1 @@
+2f72ca8eb2bcb8af2c5fab826d64add20ab70a2e
diff --git a/solr/licenses/velocity-tools-LICENSE-ASL.txt b/solr/licenses/velocity-tools-view-LICENSE-ASL.txt
similarity index 100%
copy from solr/licenses/velocity-tools-LICENSE-ASL.txt
copy to solr/licenses/velocity-tools-view-LICENSE-ASL.txt
diff --git a/solr/licenses/velocity-tools-NOTICE.txt b/solr/licenses/velocity-tools-view-NOTICE.txt
similarity index 100%
copy from solr/licenses/velocity-tools-NOTICE.txt
copy to solr/licenses/velocity-tools-view-NOTICE.txt
diff --git a/solr/licenses/velocity-tools-view-jsp-3.0.jar.sha1 b/solr/licenses/velocity-tools-view-jsp-3.0.jar.sha1
new file mode 100644
index 0000000..45dd7f8
--- /dev/null
+++ b/solr/licenses/velocity-tools-view-jsp-3.0.jar.sha1
@@ -0,0 +1 @@
+27f6a21c7973ffb75001b3e9ac4731facf5757b4
diff --git a/solr/licenses/velocity-tools-LICENSE-ASL.txt b/solr/licenses/velocity-tools-view-jsp-LICENSE-ASL.txt
similarity index 100%
rename from solr/licenses/velocity-tools-LICENSE-ASL.txt
rename to solr/licenses/velocity-tools-view-jsp-LICENSE-ASL.txt
diff --git a/solr/licenses/velocity-tools-NOTICE.txt b/solr/licenses/velocity-tools-view-jsp-NOTICE.txt
similarity index 100%
rename from solr/licenses/velocity-tools-NOTICE.txt
rename to solr/licenses/velocity-tools-view-jsp-NOTICE.txt