You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/07/17 13:16:04 UTC
[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 <dd...@apache.org>
Authored: Mon Jul 17 14:26:38 2017 +0200
Committer: ddekany <dd...@apache.org>
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 + ")");
}
[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. `|` for logical "or"; use `||` instead.
Posted by dd...@apache.org.
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 <dd...@apache.org>
Authored: Mon Jul 17 15:14:56 2017 +0200
Committer: ddekany <dd...@apache.org>
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>...</#comment> (deprecated by <#-- ... -->)
- <#transform ...>...</#transform> (deprecated by <@....@...>)
- <#foreach x in xs>...</#foreach> (deprecated by <#list xs as x>...</#list>)
+- 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<String, String>();
// 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<String, String>();
- // 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<String, String>();
- // 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/freemarker/converter/FM2ToFM3ConverterTest.java
@@ -128,16 +128,17 @@ public class FM2ToFM3ConverterTest extends ConverterTest {
+ "${(a<#--7-->><#--8-->b)}${(a<#--9-->>=<#--A-->b)}"
+ "${a<#--B-->==<#--C-->b}${a<#--D-->!=<#--E-->b}");
// "Same" for now, will be different later.
- assertConvertedSame("${a = b}${a == b}");
+ 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
- assertConvertedSame("${a && b}${a & b}${a || b}${a | b}");
- assertConvertedSame("${a<#--1-->&&<#--2-->b}${a<#--3-->&<#--4-->b}"
- + "${a<#--5-->||<#--6-->b}${a<#--7-->|<#--8-->b}");
+ 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}${! foo}${! <#--1--> bar}${!!c}");
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d0f34dcc/freemarker-core-test/src/test/java/org/apache/freemarker/core/RemovedFM2SyntaxTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/RemovedFM2SyntaxTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/RemovedFM2SyntaxTest.java
new file mode 100644
index 0000000..89b981c
--- /dev/null
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/RemovedFM2SyntaxTest.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.freemarker.core;
+
+import org.apache.freemarker.test.TemplateTest;
+import org.junit.Test;
+
+public class RemovedFM2SyntaxTest extends TemplateTest {
+
+ @Test
+ public void testRemovedOperators() {
+ assertErrorContains("<#if a & b></#if>", ParseException.class);
+ assertErrorContains("<#if a | b></#if>", ParseException.class);
+ assertErrorContains("<#if a = b></#if>", ParseException.class);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d0f34dcc/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/sequence-builtins.ftl
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/sequence-builtins.ftl b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/sequence-builtins.ftl
index ffda546..b86feb9 100644
--- a/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/sequence-builtins.ftl
+++ b/freemarker-core-test/src/test/resources/org/apache/freemarker/core/templatesuite/templates/sequence-builtins.ftl
@@ -322,7 +322,7 @@ Chunk
<#macro printTable ls columns fill>
columns = ${columns}, fill = ${fill}:<#lt>
- <#if fill='NULL'>
+ <#if fill=='NULL'>
<#local rows = ls?chunk(columns)>
<#else>
<#local rows = ls?chunk(columns, fill)>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d0f34dcc/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirAssignment.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirAssignment.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirAssignment.java
index f25e9fe..db548cf 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirAssignment.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirAssignment.java
@@ -63,7 +63,7 @@ final class ASTDirAssignment extends ASTDirective {
this.variableName = variableName;
- if (operator == FMParserConstants.EQUALS) {
+ if (operator == FMParserConstants.ASSIGNMENT_EQUALS) {
operatorType = OPERATOR_TYPE_EQUALS;
} else {
switch (operator) {
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d0f34dcc/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpComparison.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpComparison.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpComparison.java
index 138b69e..7629a94 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpComparison.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpComparison.java
@@ -36,7 +36,7 @@ final class ASTExpComparison extends ASTExpBoolean {
this.right = right;
opString = opString.intern();
this.opString = opString;
- if (opString == "==" || opString == "=") {
+ if (opString == "==") {
operation = _EvalUtil.CMP_OP_EQUALS;
} else if (opString == "!=") {
operation = _EvalUtil.CMP_OP_NOT_EQUALS;
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d0f34dcc/freemarker-core/src/main/javacc/FTL.jj
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/javacc/FTL.jj b/freemarker-core/src/main/javacc/FTL.jj
index 37a66ae..22aaf2a 100644
--- a/freemarker-core/src/main/javacc/FTL.jj
+++ b/freemarker-core/src/main/javacc/FTL.jj
@@ -966,9 +966,9 @@ TOKEN:
|
<EXISTS : "??">
|
- <EQUALS : "=">
+ <ASSIGNMENT_EQUALS : "=">
|
- <DOUBLE_EQUALS : "==">
+ <COMPARISON_EQUALS : "==">
|
<NOT_EQUALS : "!=">
|
@@ -1008,9 +1008,9 @@ TOKEN:
|
<PERCENT : "%">
|
- <AND : "&" | "&&" | "&&" | "\\and">
+ <AND : "&&" | "&&" | "\\and">
|
- <OR : "|" | "||">
+ <OR : "||">
|
<EXCLAM : "!">
|
@@ -1527,13 +1527,11 @@ ASTExpression EqualityExpression() :
{
lhs = RelationalExpression() { result = lhs; }
[
- LOOKAHEAD(<NOT_EQUALS>|<EQUALS>|<DOUBLE_EQUALS>)
+ LOOKAHEAD(<NOT_EQUALS>|<COMPARISON_EQUALS>)
(
t = <NOT_EQUALS>
|
- t = <EQUALS>
- |
- t = <DOUBLE_EQUALS>
+ t = <COMPARISON_EQUALS>
)
rhs = RelationalExpression()
{
@@ -2628,7 +2626,7 @@ ASTElement Assign() :
(
(
(
- (<EQUALS>|<PLUS_EQUALS>|<MINUS_EQUALS>|<TIMES_EQUALS>|<DIV_EQUALS>|<MOD_EQUALS>)
+ (<ASSIGNMENT_EQUALS>|<PLUS_EQUALS>|<MINUS_EQUALS>|<TIMES_EQUALS>|<DIV_EQUALS>|<MOD_EQUALS>)
{
equalsOp = token;
}
@@ -2656,7 +2654,7 @@ ASTElement Assign() :
LOOKAHEAD(
[<COMMA>]
(<ID>|<STRING_LITERAL>)
- (<EQUALS>|<PLUS_EQUALS>|<MINUS_EQUALS>|<TIMES_EQUALS>|<DIV_EQUALS>|<MOD_EQUALS>
+ (<ASSIGNMENT_EQUALS>|<PLUS_EQUALS>|<MINUS_EQUALS>|<TIMES_EQUALS>|<DIV_EQUALS>|<MOD_EQUALS>
|<PLUS_PLUS>|<MINUS_MINUS>)
)
[<COMMA>]
@@ -2668,7 +2666,7 @@ ASTElement Assign() :
}
(
(
- (<EQUALS>|<PLUS_EQUALS>|<MINUS_EQUALS>|<TIMES_EQUALS>|<DIV_EQUALS>|<MOD_EQUALS>)
+ (<ASSIGNMENT_EQUALS>|<PLUS_EQUALS>|<MINUS_EQUALS>|<TIMES_EQUALS>|<DIV_EQUALS>|<MOD_EQUALS>)
{
equalsOp = token;
}
@@ -2777,7 +2775,7 @@ ASTDirInclude Include() :
[<SEMICOLON>]
(
att = <ID>
- <EQUALS>
+ <ASSIGNMENT_EQUALS>
exp = ASTExpression()
{
String attString = att.image;
@@ -2865,7 +2863,7 @@ ASTDirMacro Macro() :
<ELLIPSIS> { isCatchAll = true; }
]
[
- <EQUALS>
+ <ASSIGNMENT_EQUALS>
defValue = ASTExpression()
{
defNames.add(arg.image);
@@ -2969,7 +2967,7 @@ ASTElement UnifiedMacroTransform() :
}
[<TERMINATING_WHITESPACE>]
(
- LOOKAHEAD(<ID><EQUALS>)
+ LOOKAHEAD(<ID><ASSIGNMENT_EQUALS>)
namedArgs = NamedArgs()
|
positionalArgs = PositionalArgs()
@@ -3051,7 +3049,7 @@ HashMap NamedArgs() :
{
(
t = <ID>
- <EQUALS>
+ <ASSIGNMENT_EQUALS>
{
token_source.SwitchTo(token_source.NAMED_PARAMETER_EXPRESSION);
token_source.inInvocation = true;
@@ -3411,7 +3409,7 @@ ASTDirSetting Setting() :
{
start = <SETTING>
key = <ID>
- <EQUALS>
+ <ASSIGNMENT_EQUALS>
value = ASTExpression()
end = LooseDirectiveEnd()
{
@@ -3750,7 +3748,7 @@ void HeaderElement() :
<FTL_HEADER>
(
key = <ID>
- <EQUALS>
+ <ASSIGNMENT_EQUALS>
exp = ASTExpression()
{
String ks = key.image;
@@ -3946,7 +3944,7 @@ Map ParamList() :
{
(
id = ASTExpVariable()
- <EQUALS>
+ <ASSIGNMENT_EQUALS>
exp = ASTExpression() { result.put(id.toString(), exp); }
[<COMMA>]
)+