This is an automated email from the ASF dual-hosted git repository. ddekany pushed a commit to branch FREEMARKER-35 in repository https://gitbox.apache.org/repos/asf/freemarker.git
commit 2a23b00b98035016b63c6eaca7154b7d5c29bfab Merge: d1097c24 f42b107f Author: ddekany <[email protected]> AuthorDate: Sat Dec 9 22:29:52 2023 +0100 Merge remote-tracking branch 'origin/2.3-gae' into FREEMARKER-35 # Conflicts: # src/main/java/freemarker/core/Environment.java build.xml | 76 +------------------ ivy.xml | 7 +- .../freemarker/cache/StringTemplateLoader.java | 6 +- src/main/java/freemarker/cache/TemplateLoader.java | 2 +- .../java/freemarker/core/BuiltInsForSequences.java | 2 +- src/main/java/freemarker/core/CommandLine.java | 2 +- src/main/java/freemarker/core/Configurable.java | 87 ++++++++++----------- src/main/java/freemarker/core/CustomAttribute.java | 2 +- .../java/freemarker/core/DirectiveCallPlace.java | 2 +- src/main/java/freemarker/core/Environment.java | 20 ++--- src/main/java/freemarker/core/Include.java | 2 +- src/main/java/freemarker/core/Interpret.java | 6 +- src/main/java/freemarker/core/LibraryLoad.java | 2 +- src/main/java/freemarker/core/MethodCall.java | 2 +- src/main/java/freemarker/core/MixedContent.java | 4 +- src/main/java/freemarker/core/NewBI.java | 2 +- src/main/java/freemarker/core/NumberLiteral.java | 2 +- src/main/java/freemarker/core/StopException.java | 2 +- src/main/java/freemarker/core/StringLiteral.java | 2 +- src/main/java/freemarker/core/TemplateObject.java | 2 +- src/main/java/freemarker/debug/DebugModel.java | 2 +- src/main/java/freemarker/debug/DebuggerClient.java | 4 +- .../java/freemarker/ext/ant/FreemarkerXmlTask.java | 84 +++++++++++---------- .../java/freemarker/ext/beans/ArgumentTypes.java | 4 +- src/main/java/freemarker/ext/beans/ArrayModel.java | 2 +- src/main/java/freemarker/ext/beans/BeanModel.java | 14 ++-- .../java/freemarker/ext/beans/BeansWrapper.java | 26 +++---- .../java/freemarker/ext/beans/CollectionModel.java | 2 +- .../freemarker/ext/beans/EnumerationModel.java | 2 +- .../java/freemarker/ext/beans/IteratorModel.java | 4 +- src/main/java/freemarker/ext/beans/MapModel.java | 12 +-- .../ext/beans/MethodAppearanceFineTuner.java | 20 ++--- .../freemarker/ext/beans/OverloadedNumberUtil.java | 2 +- .../freemarker/ext/beans/ResourceBundleModel.java | 8 +- .../java/freemarker/ext/beans/SimpleMapModel.java | 2 +- .../java/freemarker/ext/beans/StaticModel.java | 2 +- .../java/freemarker/ext/beans/StaticModels.java | 4 +- .../java/freemarker/ext/jdom/NodeListModel.java | 88 +++++++++++----------- .../java/freemarker/ext/jsp/EventForwarding.java | 4 +- .../java/freemarker/ext/jsp/TaglibFactory.java | 4 +- .../ext/servlet/AllHttpScopesHashModel.java | 10 +-- .../freemarker/ext/servlet/FreemarkerServlet.java | 28 +++---- .../java/freemarker/ext/util/IdentityHashMap.java | 66 ++++++++-------- .../java/freemarker/ext/xml/NodeListModel.java | 83 ++++++++++---------- src/main/java/freemarker/log/Logger.java | 4 +- .../java/freemarker/log/SLF4JLoggerFactory.java | 2 +- .../freemarker/template/AdapterTemplateModel.java | 4 +- .../java/freemarker/template/Configuration.java | 23 +++--- .../java/freemarker/template/SimpleCollection.java | 22 +++--- src/main/java/freemarker/template/SimpleDate.java | 2 +- src/main/java/freemarker/template/SimpleHash.java | 2 +- .../java/freemarker/template/SimpleNumber.java | 4 +- .../java/freemarker/template/SimpleScalar.java | 10 +-- .../java/freemarker/template/SimpleTemporal.java | 2 +- src/main/java/freemarker/template/Template.java | 4 +- .../freemarker/template/TemplateHashModel.java | 6 +- .../freemarker/template/TemplateMethodModel.java | 2 +- .../template/TemplateModelException.java | 6 +- .../java/freemarker/template/TransformControl.java | 8 +- .../freemarker/template/utility/DeepUnwrap.java | 2 +- .../java/freemarker/template/utility/Execute.java | 4 +- .../freemarker/template/utility/StringUtil.java | 43 +++++------ .../freemarker/template/utility/XmlEscape.java | 4 +- src/main/javacc/FTL.jj | 2 +- .../freemarker/core/TagSyntaxVariationsTest.java | 2 +- .../ext/jsp/RealServletContainertTest.java | 4 +- src/test/java/freemarker/test/package.html | 4 +- .../test/templatesuite/models/BooleanHash1.java | 6 +- .../test/templatesuite/models/BooleanHash2.java | 6 +- .../test/templatesuite/models/MultiModel1.java | 6 +- .../test/templatesuite/models/MultiModel2.java | 4 +- .../test/templatesuite/models/MultiModel3.java | 6 +- .../test/templatesuite/models/MultiModel4.java | 6 +- .../test/templatesuite/models/MultiModel5.java | 6 +- .../templatesuite/models/SimpleTestMethod.java | 4 +- .../templatesuite/models/TransformHashWrapper.java | 6 +- .../models/TransformMethodWrapper1.java | 4 +- .../models/TransformMethodWrapper2.java | 4 +- .../freemarker/test/templatesuite/package.html | 12 +-- 79 files changed, 442 insertions(+), 503 deletions(-) diff --cc src/main/java/freemarker/core/Environment.java index 4fef2c70,65563de1..77dabbae --- a/src/main/java/freemarker/core/Environment.java +++ b/src/main/java/freemarker/core/Environment.java @@@ -709,10 -581,10 +709,10 @@@ public final class Environment extends } /** - * Tells if we are inside an <tt>#attempt</tt> block (but before <tt>#recover</tt>). This can be useful for + * Tells if we are inside an {@code #attempt} block (but before {@code #recover}). This can be useful for * {@link TemplateExceptionHandler}-s, as then they may don't want to print the error to the output, as - * <tt>#attempt</tt> will roll it back anyway. + * {@code #attempt} will roll it back anyway. - * + * * @since 2.3.20 */ public boolean isInAttemptBlock() { diff --cc src/main/java/freemarker/template/SimpleTemporal.java index e195f15e,f7bcc0e9..00252407 --- a/src/main/java/freemarker/template/SimpleTemporal.java +++ b/src/main/java/freemarker/template/SimpleTemporal.java @@@ -16,35 -16,18 +16,35 @@@ * specific language governing permissions and limitations * under the License. */ -package freemarker.core; +package freemarker.template; + +import java.time.temporal.Temporal; /** - * A simple implementation of the <tt>TemplateDateModel</tt> - * Superclass of all value format objects; objects that convert values to strings, or parse strings. - * - * @since 2.3.24 ++ * A simple implementation of the {@link TemplateTemporalModel} + * interface. Note that this class is immutable. + * <p>This class is thread-safe. */ -public abstract class TemplateValueFormat { +public class SimpleTemporal implements TemplateTemporalModel { + private final Temporal temporal; + + /** + * Creates a new date model wrapping the specified date object and + * having the specified type. + */ + public SimpleTemporal(Temporal temporal) { + if (temporal == null) { + throw new IllegalArgumentException("temporal == null"); + } + this.temporal = temporal; + } + + @Override + public Temporal getAsTemporal() { + return temporal; + } - /** - * Meant to be used in error messages to tell what format the parsed string didn't fit. - */ - public abstract String getDescription(); - + public String toString() { + return temporal.toString(); + } }
