7 changed files with 95 additions and 124 deletions
@ -1,68 +0,0 @@ |
|||
/** |
|||
* Copyright © 2016-2018 The Thingsboard Authors |
|||
* |
|||
* Licensed 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.thingsboard.rule.engine.mail; |
|||
|
|||
import com.fasterxml.jackson.databind.ObjectMapper; |
|||
import org.apache.velocity.Template; |
|||
import org.apache.velocity.VelocityContext; |
|||
import org.apache.velocity.runtime.RuntimeServices; |
|||
import org.apache.velocity.runtime.RuntimeSingleton; |
|||
import org.apache.velocity.runtime.parser.ParseException; |
|||
import org.apache.velocity.runtime.parser.node.SimpleNode; |
|||
import org.thingsboard.server.common.msg.TbMsg; |
|||
|
|||
import java.io.IOException; |
|||
import java.io.StringReader; |
|||
import java.io.StringWriter; |
|||
import java.util.Map; |
|||
|
|||
import static org.thingsboard.server.common.msg.TbMsgDataType.JSON; |
|||
|
|||
public class RuleVelocityUtils { |
|||
|
|||
public static VelocityContext createContext(TbMsg msg) throws IOException { |
|||
VelocityContext context = new VelocityContext(); |
|||
context.put("originator", msg.getOriginator()); |
|||
context.put("type", msg.getType()); |
|||
context.put("metadata", msg.getMetaData().values()); |
|||
if (msg.getDataType() == JSON) { |
|||
Map map = new ObjectMapper().readValue(msg.getData(), Map.class); |
|||
context.put("msg", map); |
|||
} else { |
|||
context.put("msg", msg.getData()); |
|||
} |
|||
return context; |
|||
} |
|||
|
|||
public static String merge(Template template, VelocityContext context) { |
|||
StringWriter writer = new StringWriter(); |
|||
template.merge(context, writer); |
|||
return writer.toString(); |
|||
} |
|||
|
|||
public static Template create(String source, String templateName) throws ParseException { |
|||
RuntimeServices runtimeServices = RuntimeSingleton.getRuntimeServices(); |
|||
StringReader reader = new StringReader(source); |
|||
SimpleNode node = runtimeServices.parse(reader, templateName); |
|||
Template template = new Template(); |
|||
template.setRuntimeServices(runtimeServices); |
|||
template.setData(node); |
|||
template.initDocument(); |
|||
return template; |
|||
} |
|||
|
|||
|
|||
} |
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue