Experiences with 2.14pre1

Felix Gnass <[email protected]>
Newsgroups gmane.comp.web.freemarker.user
Message-ID <[email protected]>
Hi,

I just tried to upgrade our codebase to 2.4pre1 and noticed the 
following things:

Since the freemarker.core.ParseException moved to the 
freemarker.core.parser package, you can't use Spring's FreeMarkerView 
anymore, because I get a NoClassDefFound error. I copied the Spring 
sources and created my own FreeMarker24View (with a modified import 
statement) which works perfectly well.

The second time I stumbled across the very same exception was when I 
tried to replace the freemarker.jar bundled with the Jboss Spring IDE 
Eclipse plug-in. Replacing the jar file used to work well with earlier 
releases, so I thought I'd give it a try.

I haven't checked if this is the only API change that breaks backward 
compatibility with the plug-in, but in case it is (as it is with the 
Spring FreeMarkerView) it would be really helpful if the new 
freemarker.core.parser.ParseException would extend a deprecated 
freemarker.core.ParseException.

The reason why I tried to replace the freemarker.jar in the first place, 
was that FreeMarker IDE reported a syntax error when I tried to specify 
a default value for a var-args parameter.

My old macro that stopped working after the upgrade to 2.4 looks like this:

[#macro someMacro foo bar...]
    [@otherMacro bar=bar]
[/#macro]

This code used to work, I think because "bar..." defaulted to an empty 
sequence (or hash?) in 2.3.

I now get an error that "bar" is undefined when I try to pass it to the 
second macro in line 2. This makes sense, as no default is specified in 
the parameter list.

I then tried to change the declaration to [#macro someMacro foo 
bar...={}] to check whether this is valid syntax in 2.4.

This was the point where I got distracted, because my FreeMarker IDE 
told me that default values are not allowed for catch-all parameters. I 
assume the plug-in doesn't perform the parsing itself but delegates it 
to the bundled FreeMarker version, so replacing the freemarker.jar might 
actually work.


To summarize my questions:

1) Is [#macro someMacro foo bar...={}] the correct syntax or do I have 
to write [@otherMacro bar=bar!{}] in line two?

2) Would you consider to re-introduce a deprecated ParseException in 
freemarker.core in case this solved the two problems outlined above?


Kind regards,
-Felix


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.