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:59:03 GMT
As a side note, you can of course work around the problem with 
${map.get("sample-slash")} .

On 15/04/2019 19:57, Claude Brisson wrote:
> 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
>
>

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


Mime
View raw message