[jira] [Commented] (FREEMARKER-55) FM3 freemarker-spring module, Web MVC support
[ https://issues.apache.org/jira/browse/FREEMARKER-55?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16090837#comment-16090837 ] ASF GitHub Bot commented on FREEMARKER-55: -- Github user woonsan closed the pull request at: https://github.com/apache/incubator-freemarker/pull/28 > FM3 freemarker-spring module, Web MVC support > - > > Key: FREEMARKER-55 > URL: https://issues.apache.org/jira/browse/FREEMARKER-55 > Project: Apache Freemarker > Issue Type: Task >Affects Versions: 3.0.0 >Reporter: Daniel Dekany > > Add Spring "Web MVC framework" functionality to freemarker-spring. > This can be complex task (and the issue possibly has to be subdivided), as it > involves things like: > * Some aspects of the FreeMarker 2 integration (developed by the Spring > developers) are quite confusing ({{FreemarerConfigurer}}, etc.), and we are > looking into if it needs to be like that. > * See if we can support {{@EnableWebMvc}} (note that FreeMarker 2 support is > hard coded into {{ViewResolverRegistry}}, which we can't modify) > * Creating custom directives/methods to expose Spring features like the > Spring JSP Tag Library does (but in a way that firs FreeMarker better) > * Expose JSP custom tag support from the {{freemarker-servlet}} module. > Depends on: FREEMARKER-54 -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] incubator-freemarker pull request #28: FREEMARKER-55: Renaming Freemarker to...
Github user woonsan closed the pull request at: https://github.com/apache/incubator-freemarker/pull/28 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[2/2] incubator-freemarker git commit: Parameters passed by position (as opposed to by name) must be separated by comma. Also, items in sequence literals must be separated by comma. In FM2, comma coul
Parameters passed by position (as opposed to by name) must be separated by comma. Also, items in sequence literals must be separated by comma. In FM2, comma could be omitted on these places. Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/23341885 Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/23341885 Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/23341885 Branch: refs/heads/3 Commit: 23341885ae5837608490944abc80ab4eb8e7f615 Parents: 5a46ad3 Author: ddekany Authored: Mon Jul 17 21:05:19 2017 +0200 Committer: ddekany Committed: Mon Jul 17 21:05:19 2017 +0200 -- FM3-CHANGE-LOG.txt | 6 ++ .../core/FM2ASTToFM3SourceConverter.java| 90 +++- .../freemarker/converter/FM2ToFM3Converter.java | 31 --- .../converter/FM2ToFM3ConverterTest.java| 23 +++-- .../freemarker/core/RemovedFM2SyntaxTest.java | 25 +- .../org/apache/freemarker/core/ast-1.ftl| 4 +- .../org/apache/freemarker/core/ast-range.ftl| 2 +- .../core/templatesuite/templates/macros.ftl | 6 +- .../templatesuite/templates/numerical-cast.ftl | 2 +- freemarker-core/src/main/javacc/FTL.jj | 2 +- .../apache/freemarker/test/TemplateTest.java| 2 +- 11 files changed, 145 insertions(+), 48 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/23341885/FM3-CHANGE-LOG.txt -- diff --git a/FM3-CHANGE-LOG.txt b/FM3-CHANGE-LOG.txt index 70300ce..de8fc83 100644 --- a/FM3-CHANGE-LOG.txt +++ b/FM3-CHANGE-LOG.txt @@ -42,6 +42,10 @@ Major changes / features then `template_loader` becomes to `templateLoader`, and if you use the XML features, then `node.@@nested_markup` becomes to `node.@@nestedMarkup`. Note that the template converter tool takes care of this conversion. +- Parameters passed by position (as opposed to by name) must be separated by comma. Earlier the comma was optional + Examples: + `<@x x + 1 2 3 />` now must be written as `<@x x + 1, 2, 3 />` + `<#nested x y>` now must be written as `<#nested x, y>` Smaller changes --- @@ -65,6 +69,8 @@ Node: Changes already mentioned above aren't repeated here! translated to `${b}`, while `#{x; m1M3}` is translated to `${x?string('0.0##')}`). The output should remain the same. - Removed some long deprecated built-ins: - `webSafe` (converted to `html`) +- Comma is now required between sequence literal items (such as `[a, b, c]`). It's not well known, but in FM2 the comma + could be omitted. - #include has no "encoding" parameter anymore (as now only the Configuration is responsible ofr deciding the encoding) - You can't close #attempt/#recover with `` anymore, only with `<#attempt>`. This was the standard form in FM2 as well, and is consistent with how #if/#else works. (The template converter http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/23341885/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java -- diff --git a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java index 04166e8..4b62179 100644 --- a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java +++ b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java @@ -38,6 +38,7 @@ import org.apache.freemarker.converter.UnconvertableLegacyFeatureException; import org.apache.freemarker.core.util.FTLUtil; import org.apache.freemarker.core.util._ClassUtil; import org.apache.freemarker.core.util._NullArgumentException; +import org.apache.freemarker.core.util._ObjectHolder; import org.apache.freemarker.core.util._StringUtil; import com.google.common.collect.ImmutableMap; @@ -648,7 +649,12 @@ public class FM2ASTToFM3SourceConverter { printExp(passedValue); pos = getEndPositionExclusive(passedValue); if (paramIdx < paramCnt - 1) { -printOptionalSeparatorAndWSAndExpComments(pos, ","); +_ObjectHolder hadSeparatorSymbol = new _ObjectHolder<>(null); +int spacingStartPos = out.length(); +pos = printOptionalSeparatorAndWSAndExpComments(pos, ",", hadSeparatorSymbol); +if (!hadSeparatorSymbol.get()) { +insertOmittedSeparatorComma(spacingStartPos); +} } } printDirStartTagEnd(node, pos, false); @@ -1208,7 +1214,20 @@ public class FM2ASTToFM3SourceConverter {
[1/2] incubator-freemarker git commit: (Converter minor additions)
Repository: incubator-freemarker Updated Branches: refs/heads/3 d0f34dcc1 -> 23341885a (Converter minor additions) Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/5a46ad37 Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/5a46ad37 Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/5a46ad37 Branch: refs/heads/3 Commit: 5a46ad37dade8eb45e9d471bd849b340537b6289 Parents: d0f34dc Author: ddekany Authored: Mon Jul 17 15:26:31 2017 +0200 Committer: ddekany Committed: Mon Jul 17 15:31:39 2017 +0200 -- .../main/java/freemarker/core/FM2ASTToFM3SourceConverter.java | 6 +++--- .../java/org/freemarker/converter/FM2ToFM3ConverterTest.java | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/5a46ad37/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java -- diff --git a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java index 3117ec2..04166e8 100644 --- a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java +++ b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java @@ -1183,13 +1183,13 @@ public class FM2ASTToFM3SourceConverter { Expression callee = getParam(node, 0, ParameterRole.CALLEE, Expression.class); printExp(callee); -int calleEnd = getEndPositionExclusive(callee); -int lastParamEnd = printWSAndExpComments(calleEnd); +int calleeEnd = getEndPositionExclusive(callee); +int lastParamEnd = printWSAndExpComments(calleeEnd); boolean legacyCallDirWithParenthesis = false; boolean legacyCallDirNeedsSeparatorSpace = false; if (legacyCallDirMode) { if (src.charAt(lastParamEnd) == '(') { -if (calleEnd == lastParamEnd) { +if (calleeEnd == lastParamEnd) { legacyCallDirNeedsSeparatorSpace = true; } lastParamEnd++; // skip '(' http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/5a46ad37/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java -- diff --git a/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java b/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java index 5915476..3660262 100644 --- a/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java +++ b/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java @@ -127,18 +127,17 @@ public class FM2ToFM3ConverterTest extends ConverterTest { assertConvertedSame("${a<#--1--><<#--2-->b}${a<#--3--><=<#--4-->b}" + "${(a<#--7-->><#--8-->b)}${(a<#--9-->>=<#--A-->b)}" + "${a<#--B-->==<#--C-->b}${a<#--D-->!=<#--E-->b}"); -// "Same" for now, will be different later. assertConverted("${a == b}${a == b}", "${a = b}${a == b}"); assertConvertedSame("${a < b}${a lt b}${a \\lt b}"); assertConvertedSame("${a <= b}${a lte b}${a \\lte b}"); assertConvertedSame("${a > b}${a gt b}${a \\gt b}"); assertConvertedSame("${a >= b}${a gte b}${a \\gte b}"); -// [FM3] Add \and and && tests when 2.3.27 is released assertConverted("${a && b}${a && b}${a || b}${a || b}", "${a && b}${a & b}${a || b}${a | b}"); assertConverted( "${a<#--1-->&&<#--2-->b}${a<#--3-->&&<#--4-->b}${a<#--5-->||<#--6-->b}${a<#--7-->||<#--8-->b}", "${a<#--1-->&&<#--2-->b}${a<#--3-->&<#--4-->b}${a<#--5-->||<#--6-->b}${a<#--7-->|<#--8-->b}"); +assertConvertedSame("${a && b}${a \\and b}"); assertConvertedSame("${!a}${! foo}${! <#--1--> bar}${!!c}");
[2/2] incubator-freemarker git commit: Removed the following operator aliases: `=` for comparison (it can only be used for assignment now); use `==` instead. `&` for logical "and"; use `&&` instead. `
Removed the following operator aliases: `=` for comparison (it can only be used for assignment now); use `==` instead. `&` for logical "and"; use `&&` instead. `|` for logical "or"; use `||` instead. Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/d0f34dcc Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/d0f34dcc Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/d0f34dcc Branch: refs/heads/3 Commit: d0f34dcc1e6b7ed802012a12c1168b467618f3b9 Parents: e5f21cf Author: ddekany Authored: Mon Jul 17 15:14:56 2017 +0200 Committer: ddekany Committed: Mon Jul 17 15:15:46 2017 +0200 -- FM3-CHANGE-LOG.txt | 4 +++ .../core/FM2ASTToFM3SourceConverter.java| 8 ++--- .../converter/FM2ToFM3ConverterTest.java| 9 +++--- .../freemarker/core/RemovedFM2SyntaxTest.java | 34 .../templates/sequence-builtins.ftl | 2 +- .../freemarker/core/ASTDirAssignment.java | 2 +- .../freemarker/core/ASTExpComparison.java | 2 +- freemarker-core/src/main/javacc/FTL.jj | 34 +--- 8 files changed, 65 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d0f34dcc/FM3-CHANGE-LOG.txt -- diff --git a/FM3-CHANGE-LOG.txt b/FM3-CHANGE-LOG.txt index 51caf23..70300ce 100644 --- a/FM3-CHANGE-LOG.txt +++ b/FM3-CHANGE-LOG.txt @@ -56,6 +56,10 @@ Node: Changes already mentioned above aren't repeated here! - <#comment>... (deprecated by <#-- ... -->) - <#transform ...>... (deprecated by <@...>...) - <#foreach x in xs>... (deprecated by <#list xs as x>...) +- Removed the following operator aliases: + - `=` for comparison (it can only be used for assignment now). Use `==` instead. + - `&` for logical "and". Use `&&` instead. + - `|` for logical "or". Use `||` instead. - Removed long deprecated `#{}` interpolations. They are treated as plain static text now. Converter note: The template converter tool translates these to `${}` interpolations. For example `#{x}` is simply translated to `${b}`, while `#{x; m1M3}` is translated to `${x?string('0.0##')}`). The output should remain the same. http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d0f34dcc/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java -- diff --git a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java index 0161cb8..3117ec2 100644 --- a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java +++ b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java @@ -1431,7 +1431,7 @@ public class FM2ASTToFM3SourceConverter { COMPARATOR_OP_MAP = new HashMap(); // For now we leave FM2 ops as is, but later in many cases they will be replaced. COMPARATOR_OP_MAP.put("==", "=="); -COMPARATOR_OP_MAP.put("=", "="); +COMPARATOR_OP_MAP.put("=", "=="); COMPARATOR_OP_MAP.put("!=", "!="); COMPARATOR_OP_MAP.put("<", "<"); COMPARATOR_OP_MAP.put("lt", "lt"); @@ -1459,9 +1459,8 @@ public class FM2ASTToFM3SourceConverter { static { AND_OP_MAP = new HashMap(); -// For now we leave FM2 ops as is, but later in many cases they will be replaced. AND_OP_MAP.put("&&", "&&"); -AND_OP_MAP.put("&", "&"); +AND_OP_MAP.put("&", "&&"); AND_OP_MAP.put("\\and", "\\and"); AND_OP_MAP.put("&&", "&&"); } @@ -1474,9 +1473,8 @@ public class FM2ASTToFM3SourceConverter { static { OR_OP_MAP = new HashMap(); -// For now we leave FM2 ops as is, but later in many cases they will be replaced. OR_OP_MAP.put("||", "||"); -OR_OP_MAP.put("|", "|"); +OR_OP_MAP.put("|", "||"); } private void printExpOr(OrExpression node) throws ConverterException { http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d0f34dcc/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java -- diff --git a/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java b/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java index 5d79962..5915476 100644 --- a/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java +++ b/freemarker-converter/src/test/java/org/fr
[1/2] incubator-freemarker git commit: (Setting name converter fix)
Repository: incubator-freemarker Updated Branches: refs/heads/3 c622e112b -> d0f34dcc1 (Setting name converter fix) Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/e5f21cf1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/e5f21cf1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/e5f21cf1 Branch: refs/heads/3 Commit: e5f21cf1843f790c3b71318ac09f31b0f0aabdf8 Parents: c622e11 Author: ddekany Authored: Mon Jul 17 14:26:38 2017 +0200 Committer: ddekany Committed: Mon Jul 17 14:26:38 2017 +0200 -- .../main/java/freemarker/core/FM2ASTToFM3SourceConverter.java | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/e5f21cf1/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java -- diff --git a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java index 9ee615e..0161cb8 100644 --- a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java +++ b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java @@ -23,7 +23,6 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.Reader; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -612,8 +611,11 @@ public class FM2ASTToFM3SourceConverter { + "FreeMarker 3. You have to remove it manually before conversion.", node.getBeginLine(), node.getBeginColumn()); } +if (converted.equals("datetimeFormat")) { +converted = "dateTimeFormat"; +} -if (!Arrays.asList(PropertySetting.SETTING_NAMES).contains(converted)) { +if (!org.apache.freemarker.core.Environment.getSettingNames().contains(converted)) { throw new ConverterException("Couldn't map \"" + name + "\" to a valid FreeMarker 3 setting name " + "(tried: " + converted + ")"); }
incubator-freemarker git commit: Removed long deprecated `?webSafe` (replaced by `?html`)
Repository: incubator-freemarker Updated Branches: refs/heads/3 704a83a7d -> c622e112b Removed long deprecated `?webSafe` (replaced by `?html`) Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/c622e112 Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/c622e112 Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/c622e112 Branch: refs/heads/3 Commit: c622e112b0a233b1f1d4b05347a56f7de5a50aba Parents: 704a83a Author: ddekany Authored: Mon Jul 17 12:44:18 2017 +0200 Committer: ddekany Committed: Mon Jul 17 12:44:18 2017 +0200 -- FM3-CHANGE-LOG.txt| 2 ++ .../src/main/java/org/apache/freemarker/core/ASTExpBuiltIn.java | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/c622e112/FM3-CHANGE-LOG.txt -- diff --git a/FM3-CHANGE-LOG.txt b/FM3-CHANGE-LOG.txt index 1dfe8be..51caf23 100644 --- a/FM3-CHANGE-LOG.txt +++ b/FM3-CHANGE-LOG.txt @@ -59,6 +59,8 @@ Node: Changes already mentioned above aren't repeated here! - Removed long deprecated `#{}` interpolations. They are treated as plain static text now. Converter note: The template converter tool translates these to `${}` interpolations. For example `#{x}` is simply translated to `${b}`, while `#{x; m1M3}` is translated to `${x?string('0.0##')}`). The output should remain the same. +- Removed some long deprecated built-ins: + - `webSafe` (converted to `html`) - #include has no "encoding" parameter anymore (as now only the Configuration is responsible ofr deciding the encoding) - You can't close #attempt/#recover with `` anymore, only with `<#attempt>`. This was the standard form in FM2 as well, and is consistent with how #if/#else works. (The template converter http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/c622e112/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltIn.java -- diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltIn.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltIn.java index 58b0127..c658ba8 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltIn.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltIn.java @@ -77,7 +77,7 @@ abstract class ASTExpBuiltIn extends ASTExpression implements Cloneable { protected ASTExpression target; protected String key; -static final int NUMBER_OF_BIS = 263; +static final int NUMBER_OF_BIS = 262; static final HashMap BUILT_INS_BY_NAME = new HashMap(NUMBER_OF_BIS * 3 / 2 + 1, 1f); static { @@ -275,7 +275,6 @@ abstract class ASTExpBuiltIn extends ASTExpression implements Cloneable { putBI("url", new BuiltInsForStringsEncoding.urlBI()); putBI("urlPath", new BuiltInsForStringsEncoding.urlPathBI()); putBI("values", new BuiltInsForHashes.valuesBI()); -putBI("webSafe", BUILT_INS_BY_NAME.get("html")); // deprecated; use ?html instead putBI("wordList", new BuiltInsForStringsBasic.word_listBI()); putBI("xhtml", new BuiltInsForStringsEncoding.xhtmlBI()); putBI("xml", new BuiltInsForStringsEncoding.xmlBI());
incubator-freemarker git commit: (Some more change log structuring)
Repository: incubator-freemarker Updated Branches: refs/heads/3 9f5c18a4e -> 704a83a7d (Some more change log structuring) Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/704a83a7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/704a83a7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/704a83a7 Branch: refs/heads/3 Commit: 704a83a7dd4090a88753ee9bf1e51615bd838077 Parents: 9f5c18a Author: ddekany Authored: Mon Jul 17 12:35:09 2017 +0200 Committer: ddekany Committed: Mon Jul 17 12:35:09 2017 +0200 -- FM3-CHANGE-LOG.txt | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/704a83a7/FM3-CHANGE-LOG.txt -- diff --git a/FM3-CHANGE-LOG.txt b/FM3-CHANGE-LOG.txt index 68f09c0..1dfe8be 100644 --- a/FM3-CHANGE-LOG.txt +++ b/FM3-CHANGE-LOG.txt @@ -29,7 +29,7 @@ Template language changes Note that the template converter tool (freemarker-converter) can automatically apply many of these changes on FM2 templates. But changes that aren't purely syntactical (but behavioral) often can't be treated with 100% safety or at -all, in which ase it's always noted for that change. +all, in which case it's always noted for that change as "Converter note:". Major changes / features @@ -48,16 +48,17 @@ Smaller changes Node: Changes already mentioned above aren't repeated here! -- Removed support for all old glitches that you could turn on/off with incompatibleImprovements in FM2 - (These are generally not covered by the converter tool.) +- Removed support for all old glitches that you could turn on/off with `incompatibleImprovements` in FM2 (see + them in the JavaDoc of FM2 `Configuration`). + Converter note: The otherwise very low risk behavioral changes here aren't covered by the converter tool. - Removed some long deprecated template language directives: - <#call ...> (deprecated by <@... />) - <#comment>... (deprecated by <#-- ... -->) - <#transform ...>... (deprecated by <@...>...) - <#foreach x in xs>... (deprecated by <#list xs as x>...) -- Removed long deprecated `#{}` interpolations. They are treated as plain static text now. (The - template converter tool translates these to `${}` interpolations. For example `#{x}` is simply - translated to `${b}`, while `#{x; m1M3}` is translated to `${x?string('0.0##')}`). +- Removed long deprecated `#{}` interpolations. They are treated as plain static text now. + Converter note: The template converter tool translates these to `${}` interpolations. For example `#{x}` is simply + translated to `${b}`, while `#{x; m1M3}` is translated to `${x?string('0.0##')}`). The output should remain the same. - #include has no "encoding" parameter anymore (as now only the Configuration is responsible ofr deciding the encoding) - You can't close #attempt/#recover with `` anymore, only with `<#attempt>`. This was the standard form in FM2 as well, and is consistent with how #if/#else works. (The template converter
incubator-freemarker git commit: Removed the `.templateName` (`.template_name`) special variable, which was deprecated by `.currentTemplateName` since 2.3.23.
Repository: incubator-freemarker Updated Branches: refs/heads/3 8a2cf2795 -> 9f5c18a4e Removed the `.templateName` (`.template_name`) special variable, which was deprecated by `.currentTemplateName` since 2.3.23. Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/9f5c18a4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/9f5c18a4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/9f5c18a4 Branch: refs/heads/3 Commit: 9f5c18a4e1e5b2a63caf36494cdb96102c0d2fe2 Parents: 8a2cf27 Author: ddekany Authored: Mon Jul 17 12:34:32 2017 +0200 Committer: ddekany Committed: Mon Jul 17 12:34:32 2017 +0200 -- FM3-CHANGE-LOG.txt | 5 + .../main/java/freemarker/core/FM2ASTToFM3SourceConverter.java | 2 ++ .../java/org/freemarker/converter/FM2ToFM3ConverterTest.java| 1 + .../freemarker/core/templatesuite/templates/specialvars.ftl | 2 +- .../java/org/apache/freemarker/core/ASTExpBuiltInVariable.java | 5 + 5 files changed, 10 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9f5c18a4/FM3-CHANGE-LOG.txt -- diff --git a/FM3-CHANGE-LOG.txt b/FM3-CHANGE-LOG.txt index 5a51357..68f09c0 100644 --- a/FM3-CHANGE-LOG.txt +++ b/FM3-CHANGE-LOG.txt @@ -69,6 +69,11 @@ Node: Changes already mentioned above aren't repeated here! `?dateTime` and `?dateTimeIfUnknown` and `dateTimeFormat`. (In general, it's `dateTime`, not `datetime` everywhere.) assertConverted("${.outputFormat}","${.output_format}"); - Removed the `.currentNode` (`.current_node`) special variable, which was a deprecated alias to `.node` +- Removed the `.templateName` (`.template_name`) special variable, which was deprecated by `.currentTemplateName` + since 2.3.23. + Converter note: This conversion is done, but note that in the rare case where a template has no name (when + creating a `Template` directly with its constructor using `null` as the `name` parameter) `.templateName` was an + empty string, while `.currentTemplateName` will be null. Java API changes http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9f5c18a4/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java -- diff --git a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java index b4b7f99..9ee615e 100644 --- a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java +++ b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java @@ -1517,6 +1517,8 @@ public class FM2ASTToFM3SourceConverter { if (converted.equals("currentNode")) { converted = "node"; +} else if (converted.equals("templateName")) { +converted = "currentTemplateName"; } return converted; http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9f5c18a4/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java -- diff --git a/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java b/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java index 9832d73..5d79962 100644 --- a/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java +++ b/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java @@ -121,6 +121,7 @@ public class FM2ToFM3ConverterTest extends ConverterTest { assertConvertedSame("${. <#-- C --> outputFormat}"); assertConverted("${.outputFormat}","${.output_format}"); assertConverted("${.node}","${.current_node}"); +assertConverted("${.currentTemplateName}","${.template_name}"); assertConvertedSame("${a < b}${a <= b}${(a > b)}${(a >= b)}${a == b}${a != b}"); assertConvertedSame("${a<#--1--><<#--2-->b}${a<#--3--><=<#--4-->b}" http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/9f5c18a4/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/specialvars.ftl -- diff --git a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/specialvars.ftl b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/specialvars.ftl index 3aa2a62..c6b608f 1006
incubator-freemarker git commit: Removed the `.currentNode` (`.current_node`) special variable, which was a deprecated alias to `.node`
Repository: incubator-freemarker Updated Branches: refs/heads/3 71860acdc -> 8a2cf2795 Removed the `.currentNode` (`.current_node`) special variable, which was a deprecated alias to `.node` Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/8a2cf279 Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/8a2cf279 Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/8a2cf279 Branch: refs/heads/3 Commit: 8a2cf2795111dc71c58738c7de836c12e0a2a88c Parents: 71860ac Author: ddekany Authored: Mon Jul 17 11:55:52 2017 +0200 Committer: ddekany Committed: Mon Jul 17 11:56:27 2017 +0200 -- FM3-CHANGE-LOG.txt | 2 ++ .../main/java/freemarker/core/FM2ASTToFM3SourceConverter.java| 4 +++- .../java/org/freemarker/converter/FM2ToFM3ConverterTest.java | 1 + .../java/org/apache/freemarker/core/ASTExpBuiltInVariable.java | 4 +--- .../src/main/java/org/apache/freemarker/core/Environment.java| 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8a2cf279/FM3-CHANGE-LOG.txt -- diff --git a/FM3-CHANGE-LOG.txt b/FM3-CHANGE-LOG.txt index 3d32e15..5a51357 100644 --- a/FM3-CHANGE-LOG.txt +++ b/FM3-CHANGE-LOG.txt @@ -67,6 +67,8 @@ Node: Changes already mentioned above aren't repeated here! - #else and #elseIf tags must be ended without "/", for example, <#else/> is illegal now, <#else> is legal. - Renamed `?datetime` and `?datetimeIfUnknown` and the `datetimeFormat` setting to `?dateTime` and `?dateTimeIfUnknown` and `dateTimeFormat`. (In general, it's `dateTime`, not `datetime` everywhere.) + assertConverted("${.outputFormat}","${.output_format}"); +- Removed the `.currentNode` (`.current_node`) special variable, which was a deprecated alias to `.node` Java API changes http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8a2cf279/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java -- diff --git a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java index db61f98..b4b7f99 100644 --- a/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java +++ b/freemarker-converter/src/main/java/freemarker/core/FM2ASTToFM3SourceConverter.java @@ -1515,7 +1515,9 @@ public class FM2ASTToFM3SourceConverter { private String convertBuiltInVariableName(String name) throws ConverterException { String converted = name.indexOf('_') == -1 ? name : _StringUtil.snakeCaseToCamelCase(name); -// Will replace removed names here +if (converted.equals("currentNode")) { +converted = "node"; +} return converted; } http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8a2cf279/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java -- diff --git a/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java b/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java index aaa523c..9832d73 100644 --- a/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java +++ b/freemarker-converter/src/test/java/org/freemarker/converter/FM2ToFM3ConverterTest.java @@ -120,6 +120,7 @@ public class FM2ToFM3ConverterTest extends ConverterTest { assertConvertedSame("${.outputFormat}"); assertConvertedSame("${. <#-- C --> outputFormat}"); assertConverted("${.outputFormat}","${.output_format}"); +assertConverted("${.node}","${.current_node}"); assertConvertedSame("${a < b}${a <= b}${(a > b)}${(a >= b)}${a == b}${a != b}"); assertConvertedSame("${a<#--1--><<#--2-->b}${a<#--3--><=<#--4-->b}" http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8a2cf279/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltInVariable.java -- diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltInVariable.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltInVariable.java index f9439de..343363a 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltInVariable.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpBuiltInVariable.java @@ -48,7 +48,6 @@