FREEMARKER-63: Merged: Unification and improvement of directive-like constructs
Merge commit 'refs/pull/30/head' of https://github.com/apache/incubator-freemarker into 3 Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/a3311d52 Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/a3311d52 Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/a3311d52 Branch: refs/heads/3 Commit: a3311d52e598cbc545cb34f7e5ecc8e4c58afa0c Parents: bc91bce 3cacd9e Author: ddekany <[email protected]> Authored: Tue Aug 8 00:29:52 2017 +0200 Committer: ddekany <[email protected]> Committed: Tue Aug 8 00:31:43 2017 +0200 ---------------------------------------------------------------------- FM3-CHANGE-LOG.txt | 58 +- .../core/FM2ASTToFM3SourceConverter.java | 28 +- .../converter/FM2ToFM3ConverterTest.java | 3 + .../freemarker/core/CanonicalFormTest.java | 4 +- .../core/CapturingAssignmentTest.java | 63 ++ .../freemarker/core/DirectiveCallPlaceTest.java | 100 +-- .../EnvironmentGetTemplateVariantsTest.java | 22 +- .../apache/freemarker/core/ListErrorsTest.java | 20 +- .../core/MistakenlyPublicMacroAPIsTest.java | 21 +- .../core/ParsingErrorMessagesTest.java | 65 +- .../core/TagSyntaxVariationsTest.java | 13 +- .../core/TemplateCallableModelTest.java | 292 ++++++++ .../core/TheadInterruptingSupportTest.java | 48 +- .../freemarker/core/model/ConstantsTest.java | 21 + .../models/TransformHashWrapper.java | 79 --- .../models/TransformMethodWrapper1.java | 49 -- .../models/TransformMethodWrapper2.java | 64 -- .../templatesuite/models/TransformModel1.java | 175 ----- .../core/userpkg/AllFeaturesDirective.java | 135 ++++ .../core/userpkg/AllFeaturesFunction.java | 114 +++ .../core/userpkg/NamedVarargsOnlyDirective.java | 65 ++ .../userpkg/PositionalVarargsOnlyDirective.java | 59 ++ .../userpkg/PositionalVarargsOnlyFunction.java | 62 ++ .../core/userpkg/TestTemplateCallableModel.java | 88 +++ .../core/userpkg/TwoNamedParamsDirective.java | 74 ++ .../TwoNestedContentParamsDirective.java | 60 ++ .../userpkg/TwoPositionalParamsDirective.java | 63 ++ .../userpkg/TwoPositionalParamsFunction.java | 63 ++ .../core/userpkg/UpperCaseDirective.java | 59 ++ .../core/util/StringToIndexMapTest.java | 169 +++++ .../core/valueformat/NumberFormatTest.java | 17 +- .../org/apache/freemarker/core/ast-1.ast | 40 +- .../apache/freemarker/core/ast-assignments.ast | 3 +- .../apache/freemarker/core/ast-locations.ast | 12 +- .../org/apache/freemarker/core/ast-range.ast | 2 +- .../freemarker/core/ast-strlitinterpolation.ast | 2 +- .../freemarker/core/ast-whitespacestripping.ast | 8 +- .../freemarker/core/cano-macro-and-function.ftl | 43 ++ .../core/cano-macro-and-function.ftl.out | 42 ++ .../org/apache/freemarker/core/cano-macros.ftl | 29 - .../apache/freemarker/core/cano-macros.ftl.out | 28 - .../core/templatesuite/expected/compress.txt | 4 - .../core/templatesuite/expected/interpret.txt | 4 +- .../core/templatesuite/expected/macros2.txt | 22 - .../core/templatesuite/expected/newlines1.txt | 29 - .../core/templatesuite/expected/newlines2.txt | 30 - .../core/templatesuite/expected/transforms.txt | 68 -- .../templatesuite/expected/type-builtins.txt | 29 +- .../templatesuite/templates/api-builtins.ftl | 20 +- .../core/templatesuite/templates/boolean.ftl | 8 +- .../templatesuite/templates/comparisons.ftl | 216 +++--- .../core/templatesuite/templates/compress.ftl | 17 - .../templates/date-type-builtins.ftl | 32 +- .../templatesuite/templates/dateparsing.ftl | 4 +- .../templates/existence-operators.ftl | 34 +- .../core/templatesuite/templates/hashconcat.ftl | 2 +- .../templates/identifier-non-ascii.ftl | 2 +- .../core/templatesuite/templates/interpret.ftl | 7 +- .../core/templatesuite/templates/list.ftl | 2 +- .../core/templatesuite/templates/list2.ftl | 2 +- .../core/templatesuite/templates/list3.ftl | 8 +- .../core/templatesuite/templates/listhash.ftl | 2 +- .../core/templatesuite/templates/macros.ftl | 17 +- .../core/templatesuite/templates/macros2.ftl | 35 - .../core/templatesuite/templates/newlines1.ftl | 29 - .../core/templatesuite/templates/newlines2.ftl | 33 - .../templates/number-math-builtins.ftl | 68 +- .../core/templatesuite/templates/recover.ftl | 8 +- .../core/templatesuite/templates/root.ftl | 2 +- .../templates/sequence-builtins.ftl | 18 +- .../templates/string-builtin-coercion.ftl | 24 +- .../templates/string-builtins-regexps.ftl | 6 +- .../core/templatesuite/templates/transforms.ftl | 100 --- .../templatesuite/templates/type-builtins.ftl | 5 +- .../core/templatesuite/templates/var-layers.ftl | 2 +- .../freemarker/core/templatesuite/testcases.xml | 4 - .../core/ASTDirCapturingAssignment.java | 87 +-- .../apache/freemarker/core/ASTDirCompress.java | 140 +++- .../org/apache/freemarker/core/ASTDirItems.java | 42 +- .../org/apache/freemarker/core/ASTDirList.java | 164 ++--- .../org/apache/freemarker/core/ASTDirMacro.java | 325 --------- .../freemarker/core/ASTDirMacroOrFunction.java | 369 ++++++++++ .../apache/freemarker/core/ASTDirNested.java | 91 +-- .../apache/freemarker/core/ASTDirReturn.java | 2 +- .../freemarker/core/ASTDirUserDefined.java | 343 ---------- .../freemarker/core/ASTDynamicTopLevelCall.java | 497 ++++++++++++++ .../org/apache/freemarker/core/ASTElement.java | 4 +- .../apache/freemarker/core/ASTExpBuiltIn.java | 23 +- .../freemarker/core/ASTExpBuiltInVariable.java | 4 +- .../freemarker/core/ASTExpListLiteral.java | 8 +- .../freemarker/core/ASTExpMethodCall.java | 117 +++- .../apache/freemarker/core/ASTStaticText.java | 2 +- .../freemarker/core/BuiltInForLoopVariable.java | 48 -- .../core/BuiltInForNestedContentParameter.java | 49 ++ .../core/BuiltInsForLoopVariables.java | 156 ----- .../core/BuiltInsForMultipleTypes.java | 25 +- .../BuiltInsForNestedContentParameters.java | 156 +++++ .../freemarker/core/BuiltInsForStringsMisc.java | 46 +- .../org/apache/freemarker/core/CallPlace.java | 195 ++++++ ...lPlaceCustomDataInitializationException.java | 4 +- .../apache/freemarker/core/Configuration.java | 19 +- .../freemarker/core/DirectiveCallPlace.java | 135 ---- .../org/apache/freemarker/core/Environment.java | 573 +++++++--------- .../apache/freemarker/core/LocalContext.java | 5 +- .../org/apache/freemarker/core/MessageUtil.java | 2 +- .../NestedContentNotSupportedException.java | 67 -- .../freemarker/core/NonDirectiveException.java | 63 ++ .../freemarker/core/NonNumericalException.java | 12 +- .../freemarker/core/NonTemplateCallPlace.java | 166 +++++ .../NonUserDefinedDirectiveLikeException.java | 65 -- .../apache/freemarker/core/ParameterRole.java | 8 +- .../apache/freemarker/core/ParseException.java | 2 +- .../org/apache/freemarker/core/Template.java | 2 +- ...nterruptionSupportTemplatePostProcessor.java | 11 +- .../core/UnexpectedTypeException.java | 69 +- .../org/apache/freemarker/core/_CoreAPI.java | 10 +- .../freemarker/core/_DelayedJQuotedListing.java | 46 ++ .../core/_ErrorDescriptionBuilder.java | 5 +- .../core/_TemplateCallableModelUtils.java | 112 +++ .../freemarker/core/debug/DebugModel.java | 2 +- .../core/debug/RmiDebugModelImpl.java | 4 +- .../core/model/ArgumentArrayLayout.java | 228 ++++++ .../apache/freemarker/core/model/Constants.java | 38 +- .../core/model/TemplateCallableModel.java | 33 + .../core/model/TemplateDirectiveBody.java | 43 -- .../core/model/TemplateDirectiveModel.java | 111 +-- .../core/model/TemplateFunctionModel.java | 38 + .../core/model/TemplateTransformModel.java | 54 -- .../freemarker/core/model/TransformControl.java | 101 --- .../freemarker/core/util/CaptureOutput.java | 147 ---- .../core/util/DuplicateStringKeyException.java | 38 + .../apache/freemarker/core/util/FTLUtil.java | 44 +- .../apache/freemarker/core/util/HtmlEscape.java | 109 --- .../freemarker/core/util/NormalizeNewlines.java | 115 ---- .../freemarker/core/util/StandardCompress.java | 239 ------- .../freemarker/core/util/StringToIndexMap.java | 364 ++++++++++ .../apache/freemarker/core/util/XmlEscape.java | 92 --- .../freemarker/core/util/_ArrayAdapterList.java | 62 ++ freemarker-core/src/main/javacc/FTL.jj | 686 +++++++++++++------ .../examples/AutoEscapingExample-infoBox.ftlh | 2 +- .../apache/freemarker/servlet/IncludePage.java | 53 +- .../freemarker/servlet/jsp/BodyContentImpl.java | 222 ++++++ .../jsp/CustomTagAndELFunctionCombiner.java | 89 +-- .../servlet/jsp/FreeMarkerPageContext.java | 2 +- .../freemarker/servlet/jsp/JspTagModelBase.java | 19 +- .../servlet/jsp/SimpleTagDirectiveModel.java | 36 +- .../servlet/jsp/TagDirectiveModel.java | 261 +++++++ .../servlet/jsp/TagTransformModel.java | 419 ----------- .../freemarker/servlet/jsp/TaglibFactory.java | 6 +- .../servlet/jsp/webapps/basic/customTags1.ftl | 4 +- .../apache/freemarker/test/TemplateTest.java | 2 +- .../test/templateutil/AssertDirective.java | 38 +- .../templateutil/AssertEqualsDirective.java | 68 +- .../test/templateutil/AssertFailsDirective.java | 131 ++-- .../test/templateutil/NoOutputDirective.java | 23 +- 155 files changed, 6550 insertions(+), 4897 deletions(-) ----------------------------------------------------------------------
