[ https://issues.apache.org/jira/browse/VELOCITY-912?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mark Estrada updated VELOCITY-912: ---------------------------------- Description: I have this template: {code:java} hello-world.properties.vm ---------------------------------------------------------- Slash: ${sample-slash} Slash in a Map: ${map.sample-slash}{code} ---------------------------------------------------------- And I have this sample test case: {code:java} 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; } } {code} 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: --------------------------------------------------------------------- {code:java} 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) {code} 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. was: 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. > Hyphen Handling in Identifiers that are inside java collection > -------------------------------------------------------------- > > Key: VELOCITY-912 > URL: https://issues.apache.org/jira/browse/VELOCITY-912 > Project: Velocity > Issue Type: Bug > Components: Engine > Affects Versions: 2.1 > Reporter: Mark Estrada > Priority: Major > > I have this template: > {code:java} > hello-world.properties.vm > ---------------------------------------------------------- > Slash: ${sample-slash} > Slash in a Map: ${map.sample-slash}{code} > ---------------------------------------------------------- > And I have this sample test case: > > {code:java} > 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; } > } > {code} > > 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: > --------------------------------------------------------------------- > {code:java} > 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) > {code} > > 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. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org