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 2015/09/08 00:29:33 UTC
[2/6] incubator-freemarker git commit: Added public Environment
methods for getting TemplateDateFormat objects. Other formatting code clean
up and JavaDoc comments.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/main/java/freemarker/core/ISOTemplateDateFormatFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/ISOTemplateDateFormatFactory.java b/src/main/java/freemarker/core/ISOTemplateDateFormatFactory.java
index 44e5e00..4d82bfd 100644
--- a/src/main/java/freemarker/core/ISOTemplateDateFormatFactory.java
+++ b/src/main/java/freemarker/core/ISOTemplateDateFormatFactory.java
@@ -22,8 +22,6 @@ package freemarker.core;
import java.util.Locale;
import java.util.TimeZone;
-import freemarker.template.TemplateModelException;
-
class ISOTemplateDateFormatFactory extends ISOLikeTemplateDateFormatFactory {
static final ISOTemplateDateFormatFactory INSTANCE = new ISOTemplateDateFormatFactory();
@@ -33,9 +31,8 @@ class ISOTemplateDateFormatFactory extends ISOLikeTemplateDateFormatFactory {
}
@Override
- public TemplateDateFormat get(int dateType, boolean zonelessInput, String params, Locale locale, TimeZone timeZone,
- Environment env) throws TemplateModelException, UnknownDateTypeFormattingUnsupportedException,
- InvalidFormatParametersException {
+ public TemplateDateFormat get(String params, int dateType, Locale locale, TimeZone timeZone, boolean zonelessInput,
+ Environment env) throws UnknownDateTypeFormattingUnsupportedException, InvalidFormatParametersException {
// We don't cache these as creating them is cheap (only 10% speedup of ${d?string.xs} with caching)
return new ISOTemplateDateFormat(
params, 3,
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/main/java/freemarker/core/JavaTemplateDateFormatFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/JavaTemplateDateFormatFactory.java b/src/main/java/freemarker/core/JavaTemplateDateFormatFactory.java
index b60ee2e..286eeff 100644
--- a/src/main/java/freemarker/core/JavaTemplateDateFormatFactory.java
+++ b/src/main/java/freemarker/core/JavaTemplateDateFormatFactory.java
@@ -28,7 +28,6 @@ import java.util.concurrent.ConcurrentHashMap;
import freemarker.log.Logger;
import freemarker.template.TemplateDateModel;
-import freemarker.template.TemplateModelException;
class JavaTemplateDateFormatFactory extends TemplateDateFormatFactory {
@@ -49,9 +48,8 @@ class JavaTemplateDateFormatFactory extends TemplateDateFormatFactory {
* Has no effect in this implementation.
*/
@Override
- public TemplateDateFormat get(int dateType, boolean zonelessInput, String params, Locale locale, TimeZone timeZone,
- Environment env) throws TemplateModelException, UnknownDateTypeFormattingUnsupportedException,
- InvalidFormatParametersException {
+ public TemplateDateFormat get(String params, int dateType, Locale locale, TimeZone timeZone, boolean zonelessInput,
+ Environment env) throws UnknownDateTypeFormattingUnsupportedException, InvalidFormatParametersException {
return new JavaTemplateDateFormat(getJavaDateFormat(dateType, params, locale, timeZone));
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/main/java/freemarker/core/TemplateDateFormatFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/TemplateDateFormatFactory.java b/src/main/java/freemarker/core/TemplateDateFormatFactory.java
index d3af368..e9fb2fe 100644
--- a/src/main/java/freemarker/core/TemplateDateFormatFactory.java
+++ b/src/main/java/freemarker/core/TemplateDateFormatFactory.java
@@ -25,7 +25,6 @@ import java.util.TimeZone;
import freemarker.template.Configuration;
import freemarker.template.TemplateDateModel;
-import freemarker.template.TemplateModelException;
/**
* Factory for a certain type of date/time/dateTime formatting ({@link TemplateDateFormat}). Usually a singleton
@@ -45,10 +44,21 @@ public abstract class TemplateDateFormatFactory {
* template execution. So caching on the factory level is still useful, unless creating the formatters is
* sufficiently cheap.
*
+ * @param params
+ * The string that further describes how the format should look. For example, when the
+ * {@link Configurable#getDateFormat() dateFormat} is {@code "@fooBar 1, 2"}, then it will be
+ * {@code "1, 2"} (and {@code "@fooBar"} selects the factory). The format of this string is up to the
+ * {@link TemplateDateFormatFactory} implementation. Not {@code null}, often an empty string.
* @param dateType
* {@link TemplateDateModel#DATE}, {@link TemplateDateModel#TIME}, {@link TemplateDateModel#DATETIME} or
* {@link TemplateDateModel#UNKNOWN}. Supporting {@link TemplateDateModel#UNKNOWN} is not necessary, in
* which case the method should throw an {@link UnknownDateTypeFormattingUnsupportedException} exception.
+ * @param locale
+ * The locale to format for. Not {@code null}. The resulting format should be bound to this locale
+ * forever (i.e. locale changes in the {@link Environment} shouldn't be followed).
+ * @param timeZone
+ * The time zone to format for. Not {@code null}. The resulting format should be bound to this time zone
+ * forever (i.e. time zone changes in the {@link Environment} shouldn't be followed).
* @param zonelessInput
* Indicates that the input Java {@link Date} is not from a time zone aware source. When this is
* {@code true}, the formatters shouldn't override the time zone provided to its constructor (most
@@ -62,32 +72,20 @@ public abstract class TemplateDateFormatFactory {
* {@link java.sql.Time java.sql.Time}, although this rule can change in future, depending on
* configuration settings and such, so you should rely on this rule, just accept what this parameter
* says.
- * @param params
- * The string that further describes how the format should look. For example, when the
- * {@link Configurable#getDateFormat() dateFormat} is {@code "@fooBar 1, 2"}, then it will be
- * {@code "1, 2"} (and {@code "@fooBar"} selects the factory). The format of this string is up to the
- * {@link TemplateDateFormatFactory} implementation. Not {@code null}, often an empty string.
- * @param locale
- * The locale to format for. Not {@code null}. The resulting format should be bound to this locale
- * forever (i.e. locale changes in the {@link Environment} shouldn't be followed).
- * @param timeZone
- * The time zone to format for. Not {@code null}. The resulting format should be bound to this time zone
- * forever (i.e. time zone changes in the {@link Environment} shouldn't be followed).
* @param env
* The runtime environment from which the formatting was called. This is mostly meant to be used for
* {@link Environment#setCustomState(Object, Object)}/{@link Environment#getCustomState(Object)}.
*
* @throws InvalidFormatParametersException
* if the {@code params} is malformed
- * @throws TemplateModelException
- * if the {@code dateType} is unsupported by the formatter
* @throws UnknownDateTypeFormattingUnsupportedException
* if {@code dateType} is {@link TemplateDateModel#UNKNOWN}, and that's unsupported by the formatter
* implementation.
*/
- public abstract TemplateDateFormat get(int dateType, boolean zonelessInput, String params,
- Locale locale, TimeZone timeZone, Environment env)
- throws TemplateModelException, UnknownDateTypeFormattingUnsupportedException,
- InvalidFormatParametersException;
+ public abstract TemplateDateFormat get(
+ String params,
+ int dateType, Locale locale, TimeZone timeZone, boolean zonelessInput,
+ Environment env)
+ throws UnknownDateTypeFormattingUnsupportedException, InvalidFormatParametersException;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/main/java/freemarker/core/XSTemplateDateFormatFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/XSTemplateDateFormatFactory.java b/src/main/java/freemarker/core/XSTemplateDateFormatFactory.java
index 01026c2..b273a4d 100644
--- a/src/main/java/freemarker/core/XSTemplateDateFormatFactory.java
+++ b/src/main/java/freemarker/core/XSTemplateDateFormatFactory.java
@@ -22,8 +22,6 @@ package freemarker.core;
import java.util.Locale;
import java.util.TimeZone;
-import freemarker.template.TemplateModelException;
-
class XSTemplateDateFormatFactory extends ISOLikeTemplateDateFormatFactory {
static final XSTemplateDateFormatFactory INSTANCE = new XSTemplateDateFormatFactory();
@@ -33,9 +31,8 @@ class XSTemplateDateFormatFactory extends ISOLikeTemplateDateFormatFactory {
}
@Override
- public TemplateDateFormat get(int dateType, boolean zonelessInput, String params, Locale locale, TimeZone timeZone,
- Environment env) throws TemplateModelException, UnknownDateTypeFormattingUnsupportedException,
- InvalidFormatParametersException {
+ public TemplateDateFormat get(String params, int dateType, Locale locale, TimeZone timeZone, boolean zonelessInput,
+ Environment env) throws UnknownDateTypeFormattingUnsupportedException, InvalidFormatParametersException {
// We don't cache these as creating them is cheap (only 10% speedup of ${d?string.xs} with caching)
return new XSTemplateDateFormat(
params, 2,
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/main/java/freemarker/core/_CoreAPI.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/_CoreAPI.java b/src/main/java/freemarker/core/_CoreAPI.java
index 861301e..03429c8 100644
--- a/src/main/java/freemarker/core/_CoreAPI.java
+++ b/src/main/java/freemarker/core/_CoreAPI.java
@@ -27,6 +27,10 @@ import java.util.TreeSet;
import freemarker.template.Template;
import freemarker.template.TemplateDirectiveBody;
+import freemarker.template.TemplateException;
+import freemarker.template.TemplateModel;
+import freemarker.template.TemplateModelException;
+import freemarker.template._TemplateAPI;
import freemarker.template.utility.ClassUtil;
@@ -156,4 +160,17 @@ public class _CoreAPI {
}
}
+ /**
+ * The work around the problematic cases where we should throw a {@link TemplateException}, but we are inside
+ * a {@link TemplateModel} method and so we can only throw {@link TemplateModelException}-s.
+ */
+ public static TemplateModelException convertToTemplateModelException(TemplateException e) {
+ if (e instanceof TemplateModelException) {
+ return (TemplateModelException) e;
+ } else {
+ return new _TemplateModelException(
+ _TemplateAPI.getBlamedExpression(e), e.getCause(), e.getEnvironment(), e.getMessage());
+ }
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/main/java/freemarker/template/TemplateException.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/template/TemplateException.java b/src/main/java/freemarker/template/TemplateException.java
index 3b391b7..7845bf8 100644
--- a/src/main/java/freemarker/template/TemplateException.java
+++ b/src/main/java/freemarker/template/TemplateException.java
@@ -569,6 +569,10 @@ public class TemplateException extends Exception {
return blamedExpressionString;
}
}
+
+ Expression getBlamedExpression() {
+ return blamedExpression;
+ }
private void writeObject(ObjectOutputStream out) throws IOException, ClassNotFoundException {
// These are calculated from transient fields, so this is the last chance to calculate them:
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/main/java/freemarker/template/_TemplateAPI.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/template/_TemplateAPI.java b/src/main/java/freemarker/template/_TemplateAPI.java
index 43f2011..765383e 100644
--- a/src/main/java/freemarker/template/_TemplateAPI.java
+++ b/src/main/java/freemarker/template/_TemplateAPI.java
@@ -25,6 +25,7 @@ import freemarker.cache.CacheStorage;
import freemarker.cache.TemplateLoader;
import freemarker.cache.TemplateLookupStrategy;
import freemarker.cache.TemplateNameFormat;
+import freemarker.core.Expression;
import freemarker.core.OutputFormat;
import freemarker.core.TemplateObject;
import freemarker.template.utility.NullArgumentException;
@@ -143,4 +144,8 @@ public class _TemplateAPI {
}
}
+ public static Expression getBlamedExpression(TemplateException e) {
+ return e.getBlamedExpression();
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/manual/book.xml
----------------------------------------------------------------------
diff --git a/src/manual/book.xml b/src/manual/book.xml
index a576c30..cf7416d 100644
--- a/src/manual/book.xml
+++ b/src/manual/book.xml
@@ -25378,9 +25378,11 @@ TemplateModel x = env.getVariable("x"); // get variable x</programlisting>
<title>Version history</title>
<section xml:id="versions_2_3_24">
- <title>2.3.24 Preview 1</title>
+ <title>2.3.24 Release Candidate 1</title>
- <para>Date of release: 2015-09-01 for preview release 1</para>
+ <para>Date of release for Release Candidate 1: [FIXME]</para>
+
+ <para>Date of release for Preview 1: 2015-09-01</para>
<para>Date of release for final is not yet known (end of
October?).</para>
@@ -25667,12 +25669,13 @@ TemplateModel x = env.getVariable("x"); // get variable x</programlisting>
<listitem>
<para>Added new <literal>Environment</literal> methods
returning <literal>TemplateNumberFormat</literal> and
- <literal>TemplateDateFormat</literal> objects:
- <literal>getTemplateNumberFormat()</literal>,
- <literal>getTemplateNumberFormat(String
- formatString)</literal>,
- <literal>getTemplateNumberFormat(String formatString, Locale
- locale)</literal>.</para>
+ <literal>TemplateDateFormat</literal> objects. See
+ <literal>getTemplateNumberFormat(<replaceable>...</replaceable>)</literal>
+ and
+ <literal>getTemplateDateFormat(<replaceable>...</replaceable>)</literal>
+ variations. (Only since RC1: public
+ <literal>TemplateDateFormat</literal> returning
+ methods)</para>
</listitem>
<listitem>
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/test/java/freemarker/core/DateFormatTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/freemarker/core/DateFormatTest.java b/src/test/java/freemarker/core/DateFormatTest.java
index 13b3e96..4b6d996 100644
--- a/src/test/java/freemarker/core/DateFormatTest.java
+++ b/src/test/java/freemarker/core/DateFormatTest.java
@@ -21,6 +21,8 @@ package freemarker.core;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
+import java.sql.Time;
+import java.sql.Timestamp;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
@@ -32,6 +34,7 @@ import com.google.common.collect.ImmutableMap;
import freemarker.template.Configuration;
import freemarker.template.SimpleDate;
+import freemarker.template.Template;
import freemarker.template.TemplateDateModel;
import freemarker.template.TemplateModelException;
import freemarker.test.TemplateTest;
@@ -39,12 +42,17 @@ import freemarker.test.TemplateTest;
@SuppressWarnings("boxing")
public class DateFormatTest extends TemplateTest {
+ /** 2015-09-06T12:00:00Z */
+ private static long T = 1441540800000L;
+ private static TemplateDateModel TM = new SimpleDate(new Date(T), TemplateDateModel.DATETIME);
+
@Before
public void setup() {
Configuration cfg = getConfiguration();
cfg.setIncompatibleImprovements(Configuration.VERSION_2_3_24);
cfg.setLocale(Locale.US);
cfg.setTimeZone(TimeZone.getTimeZone("GMT+01:00"));
+ cfg.setSQLDateAndTimeTimeZone(TimeZone.getTimeZone("UTC"));
cfg.setCustomDateFormats(ImmutableMap.of(
"epoch", EpochMillisTemplateDateFormatFactory.INSTANCE,
@@ -196,6 +204,106 @@ public class DateFormatTest extends TemplateTest {
assertErrorContains("${d}", "\"@epoch\"");
}
+ @Test
+ public void testEnvironmentGetters() throws Exception {
+ Template t = new Template(null, "", getConfiguration());
+ Environment env = t.createProcessingEnvironment(null, null);
+
+ Configuration cfg = getConfiguration();
+
+ String dateFormatStr = "yyyy.MM.dd. (Z)";
+ String timeFormatStr = "HH:mm";
+ String dateTimeFormatStr = "yyyy.MM.dd. HH:mm";
+ cfg.setDateFormat(dateFormatStr);
+ cfg.setTimeFormat(timeFormatStr);
+ cfg.setDateTimeFormat(dateTimeFormatStr);
+
+ // Test that values are coming from the cache if possible
+ for (Class dateClass : new Class[] { Date.class, Timestamp.class, java.sql.Date.class, Time.class } ) {
+ for (int dateType
+ : new int[] { TemplateDateModel.DATE, TemplateDateModel.TIME, TemplateDateModel.DATETIME }) {
+ String formatString =
+ dateType == TemplateDateModel.DATE ? cfg.getDateFormat() :
+ (dateType == TemplateDateModel.TIME ? cfg.getTimeFormat()
+ : cfg.getDateTimeFormat());
+ TemplateDateFormat expectedF = env.getTemplateDateFormat(formatString, dateType, dateClass);
+ assertSame(expectedF, env.getTemplateDateFormat(dateType, dateClass)); // Note: Only reads the cache
+ assertSame(expectedF, env.getTemplateDateFormat(formatString, dateType, dateClass));
+ assertSame(expectedF, env.getTemplateDateFormat(formatString, dateType, dateClass, cfg.getLocale()));
+ assertSame(expectedF, env.getTemplateDateFormat(formatString, dateType, dateClass, cfg.getLocale(),
+ cfg.getTimeZone(), cfg.getSQLDateAndTimeTimeZone()));
+ }
+ }
+
+ String dateFormatStr2 = dateFormatStr + "'!'";
+ String timeFormatStr2 = timeFormatStr + "'!'";
+ String dateTimeFormatStr2 = dateTimeFormatStr + "'!'";
+
+ assertEquals("2015.09.06. 13:00",
+ env.getTemplateDateFormat(TemplateDateModel.DATETIME, Date.class).format(TM));
+ assertEquals("2015.09.06. 13:00!",
+ env.getTemplateDateFormat(dateTimeFormatStr2, TemplateDateModel.DATETIME, Date.class).format(TM));
+
+ assertEquals("2015.09.06. (+0100)",
+ env.getTemplateDateFormat(TemplateDateModel.DATE, Date.class).format(TM));
+ assertEquals("2015.09.06. (+0100)!",
+ env.getTemplateDateFormat(dateFormatStr2, TemplateDateModel.DATE, Date.class).format(TM));
+
+ assertEquals("13:00",
+ env.getTemplateDateFormat(TemplateDateModel.TIME, Date.class).format(TM));
+ assertEquals("13:00!",
+ env.getTemplateDateFormat(timeFormatStr2, TemplateDateModel.TIME, Date.class).format(TM));
+
+ assertEquals("2015.09.06. 13:00",
+ env.getTemplateDateFormat(TemplateDateModel.DATETIME, Timestamp.class).format(TM));
+ assertEquals("2015.09.06. 13:00!",
+ env.getTemplateDateFormat(dateTimeFormatStr2, TemplateDateModel.DATETIME, Timestamp.class).format(TM));
+
+ assertEquals("2015.09.06. (+0000)",
+ env.getTemplateDateFormat(TemplateDateModel.DATE, java.sql.Date.class).format(TM));
+ assertEquals("2015.09.06. (+0000)!",
+ env.getTemplateDateFormat(dateFormatStr2, TemplateDateModel.DATE, java.sql.Date.class).format(TM));
+
+ assertEquals("12:00",
+ env.getTemplateDateFormat(TemplateDateModel.TIME, Time.class).format(TM));
+ assertEquals("12:00!",
+ env.getTemplateDateFormat(timeFormatStr2, TemplateDateModel.TIME, Time.class).format(TM));
+
+ {
+ String dateTimeFormatStrLoc = dateTimeFormatStr + " EEEE";
+ // Gets into cache:
+ TemplateDateFormat format1
+ = env.getTemplateDateFormat(dateTimeFormatStrLoc, TemplateDateModel.DATETIME, Date.class);
+ assertEquals("2015.09.06. 13:00 Sunday", format1.format(TM));
+ // Different locale (not cached):
+ assertEquals("2015.09.06. 13:00 Sonntag",
+ env.getTemplateDateFormat(dateTimeFormatStrLoc, TemplateDateModel.DATETIME, Date.class,
+ Locale.GERMANY).format(TM));
+ // Different locale and zone (not cached):
+ assertEquals("2015.09.06. 14:00 Sonntag",
+ env.getTemplateDateFormat(dateTimeFormatStrLoc, TemplateDateModel.DATETIME, Date.class,
+ Locale.GERMANY, TimeZone.getTimeZone("GMT+02"), TimeZone.getTimeZone("GMT+03")).format(TM));
+ // Different locale and zone (not cached):
+ assertEquals("2015.09.06. 15:00 Sonntag",
+ env.getTemplateDateFormat(dateTimeFormatStrLoc, TemplateDateModel.DATETIME, java.sql.Date.class,
+ Locale.GERMANY, TimeZone.getTimeZone("GMT+02"), TimeZone.getTimeZone("GMT+03")).format(TM));
+ // Check for corrupted cache:
+ TemplateDateFormat format2
+ = env.getTemplateDateFormat(dateTimeFormatStrLoc, TemplateDateModel.DATETIME, Date.class);
+ assertEquals("2015.09.06. 13:00 Sunday", format2.format(TM));
+ assertSame(format1, format2);
+ }
+
+ addToDataModel("d", TM);
+ assertErrorContains("${d?string('[wrong]')}", "format string", "[wrong]");
+ cfg.setDateFormat("[wrong d]");
+ cfg.setDateTimeFormat("[wrong dt]");
+ cfg.setTimeFormat("[wrong t]");
+ assertErrorContains("${d?date}", "\"date_format\"", "[wrong d]");
+ assertErrorContains("${d?datetime}", "\"datetime_format\"", "[wrong dt]");
+ assertErrorContains("${d?time}", "\"time_format\"", "[wrong t]");
+ }
+
private static class MutableTemplateDateModel implements TemplateDateModel {
private Date date;
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/test/java/freemarker/core/EpochMillisDivTemplateDateFormatFactory.java
----------------------------------------------------------------------
diff --git a/src/test/java/freemarker/core/EpochMillisDivTemplateDateFormatFactory.java b/src/test/java/freemarker/core/EpochMillisDivTemplateDateFormatFactory.java
index 8dd3ce3..0181452 100644
--- a/src/test/java/freemarker/core/EpochMillisDivTemplateDateFormatFactory.java
+++ b/src/test/java/freemarker/core/EpochMillisDivTemplateDateFormatFactory.java
@@ -38,9 +38,8 @@ public class EpochMillisDivTemplateDateFormatFactory extends TemplateDateFormatF
}
@Override
- public TemplateDateFormat get(int dateType, boolean zonelessInput, String params, Locale locale, TimeZone timeZone,
- Environment env) throws TemplateModelException, UnknownDateTypeFormattingUnsupportedException,
- InvalidFormatParametersException {
+ public TemplateDateFormat get(String params, int dateType, Locale locale, TimeZone timeZone, boolean zonelessInput,
+ Environment env) throws UnknownDateTypeFormattingUnsupportedException, InvalidFormatParametersException {
int divisor;
try {
divisor = Integer.parseInt(params);
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/test/java/freemarker/core/EpochMillisTemplateDateFormatFactory.java
----------------------------------------------------------------------
diff --git a/src/test/java/freemarker/core/EpochMillisTemplateDateFormatFactory.java b/src/test/java/freemarker/core/EpochMillisTemplateDateFormatFactory.java
index 547a926..d2e8a0a 100644
--- a/src/test/java/freemarker/core/EpochMillisTemplateDateFormatFactory.java
+++ b/src/test/java/freemarker/core/EpochMillisTemplateDateFormatFactory.java
@@ -37,9 +37,8 @@ public class EpochMillisTemplateDateFormatFactory extends TemplateDateFormatFact
}
@Override
- public TemplateDateFormat get(int dateType, boolean zonelessInput, String params, Locale locale, TimeZone timeZone,
- Environment env) throws TemplateModelException, UnknownDateTypeFormattingUnsupportedException,
- InvalidFormatParametersException {
+ public TemplateDateFormat get(String params, int dateType, Locale locale, TimeZone timeZone, boolean zonelessInput,
+ Environment env) throws UnknownDateTypeFormattingUnsupportedException, InvalidFormatParametersException {
TemplateFormatUtil.checkHasNoParameters(params);
return EpochMillisTemplateDateFormat.INSTANCE;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/test/java/freemarker/core/LocAndTZSensitiveTemplateDateFormatFactory.java
----------------------------------------------------------------------
diff --git a/src/test/java/freemarker/core/LocAndTZSensitiveTemplateDateFormatFactory.java b/src/test/java/freemarker/core/LocAndTZSensitiveTemplateDateFormatFactory.java
index 6c9da59..a5e4d89 100644
--- a/src/test/java/freemarker/core/LocAndTZSensitiveTemplateDateFormatFactory.java
+++ b/src/test/java/freemarker/core/LocAndTZSensitiveTemplateDateFormatFactory.java
@@ -37,9 +37,8 @@ public class LocAndTZSensitiveTemplateDateFormatFactory extends TemplateDateForm
}
@Override
- public TemplateDateFormat get(int dateType, boolean zonelessInput, String params, Locale locale, TimeZone timeZone,
- Environment env) throws TemplateModelException, UnknownDateTypeFormattingUnsupportedException,
- InvalidFormatParametersException {
+ public TemplateDateFormat get(String params, int dateType, Locale locale, TimeZone timeZone, boolean zonelessInput,
+ Environment env) throws UnknownDateTypeFormattingUnsupportedException, InvalidFormatParametersException {
TemplateFormatUtil.checkHasNoParameters(params);
return new LocAndTZSensitiveTemplateDateFormat(locale, timeZone);
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/52dcb977/src/test/java/freemarker/core/NumberFormatTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/freemarker/core/NumberFormatTest.java b/src/test/java/freemarker/core/NumberFormatTest.java
index 1fa50b9..22fe5c2 100644
--- a/src/test/java/freemarker/core/NumberFormatTest.java
+++ b/src/test/java/freemarker/core/NumberFormatTest.java
@@ -138,7 +138,7 @@ public class NumberFormatTest extends TemplateTest {
}
@Test
- public void testExplicitLocale() throws Exception {
+ public void testEnvironmentGetters() throws Exception {
Template t = new Template(null, "", getConfiguration());
Environment env = t.createProcessingEnvironment(null, null);