http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/IncludePage.java ---------------------------------------------------------------------- diff --git a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/IncludePage.java b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/IncludePage.java index c500c8c..0f2a061 100644 --- a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/IncludePage.java +++ b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/IncludePage.java @@ -185,7 +185,7 @@ public class IncludePage implements TemplateDirectiveModel { } @Override - public ArgumentArrayLayout getArgumentArrayLayout() { + public ArgumentArrayLayout getDirectiveArgumentArrayLayout() { return ARGS_LAYOUT; }
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/CustomTagAndELFunctionCombiner.java ---------------------------------------------------------------------- diff --git a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/CustomTagAndELFunctionCombiner.java b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/CustomTagAndELFunctionCombiner.java deleted file mode 100644 index ff9db12..0000000 --- a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/CustomTagAndELFunctionCombiner.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * 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.servlet.jsp; - -import java.io.IOException; -import java.io.Writer; -import java.util.List; - -import org.apache.freemarker.core.Environment; -import org.apache.freemarker.core.TemplateException; -import org.apache.freemarker.core._UnexpectedTypeErrorExplainerTemplateModel; -import org.apache.freemarker.core.model.ArgumentArrayLayout; -import org.apache.freemarker.core.CallPlace; -import org.apache.freemarker.core.model.TemplateDirectiveModel; -import org.apache.freemarker.core.model.TemplateMethodModel; -import org.apache.freemarker.core.model.TemplateModel; -import org.apache.freemarker.core.model.TemplateModelException; -import org.apache.freemarker.core.model.impl.JavaMethodModel; -import org.apache.freemarker.core.util.BugException; -import org.apache.freemarker.core.util._ClassUtil; - -/** - * Used when a custom JSP tag and an EL function uses the same name in a tag library, to invoke a single FTL value from - * the two. As FTL as no separate namespace for "tags" and functions, both aspect has to be implemented by the same - * value. - */ -@SuppressWarnings("rawtypes") -class CustomTagAndELFunctionCombiner { - - /** - * @param customTag - * A {@link TemplateDirectiveModel}. - */ - static TemplateModel combine(TemplateModel customTag, TemplateMethodModel elFunction) { - if (customTag instanceof TemplateDirectiveModel) { - return elFunction instanceof JavaMethodModel // - ? new TemplateDirectiveModelAndSimpleMethodModel( // - (TemplateDirectiveModel) customTag, (JavaMethodModel) elFunction) // - : new TemplateDirectiveModelAndTemplateMethodModelEx( // - (TemplateDirectiveModel) customTag, elFunction); - } else { - throw new BugException( - "Unexpected custom JSP tag class: " + _ClassUtil.getShortClassNameOfObject(customTag)); - } - } - - /** - * Tells if the value can be used as the "custom tag" parameter to - * {@link #combine(TemplateModel, TemplateMethodModel)}. - */ - static boolean canBeCombinedAsCustomTag(TemplateModel tm) { - return (tm instanceof TemplateDirectiveModel) && !(tm instanceof CombinedTemplateModel); - } - - /** - * Tells if the value can be used as the "EL function" parameter to - * {@link #combine(TemplateModel, TemplateMethodModel)}. - */ - static boolean canBeCombinedAsELFunction(TemplateModel tm) { - return tm instanceof TemplateMethodModel && !(tm instanceof CombinedTemplateModel); - } - - private static class CombinedTemplateModel { - // Marker only - } - - private static class TemplateDirectiveModelAndSimpleMethodModel extends CombinedTemplateModel - implements TemplateDirectiveModel, TemplateMethodModel, - _UnexpectedTypeErrorExplainerTemplateModel { - - private final TemplateDirectiveModel templateDirectiveModel; - private final JavaMethodModel simpleMethodModel; - - public TemplateDirectiveModelAndSimpleMethodModel( // - TemplateDirectiveModel templateDirectiveModel, JavaMethodModel simpleMethodModel) { - this.templateDirectiveModel = templateDirectiveModel; - this.simpleMethodModel = simpleMethodModel; - } - - @Override - public TemplateModel execute(List<? extends TemplateModel> args) throws TemplateModelException { - return simpleMethodModel.execute(args); - } - - @Override - public Object[] explainTypeError(Class[] expectedClasses) { - return simpleMethodModel.explainTypeError(expectedClasses); - } - - @Override - public void execute(TemplateModel[] args, CallPlace callPlace, Writer out, Environment env) - throws TemplateException, IOException { - templateDirectiveModel.execute(args, callPlace, out, env); - } - - @Override - public ArgumentArrayLayout getArgumentArrayLayout() { - return templateDirectiveModel.getArgumentArrayLayout(); - } - - @Override - public boolean isNestedContentSupported() { - return templateDirectiveModel.isNestedContentSupported(); - } - } - - private static class TemplateDirectiveModelAndTemplateMethodModelEx extends CombinedTemplateModel - implements TemplateDirectiveModel, TemplateMethodModel { - - private final TemplateDirectiveModel templateDirectiveModel; - private final TemplateMethodModel templateMethodModelEx; - - public TemplateDirectiveModelAndTemplateMethodModelEx( // - TemplateDirectiveModel templateDirectiveModel, TemplateMethodModel templateMethodModelEx) { - this.templateDirectiveModel = templateDirectiveModel; - this.templateMethodModelEx = templateMethodModelEx; - } - - @Override - public TemplateModel execute(List<? extends TemplateModel> args) throws TemplateException { - return templateMethodModelEx.execute(args); - } - - @Override - public void execute(TemplateModel[] args, CallPlace callPlace, Writer out, Environment env) - throws TemplateException, IOException { - templateDirectiveModel.execute(args, callPlace, out, env); - } - - @Override - public ArgumentArrayLayout getArgumentArrayLayout() { - return templateDirectiveModel.getArgumentArrayLayout(); - } - - @Override - public boolean isNestedContentSupported() { - return templateDirectiveModel.isNestedContentSupported(); - } - } - -} http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/JspTagModelBase.java ---------------------------------------------------------------------- diff --git a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/JspTagModelBase.java b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/JspTagModelBase.java index 99e8272..01418ba 100644 --- a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/JspTagModelBase.java +++ b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/JspTagModelBase.java @@ -29,10 +29,16 @@ import java.math.BigDecimal; import java.util.HashMap; import java.util.Map; +import javax.servlet.jsp.JspException; +import javax.servlet.jsp.tagext.DynamicAttributes; +import javax.servlet.jsp.tagext.JspTag; + import org.apache.freemarker.core.Template; +import org.apache.freemarker.core.TemplateException; import org.apache.freemarker.core._DelayedJQuote; import org.apache.freemarker.core._DelayedShortClassName; import org.apache.freemarker.core._ErrorDescriptionBuilder; +import org.apache.freemarker.core._MiscTemplateException; import org.apache.freemarker.core._TemplateModelException; import org.apache.freemarker.core.model.ObjectWrapperAndUnwrapper; import org.apache.freemarker.core.model.TemplateHashModelEx2; @@ -45,7 +51,6 @@ import org.apache.freemarker.servlet.jsp.SimpleTagDirectiveModel.TemplateExcepti class JspTagModelBase { protected final String tagName; private final Class tagClass; - private final Method dynaSetter; private final Map propertySetters = new HashMap(); protected JspTagModelBase(String tagName, Class tagClass) throws IntrospectionException { @@ -59,24 +64,14 @@ class JspTagModelBase { propertySetters.put(pd.getName(), m); } } - // Check to see if the tag implements the JSP2.0 DynamicAttributes - // interface, to allow setting of arbitrary attributes - Method dynaSetter; - try { - dynaSetter = tagClass.getMethod("setDynamicAttribute", - String.class, String.class, Object.class); - } catch (NoSuchMethodException nsme) { - dynaSetter = null; - } - this.dynaSetter = dynaSetter; } Object getTagInstance() throws IllegalAccessException, InstantiationException { return tagClass.newInstance(); } - void setupTag(Object tag, TemplateHashModelEx2 args, ObjectWrapperAndUnwrapper wrapper) - throws TemplateModelException, + void setupTag(JspTag tag, TemplateHashModelEx2 args, ObjectWrapperAndUnwrapper wrapper) + throws TemplateException, InvocationTargetException, IllegalAccessException { if (args != null && !args.isEmpty()) { @@ -88,12 +83,18 @@ class JspTagModelBase { final String paramName = ((TemplateScalarModel) entry.getKey()).getAsString(); Method setterMethod = (Method) propertySetters.get(paramName); if (setterMethod == null) { - if (dynaSetter == null) { + if (tag instanceof DynamicAttributes) { + try { + ((DynamicAttributes) tag).setDynamicAttribute(null, paramName, argArray[0]); + } catch (JspException e) { + throw new _MiscTemplateException( + "Failed to set JSP tag dynamic attribute ", new _DelayedJQuote(paramName), ".", + e); + } + } else { throw new TemplateModelException("Unknown property " + _StringUtil.jQuote(paramName.toString()) + " on instance of " + tagClass.getName()); - } else { - dynaSetter.invoke(tag, null, paramName, argArray[0]); } } else { if (arg instanceof BigDecimal) { http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/SimpleTagDirectiveModel.java ---------------------------------------------------------------------- diff --git a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/SimpleTagDirectiveModel.java b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/SimpleTagDirectiveModel.java index 6035a1f..b4f4a15 100644 --- a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/SimpleTagDirectiveModel.java +++ b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/SimpleTagDirectiveModel.java @@ -107,7 +107,7 @@ class SimpleTagDirectiveModel extends JspTagModelBase implements TemplateDirecti } @Override - public ArgumentArrayLayout getArgumentArrayLayout() { + public ArgumentArrayLayout getDirectiveArgumentArrayLayout() { return ARGS_LAYOUT; } http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TagDirectiveModel.java ---------------------------------------------------------------------- diff --git a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TagDirectiveModel.java b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TagDirectiveModel.java index ff5b435..15db96d 100644 --- a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TagDirectiveModel.java +++ b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TagDirectiveModel.java @@ -117,7 +117,7 @@ class TagDirectiveModel extends JspTagModelBase implements TemplateDirectiveMode } @Override - public ArgumentArrayLayout getArgumentArrayLayout() { + public ArgumentArrayLayout getDirectiveArgumentArrayLayout() { return ARGS_LAYOUT; } http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java ---------------------------------------------------------------------- diff --git a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java index 98634bd..a1525af 100644 --- a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java +++ b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java @@ -65,8 +65,8 @@ import org.apache.freemarker.core.ConfigurationException; import org.apache.freemarker.core.Environment; import org.apache.freemarker.core.model.ObjectWrapper; import org.apache.freemarker.core.model.TemplateDirectiveModel; +import org.apache.freemarker.core.model.TemplateFunctionModel; import org.apache.freemarker.core.model.TemplateHashModel; -import org.apache.freemarker.core.model.TemplateMethodModel; import org.apache.freemarker.core.model.TemplateModel; import org.apache.freemarker.core.model.TemplateModelException; import org.apache.freemarker.core.model.impl.DefaultObjectWrapper; @@ -233,7 +233,7 @@ public class TaglibFactory implements TemplateHashModel { * * @return a {@link TemplateHashModel} representing the JSP taglib. Each element of this hash represents a single * custom tag or EL function from the library, implemented as a {@link TemplateDirectiveModel} or - * {@link TemplateMethodModel}, respectively. + * {@link TemplateFunctionModel}, respectively. */ @Override public TemplateModel get(final String taglibUri) throws TemplateModelException { @@ -1759,7 +1759,7 @@ public class TaglibFactory implements TemplateHashModel { final Class<?> tagClass = resoveClassFromTLD(tagClassCData, "custom tag", tagNameCData); - final TemplateModel customTagModel; + final TemplateDirectiveModel customTagModel; try { if (Tag.class.isAssignableFrom(tagClass)) { customTagModel = new TagDirectiveModel(tagNameCData, tagClass); @@ -1775,9 +1775,10 @@ public class TaglibFactory implements TemplateHashModel { TemplateModel replacedTagOrFunction = tagsAndFunctions.put(tagNameCData, customTagModel); if (replacedTagOrFunction != null) { - if (CustomTagAndELFunctionCombiner.canBeCombinedAsELFunction(replacedTagOrFunction)) { - tagsAndFunctions.put(tagNameCData, CustomTagAndELFunctionCombiner.combine( - customTagModel, (TemplateMethodModel) replacedTagOrFunction)); + if (replacedTagOrFunction instanceof TemplateFunctionModel + && !(replacedTagOrFunction instanceof TemplateDirectiveModelAndTemplateFunctionModel)) { + tagsAndFunctions.put(tagNameCData, new TemplateDirectiveModelAndTemplateFunctionModel( + customTagModel, (TemplateFunctionModel) replacedTagOrFunction)); } else { if (LOG.isWarnEnabled()) { LOG.warn("TLD contains multiple tags with name " + _StringUtil.jQuote(tagNameCData) @@ -1816,7 +1817,7 @@ public class TaglibFactory implements TemplateHashModel { locator); } - final TemplateMethodModel elFunctionModel; + final TemplateFunctionModel elFunctionModel; try { elFunctionModel = defaultObjectWrapper.wrap(null, functionMethod); } catch (Exception e) { @@ -1827,9 +1828,10 @@ public class TaglibFactory implements TemplateHashModel { TemplateModel replacedTagOrFunction = tagsAndFunctions.put(functionNameCData, elFunctionModel); if (replacedTagOrFunction != null) { - if (CustomTagAndELFunctionCombiner.canBeCombinedAsCustomTag(replacedTagOrFunction)) { - tagsAndFunctions.put(functionNameCData, CustomTagAndELFunctionCombiner.combine( - replacedTagOrFunction, elFunctionModel)); + if (replacedTagOrFunction instanceof TemplateDirectiveModel + && !(replacedTagOrFunction instanceof TemplateDirectiveModelAndTemplateFunctionModel)) { + tagsAndFunctions.put(functionNameCData, new TemplateDirectiveModelAndTemplateFunctionModel( + (TemplateDirectiveModel) replacedTagOrFunction, elFunctionModel)); } else { if (LOG.isWarnEnabled()) { LOG.warn("TLD contains multiple functions with name " http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TemplateDirectiveModelAndTemplateFunctionModel.java ---------------------------------------------------------------------- diff --git a/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TemplateDirectiveModelAndTemplateFunctionModel.java b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TemplateDirectiveModelAndTemplateFunctionModel.java new file mode 100644 index 0000000..e4d74d1 --- /dev/null +++ b/freemarker-servlet/src/main/java/org/apache/freemarker/servlet/jsp/TemplateDirectiveModelAndTemplateFunctionModel.java @@ -0,0 +1,77 @@ +/* + * 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.servlet.jsp; + +import java.io.IOException; +import java.io.Writer; + +import org.apache.freemarker.core.CallPlace; +import org.apache.freemarker.core.Environment; +import org.apache.freemarker.core.TemplateException; +import org.apache.freemarker.core.model.ArgumentArrayLayout; +import org.apache.freemarker.core.model.TemplateDirectiveModel; +import org.apache.freemarker.core.model.TemplateFunctionModel; +import org.apache.freemarker.core.model.TemplateModel; + +/** + * Used when a custom JSP tag and an EL function uses the same name in a tag library, to invoke a single FTL value from + * the two. As FTL as no separate namespace for "tags" and functions, both aspect has to be implemented by the same + * value. + */ +class TemplateDirectiveModelAndTemplateFunctionModel + implements TemplateDirectiveModel, TemplateFunctionModel { + + private final TemplateDirectiveModel templateDirectiveModel; + private final TemplateFunctionModel templateFunctionModel; + + TemplateDirectiveModelAndTemplateFunctionModel( // + TemplateDirectiveModel templateDirectiveModel, TemplateFunctionModel templateMethodModelEx) { + this.templateDirectiveModel = templateDirectiveModel; + this.templateFunctionModel = templateMethodModelEx; + } + + @Override + public void execute(TemplateModel[] args, CallPlace callPlace, Writer out, Environment env) + throws TemplateException, IOException { + templateDirectiveModel.execute(args, callPlace, out, env); + } + + @Override + public ArgumentArrayLayout getDirectiveArgumentArrayLayout() { + return templateDirectiveModel.getDirectiveArgumentArrayLayout(); + } + + @Override + public boolean isNestedContentSupported() { + return templateDirectiveModel.isNestedContentSupported(); + } + + @Override + public ArgumentArrayLayout getFunctionArgumentArrayLayout() { + return templateFunctionModel.getFunctionArgumentArrayLayout(); + } + + @Override + public TemplateModel execute(TemplateModel[] args, CallPlace callPlace, Environment env) + throws TemplateException { + return templateFunctionModel.execute(args, callPlace, env); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java ---------------------------------------------------------------------- diff --git a/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java b/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java index 43285c5..3cc6993 100644 --- a/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java +++ b/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java @@ -23,7 +23,6 @@ import static org.junit.Assert.*; import java.io.InputStream; import java.net.URL; -import java.util.Arrays; import java.util.Map; import javax.servlet.ServletContextEvent; @@ -33,9 +32,11 @@ import javax.servlet.jsp.tagext.TagSupport; import javax.xml.parsers.SAXParserFactory; import org.apache.freemarker.core.Configuration; -import org.apache.freemarker.core.model.TemplateMethodModel; +import org.apache.freemarker.core.NonTemplateCallPlace; +import org.apache.freemarker.core.model.TemplateModel; import org.apache.freemarker.core.model.TemplateScalarModel; import org.apache.freemarker.core.model.impl.DefaultObjectWrapper; +import org.apache.freemarker.core.model.impl.JavaMethodModel; import org.apache.freemarker.core.model.impl.SimpleScalar; import org.junit.Before; import org.junit.Test; @@ -74,7 +75,7 @@ public class TLDParsingTest { assertEquals(1, tldParser.getListeners().size()); assertTrue(tldParser.getListeners().get(0) instanceof ExampleContextListener); - Map tagsAndFunctions = tldParser.getTagsAndFunctions(); + Map<String, TemplateModel> tagsAndFunctions = tldParser.getTagsAndFunctions(); assertEquals(4, tagsAndFunctions.size()); JspTagModelBase tag = (JspTagModelBase) tagsAndFunctions.get("setStringAttributeTag"); @@ -82,13 +83,15 @@ public class TLDParsingTest { tag = (JspTagModelBase) tagsAndFunctions.get("setStringAttributeTag2"); assertNotNull(tag); - TemplateMethodModel function = (TemplateMethodModel) tagsAndFunctions.get("toUpperCase"); + JavaMethodModel function = (JavaMethodModel) tagsAndFunctions.get("toUpperCase"); assertNotNull(function); - TemplateScalarModel result = (TemplateScalarModel) function.execute(Arrays.asList(new SimpleScalar("abc"))); + TemplateScalarModel result = (TemplateScalarModel) function.execute( + new TemplateModel[] { new SimpleScalar("abc") }, NonTemplateCallPlace.INSTANCE); assertEquals("ABC", result.getAsString()); - function = (TemplateMethodModel) tagsAndFunctions.get("toUpperCase2"); + function = (JavaMethodModel) tagsAndFunctions.get("toUpperCase2"); assertNotNull(function); - result = (TemplateScalarModel) function.execute(Arrays.asList(new SimpleScalar("abc"))); + result = (TemplateScalarModel) function.execute( + new TemplateModel[] { new SimpleScalar("abc") }, NonTemplateCallPlace.INSTANCE); assertEquals("ABC", result.getAsString()); } http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertDirective.java ---------------------------------------------------------------------- diff --git a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertDirective.java b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertDirective.java index 2e7ecfc..eb6930b 100644 --- a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertDirective.java +++ b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertDirective.java @@ -56,7 +56,7 @@ public class AssertDirective implements TemplateDirectiveModel { } @Override - public ArgumentArrayLayout getArgumentArrayLayout() { + public ArgumentArrayLayout getDirectiveArgumentArrayLayout() { return ArgumentArrayLayout.SINGLE_POSITIONAL_PARAMETER; } http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertEqualsDirective.java ---------------------------------------------------------------------- diff --git a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertEqualsDirective.java b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertEqualsDirective.java index 6734fbc..51baeb4 100644 --- a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertEqualsDirective.java +++ b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertEqualsDirective.java @@ -78,7 +78,7 @@ public class AssertEqualsDirective implements TemplateDirectiveModel { } @Override - public ArgumentArrayLayout getArgumentArrayLayout() { + public ArgumentArrayLayout getDirectiveArgumentArrayLayout() { return ARGS_LAYOUT; } http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertFailsDirective.java ---------------------------------------------------------------------- diff --git a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertFailsDirective.java b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertFailsDirective.java index e8120fc..6fe1505 100644 --- a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertFailsDirective.java +++ b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/AssertFailsDirective.java @@ -136,7 +136,7 @@ public class AssertFailsDirective implements TemplateDirectiveModel { } @Override - public ArgumentArrayLayout getArgumentArrayLayout() { + public ArgumentArrayLayout getDirectiveArgumentArrayLayout() { return ARGS_LAYOUT; } http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/8d5263f2/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/NoOutputDirective.java ---------------------------------------------------------------------- diff --git a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/NoOutputDirective.java b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/NoOutputDirective.java index a8a7bee..1e33dab 100644 --- a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/NoOutputDirective.java +++ b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/NoOutputDirective.java @@ -45,7 +45,7 @@ public class NoOutputDirective implements TemplateDirectiveModel { } @Override - public ArgumentArrayLayout getArgumentArrayLayout() { + public ArgumentArrayLayout getDirectiveArgumentArrayLayout() { return ArgumentArrayLayout.PARAMETERLESS; }
