velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claude Brisson <cla...@renegat.net.INVALID>
Subject Re: Why HYPHEN is not propagated on Java Maps?
Date Mon, 15 Apr 2019 17:57:12 GMT
I agree it's a bug of the PARSER_HYPHEN_ALLOWED option.

Would you be kind enough to create an issue and upload your testcase?

On 15/04/2019 11:09, Nel Neliel wrote:
> Hi,
>
> I have this template:
>
>
> hello-world.properties.vm
> ----------------------------------------------------------
> Slash: ${sample-slash}
> Slash in a Map: ${map.sample-slash}
>
>
> ----------------------------------------------------------
> And I have this sample test case:
>
> public class ApacheVelocityTest {
> private final String RESOURCES_DIR = "src/test/resources";
>
> @Test
> public void testVelocity() {
> Path templatePath = Paths.get(RESOURCES_DIR, "templates",
> "hello-world.properties.vm");
>
>
> VelocityEngine ve = new VelocityEngine();
> ve.setProperty(Velocity.PARSER_HYPHEN_ALLOWED, true);
>
> ve.init();
> Template t = ve.getTemplate(templatePath.toString());
>
> VelocityContext context = new VelocityContext();
>
> context.put("sample-slash", "SLASH");
>
> Map<String, String> sampleData = createData();
> context.put("map", sampleData);
>
> StringWriter writer = new StringWriter();
> t.merge(context, writer);
>
> System.out.println(writer.toString());
> }
>
> public Map<String, String> createData() {
> Map<String, String> mapData = new HashMap<String, String>();
>
> mapData.put("sample-slash", "USER1");
>
> return mapData;
>
> }
> }
>
> Now, the first "sample-slash" is rendered correctly but the one that is in
> the config map is not..it is throwing out an error like this:
>
> ---------------------------------------------------------------------
> org.apache.velocity.exception.ParseErrorException: Encountered "-slash}" at
> src\test\resources\templates\hello-world.properties.vm[line 5, column 22]
> Was expecting one of:
>      "[" ...
>      "|" ...
>      "}" ...
>      "}" ...
>
> at org.apache.velocity.Template.process(Template.java:154)
>
>
> The parser exception is being thrown by the object that is embedded into
> the java map.
>
> Do I have any workaround for this developers?  Any pointers are greatly
> appreciated.
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@velocity.apache.org
For additional commands, e-mail: user-help@velocity.apache.org


Mime
View raw message