From f5faabbb4f31c8cd81f658e05315d108b4998d62 Mon Sep 17 00:00:00 2001 From: olenagerasimova Date: Tue, 11 Dec 2018 14:18:42 +0300 Subject: [PATCH] #842 migrated to velocity 2.0 --- pom.xml | 4 +-- src/main/java/org/takes/rs/RsVelocity.java | 36 +++++++++++++++++----- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/pom.xml b/pom.xml index bbcba56ce..adaf4c38e 100644 --- a/pom.xml +++ b/pom.xml @@ -143,8 +143,8 @@ SOFTWARE. org.apache.velocity - velocity - 1.7 + velocity-engine-core + 2.0 compile true diff --git a/src/main/java/org/takes/rs/RsVelocity.java b/src/main/java/org/takes/rs/RsVelocity.java index b9828bf7d..9ae6de3ef 100644 --- a/src/main/java/org/takes/rs/RsVelocity.java +++ b/src/main/java/org/takes/rs/RsVelocity.java @@ -36,9 +36,8 @@ import lombok.ToString; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.VelocityEngine; -import org.apache.velocity.runtime.RuntimeConstants; -import org.apache.velocity.runtime.log.NullLogChute; import org.takes.Response; +import org.takes.Scalar; import org.takes.misc.Utf8InputStreamReader; import org.takes.misc.Utf8OutputStreamWriter; import org.takes.misc.Utf8String; @@ -124,6 +123,17 @@ public RsVelocity(final InputStream template, final Map params) { + this(folder, template, () -> RsVelocity.convert(params)); + } + + /** + * Ctor. + * @param folder Template folder + * @param template Template + * @param params Map of params + */ + public RsVelocity(final String folder, + final InputStream template, final Scalar> params) { super( new Response() { @Override @@ -132,7 +142,7 @@ public Iterable head() { } @Override public InputStream body() throws IOException { - return RsVelocity.render(folder, template, params); + return RsVelocity.render(folder, template, params.get()); } } ); @@ -148,14 +158,10 @@ public InputStream body() throws IOException { */ private static InputStream render(final String folder, final InputStream template, - final Map params) throws IOException { + final Map params) throws IOException { final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final Writer writer = new Utf8OutputStreamWriter(baos); final VelocityEngine engine = new VelocityEngine(); - engine.setProperty( - RuntimeConstants.RUNTIME_LOG_LOGSYSTEM, - new NullLogChute() - ); engine.setProperty( "file.resource.loader.path", folder @@ -185,6 +191,20 @@ private static Map asMap( return map; } + /** + * Converts Map of CharSequence, Object to Map of String, Object. + * @param params Parameters in Map of CharSequence, Object + * @return Map of String, Object. + */ + private static Map convert( + final Map params) { + final Map map = new HashMap<>(params.size()); + for (final Map.Entry ent : params.entrySet()) { + map.put(ent.getKey().toString(), ent.getValue()); + } + return map; + } + /** * Pair of values. */