From 05ab46a70e2b4c5f5c97c6d6f4c73cd70aa3aed0 Mon Sep 17 00:00:00 2001 From: Attila Kelemen Date: Fri, 11 Feb 2022 15:40:33 +0100 Subject: [PATCH] Split tests according to the new "modules". Also had to adjust FileTestCase.getTestClassDirectory() to work from Gradle when not passing the "freemarker.test.resourcesDir" system property (which is the case when executing say TemplateTestSuite.main). --- .travis.yml | 2 +- build.gradle.kts | 268 +++++++----------- .../freemarker/build/CompileJavaccTask.kt | 4 +- .../build/FreemarkerPathExtensions.kt | 26 ++ .../build/FreemarkerRootExtension.kt | 268 +++++++++++++++++- .../freemarker/build/FreemarkerRootPlugin.kt | 127 +++------ .../build/FreemarkerVersionService.kt | 81 ++++++ .../freemarker/build/ManualBuildTask.kt | 28 +- .../main/kotlin/freemarker/build/RmicTask.kt | 4 +- .../kotlin/freemarker/build/SignatureTask.kt | 4 +- .../cache/FileTemplateLoaderTest.java | 0 .../cache/MultiTemplateLoaderTest.java | 0 .../freemarker/cache/TemplateCacheTest.java | 0 .../TemplateConfigurationFactoryTest.java | 0 .../cache/TemplateNameFormatTest.java | 0 .../cache/TemplateSourceMatcherTest.java | 0 .../core/ASTBasedErrorMessagesTest.java | 0 .../test/java/freemarker/core/ASTTest.java | 4 + .../core/AbsoluteTemplateNameBITest.java | 0 .../AppMetaTemplateDateFormatFactory.java | 0 .../core/ArgsSpecialVariableTest.java | 0 .../freemarker/core/AttemptLoggingTest.java | 0 .../BaseNTemplateNumberFormatFactory.java | 0 .../core/BigDecimalArithmeticEngineTest.java | 0 .../core/BreakAndContinuePlacementTest.java | 0 .../core/CallerTemplateNameTest.java | 0 .../java/freemarker/core/CamelCaseTest.java | 0 .../freemarker/core/CanonicalFormTest.java | 4 + .../core/CapturingAssignmentTest.java | 0 .../core/CoercionToTextualTest.java | 0 .../core/CombinedMarkupOutputFormatTest.java | 0 .../freemarker/core/ConfigurableTest.java | 0 .../freemarker/core/CoreLocaleUtilsTest.java | 0 .../core/CustomHTMLOutputFormat.java | 0 .../core/CustomTemplateHTMLModel.java | 0 .../java/freemarker/core/DateFormatTest.java | 0 .../DefaultTruncateBuiltinAlgorithmTest.java | 0 .../core/DirectiveCallPlaceTest.java | 0 .../freemarker/core/DummyOutputFormat.java | 0 .../freemarker/core/EncodingOverrideTest.java | 0 .../freemarker/core/EndTagSyntaxTest.java | 0 .../core/EnvironmentCustomStateTest.java | 0 .../EnvironmentGetTemplateVariantsTest.java | 0 ...ochMillisDivTemplateDateFormatFactory.java | 0 .../EpochMillisTemplateDateFormatFactory.java | 0 .../freemarker/core/EvalJsonBuiltInTest.java | 0 .../core/ExtendedDecimalFormatTest.java | 0 .../java/freemarker/core/FilterBiTest.java | 0 .../core/GetOptionalTemplateTest.java | 0 .../HTMLISOTemplateDateFormatFactory.java | 0 .../freemarker/core/HTMLOutputFormatTest.java | 0 .../freemarker/core/HeaderParsingTest.java | 0 .../core/HexTemplateNumberFormatFactory.java | 0 ...ncludeAndImportConfigurableLayersTest.java | 0 .../freemarker/core/IncludeAndImportTest.java | 0 .../core/InterpolationSyntaxTest.java | 0 .../InterpretAndEvalTemplateNameTest.java | 0 .../core/InterpretSettingInheritanceTest.java | 0 .../freemarker/core/IteratorIssuesTest.java | 0 .../java/freemarker/core/JSONParserTest.java | 0 .../freemarker/core/LambdaParsingTest.java | 0 .../freemarker/core/LamdaAndEscapeTest.java | 0 .../core/LazilyGeneratedCollectionTest.java | 0 .../core/LegacyFMParserConstructorsTest.java | 0 .../core/ListBreakContinueTest.java | 0 .../java/freemarker/core/ListErrorsTest.java | 0 .../core/ListWithStreamLikeBuiltinsTest.java | 0 ...dTZSensitiveTemplateDateFormatFactory.java | 0 ...eSensitiveTemplateNumberFormatFactory.java | 0 .../test/java/freemarker/core/MapBiTest.java | 0 .../java/freemarker/core/MinMaxBITest.java | 0 .../core/MiscErrorMessagesTest.java | 0 .../freemarker/core/NullTransparencyTest.java | 0 .../freemarker/core/NumberFormatTest.java | 0 .../core/OptInTemplateClassResolverTest.java | 4 + .../freemarker/core/OutputFormatTest.java | 0 ...ParseTimeParameterBIErrorMessagesTest.java | 0 .../core/ParsingErrorMessagesTest.java | 0 .../PrintfGTemplateNumberFormatFactory.java | 0 .../freemarker/core/RTFOutputFormatTest.java | 0 .../java/freemarker/core/SQLTimeZoneTest.java | 0 .../core/SeldomEscapedOutputFormat.java | 0 .../freemarker/core/SequenceBuiltInTest.java | 0 .../freemarker/core/SettingDirectiveTest.java | 0 .../freemarker/core/SpecialVariableTest.java | 0 .../core/StringLiteralInterpolationTest.java | 0 .../java/freemarker/core/TabSizeTest.java | 0 .../core/TagSyntaxVariationsTest.java | 4 + .../core/TakeWhileAndDropWhileBiTest.java | 0 .../core/TemplatGetEncodingTest.java | 0 .../core/TemplateConfigurationTest.java | 0 ...ateConfigurationWithTemplateCacheTest.java | 0 .../core/TemplateDummyOutputModel.java | 0 .../core/TemplateLevelSettings.java | 0 .../TemplateNameSpecialVariablesTest.java | 0 .../TemplateSeldomEscapedOutputModel.java | 0 .../core/TemplateTransformModelTest.java | 0 .../core/ThreadInterruptingSupportTest.java | 0 .../freemarker/core/TruncateBuiltInTest.java | 0 .../core/TypeErrorMessagesTest.java | 0 .../core/UncheckedExceptionHandlingTest.java | 0 .../freemarker/core/UnclosedCommentTest.java | 0 .../core/WhitespaceStrippingTest.java | 0 .../freemarker/core/WithArgsBuiltInTest.java | 0 .../core/XHTMLOutputFormatTest.java | 0 .../freemarker/core/XMLOutputFormatTest.java | 0 .../AbstractParallelIntrospectionTest.java | 4 + .../ext/beans/BeansAPINewInstanceTest.java | 4 + .../ext/beans/BeansWrapperBasics.java | 0 .../ext/beans/BeansWrapperCachesTest.java | 0 .../ext/beans/BeansWrapperReadOnlyTest.java | 4 + .../ext/beans/BeansWrapperSingletonsTest.java | 4 + .../CommonSupertypeForUnwrappingHintTest.java | 4 + .../beans/DefaultMemberAccessPolicyTest.java | 0 ...ltObjectWrapperMemberAccessPolicyTest.java | 0 .../freemarker/ext/beans/EnumModelsTest.java | 0 .../ext/beans/ErrorMessagesTest.java | 0 .../beans/FineTuneMethodAppearanceTest.java | 0 ...tPropertyNameFromReaderMethodNameTest.java | 0 .../GetlessMethodsAsPropertyGettersRule.java | 0 .../ext/beans/IsApplicableTest.java | 4 + .../IsMoreSpecificParameterTypeTest.java | 4 + .../Java9InstrospectorBugWorkaroundTest.java | 0 .../LegacyDefaultMemberAccessPolicyTest.java | 0 .../beans/ManyObjectsOfDifferentClasses.java | 0 .../beans/ManyStaticsOfDifferentClasses.java | 0 .../ext/beans/MemberAccessMonitoringTest.java | 0 ...berSelectorListMemberAccessPolicyTest.java | 0 .../ext/beans/MethodMatcherTest.java | 0 .../freemarker/ext/beans/MethodUtilTest.java | 0 .../freemarker/ext/beans/MethodUtilTest2.java | 0 .../beans/MiscNumericalOperationsTest.java | 3 + .../freemarker/ext/beans/ModelCacheTest.java | 0 .../ext/beans/OverloadedNumberUtilTest.java | 4 + .../beans/ParameterListPreferabilityTest.java | 4 + .../beans/PrallelObjectIntrospectionTest.java | 0 .../beans/PrallelStaticIntrospectionTest.java | 0 .../ext/beans/StaticModelsTest.java | 0 .../freemarker/ext/beans/TypeFlagsTest.java | 4 + .../ext/dom/DOMConvenienceStaticsTest.java | 0 .../freemarker/ext/dom/DOMSiblingTest.java | 0 .../test/java/freemarker/ext/dom/DOMTest.java | 0 .../manual/AbsoluteTemplateNameBIExample.java | 0 .../manual/AutoEscapingExample.java | 0 .../manual/ConfigureOutputFormatExamples.java | 0 .../manual/CustomFormatsExample.java | 0 .../java/freemarker/manual/ExamplesTest.java | 0 .../manual/GettingStartedExample.java | 0 .../test/java/freemarker/manual/Product.java | 0 .../manual/TemplateConfigurationExamples.java | 0 .../UnitAwareTemplateNumberFormatFactory.java | 0 .../manual/UnitAwareTemplateNumberModel.java | 0 .../freemarker/manual/WithArgsExamples.java | 0 .../manual/WithArgsLastExamples.java | 0 .../template/ActualNamingConvetionTest.java | 0 .../template/ActualTagSyntaxTest.java | 0 .../template/ConfigurationTest.java | 3 + .../template/CustomAttributeTest.java | 0 .../freemarker/template/ExceptionTest.java | 5 + .../freemarker/template/GetSourceTest.java | 0 .../template/IncudeFromNamelessTest.java | 4 + .../template/JavaCCExceptionAsEOFFixTest.java | 0 .../MistakenlyPublicImportAPIsTest.java | 0 .../MistakenlyPublicMacroAPIsTest.java | 0 .../template/NullConfigurationTest.java | 0 .../template/StaticObjectWrappersTest.java | 0 .../template/TemplateConstructorsTest.java | 0 .../template/TemplateLanguageVersionTest.java | 0 .../template/TemplateLookupStrategyTest.java | 0 .../java/freemarker/template/VersionTest.java | 0 .../template/utility/ConstantsTest.java | 0 .../template/utility/DateUtilTest.java | 4 + .../template/utility/DeepUnwrapTest.java | 0 .../template/utility/NumberUtilTest.java | 3 + .../template/utility/StringUtilTest.java | 0 .../utility/TemplateModelUtilTest.java | 0 .../test/MonitoredTemplateLoader.java | 0 .../test/RuntimeEnvironmentReporterTest.java | 0 .../java/freemarker/test/TemplateTest.java | 4 +- .../test/java/freemarker/test/TreeView.java | 0 .../test/resources/freemarker/cache/test.ftl | 0 .../test/resources/freemarker/core/ast-1.ast | 0 .../test/resources/freemarker/core/ast-1.ftl | 0 .../freemarker/core/ast-assignments.ast | 0 .../freemarker/core/ast-assignments.ftl | 0 .../freemarker/core/ast-builtins.ast | 0 .../freemarker/core/ast-builtins.ftl | 0 .../resources/freemarker/core/ast-lambda.ast | 0 .../resources/freemarker/core/ast-lambda.ftl | 0 .../freemarker/core/ast-locations.ast | 0 .../freemarker/core/ast-locations.ftl | 0 .../core/ast-mixedcontentsimplifications.ast | 0 .../core/ast-mixedcontentsimplifications.ftl | 0 .../core/ast-multipleignoredchildren.ast | 0 .../core/ast-multipleignoredchildren.ftl | 0 .../core/ast-nestedignoredchildren.ast | 0 .../core/ast-nestedignoredchildren.ftl | 0 .../resources/freemarker/core/ast-range.ast | 0 .../resources/freemarker/core/ast-range.ftl | 0 .../core/ast-strlitinterpolation.ast | 0 .../core/ast-strlitinterpolation.ftl | 0 .../core/ast-whitespacestripping.ast | 0 .../core/ast-whitespacestripping.ftl | 0 .../freemarker/core/cano-assignments.ftl | 0 .../freemarker/core/cano-assignments.ftl.out | 0 .../freemarker/core/cano-builtins.ftl | 0 .../freemarker/core/cano-builtins.ftl.out | 0 .../core/cano-identifier-escaping.ftl | 0 .../core/cano-identifier-escaping.ftl.out | 0 .../resources/freemarker/core/cano-macros.ftl | 0 .../freemarker/core/cano-macros.ftl.out | 0 .../core/cano-strlitinterpolation.ftl | 0 .../core/cano-strlitinterpolation.ftl.out | 0 .../core/encodingOverride-ISO-8859-1.ftl | 0 .../core/encodingOverride-UTF-8.ftl | 0 .../freemarker/ext/dom/DOMSiblingTest.xml | 0 .../AbsoluteTemplateNameBIExample-foo.ftl | 0 .../AbsoluteTemplateNameBIExample-lib.ftl | 0 .../manual/AutoEscapingExample-capture.ftlh | 0 .../AutoEscapingExample-capture.ftlh.out | 0 .../manual/AutoEscapingExample-convert.ftlh | 0 .../AutoEscapingExample-convert.ftlh.out | 0 .../manual/AutoEscapingExample-convert2.ftl | 0 .../AutoEscapingExample-convert2.ftl.out | 0 .../manual/AutoEscapingExample-infoBox.ftlh | 0 .../AutoEscapingExample-infoBox.ftlh.out | 0 .../manual/AutoEscapingExample-markup.ftlh | 0 .../AutoEscapingExample-markup.ftlh.out | 0 .../AutoEscapingExample-stringConcat.ftlh | 0 .../AutoEscapingExample-stringConcat.ftlh.out | 0 .../AutoEscapingExample-stringLiteral.ftlh | 0 ...AutoEscapingExample-stringLiteral.ftlh.out | 0 .../AutoEscapingExample-stringLiteral2.ftlh | 0 ...utoEscapingExample-stringLiteral2.ftlh.out | 0 .../ConfigureOutputFormatExamples1.properties | 0 .../ConfigureOutputFormatExamples2.properties | 0 .../manual/CustomFormatsExample-alias1.ftlh | 0 .../CustomFormatsExample-alias1.ftlh.out | 0 .../manual/CustomFormatsExample-alias2.ftlh | 0 .../CustomFormatsExample-alias2.ftlh.out | 0 .../CustomFormatsExample-modelAware.ftlh | 0 .../CustomFormatsExample-modelAware.ftlh.out | 0 .../TemplateConfigurationExamples1.properties | 0 .../TemplateConfigurationExamples2.properties | 0 .../TemplateConfigurationExamples3.properties | 0 ...sExamples-usingWithArgsSpecialVariable.ftl | 0 ...mples-usingWithArgsSpecialVariable.ftl.out | 0 .../manual/WithArgsLastExamples.ftl | 0 .../manual/WithArgsLastExamples.ftl.out | 0 .../dir/AbsoluteTemplateNameBIExample-foo.ftl | 0 .../AbsoluteTemplateNameBIExample-main.ftl | 0 ...AbsoluteTemplateNameBIExample-main.ftl.out | 0 .../resources/freemarker/manual/test.ftlh | 0 .../freemarker/template/toCache1.ftl | 0 .../freemarker/template/toCache2.ftl | 0 .../ext/beans/BeansWrapperMiscTest.java | 0 .../ext/beans/BridgeMethodsBean.java | 0 .../ext/beans/BridgeMethodsBeanBase.java | 0 .../Java8BeansWrapperBridgeMethodsTest.java | 0 .../ext/beans/Java8BeansWrapperTest.java | 0 ...va8BridgeMethodsWithDefaultMethodBean.java | 0 ...a8BridgeMethodsWithDefaultMethodBean2.java | 0 ...ridgeMethodsWithDefaultMethodBeanBase.java | 0 ...idgeMethodsWithDefaultMethodBeanBase2.java | 0 .../ext/beans/Java8DefaultMethodsBean.java | 0 .../beans/Java8DefaultMethodsBeanBase.java | 0 .../ext/jsp/JspTestFreemarkerServlet.java | 0 ...tFreemarkerServletWithDefaultOverride.java | 0 .../ext/jsp/RealServletContainertTest.java | 0 .../freemarker/ext/jsp/TLDParsingTest.java | 0 .../ext/jsp/TaglibMethodUtilTest.java | 0 .../taglibmembers/AttributeAccessorTag.java | 0 .../jsp/taglibmembers/AttributeInfoTag.java | 0 .../ext/jsp/taglibmembers/EnclosingClass.java | 0 .../ext/jsp/taglibmembers/GetAndSetTag.java | 0 .../ext/jsp/taglibmembers/TestFunctions.java | 0 .../ext/jsp/taglibmembers/TestSimpleTag.java | 0 .../ext/jsp/taglibmembers/TestSimpleTag2.java | 0 .../ext/jsp/taglibmembers/TestSimpleTag3.java | 0 .../ext/jsp/taglibmembers/TestTag.java | 0 .../ext/jsp/taglibmembers/TestTag2.java | 0 .../ext/jsp/taglibmembers/TestTag3.java | 0 .../config/WebappLocalFreemarkerServlet.java | 0 .../ext/servlet/FreemarkerServletTest.java | 0 .../ext/servlet/InitParamParserTest.java | 0 .../template/MockServletContext.java | 0 .../template/TemplateNotFoundMessageTest.java | 0 .../servlet/DefaultModel2TesterAction.java | 0 .../freemarker/test/servlet/Model2Action.java | 0 .../test/servlet/Model2TesterServlet.java | 0 .../test/servlet/WebAppTestCase.java | 0 .../tldDiscovery MetaInfTldSources-1.tld | 0 .../freemarker/ext/jsp/TLDParsingTest.tld | 0 .../ext/jsp/templates/classpath-test.ftl | 0 .../ext/jsp/tldDiscovery-ClassPathTlds-1.tld | 0 .../ext/jsp/tldDiscovery-ClassPathTlds-2.tld | 0 .../ext/jsp/webapps/basic/CONTENTS.txt | 0 .../WEB-INF/el-function-tag-name-clash.tld | 0 .../webapps/basic/WEB-INF/el-functions.tld | 0 .../WEB-INF/expected/attributes-2.3.0.txt | 0 .../expected/attributes-2.3.22-future.txt | 0 .../basic/WEB-INF/expected/attributes.txt | 0 .../basic/WEB-INF/expected/customTags1.txt | 0 .../ext/jsp/webapps/basic/WEB-INF/test.tld | 0 .../ext/jsp/webapps/basic/WEB-INF/web.xml | 0 .../ext/jsp/webapps/basic/attributes.ftl | 0 .../jsp/webapps/basic/customELFunctions1.ftl | 0 .../jsp/webapps/basic/customELFunctions1.jsp | 0 .../ext/jsp/webapps/basic/customTags1.ftl | 0 .../webapps/basic/elFunctionsTagNameClash.ftl | 0 .../webapps/basic/elFunctionsTagNameClash.jsp | 0 .../webapps/basic/trivial-jstl-@Ignore.ftl | 0 .../ext/jsp/webapps/basic/trivial.ftl | 0 .../ext/jsp/webapps/basic/trivial.jsp | 0 .../ext/jsp/webapps/config/CONTENTS.txt | 0 .../config/WEB-INF/classes/sub/test.ftl | 0 .../webapps/config/WEB-INF/classes/test.ftl | 0 .../WEB-INF/lib/templates.jar/sub/test2.ftl | 0 .../webapps/config/WEB-INF/templates/test.ftl | 0 .../ext/jsp/webapps/config/WEB-INF/web.xml | 0 .../ext/jsp/webapps/config/test.ftl | 0 .../ext/jsp/webapps/errors/CONTENTS.txt | 0 .../ext/jsp/webapps/errors/WEB-INF/web.xml | 0 .../webapps/errors/failing-parsetime.ftlnv | 0 .../jsp/webapps/errors/failing-parsetime.jsp | 0 .../jsp/webapps/errors/failing-runtime.ftl | 0 .../jsp/webapps/errors/failing-runtime.jsp | 0 .../ext/jsp/webapps/errors/not-failing.ftl | 0 .../jsp/webapps/multipleLoaders/CONTENTS.txt | 0 .../WEB-INF/templates/test.ftl | 0 .../webapps/multipleLoaders/WEB-INF/web.xml | 0 .../ext/jsp/webapps/tldDiscovery/CONTENTS.txt | 0 .../WEB-INF/expected/subdir/test-rel.txt | 0 .../WEB-INF/expected/test-noClasspath.txt | 0 .../tldDiscovery/WEB-INF/expected/test1.txt | 0 .../tldDiscovery/WEB-INF/fmtesttag 2.tld | 0 .../tldDiscovery/WEB-INF/fmtesttag4.tld | 0 .../lib/taglib-foo.jar/META-INF/foo bar.tld | 0 .../WEB-INF/subdir-with-tld/fmtesttag3.tld | 0 .../WEB-INF/taglib 2.jar/META-INF/taglib.tld | 0 .../jsp/webapps/tldDiscovery/WEB-INF/web.xml | 0 .../not-auto-scanned/fmtesttag.tld | 0 .../webapps/tldDiscovery/subdir/test-rel.ftl | 0 .../webapps/tldDiscovery/test-noClasspath.ftl | 0 .../ext/jsp/webapps/tldDiscovery/test1.ftl | 0 .../freemarker/test/servlet/web.xml | 0 .../core/ObjectBuilderSettingsTest.java | 0 .../core/subpkg/PackageVisibleAll.java | 0 .../subpkg/PackageVisibleAllWithBuilder.java | 0 .../PackageVisibleAllWithBuilderBuilder.java | 0 .../PackageVisibleWithPublicConstructor.java | 0 .../freemarker/core/subpkg/PublicAll.java | 0 .../subpkg/PublicWithMixedConstructors.java | 0 .../PublicWithPackageVisibleConstructor.java | 0 .../template/DefaultObjectWrapperTest.java | 0 .../template/SimpleObjectWrapperTest.java | 0 .../test/templatesuite/TemplateTestCase.java | 0 .../test/templatesuite/TemplateTestSuite.java | 3 + .../test/templatesuite/package.html | 0 .../templatesuite/expected/arithmetic.txt | 0 .../test/templatesuite/expected/bean-maps.txt | 0 .../test/templatesuite/expected/beans.txt | 0 .../expected/boolean-formatting.txt | 0 .../test/templatesuite/expected/boolean.txt | 0 .../expected/charset-in-header.txt | 0 .../expected/classic-compatible.txt | 0 .../test/templatesuite/expected/comment.txt | 0 .../templatesuite/expected/comparisons.txt | 0 .../test/templatesuite/expected/compress.txt | 0 .../expected/dateformat-java.txt | 0 .../templatesuite/expected/default-xmlns.txt | 0 .../test/templatesuite/expected/default.txt | 0 .../expected/encoding-builtins-ici-2.3.20.txt | 0 .../expected/encoding-builtins.txt | 0 .../test/templatesuite/expected/escapes.txt | 0 .../test/templatesuite/expected/exception.txt | 0 .../templatesuite/expected/exception2.txt | 0 .../templatesuite/expected/exception3.txt | 0 .../test/templatesuite/expected/exthash.txt | 0 .../templatesuite/expected/hashconcat.txt | 0 .../templatesuite/expected/hashliteral.txt | 0 .../templatesuite/expected/helloworld.txt | 0 .../expected/identifier-escaping.txt | 0 .../expected/identifier-non-ascii.txt | 0 .../test/templatesuite/expected/if.txt | 0 .../test/templatesuite/expected/import.txt | 0 .../test/templatesuite/expected/include.txt | 0 .../test/templatesuite/expected/include2.txt | 0 .../test/templatesuite/expected/interpret.txt | 0 .../test/templatesuite/expected/iterators.txt | 0 .../templatesuite/expected/lastcharacter.txt | 0 .../test/templatesuite/expected/list-bis.txt | 0 .../test/templatesuite/expected/list.txt | 0 .../test/templatesuite/expected/list2.txt | 0 .../test/templatesuite/expected/list3.txt | 0 .../test/templatesuite/expected/listhash.txt | 0 .../expected/listhashliteral-ici-2.3.20.txt | 0 .../expected/listhashliteral-ici-2.3.21.txt | 0 .../templatesuite/expected/listliteral.txt | 0 .../templatesuite/expected/localization.txt | 0 .../test/templatesuite/expected/logging.txt | 0 .../templatesuite/expected/loopvariable.txt | 0 .../templatesuite/expected/macros-return.txt | 0 .../test/templatesuite/expected/macros.txt | 0 .../test/templatesuite/expected/macros2.txt | 0 .../templatesuite/expected/multimodels.txt | 0 .../test/templatesuite/expected/nested.txt | 0 .../expected/new-allowsnothing.txt | 0 .../expected/new-defaultresolver.txt | 0 .../test/templatesuite/expected/new-optin.txt | 0 .../test/templatesuite/expected/new-safer.txt | 0 .../expected/new-unrestricted.txt | 0 .../test/templatesuite/expected/newlines1.txt | 0 .../test/templatesuite/expected/newlines2.txt | 0 .../expected/non-strict-syntax.txt | 0 .../test/templatesuite/expected/noparse.txt | 0 .../templatesuite/expected/number-format.txt | 0 .../templatesuite/expected/number-literal.txt | 0 .../templatesuite/expected/number-to-date.txt | 0 .../templatesuite/expected/numerical-cast.txt | 0 .../expected/output-encoding1.txt | 0 .../expected/output-encoding2.txt | Bin .../expected/output-encoding3.txt | 0 .../templatesuite/expected/precedence.txt | 0 .../test/templatesuite/expected/recover.txt | 0 .../test/templatesuite/expected/root.txt | 0 .../expected/sequence-builtins.txt | 0 .../templatesuite/expected/specialvars.txt | 0 .../templatesuite/expected/strictinheader.txt | 0 .../string-builtins-regexps-matches.txt | 0 .../expected/string-builtins-regexps.txt | 0 .../expected/string-builtins1.txt | 0 .../expected/string-builtins2.txt | 0 .../expected/stringbimethods.txt | 0 .../templatesuite/expected/stringliteral.txt | Bin .../test/templatesuite/expected/switch.txt | 0 .../templatesuite/expected/transforms.txt | 0 .../expected/type-builtins-ici-2.3.21.txt | 0 .../expected/type-builtins-ici-2.3.24.txt | 0 .../templatesuite/expected/type-builtins.txt | 0 .../templatesuite/expected/var-layers.txt | 0 .../test/templatesuite/expected/varargs.txt | 0 .../test/templatesuite/expected/variables.txt | 0 .../expected/whitespace-trim.txt | 0 .../expected/wstrip-in-header.txt | 0 .../templatesuite/expected/wstripping.txt | 0 .../templatesuite/expected/xml-fragment.txt | 0 .../expected/xml-ns_prefix-scope.txt | 0 .../test/templatesuite/expected/xml.txt | 0 .../test/templatesuite/expected/xmlns1.txt | 0 .../test/templatesuite/expected/xmlns3.txt | 0 .../test/templatesuite/expected/xmlns4.txt | 0 .../test/templatesuite/expected/xmlns5.txt | 0 .../models/BeansTestResources.properties | 0 .../templatesuite/models/defaultxmlns1.xml | 0 .../models/xml-ns_prefix-scope.xml | 0 .../test/templatesuite/models/xml.xml | 0 .../test/templatesuite/models/xmlfragment.xml | 0 .../test/templatesuite/models/xmlns.xml | 0 .../test/templatesuite/models/xmlns2.xml | 0 .../test/templatesuite/models/xmlns3.xml | 0 .../templatesuite/templates/api-builtins.ftl | 0 .../templatesuite/templates/arithmetic.ftl | 0 .../templatesuite/templates/assignments.ftl | 0 .../templatesuite/templates/bean-maps.ftl | 0 .../test/templatesuite/templates/beans.ftl | 0 .../templates/boolean-formatting.ftl | 0 .../test/templatesuite/templates/boolean.ftl | 0 .../templates/charset-in-header.ftl | 0 .../templates/charset-in-header_inc1.ftl | 0 .../templates/charset-in-header_inc2.ftl | 0 .../templates/classic-compatible-mode2.ftl | 0 .../templates/classic-compatible.ftl | 0 .../test/templatesuite/templates/comment.ftl | 0 .../templatesuite/templates/comparisons.ftl | 0 .../test/templatesuite/templates/compress.ftl | 0 .../templates/date-type-builtins.ftl | 0 .../templates/dateformat-iso-bi-common.ftl | 0 .../dateformat-iso-bi-ici-2.3.21.ftl | 0 .../templates/dateformat-iso-bi.ftl | 0 .../templates/dateformat-iso-like.ftl | 0 .../templates/dateformat-java.ftl | 0 .../templatesuite/templates/dateparsing.ftl | 0 .../templatesuite/templates/default-xmlns.ftl | 0 .../test/templatesuite/templates/default.ftl | 0 .../templates/encoding-builtins.ftl | 0 .../test/templatesuite/templates/escapes.ftl | 0 .../templatesuite/templates/exception.ftl | 0 .../templatesuite/templates/exception2.ftl | 0 .../templatesuite/templates/exception3.ftl | 0 .../templates/existence-operators.ftl | 0 .../templatesuite/templates/hashconcat.ftl | 0 .../templatesuite/templates/hashliteral.ftl | 0 .../templatesuite/templates/helloworld.ftl | 0 .../templates/identifier-escaping.ftl | 0 .../templates/identifier-non-ascii.ftl | 0 .../test/templatesuite/templates/if.ftl | 0 .../test/templatesuite/templates/import.ftl | 0 .../templatesuite/templates/import_lib.ftl | 0 .../test/templatesuite/templates/include.ftl | 0 .../templates/include2-included-encoding.ftl | 0 .../templates/include2-included.ftl | 0 .../test/templatesuite/templates/include2.ftl | 0 .../test/templatesuite/templates/included.ftl | 0 .../templatesuite/templates/interpret.ftl | 0 .../templatesuite/templates/iterators.ftl | 0 .../templatesuite/templates/lastcharacter.ftl | 0 .../test/templatesuite/templates/list-bis.ftl | 0 .../test/templatesuite/templates/list.ftl | 0 .../test/templatesuite/templates/list2.ftl | 0 .../test/templatesuite/templates/list3.ftl | 0 .../test/templatesuite/templates/listhash.ftl | 0 .../templates/listhashliteral.ftl | 0 .../templatesuite/templates/listliteral.ftl | 0 .../templatesuite/templates/localization.ftl | 0 .../templates/localization_en.ftl | 0 .../templates/localization_en_AU.ftl | 0 .../test/templatesuite/templates/logging.ftl | 0 .../templatesuite/templates/loopvariable.ftl | 0 .../templatesuite/templates/macros-return.ftl | 0 .../test/templatesuite/templates/macros.ftl | 0 .../test/templatesuite/templates/macros2.ftl | 0 .../templatesuite/templates/multimodels.ftl | 0 .../test/templatesuite/templates/nested.ftl | 0 .../templatesuite/templates/nestedinclude.ftl | 0 .../templates/new-allowsnothing.ftl | 0 .../templates/new-defaultresolver.ftl | 0 .../templatesuite/templates/new-optin.ftl | 0 .../templatesuite/templates/new-safer.ftl | 0 .../templates/new-unrestricted.ftl | 0 .../templatesuite/templates/newlines1.ftl | 0 .../templatesuite/templates/newlines2.ftl | 0 .../templates/non-strict-syntax.ftl | 0 .../test/templatesuite/templates/noparse.ftl | 0 .../templatesuite/templates/number-format.ftl | 0 .../templates/number-literal.ftl | 0 .../templates/number-math-builtins.ftl | 0 .../templates/number-to-date.ftl | 0 .../templates/numerical-cast.ftl | 0 .../templates/output-encoding1.ftl | 0 .../templates/output-encoding2.ftl | 0 .../templates/output-encoding3.ftl | 0 .../overloaded-methods-2-bwici-2.3.20.ftl | 0 .../overloaded-methods-2-bwici-2.3.21.ftl | 0 .../templates/overloaded-methods-2-common.ftl | 0 ...overloaded-methods-2-desc-bwici-2.3.20.ftl | 0 .../overloaded-methods-2-inc-bwici-2.3.20.ftl | 0 .../templates/overloaded-methods-23bc.ftl | 0 .../templatesuite/templates/precedence.ftl | 0 .../templatesuite/templates/range-common.ftl | 0 .../templates/range-ici-2.3.20.ftl | 0 .../templates/range-ici-2.3.21.ftl | 0 .../templatesuite/templates/range-lazy.ftl | 0 .../test/templatesuite/templates/recover.ftl | 0 .../test/templatesuite/templates/root.ftl | 0 .../templates/sequence-builtins.ftl | 0 .../test/templatesuite/templates/setting.ftl | 0 .../templates/simplehash-char-key.ftl | 0 .../templatesuite/templates/specialvars.ftl | 0 .../templates/strictinheader.ftl | 0 .../templates/strictinheader_inc1.ftl | 0 .../templates/strictinheader_inc2.ftl | 0 .../templates/string-builtin-coercion.ftl | 0 .../templates/string-builtins-ici-2.3.19.ftl | 0 .../templates/string-builtins-ici-2.3.20.ftl | 0 .../string-builtins-regexps-matches.ftl | 0 .../templates/string-builtins-regexps.ftl | 0 .../templates/string-builtins1.ftl | 0 .../templates/string-builtins2.ftl | 0 .../templates/string-builtins3.ftl | 0 .../templates/stringbimethods.ftl | 0 .../templatesuite/templates/stringliteral.ftl | 0 .../templates/subdir/include-subdir.ftl | 0 .../templates/subdir/include-subdir2.ftl | 0 .../templates/subdir/new-optin-2.ftl | 0 .../templates/subdir/new-optin.ftl | 0 .../templates/subdir/subsub/new-optin.ftl | 0 .../templates/switch-builtin.ftl | 0 .../test/templatesuite/templates/switch.ftl | 0 .../templatesuite/templates/then-builtin.ftl | 0 .../templatesuite/templates/transforms.ftl | 0 .../templatesuite/templates/type-builtins.ftl | 0 .../templatesuite/templates/undefined.ftl | 0 .../test/templatesuite/templates/url.ftl | 0 .../templatesuite/templates/var-layers.ftl | 0 .../test/templatesuite/templates/varargs.ftl | 0 .../templatesuite/templates/variables.ftl | 0 .../templatesuite/templates/varlayers_lib.ftl | 0 .../templates/whitespace-trim.ftl | 0 .../templates/wsstripinheader_inc.ftl | 0 .../templates/wstrip-in-header.ftl | 0 .../templatesuite/templates/xml-fragment.ftl | 0 .../templates/xml-ns_prefix-scope-lib.ftl | 0 .../templates/xml-ns_prefix-scope-main.ftl | 0 .../test/templatesuite/templates/xml.ftl | 0 .../test/templatesuite/templates/xmlns1.ftl | 0 .../test/templatesuite/templates/xmlns3.ftl | 0 .../test/templatesuite/templates/xmlns4.ftl | 0 .../test/templatesuite/templates/xmlns5.ftl | 0 .../test/templatesuite/testcases.xml | 0 .../java/freemarker/core/ASTPrinter.java | 0 .../ext/beans/AlphabeticalMethodSorter.java | 0 .../ext/beans/BeansWrapperDesc2003020.java | 0 .../ext/beans/BeansWrapperDesc2003021.java | 0 .../ext/beans/BeansWrapperInc2003020.java | 0 .../ext/beans/BeansWrapperInc2003021.java | 0 .../beans/BeansWrapperWithShortedMethods.java | 0 .../DefaultObjectWrapperDesc2003020.java | 0 .../DefaultObjectWrapperDesc2003021.java | 0 .../DefaultObjectWrapperDesc2003022.java | 0 .../beans/DefaultObjectWrapperInc2003020.java | 0 .../beans/DefaultObjectWrapperInc2003021.java | 0 .../beans/DefaultObjectWrapperInc2003022.java | 0 ...DefaultObjectWrapperWithSortedMethods.java | 0 .../beans/Java7MembersOnlyBeansWrapper.java | 0 .../freemarker/ext/beans/RationalNumber.java | 0 ...CopyrightCommentRemoverTemplateLoader.java | 0 .../freemarker/test/ResourcesExtractor.java | 0 .../freemarker/test/hamcerst/Matchers.java | 0 .../hamcerst/StringContainsIgnoringCase.java | 0 .../main}/java/freemarker/test/package.html | 0 .../models/AllTemplateModels.java | 0 .../templatesuite/models/BeanTestClass.java | 0 .../models/BeanTestInterface.java | 0 .../models/BeanTestSuperclass.java | 0 .../models/BooleanAndScalarModel.java | 0 .../models/BooleanAndStringTemplateModel.java | 0 .../templatesuite/models/BooleanHash1.java | 0 .../templatesuite/models/BooleanHash2.java | 0 .../templatesuite/models/BooleanList1.java | 0 .../templatesuite/models/BooleanList2.java | 0 .../models/BooleanVsStringMethods.java | 0 .../templatesuite/models/EnumTestClass.java | 0 .../templatesuite/models/ExceptionModel.java | 0 .../models/HashAndScalarModel.java | 0 .../templatesuite/models/JavaObjectInfo.java | 0 .../test/templatesuite/models/LegacyList.java | 0 .../test/templatesuite/models/Listables.java | 0 .../templatesuite/models/MultiModel1.java | 0 .../templatesuite/models/MultiModel2.java | 0 .../templatesuite/models/MultiModel3.java | 0 .../templatesuite/models/MultiModel4.java | 0 .../templatesuite/models/MultiModel5.java | 0 .../templatesuite/models/NewTestModel.java | 0 .../templatesuite/models/NewTestModel2.java | 0 .../models/NumberAndStringModel.java | 0 .../models/OverloadedConstructor.java | 0 .../models/OverloadedMethods.java | 0 .../models/OverloadedMethods2.java | 0 .../models/SimpleTestMethod.java | 0 .../models/TransformHashWrapper.java | 0 .../models/TransformMethodWrapper1.java | 0 .../models/TransformMethodWrapper2.java | 0 .../templatesuite/models/TransformModel1.java | 0 .../templatesuite/models/VarArgTestModel.java | 0 .../test/utility/AssertDirective.java | 0 .../test/utility/AssertEqualsDirective.java | 0 .../test/utility/AssertFailsDirective.java | 0 .../AssertationFailedInTemplateException.java | 0 .../utility/BadParameterTypeException.java | 0 .../freemarker/test/utility/FileTestCase.java | 121 +++++++- .../MissingRequiredParameterException.java | 0 .../test/utility/NoOutputDirective.java | 0 .../test/utility/ParameterException.java | 0 .../freemarker/test/utility/TestUtil.java | 0 .../UnsupportedParameterException.java | 0 .../src/main}/resources/logback-test.xml | 0 settings.gradle.kts | 11 + 668 files changed, 737 insertions(+), 292 deletions(-) create mode 100644 buildSrc/src/main/kotlin/freemarker/build/FreemarkerPathExtensions.kt create mode 100644 buildSrc/src/main/kotlin/freemarker/build/FreemarkerVersionService.kt rename {freemarker-test => freemarker-core}/src/test/java/freemarker/cache/FileTemplateLoaderTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/cache/MultiTemplateLoaderTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/cache/TemplateCacheTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/cache/TemplateConfigurationFactoryTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/cache/TemplateNameFormatTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/cache/TemplateSourceMatcherTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/ASTBasedErrorMessagesTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/ASTTest.java (96%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/AbsoluteTemplateNameBITest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/AppMetaTemplateDateFormatFactory.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/ArgsSpecialVariableTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/AttemptLoggingTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/BaseNTemplateNumberFormatFactory.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/BigDecimalArithmeticEngineTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/BreakAndContinuePlacementTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/CallerTemplateNameTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/CamelCaseTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/CanonicalFormTest.java (95%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/CapturingAssignmentTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/CoercionToTextualTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/CombinedMarkupOutputFormatTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/ConfigurableTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/CoreLocaleUtilsTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/CustomHTMLOutputFormat.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/CustomTemplateHTMLModel.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/DateFormatTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/DefaultTruncateBuiltinAlgorithmTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/DirectiveCallPlaceTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/DummyOutputFormat.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/EncodingOverrideTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/EndTagSyntaxTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/EnvironmentCustomStateTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/EnvironmentGetTemplateVariantsTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/EpochMillisDivTemplateDateFormatFactory.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/EpochMillisTemplateDateFormatFactory.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/EvalJsonBuiltInTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/ExtendedDecimalFormatTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/FilterBiTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/GetOptionalTemplateTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/HTMLISOTemplateDateFormatFactory.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/HTMLOutputFormatTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/HeaderParsingTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/HexTemplateNumberFormatFactory.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/IncludeAndImportConfigurableLayersTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/IncludeAndImportTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/InterpolationSyntaxTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/InterpretAndEvalTemplateNameTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/InterpretSettingInheritanceTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/IteratorIssuesTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/JSONParserTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/LambdaParsingTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/LamdaAndEscapeTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/LazilyGeneratedCollectionTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/LegacyFMParserConstructorsTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/ListBreakContinueTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/ListErrorsTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/ListWithStreamLikeBuiltinsTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/LocAndTZSensitiveTemplateDateFormatFactory.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/LocaleSensitiveTemplateNumberFormatFactory.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/MapBiTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/MinMaxBITest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/MiscErrorMessagesTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/NullTransparencyTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/NumberFormatTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/OptInTemplateClassResolverTest.java (98%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/OutputFormatTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/ParseTimeParameterBIErrorMessagesTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/ParsingErrorMessagesTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/PrintfGTemplateNumberFormatFactory.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/RTFOutputFormatTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/SQLTimeZoneTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/SeldomEscapedOutputFormat.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/SequenceBuiltInTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/SettingDirectiveTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/SpecialVariableTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/StringLiteralInterpolationTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TabSizeTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TagSyntaxVariationsTest.java (98%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TakeWhileAndDropWhileBiTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TemplatGetEncodingTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TemplateConfigurationTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TemplateConfigurationWithTemplateCacheTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TemplateDummyOutputModel.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TemplateLevelSettings.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TemplateNameSpecialVariablesTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TemplateSeldomEscapedOutputModel.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TemplateTransformModelTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/ThreadInterruptingSupportTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TruncateBuiltInTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/TypeErrorMessagesTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/UncheckedExceptionHandlingTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/UnclosedCommentTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/WhitespaceStrippingTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/WithArgsBuiltInTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/XHTMLOutputFormatTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/core/XMLOutputFormatTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/AbstractParallelIntrospectionTest.java (97%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/BeansAPINewInstanceTest.java (97%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/BeansWrapperBasics.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/BeansWrapperCachesTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/BeansWrapperReadOnlyTest.java (96%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/BeansWrapperSingletonsTest.java (99%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/CommonSupertypeForUnwrappingHintTest.java (98%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/DefaultMemberAccessPolicyTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/DefaultObjectWrapperMemberAccessPolicyTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/EnumModelsTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/ErrorMessagesTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/FineTuneMethodAppearanceTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/GetPropertyNameFromReaderMethodNameTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/GetlessMethodsAsPropertyGettersRule.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/IsApplicableTest.java (98%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/IsMoreSpecificParameterTypeTest.java (98%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/Java9InstrospectorBugWorkaroundTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/LegacyDefaultMemberAccessPolicyTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/ManyObjectsOfDifferentClasses.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/ManyStaticsOfDifferentClasses.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/MemberAccessMonitoringTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/MemberSelectorListMemberAccessPolicyTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/MethodMatcherTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/MethodUtilTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/MethodUtilTest2.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/MiscNumericalOperationsTest.java (98%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/ModelCacheTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/OverloadedNumberUtilTest.java (99%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/ParameterListPreferabilityTest.java (99%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/PrallelObjectIntrospectionTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/PrallelStaticIntrospectionTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/StaticModelsTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/beans/TypeFlagsTest.java (99%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/dom/DOMConvenienceStaticsTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/dom/DOMSiblingTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/ext/dom/DOMTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/manual/AbsoluteTemplateNameBIExample.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/manual/AutoEscapingExample.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/manual/ConfigureOutputFormatExamples.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/manual/CustomFormatsExample.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/manual/ExamplesTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/manual/GettingStartedExample.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/manual/Product.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/manual/TemplateConfigurationExamples.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/manual/UnitAwareTemplateNumberFormatFactory.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/manual/UnitAwareTemplateNumberModel.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/manual/WithArgsExamples.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/manual/WithArgsLastExamples.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/ActualNamingConvetionTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/ActualTagSyntaxTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/ConfigurationTest.java (99%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/CustomAttributeTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/ExceptionTest.java (97%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/GetSourceTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/IncudeFromNamelessTest.java (94%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/JavaCCExceptionAsEOFFixTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/MistakenlyPublicImportAPIsTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/MistakenlyPublicMacroAPIsTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/NullConfigurationTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/StaticObjectWrappersTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/TemplateConstructorsTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/TemplateLanguageVersionTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/TemplateLookupStrategyTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/VersionTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/utility/ConstantsTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/utility/DateUtilTest.java (99%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/utility/DeepUnwrapTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/utility/NumberUtilTest.java (98%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/utility/StringUtilTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/template/utility/TemplateModelUtilTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/test/MonitoredTemplateLoader.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/test/RuntimeEnvironmentReporterTest.java (100%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/test/TemplateTest.java (99%) rename {freemarker-test => freemarker-core}/src/test/java/freemarker/test/TreeView.java (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/cache/test.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-1.ast (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-1.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-assignments.ast (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-assignments.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-builtins.ast (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-builtins.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-lambda.ast (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-lambda.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-locations.ast (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-locations.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-mixedcontentsimplifications.ast (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-mixedcontentsimplifications.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-multipleignoredchildren.ast (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-multipleignoredchildren.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-nestedignoredchildren.ast (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-nestedignoredchildren.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-range.ast (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-range.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-strlitinterpolation.ast (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-strlitinterpolation.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-whitespacestripping.ast (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/ast-whitespacestripping.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/cano-assignments.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/cano-assignments.ftl.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/cano-builtins.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/cano-builtins.ftl.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/cano-identifier-escaping.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/cano-identifier-escaping.ftl.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/cano-macros.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/cano-macros.ftl.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/cano-strlitinterpolation.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/cano-strlitinterpolation.ftl.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/encodingOverride-ISO-8859-1.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/core/encodingOverride-UTF-8.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/ext/dom/DOMSiblingTest.xml (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AbsoluteTemplateNameBIExample-foo.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AbsoluteTemplateNameBIExample-lib.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-capture.ftlh (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-capture.ftlh.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-convert.ftlh (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-convert.ftlh.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-convert2.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-convert2.ftl.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-infoBox.ftlh (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-infoBox.ftlh.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-markup.ftlh (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-markup.ftlh.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-stringConcat.ftlh (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-stringConcat.ftlh.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral.ftlh (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral.ftlh.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral2.ftlh (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral2.ftlh.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/ConfigureOutputFormatExamples1.properties (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/ConfigureOutputFormatExamples2.properties (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/CustomFormatsExample-alias1.ftlh (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/CustomFormatsExample-alias1.ftlh.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/CustomFormatsExample-alias2.ftlh (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/CustomFormatsExample-alias2.ftlh.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/CustomFormatsExample-modelAware.ftlh (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/CustomFormatsExample-modelAware.ftlh.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/TemplateConfigurationExamples1.properties (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/TemplateConfigurationExamples2.properties (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/TemplateConfigurationExamples3.properties (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/WithArgsExamples-usingWithArgsSpecialVariable.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/WithArgsExamples-usingWithArgsSpecialVariable.ftl.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/WithArgsLastExamples.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/WithArgsLastExamples.ftl.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-foo.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-main.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-main.ftl.out (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/manual/test.ftlh (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/template/toCache1.ftl (100%) rename {freemarker-test => freemarker-core}/src/test/resources/freemarker/template/toCache2.ftl (100%) rename {freemarker-test => freemarker-core8}/src/test/java/freemarker/ext/beans/BeansWrapperMiscTest.java (100%) rename {freemarker-test => freemarker-core8}/src/test/java/freemarker/ext/beans/BridgeMethodsBean.java (100%) rename {freemarker-test => freemarker-core8}/src/test/java/freemarker/ext/beans/BridgeMethodsBeanBase.java (100%) rename {freemarker-test => freemarker-core8}/src/test/java/freemarker/ext/beans/Java8BeansWrapperBridgeMethodsTest.java (100%) rename {freemarker-test => freemarker-core8}/src/test/java/freemarker/ext/beans/Java8BeansWrapperTest.java (100%) rename {freemarker-test => freemarker-core8}/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBean.java (100%) rename {freemarker-test => freemarker-core8}/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBean2.java (100%) rename {freemarker-test => freemarker-core8}/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBeanBase.java (100%) rename {freemarker-test => freemarker-core8}/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBeanBase2.java (100%) rename {freemarker-test => freemarker-core8}/src/test/java/freemarker/ext/beans/Java8DefaultMethodsBean.java (100%) rename {freemarker-test => freemarker-core8}/src/test/java/freemarker/ext/beans/Java8DefaultMethodsBeanBase.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/JspTestFreemarkerServlet.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/JspTestFreemarkerServletWithDefaultOverride.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/RealServletContainertTest.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/TLDParsingTest.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/TaglibMethodUtilTest.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/taglibmembers/AttributeAccessorTag.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/taglibmembers/AttributeInfoTag.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/taglibmembers/EnclosingClass.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/taglibmembers/GetAndSetTag.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/taglibmembers/TestFunctions.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag2.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag3.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag2.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag3.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/jsp/webapps/config/WebappLocalFreemarkerServlet.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/servlet/FreemarkerServletTest.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/ext/servlet/InitParamParserTest.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/template/MockServletContext.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/template/TemplateNotFoundMessageTest.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/test/servlet/DefaultModel2TesterAction.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/test/servlet/Model2Action.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/test/servlet/Model2TesterServlet.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/java/freemarker/test/servlet/WebAppTestCase.java (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/META-INF/tldDiscovery MetaInfTldSources-1.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/TLDParsingTest.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/templates/classpath-test.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/tldDiscovery-ClassPathTlds-1.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/tldDiscovery-ClassPathTlds-2.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/CONTENTS.txt (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/el-function-tag-name-clash.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/el-functions.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes-2.3.0.txt (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes-2.3.22-future.txt (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes.txt (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/customTags1.txt (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/test.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/web.xml (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/attributes.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/customELFunctions1.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/customELFunctions1.jsp (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/customTags1.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/elFunctionsTagNameClash.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/elFunctionsTagNameClash.jsp (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial-jstl-@Ignore.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial.jsp (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/config/CONTENTS.txt (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/classes/sub/test.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/classes/test.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/lib/templates.jar/sub/test2.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/templates/test.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/web.xml (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/config/test.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/errors/CONTENTS.txt (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/errors/WEB-INF/web.xml (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-parsetime.ftlnv (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-parsetime.jsp (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-runtime.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-runtime.jsp (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/errors/not-failing.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/CONTENTS.txt (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/WEB-INF/templates/test.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/WEB-INF/web.xml (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/CONTENTS.txt (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/subdir/test-rel.txt (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/test-noClasspath.txt (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/test1.txt (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/fmtesttag 2.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/fmtesttag4.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/lib/taglib-foo.jar/META-INF/foo bar.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/subdir-with-tld/fmtesttag3.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/taglib 2.jar/META-INF/taglib.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/web.xml (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/not-auto-scanned/fmtesttag.tld (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/subdir/test-rel.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/test-noClasspath.ftl (100%) rename {freemarker-test => freemarker-jsp21}/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/test1.ftl (100%) rename {freemarker-test/src/test/java => freemarker-jsp21/src/test/resources}/freemarker/test/servlet/web.xml (100%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/core/ObjectBuilderSettingsTest.java (100%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/core/subpkg/PackageVisibleAll.java (100%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/core/subpkg/PackageVisibleAllWithBuilder.java (100%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/core/subpkg/PackageVisibleAllWithBuilderBuilder.java (100%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/core/subpkg/PackageVisibleWithPublicConstructor.java (100%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/core/subpkg/PublicAll.java (100%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/core/subpkg/PublicWithMixedConstructors.java (100%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/core/subpkg/PublicWithPackageVisibleConstructor.java (100%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/template/DefaultObjectWrapperTest.java (100%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/template/SimpleObjectWrapperTest.java (100%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/test/templatesuite/TemplateTestCase.java (100%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/test/templatesuite/TemplateTestSuite.java (99%) rename {freemarker-test => freemarker-jython25}/src/test/java/freemarker/test/templatesuite/package.html (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/arithmetic.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/bean-maps.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/beans.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/boolean-formatting.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/boolean.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/charset-in-header.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/classic-compatible.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/comment.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/comparisons.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/compress.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/dateformat-java.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/default-xmlns.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/default.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/encoding-builtins-ici-2.3.20.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/encoding-builtins.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/escapes.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/exception.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/exception2.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/exception3.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/exthash.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/hashconcat.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/hashliteral.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/helloworld.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/identifier-escaping.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/identifier-non-ascii.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/if.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/import.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/include.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/include2.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/interpret.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/iterators.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/lastcharacter.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/list-bis.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/list.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/list2.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/list3.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/listhash.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/listhashliteral-ici-2.3.20.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/listhashliteral-ici-2.3.21.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/listliteral.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/localization.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/logging.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/loopvariable.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/macros-return.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/macros.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/macros2.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/multimodels.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/nested.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/new-allowsnothing.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/new-defaultresolver.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/new-optin.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/new-safer.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/new-unrestricted.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/newlines1.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/newlines2.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/non-strict-syntax.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/noparse.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/number-format.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/number-literal.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/number-to-date.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/numerical-cast.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/output-encoding1.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/output-encoding2.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/output-encoding3.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/precedence.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/recover.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/root.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/sequence-builtins.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/specialvars.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/strictinheader.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/string-builtins-regexps-matches.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/string-builtins-regexps.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/string-builtins1.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/string-builtins2.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/stringbimethods.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/stringliteral.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/switch.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/transforms.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/type-builtins-ici-2.3.21.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/type-builtins-ici-2.3.24.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/type-builtins.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/var-layers.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/varargs.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/variables.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/whitespace-trim.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/wstrip-in-header.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/wstripping.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/xml-fragment.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/xml-ns_prefix-scope.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/xml.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/xmlns1.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/xmlns3.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/xmlns4.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/expected/xmlns5.txt (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/models/BeansTestResources.properties (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/models/defaultxmlns1.xml (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/models/xml-ns_prefix-scope.xml (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/models/xml.xml (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/models/xmlfragment.xml (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/models/xmlns.xml (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/models/xmlns2.xml (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/models/xmlns3.xml (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/api-builtins.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/arithmetic.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/assignments.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/bean-maps.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/beans.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/boolean-formatting.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/boolean.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header_inc1.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header_inc2.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/classic-compatible-mode2.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/classic-compatible.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/comment.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/comparisons.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/compress.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/date-type-builtins.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi-common.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi-ici-2.3.21.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-like.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/dateformat-java.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/dateparsing.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/default-xmlns.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/default.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/encoding-builtins.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/escapes.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/exception.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/exception2.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/exception3.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/existence-operators.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/hashconcat.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/hashliteral.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/helloworld.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/identifier-escaping.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/identifier-non-ascii.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/if.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/import.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/import_lib.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/include.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/include2-included-encoding.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/include2-included.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/include2.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/included.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/interpret.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/iterators.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/lastcharacter.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/list-bis.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/list.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/list2.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/list3.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/listhash.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/listhashliteral.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/listliteral.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/localization.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/localization_en.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/localization_en_AU.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/logging.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/loopvariable.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/macros-return.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/macros.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/macros2.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/multimodels.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/nested.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/nestedinclude.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/new-allowsnothing.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/new-defaultresolver.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/new-optin.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/new-safer.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/new-unrestricted.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/newlines1.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/newlines2.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/non-strict-syntax.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/noparse.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/number-format.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/number-literal.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/number-math-builtins.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/number-to-date.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/numerical-cast.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/output-encoding1.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/output-encoding2.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/output-encoding3.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-bwici-2.3.20.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-bwici-2.3.21.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-common.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-desc-bwici-2.3.20.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-inc-bwici-2.3.20.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-23bc.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/precedence.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/range-common.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/range-ici-2.3.20.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/range-ici-2.3.21.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/range-lazy.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/recover.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/root.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/sequence-builtins.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/setting.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/simplehash-char-key.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/specialvars.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/strictinheader.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/strictinheader_inc1.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/strictinheader_inc2.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/string-builtin-coercion.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-ici-2.3.19.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-ici-2.3.20.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-regexps-matches.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-regexps.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/string-builtins1.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/string-builtins2.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/string-builtins3.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/stringbimethods.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/stringliteral.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/subdir/include-subdir.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/subdir/include-subdir2.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/subdir/new-optin-2.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/subdir/new-optin.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/subdir/subsub/new-optin.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/switch-builtin.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/switch.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/then-builtin.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/transforms.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/type-builtins.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/undefined.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/url.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/var-layers.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/varargs.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/variables.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/varlayers_lib.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/whitespace-trim.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/wsstripinheader_inc.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/wstrip-in-header.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/xml-fragment.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/xml-ns_prefix-scope-lib.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/xml-ns_prefix-scope-main.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/xml.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/xmlns1.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/xmlns3.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/xmlns4.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/templates/xmlns5.ftl (100%) rename {freemarker-test => freemarker-jython25}/src/test/resources/freemarker/test/templatesuite/testcases.xml (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/core/ASTPrinter.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/AlphabeticalMethodSorter.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/BeansWrapperDesc2003020.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/BeansWrapperDesc2003021.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/BeansWrapperInc2003020.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/BeansWrapperInc2003021.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/BeansWrapperWithShortedMethods.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003020.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003021.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003022.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/DefaultObjectWrapperInc2003020.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/DefaultObjectWrapperInc2003021.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/DefaultObjectWrapperInc2003022.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/DefaultObjectWrapperWithSortedMethods.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/Java7MembersOnlyBeansWrapper.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/ext/beans/RationalNumber.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/CopyrightCommentRemoverTemplateLoader.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/ResourcesExtractor.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/hamcerst/Matchers.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/hamcerst/StringContainsIgnoringCase.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/package.html (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/AllTemplateModels.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/BeanTestClass.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/BeanTestInterface.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/BeanTestSuperclass.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/BooleanAndScalarModel.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/BooleanHash1.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/BooleanHash2.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/BooleanList1.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/BooleanList2.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/BooleanVsStringMethods.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/EnumTestClass.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/ExceptionModel.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/HashAndScalarModel.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/JavaObjectInfo.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/LegacyList.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/Listables.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/MultiModel1.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/MultiModel2.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/MultiModel3.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/MultiModel4.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/MultiModel5.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/NewTestModel.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/NewTestModel2.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/NumberAndStringModel.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/OverloadedConstructor.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/OverloadedMethods.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/OverloadedMethods2.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/SimpleTestMethod.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/TransformHashWrapper.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/TransformMethodWrapper1.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/TransformMethodWrapper2.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/TransformModel1.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/templatesuite/models/VarArgTestModel.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/utility/AssertDirective.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/utility/AssertEqualsDirective.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/utility/AssertFailsDirective.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/utility/AssertationFailedInTemplateException.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/utility/BadParameterTypeException.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/utility/FileTestCase.java (63%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/utility/MissingRequiredParameterException.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/utility/NoOutputDirective.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/utility/ParameterException.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/utility/TestUtil.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/java/freemarker/test/utility/UnsupportedParameterException.java (100%) rename {freemarker-test/src/test => freemarker-test-utils/src/main}/resources/logback-test.xml (100%) diff --git a/.travis.yml b/.travis.yml index c6364276b..cb5dff952 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,4 +34,4 @@ before_install: - java -version script: - - ./gradlew --continue check javadoc + - ./gradlew --continue clean build -Pjava7CompilerOverride=8 -PfreemarkerDefaultJavaVersion=8 -PsignPublication=false diff --git a/build.gradle.kts b/build.gradle.kts index 45dd4c624..805aeadd8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -36,6 +36,18 @@ tasks.withType().configureEach { options.encoding = "UTF-8" } +freemarkerRoot { + configureTestUtils("7") + + configureSourceSet(SourceSet.MAIN_SOURCE_SET_NAME, "7") { enableTests("8") } + configureSourceSet("jsp20", "7") + configureSourceSet("jsp21", "7") { enableTests() } + configureSourceSet("jython20", "7") + configureSourceSet("jython22", "7") + configureSourceSet("jython25", "7") { enableTests() } + configureSourceSet("core8", "8") { enableTests() } +} + val compileJavacc = tasks.register("compileJavacc") { sourceDirectory.set(file("freemarker-core/src/main/javacc")) destinationDirectory.set(buildDir.toPath().resolve("generated").resolve("javacc").toFile()) @@ -76,74 +88,64 @@ val compileJavacc = tasks.register("compileJ "final class SimpleCharStream" ) } +sourceSets.main.get().java.srcDir(compileJavacc) -val allSourceSetNames = ArrayList() - -fun configureSourceSet(sourceSetName: String, defaultCompilerVersionStr: String) { - allSourceSetNames.add(sourceSetName) - - val compilerVersion = fmExt.freemarkerCompilerVersionOverrideRef - .orElse(providers.gradleProperty("java${defaultCompilerVersionStr}CompilerOverride")) - .getOrElse(defaultCompilerVersionStr) - .let { JavaLanguageVersion.of(it) } - - val baseDirName = if (sourceSetName == SourceSet.MAIN_SOURCE_SET_NAME) "core" else sourceSetName +tasks.named(sourceSets.named(SourceSet.MAIN_SOURCE_SET_NAME).get().sourcesJarTaskName) { + from(compileJavacc.flatMap { it.sourceDirectory }) - val sourceSet = sourceSets.maybeCreate(sourceSetName) - sourceSet.java.setSrcDirs(listOf("freemarker-${baseDirName}/src/main/java")) - sourceSet.resources.setSrcDirs(listOf("freemarker-${baseDirName}/src/main/resources")) + from(files("LICENSE", "NOTICE")) { + into("META-INF") + } +} +val rmic = tasks.register("rmic") { val mainSourceSet = sourceSets.named(SourceSet.MAIN_SOURCE_SET_NAME).get() + val compileTaskRef = tasks.named(mainSourceSet.compileJavaTaskName) - if (sourceSetName == SourceSet.MAIN_SOURCE_SET_NAME) { - sourceSet.java.srcDir(compileJavacc) - } else { - tasks.named(mainSourceSet.sourcesJarTaskName) { - from(sourceSet.allSource) - } + classpath.apply { + from(compileTaskRef.map { it.classpath }) + from(compileTaskRef.map { it.outputs }) + } - val compileOnlyConfigName = "${sourceSetName}${JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME.capitalize()}" + rmiPackage.set("freemarker.debug.impl") + rmiClassPattern.set("Rmi*Impl") - configurations.getByName(compileOnlyConfigName) { - extendsFrom(configurations.named(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME).get()) - } + rmiInputClasses.from(mainSourceSet.output.classesDirs) +} - tasks.named(JavaPlugin.JAR_TASK_NAME) { - from(sourceSet.output) - } +configurations { + register("combinedClasspath") { + extendsFrom(named("jython25CompileClasspath").get()) + extendsFrom(named("jsp21CompileClasspath").get()) + } +} - tasks.named(JavaPlugin.JAVADOC_TASK_NAME) { - source(sourceSet.java) - } +// This source set is only needed, because the OSGI plugin supports only a single sourceSet. +// We are deleting it, because otherwise it would fool IDEs that a source root has multiple owners. +val osgiSourceSet = sourceSets + .create("osgi") { + val otherSourceSets = fmExt.allConfiguredSourceSetNames.get().map { name -> sourceSets.named(name).get() } - dependencies { - add(compileOnlyConfigName, mainSourceSet.output) - testImplementation(sourceSet.output) - } + java.setSrcDirs(otherSourceSets.flatMap { s -> s.java.srcDirs }) + resources.setSrcDirs(otherSourceSets.flatMap { s -> s.resources.srcDirs }) } - - if (compilerVersion != java.toolchain.languageVersion.get()) { - tasks.named(sourceSet.compileJavaTaskName) { - javaCompiler.set(javaToolchains.compilerFor { - languageVersion.set(compilerVersion) - }) - } + .apply { + val osgiClasspath = configurations.named("combinedClasspath").get() + compileClasspath = osgiClasspath + runtimeClasspath = osgiClasspath } -} + .also { sourceSets.remove(it) } + +tasks.named(JavaPlugin.JAR_TASK_NAME) { + from(rmic.flatMap{ it.destinationDirectory }) + + configure { + bndfile.set(file("osgi.bnd")) -configureSourceSet(SourceSet.MAIN_SOURCE_SET_NAME, "7") -configureSourceSet("jsp20", "7") -configureSourceSet("jsp21", "7") -configureSourceSet("jython20", "7") -configureSourceSet("jython22", "7") -configureSourceSet("jython25", "7") -configureSourceSet("core8", "8") - -sourceSets { - test { - val baseDir = "freemarker-test/src/test" - java.setSrcDirs(listOf("${baseDir}/java")) - resources.setSrcDirs(listOf("${baseDir}/resources")) + setSourceSet(osgiSourceSet) + properties.putAll(fmExt.versionDef.versionProperties) + properties.put("moduleOrg", project.group.toString()) + properties.put("moduleName", project.name) } } @@ -182,109 +184,29 @@ tasks.named(JavaPlugin.JAVADOC_TASK_NAME) { parentDirName == "log" && logExcludes.contains(fileName) ) }) -} - -tasks.named(JavaPlugin.TEST_TASK_NAME) { - val processResourcesName = sourceSets[SourceSet.TEST_SOURCE_SET_NAME].processResourcesTaskName - val resourcesDestDir = tasks.named(processResourcesName).get().destinationDir.toString() - systemProperty("freemarker.test.resourcesDir", resourcesDestDir) - - javaLauncher.set(javaToolchains.launcherFor { - languageVersion.set(JavaLanguageVersion.of(fmExt.testRunnerJavaVersion)) - }) -} - -configurations { - compileOnly { - exclude(group = "xml-apis", module = "xml-apis") - } - register("combinedClasspath") { - extendsFrom(named("jython25CompileOnly").get()) - extendsFrom(named("jsp21CompileOnly").get()) - } - - testImplementation { - extendsFrom(named("jython25CompileOnly").get()) - } -} - -tasks.named(sourceSets.named(SourceSet.MAIN_SOURCE_SET_NAME).get().sourcesJarTaskName) { - from(compileJavacc.flatMap { it.sourceDirectory }) - - from(files("LICENSE", "NOTICE")) { - into("META-INF") - } -} - -val rmic = tasks.register("rmic") { - val mainSourceSet = sourceSets.named(SourceSet.MAIN_SOURCE_SET_NAME).get() - val compileTaskRef = tasks.named(mainSourceSet.compileJavaTaskName) - - classpath.from(compileTaskRef.map { it.classpath }) - classpath.from(compileTaskRef.map { it.outputs }) - - rmiPackage.set("freemarker.debug.impl") - rmiClassPattern.set("Rmi*Impl") - - rmiInputClasses.from(mainSourceSet.output.classesDirs) -} - -// This source set is only needed, because the OSGI plugin supports only a single sourceSet. -// We are deleting it, because otherwise it would fool IDEs that a source root has multiple owners. -val osgiSourceSet = sourceSets.create("osgi") { - val otherSourceSets = allSourceSetNames.map { name -> sourceSets.named(name).get() } - - java { - setSrcDirs(otherSourceSets.flatMap { s -> s.java.srcDirs }) - } - resources { - setSrcDirs(otherSourceSets.flatMap { s -> s.resources.srcDirs }) - } -} -val osgiClasspath = configurations.named("combinedClasspath").get() -osgiSourceSet.compileClasspath = osgiClasspath -osgiSourceSet.runtimeClasspath = osgiClasspath -sourceSets.remove(osgiSourceSet) - -tasks.named(JavaPlugin.JAR_TASK_NAME) { - from(rmic.flatMap{ it.destinationDirectory }) - - configure { - bndfile.set(file("osgi.bnd")) - - setSourceSet(osgiSourceSet) - properties.putAll(fmExt.versionDef.versionProperties) - properties.put("moduleOrg", project.group.toString()) - properties.put("moduleName", project.name) - } -} - -tasks.named(JavaPlugin.JAVADOC_TASK_NAME) { javadocTool.set(javaToolchains.javadocToolFor { languageVersion.set(JavaLanguageVersion.of(fmExt.javadocJavaVersion)) }) - val javadocEncoding = StandardCharsets.UTF_8 - - options { + (options as StandardJavadocDocletOptions).apply { val displayVersion = fmExt.versionDef.displayVersion + val javadocEncoding = StandardCharsets.UTF_8 locale = "en_US" encoding = javadocEncoding.name() windowTitle = "FreeMarker ${displayVersion} API" - val extraOptions = this as StandardJavadocDocletOptions - extraOptions.links("http://docs.oracle.com/javase/8/docs/api/") + links("http://docs.oracle.com/javase/8/docs/api/") - extraOptions.author(true) - extraOptions.version(true) - extraOptions.docEncoding = javadocEncoding.name() - extraOptions.charSet = javadocEncoding.name() - extraOptions.docTitle = "FreeMarker ${displayVersion}" + author(true) + version(true) + docEncoding = javadocEncoding.name() + charSet = javadocEncoding.name() + docTitle = "FreeMarker ${displayVersion}" // There are too many to check - extraOptions.addStringOption("Xdoclint:-missing", "-quiet") + addStringOption("Xdoclint:-missing", "-quiet") } classpath = files(configurations.named("combinedClasspath")) @@ -333,9 +255,9 @@ publishing { 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 @@ -544,6 +466,17 @@ val slf4jVersion = "1.6.1" val jettyVersion = "7.6.21.v20160908" val springVersion = "2.5.6.SEC03" +configurations { + compileOnly { + exclude(group = "xml-apis", module = "xml-apis") + } + + "jsp21TestImplementation" { + extendsFrom(compileClasspath.get()) + exclude(group = "javax.servlet.jsp") + } +} + dependencies { compileOnly("jaxen:jaxen:1.0-FCS") compileOnly("saxpath:saxpath:1.0-FCS") @@ -558,7 +491,9 @@ dependencies { compileOnly("commons-logging:commons-logging:1.1.1") // FIXME: This seems to be unused compileOnly("org.zeroturnaround:javarebel-sdk:1.2.2") - "core8CompileOnly"("org.dom4j:dom4j:2.1.3") + val dom4j = "org.dom4j:dom4j:2.1.3" + + "core8CompileOnly"(dom4j) "jsp20CompileOnly"("javax.servlet.jsp:jsp-api:2.0") "jsp20CompileOnly"("javax.servlet:servlet-api:2.4") @@ -567,6 +502,17 @@ dependencies { "jsp21CompileOnly"("javax.servlet.jsp:jsp-api:2.1") "jsp21CompileOnly"("javax.servlet:servlet-api:2.5") + "jsp21TestImplementation"("org.eclipse.jetty:jetty-server:${jettyVersion}") + "jsp21TestImplementation"("org.eclipse.jetty:jetty-webapp:${jettyVersion}") + "jsp21TestImplementation"("org.eclipse.jetty:jetty-jsp:${jettyVersion}") + "jsp21TestImplementation"("org.eclipse.jetty:jetty-util:${jettyVersion}") + "jsp21TestImplementation"("org.springframework:spring-core:${springVersion}") { + exclude(group = "commons-logging", module = "commons-logging") + } + "jsp21TestImplementation"("org.springframework:spring-test:${springVersion}") { + exclude(group = "commons-logging", module = "commons-logging") + } + "jython20CompileOnly"("jython:jython:2.1") "jython22CompileOnly"(sourceSets["jython20"].output) @@ -575,27 +521,19 @@ dependencies { "jython25CompileOnly"(sourceSets["jython20"].output) "jython25CompileOnly"("org.python:jython:2.5.0") - testImplementation("com.google.code.findbugs:annotations:3.0.0") - testImplementation("junit:junit:4.12") - testImplementation("org.hamcrest:hamcrest-library:1.3") - testImplementation("ch.qos.logback:logback-classic:1.1.2") - testImplementation("commons-io:commons-io:2.7") - testImplementation("com.google.guava:guava:29.0-jre") - testImplementation("org.eclipse.jetty:jetty-server:${jettyVersion}") - testImplementation("org.eclipse.jetty:jetty-webapp:${jettyVersion}") - testImplementation("org.eclipse.jetty:jetty-jsp:${jettyVersion}") - testImplementation("org.eclipse.jetty:jetty-util:${jettyVersion}") - testImplementation("displaytag:displaytag:1.2") { + "testUtilsImplementation"("displaytag:displaytag:1.2") { exclude(group = "com.lowagie", module = "itext") exclude(group = "org.slf4j", module = "slf4j-log4j12") exclude(group = "rg.slf4j", module = "jcl104-over-slf4j") exclude(group = "log4j", module = "log4j") } - testImplementation("commons-lang:commons-lang:2.6") - testImplementation("org.springframework:spring-core:${springVersion}") { - exclude(group = "commons-logging", module = "commons-logging") - } - testImplementation("org.springframework:spring-test:${springVersion}") { - exclude(group = "commons-logging", module = "commons-logging") - } + "testUtilsImplementation"(sourceSets.main.get().output) + "testUtilsImplementation"("com.google.code.findbugs:annotations:3.0.0") + "testUtilsImplementation"(libs.junit) + "testUtilsImplementation"("org.hamcrest:hamcrest-library:1.3") + "testUtilsImplementation"("ch.qos.logback:logback-classic:1.1.2") + "testUtilsImplementation"("commons-io:commons-io:2.7") + "testUtilsImplementation"("com.google.guava:guava:29.0-jre") + "testUtilsImplementation"("commons-collections:commons-collections:3.1") + "testUtilsImplementation"("commons-lang:commons-lang:2.6") } diff --git a/buildSrc/src/main/kotlin/freemarker/build/CompileJavaccTask.kt b/buildSrc/src/main/kotlin/freemarker/build/CompileJavaccTask.kt index 6e37760ea..7c02c3dee 100644 --- a/buildSrc/src/main/kotlin/freemarker/build/CompileJavaccTask.kt +++ b/buildSrc/src/main/kotlin/freemarker/build/CompileJavaccTask.kt @@ -189,7 +189,7 @@ open class CompileJavaccTask @Inject constructor( } private fun withProcessJavaccRunner(action: JavaccRunner.() -> Unit) { - action.invoke { actionArgs -> + action { actionArgs -> val execResult = execOps.javaexec { classpath = javaccClasspath mainClass.set(JAVACC_MAIN_CLASS) @@ -203,7 +203,7 @@ open class CompileJavaccTask @Inject constructor( private fun withClasspathJavaccRunner(action: JavaccRunner.() -> Unit) { val workQueue = exec.classLoaderIsolation { classpath.from(javaccClasspath) } - action.invoke { actionArgs -> + action { actionArgs -> workQueue.submit(JavaccRunnerWorkAction::class) { arguments.set(actionArgs) } } workQueue.await() diff --git a/buildSrc/src/main/kotlin/freemarker/build/FreemarkerPathExtensions.kt b/buildSrc/src/main/kotlin/freemarker/build/FreemarkerPathExtensions.kt new file mode 100644 index 000000000..5c6082428 --- /dev/null +++ b/buildSrc/src/main/kotlin/freemarker/build/FreemarkerPathExtensions.kt @@ -0,0 +1,26 @@ +/* + * 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 freemarker.build + +import java.nio.file.Path + +fun Path.withChildren(children: List): Path { + return children.fold(this) { parent, child -> parent.resolve(child) } +} diff --git a/buildSrc/src/main/kotlin/freemarker/build/FreemarkerRootExtension.kt b/buildSrc/src/main/kotlin/freemarker/build/FreemarkerRootExtension.kt index 332b15fac..00ab9035f 100644 --- a/buildSrc/src/main/kotlin/freemarker/build/FreemarkerRootExtension.kt +++ b/buildSrc/src/main/kotlin/freemarker/build/FreemarkerRootExtension.kt @@ -19,20 +19,270 @@ package freemarker.build -import org.gradle.api.provider.ProviderFactory +import org.gradle.api.NamedDomainObjectProvider +import org.gradle.api.Project +import org.gradle.api.artifacts.VersionCatalogsExtension +import org.gradle.api.plugins.JavaPlugin +import org.gradle.api.plugins.JavaPluginExtension +import org.gradle.api.plugins.JvmTestSuitePlugin +import org.gradle.api.plugins.jvm.JvmTestSuite +import org.gradle.api.plugins.jvm.JvmTestSuiteTarget +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.SourceSet +import org.gradle.api.tasks.bundling.Jar +import org.gradle.api.tasks.compile.JavaCompile +import org.gradle.api.tasks.javadoc.Javadoc +import org.gradle.jvm.toolchain.JavaLanguageVersion +import org.gradle.jvm.toolchain.JavaToolchainService +import org.gradle.kotlin.dsl.dependencies +import org.gradle.kotlin.dsl.named +import org.gradle.kotlin.dsl.setProperty +import org.gradle.kotlin.dsl.the +import org.gradle.language.base.plugins.LifecycleBasePlugin +import org.gradle.language.jvm.tasks.ProcessResources +import org.gradle.testing.base.TestingExtension -class FreemarkerRootExtension constructor(val versionDef: FreemarkerVersionDef, providers: ProviderFactory) { - val freemarkerCompilerVersionOverrideRef = providers.gradleProperty("freemarkerCompilerVersionOverride") +private const val TEST_UTILS_SOURCE_SET_NAME = "test-utils" +// The Gradle test runner requires Java 8+ +private const val MINIMUM_TEST_JAVA_VERSION = "8" + +internal class JavaProjectContext constructor( + val project: Project +) { + val providers = project.providers + val tasks = project.tasks + val libs = project.the().named("libs") + val testing = project.the() + val javaToolchains = project.the() + val java = project.the() + val sourceSets = java.sourceSets + + val mainSourceSet = sourceSets.named(SourceSet.MAIN_SOURCE_SET_NAME).get() + + fun version(versionStr: String): String { + return libs + .findVersion(versionStr) + .orElseThrow { NoSuchElementException("Missing version for $versionStr") } + .requiredVersion + } + + fun javaVersion(preferredJavaVersion: String, javaVersionOverride: Provider): JavaLanguageVersion { + return javaVersionOverride + .orElse(providers.gradleProperty("java${preferredJavaVersion}CompilerOverride")) + .getOrElse(preferredJavaVersion) + .let { JavaLanguageVersion.of(it) } + } + + fun inheritConfig(child: SourceSet, parent: SourceSet, nameProvider: ((SourceSet) -> String)) { + val configurations = project.configurations + val childConfigRef = configurations.named(nameProvider.invoke(child)) + childConfigRef.configure { + extendsFrom(configurations.named(nameProvider.invoke(parent)).get()) + } + } + + fun inheritCompileRuntime(child: SourceSet, parent: SourceSet) { + inheritConfig(child, parent, SourceSet::getCompileClasspathConfigurationName) + inheritConfig(child, parent, SourceSet::getRuntimeClasspathConfigurationName) + } + + fun inheritCompileRuntimeAndOutput(child: SourceSet, parent: SourceSet) { + project.dependencies { + add(child.implementationConfigurationName, parent.output) + } + + inheritCompileRuntime(child, parent) + } +} + +class FreemarkerModuleDef internal constructor( + private val context: JavaProjectContext, + private val ext: FreemarkerRootExtension, + val sourceSetName: String, + defaultCompilerVersion: String +) { + val compilerVersion = context.javaVersion( + defaultCompilerVersion, + ext.freemarkerCompilerVersionOverrideRef + ) + + val main = sourceSetName == SourceSet.MAIN_SOURCE_SET_NAME + val baseDirName = if (main) "core" else sourceSetName + + val sourceSet = context.sourceSets.maybeCreate(sourceSetName) + + val sourceSetRootDirName = "freemarker-${baseDirName}" + val sourceSetSrcPath = "${sourceSetRootDirName}/src" + + fun enableTests(preferredTestJavaVersion: String = compilerVersion.toString()) { + configureTests(context.javaVersion(preferredTestJavaVersion, ext.testRunnerJavaVersionOverrideRef)) + } + + private fun configureTests(testJavaVersion: JavaLanguageVersion) { + getOrCreateTestSuiteRef().configure { + useJUnit(context.version("junit")) + + configureSources(sources, testJavaVersion) + targets.all { configureTarget(this, sources, testJavaVersion) } + } + } + + private fun getOrCreateTestSuiteRef(): NamedDomainObjectProvider { + val suites = context.testing.suites + if (main) { + return suites.named(JvmTestSuitePlugin.DEFAULT_TEST_SUITE_NAME) + } else { + return suites.register("${sourceSetName}Test", JvmTestSuite::class.java) + } + } + + private fun testUtils(): SourceSet { + val testUtilsRef = context.sourceSets.named(TEST_UTILS_SOURCE_SET_NAME) + if (!testUtilsRef.isPresent) { + throw IllegalStateException("Forgot to configure the ${TEST_UTILS_SOURCE_SET_NAME} source set." + + " Call the configureTestUtils method.") + } + return testUtilsRef.get() + } + + private fun configureSources(sources: SourceSet, testJavaVersion: JavaLanguageVersion) { + sources.apply { + val testSrcPath = "${sourceSetSrcPath}/test" + java.setSrcDirs(listOf("${testSrcPath}/java")) + resources.setSrcDirs(listOf("${testSrcPath}/resources")) + + if (!main) { + context.inheritCompileRuntimeAndOutput(this, sourceSet) + } + + context.inheritCompileRuntimeAndOutput(this, testUtils()) + + // Because of the compileOnly hacks on the source sets, we have to add the compilation classpath to runtime. + val configurations = context.project.configurations + configurations.named(runtimeClasspathConfigurationName) { + extendsFrom(configurations.named(compileClasspathConfigurationName).get()) + } + + context.tasks.named(compileJavaTaskName) { + javaCompiler.set(context.javaToolchains.compilerFor { + languageVersion.set(testJavaVersion) + }) + } + } + } + + private fun configureTarget(target: JvmTestSuiteTarget, sources: SourceSet, testRunnerJavaVersion: JavaLanguageVersion) { + target.apply { + testTask.configure { + description = "Runs the tests in ${sourceSetRootDirName}." + val processResourcesName = sources.processResourcesTaskName + val resourcesDestDir = context.tasks + .named(processResourcesName) + .get() + .destinationDir + .toString() + systemProperty("freemarker.test.resourcesDir", resourcesDestDir) + + javaLauncher.set(context.javaToolchains.launcherFor { + languageVersion.set(maxOf(testRunnerJavaVersion, JavaLanguageVersion.of(MINIMUM_TEST_JAVA_VERSION))) + }) + } + + context.tasks.named(LifecycleBasePlugin.CHECK_TASK_NAME) { dependsOn(testTask) } + } + } +} + +class FreemarkerRootExtension constructor( + project: Project, + val versionService: FreemarkerVersionService +) { + + private val context = JavaProjectContext(project) + + val versionDef = versionService.versionDef + + val freemarkerCompilerVersionOverrideRef = context.providers + .gradleProperty("freemarkerCompilerVersionOverride") val defaultJavaVersion = freemarkerCompilerVersionOverrideRef - .orElse(providers.gradleProperty("freemarkerDefaultJavaVersion")) - .getOrElse("8") + .orElse(context.providers.gradleProperty("freemarkerDefaultJavaVersion")) + .getOrElse(context.version("defaultJava")) - val testRunnerJavaVersion = providers.gradleProperty("freeMarkerTestRunnerJavaVersion") - .getOrElse(defaultJavaVersion) + val testRunnerJavaVersionOverrideRef = context.providers + .gradleProperty("freeMarkerTestRunnerJavaVersionOverride") - val javadocJavaVersion = providers.gradleProperty("freeMarkerJavadocJavaVersion") + val javadocJavaVersion = context.providers + .gradleProperty("freeMarkerJavadocJavaVersion") .getOrElse(defaultJavaVersion) - val doSignPackages = providers.gradleProperty("signPublication").map { it.toBoolean() }.orElse(true) + val doSignPackages = context.providers + .gradleProperty("signPublication") + .map { it.toBoolean() } + .orElse(true) + + private val allConfiguredSourceSetNamesRef = project.objects.setProperty() + val allConfiguredSourceSetNames: Provider> = allConfiguredSourceSetNamesRef + + private val tasks = project.tasks + private val java = project.the() + private val sourceSets = java.sourceSets + + fun isPublishedVersion(): Boolean { + return !versionDef.version.endsWith("-SNAPSHOT") || + !versionDef.displayVersion.contains("-nightly") + } + + fun configureTestUtils(preferredJavaVersion: String) { + sourceSets.register(TEST_UTILS_SOURCE_SET_NAME) { + val baseDir = "freemarker-${TEST_UTILS_SOURCE_SET_NAME}/src/main" + java.setSrcDirs(listOf("${baseDir}/java")) + resources.setSrcDirs(listOf("${baseDir}/resources")) + + tasks.named(compileJavaTaskName) { + javaCompiler.set(context.javaToolchains.compilerFor { + languageVersion.set(context.javaVersion(preferredJavaVersion, freemarkerCompilerVersionOverrideRef)) + }) + } + } + } + + fun configureSourceSet( + sourceSetName: String, + sourceSetVersion: String, + configuration: FreemarkerModuleDef.() -> Unit = { }) { + + allConfiguredSourceSetNamesRef.add(sourceSetName) + + FreemarkerModuleDef(context, this, sourceSetName, sourceSetVersion).apply { + val sourceSetSrcMainPath = "${sourceSetSrcPath}/main" + + sourceSet.apply { + java.setSrcDirs(listOf("${sourceSetSrcMainPath}/java")) + resources.setSrcDirs(listOf("${sourceSetSrcMainPath}/resources")) + } + + if (!main) { + context.apply { + inheritCompileRuntimeAndOutput(sourceSet, mainSourceSet) + + tasks.apply { + named(mainSourceSet.sourcesJarTaskName) { from(sourceSet.allSource) } + named(JavaPlugin.JAR_TASK_NAME) { from(sourceSet.output) } + named(JavaPlugin.JAVADOC_TASK_NAME) { source(sourceSet.java) } + } + + project.dependencies { add(sourceSet.compileOnlyConfigurationName, mainSourceSet.output) } + } + } + + tasks.named(sourceSet.compileJavaTaskName) { + javaCompiler.set(context.javaToolchains.compilerFor { + languageVersion.set(compilerVersion) + }) + } + + configuration.invoke(this) + } + } } diff --git a/buildSrc/src/main/kotlin/freemarker/build/FreemarkerRootPlugin.kt b/buildSrc/src/main/kotlin/freemarker/build/FreemarkerRootPlugin.kt index 4b51ec81f..7db8c1944 100644 --- a/buildSrc/src/main/kotlin/freemarker/build/FreemarkerRootPlugin.kt +++ b/buildSrc/src/main/kotlin/freemarker/build/FreemarkerRootPlugin.kt @@ -19,53 +19,23 @@ package freemarker.build -import java.nio.charset.StandardCharsets -import java.nio.file.Files -import java.nio.file.Path -import java.time.Instant -import java.time.ZoneOffset -import java.time.format.DateTimeFormatter -import java.util.Properties -import kotlin.collections.component1 -import kotlin.collections.component2 -import kotlin.collections.set import org.apache.tools.ant.filters.ReplaceTokens import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.plugins.JavaPlugin import org.gradle.api.plugins.JavaPluginExtension +import org.gradle.api.publish.maven.tasks.AbstractPublishToMaven import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.bundling.Jar import org.gradle.jvm.toolchain.JavaLanguageVersion import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.filter -import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.named +import org.gradle.kotlin.dsl.the import org.gradle.kotlin.dsl.withType +import org.gradle.language.base.plugins.LifecycleBasePlugin import org.gradle.language.jvm.tasks.ProcessResources -private val RESOURCE_TEMPLATES_PATH = listOf("freemarker-core", "src", "main", "resource-templates") -private val VERSION_PROPERTIES_PATH = listOf("freemarker", "version.properties") - -class FreemarkerVersionDef(versionFileTokens: Map, versionProperties: Map) { - val versionFileTokens: Map - val versionProperties: Map - val version: String - val displayVersion: String - - init { - this.versionFileTokens = versionFileTokens.toMap() - this.versionProperties = versionProperties.toMap() - this.version = this.versionProperties["mavenVersion"]!! - this.displayVersion = this.versionProperties["version"]!! - } -} - -private fun withChildPaths(root: Path, children: List): Path { - return children - .fold(root) { parent, child -> parent.resolve(child) } -} - open class FreemarkerRootPlugin : Plugin { private class Configurer( private val project: Project, @@ -73,7 +43,7 @@ open class FreemarkerRootPlugin : Plugin { ) { private val tasks = project.tasks - private val java = project.extensions.getByType() + private val java = project.the() private val mainSourceSet = java.sourceSets.named(SourceSet.MAIN_SOURCE_SET_NAME).get() fun configure() { @@ -89,24 +59,54 @@ open class FreemarkerRootPlugin : Plugin { } } - val resourceTemplatesDir = withChildPaths(project.projectDir.toPath(), RESOURCE_TEMPLATES_PATH) + tasks.apply { + val resourceTemplatesDir = ext.versionService.resourceTemplatesDir + + named(JavaPlugin.PROCESS_RESOURCES_TASK_NAME) { + with(project.copySpec { + from(resourceTemplatesDir) + filter(mapOf("tokens" to ext.versionDef.versionFileTokens)) + }) + } - tasks.named(JavaPlugin.PROCESS_RESOURCES_TASK_NAME) { - with(project.copySpec { + named(mainSourceSet.sourcesJarTaskName) { from(resourceTemplatesDir) - filter(mapOf("tokens" to ext.versionDef.versionFileTokens)) - }) - } + } - tasks.named(mainSourceSet.sourcesJarTaskName) { - from(resourceTemplatesDir) + withType() { + doLast { + println("RAT (${name} task) report was successful: ${reportDir.get().asFile.toPath().resolve("index.html").toUri()}") + } + } } - tasks.withType() { + configureReleaseVerification() + } + + private fun configureReleaseVerification() { + val verifyReleaseSetup = project.tasks.register("verifyReleaseSetup") { + group = LifecycleBasePlugin.VERIFICATION_GROUP + description = "Basic checks to check to avoid accidental development configuration" + doLast { - println("RAT (${name} task) report was successful: ${reportDir.get().asFile.toPath().resolve("index.html").toUri()}") + if (ext.versionService.developmentBuild) { + throw IllegalStateException("The development build configuration is active!") + } + if (!ext.doSignPackages.get()) { + throw IllegalStateException("Package signing is disabled!") + } + } + } + + if (ext.isPublishedVersion()) { + project.tasks.named(LifecycleBasePlugin.CHECK_TASK_NAME) { + dependsOn(verifyReleaseSetup) } } + + project.tasks.withType() { + shouldRunAfter(verifyReleaseSetup) + } } } @@ -114,7 +114,8 @@ open class FreemarkerRootPlugin : Plugin { project.pluginManager.apply("java-library") project.pluginManager.apply("org.nosphere.apache.rat") - val ext = FreemarkerRootExtension(readVersions(project), project.providers) + val versionService = FreemarkerVersionService(project.layout, project.providers) + val ext = FreemarkerRootExtension(project, versionService) Configurer(project, ext).configure() @@ -123,40 +124,4 @@ open class FreemarkerRootPlugin : Plugin { System.setProperty("line.separator", "\n") } } - - private fun readVersions(project: Project): FreemarkerVersionDef { - val developmentBuild = project.providers - .gradleProperty("developmentBuild") - .map { it.toBoolean() } - .getOrElse(false) - - if (developmentBuild) { - println("DEVELOPMENT BUILD: Using EPOCH as timestamp.") - } - - val buildTimeStamp = if (developmentBuild) Instant.EPOCH else Instant.now() - - val buildTimeStampUtc = buildTimeStamp.atOffset(ZoneOffset.UTC) - val versionFileTokens = mapOf( - "timestampNice" to buildTimeStampUtc.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'")), - "timestampInVersion" to buildTimeStampUtc.format(DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss'Z'")) - ) - - val versionPropertiesPath = withChildPaths(project.projectDir.toPath(), RESOURCE_TEMPLATES_PATH + VERSION_PROPERTIES_PATH) - - val versionPropertiesTemplate = Properties() - Files.newBufferedReader(versionPropertiesPath, StandardCharsets.ISO_8859_1).use { - versionPropertiesTemplate.load(it) - } - - val versionProperties = HashMap() - versionPropertiesTemplate.forEach { (key, value) -> - var updatedValue = value.toString() - for (token in versionFileTokens) { - updatedValue = updatedValue.replace("@${token.key}@", token.value) - } - versionProperties[key.toString()] = updatedValue.trim() - } - return FreemarkerVersionDef(versionFileTokens, versionProperties) - } } diff --git a/buildSrc/src/main/kotlin/freemarker/build/FreemarkerVersionService.kt b/buildSrc/src/main/kotlin/freemarker/build/FreemarkerVersionService.kt new file mode 100644 index 000000000..7a3690ffb --- /dev/null +++ b/buildSrc/src/main/kotlin/freemarker/build/FreemarkerVersionService.kt @@ -0,0 +1,81 @@ +/* + * 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 freemarker.build + +import java.nio.charset.StandardCharsets +import java.nio.file.Files +import java.time.Instant +import java.time.ZoneOffset +import java.time.format.DateTimeFormatter +import java.util.Properties +import org.gradle.api.file.ProjectLayout +import org.gradle.api.provider.ProviderFactory + +private val RESOURCE_TEMPLATES_PATH = listOf("freemarker-core", "src", "main", "resource-templates") +private val VERSION_PROPERTIES_PATH = listOf("freemarker", "version.properties") + +class FreemarkerVersionDef(versionFileTokens: Map, versionProperties: Map) { + val versionFileTokens = versionFileTokens.toMap() + val versionProperties = versionProperties.toMap() + val version = this.versionProperties["mavenVersion"]!! + val displayVersion = this.versionProperties["version"]!! +} + +class FreemarkerVersionService constructor( + layout: ProjectLayout, + providers: ProviderFactory +) { + + val developmentBuild = providers + .gradleProperty("developmentBuild") + .map { it.toBoolean() } + .getOrElse(false) + + val buildTimeStamp = if (developmentBuild) Instant.EPOCH else Instant.now() + + val resourceTemplatesDir = layout.projectDirectory.asFile.toPath().withChildren(RESOURCE_TEMPLATES_PATH) + + val versionFileTokens = buildTimeStamp.atOffset(ZoneOffset.UTC).let { buildTimeStampUtc -> + mapOf( + "timestampNice" to buildTimeStampUtc.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'")), + "timestampInVersion" to buildTimeStampUtc.format(DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss'Z'")) + ) + } + + val versionDef = run { + val versionPropertiesPath = resourceTemplatesDir.withChildren(VERSION_PROPERTIES_PATH) + + val versionPropertiesTemplate = Properties() + Files.newBufferedReader(versionPropertiesPath, StandardCharsets.ISO_8859_1).use { + versionPropertiesTemplate.load(it) + } + + val versionProperties = HashMap() + versionPropertiesTemplate.forEach { (key, value) -> + var updatedValue = value.toString() + for (token in versionFileTokens) { + updatedValue = updatedValue.replace("@${token.key}@", token.value) + } + versionProperties[key.toString()] = updatedValue.trim() + } + + FreemarkerVersionDef(versionFileTokens, versionProperties) + } +} diff --git a/buildSrc/src/main/kotlin/freemarker/build/ManualBuildTask.kt b/buildSrc/src/main/kotlin/freemarker/build/ManualBuildTask.kt index db084b1c5..794762d3e 100644 --- a/buildSrc/src/main/kotlin/freemarker/build/ManualBuildTask.kt +++ b/buildSrc/src/main/kotlin/freemarker/build/ManualBuildTask.kt @@ -22,10 +22,8 @@ package freemarker.build import javax.inject.Inject import org.freemarker.docgen.core.Transform import org.gradle.api.DefaultTask -import org.gradle.api.file.DirectoryProperty import org.gradle.api.file.ProjectLayout import org.gradle.api.model.ObjectFactory -import org.gradle.api.provider.Property import org.gradle.api.tasks.Input import org.gradle.api.tasks.InputDirectory import org.gradle.api.tasks.OutputDirectory @@ -43,29 +41,21 @@ open class ManualBuildTask @Inject constructor( @InputDirectory @SkipWhenEmpty @PathSensitive(PathSensitivity.NONE) - val inputDirectory: DirectoryProperty + val inputDirectory = objects.directoryProperty() @Input - val offline: Property + val offline = objects.property().value(true) @Input - val locale: Property + val locale = objects.property().value("unknown") @OutputDirectory - val destinationDirectory: DirectoryProperty - - init { - this.offline = objects.property().value(true) - this.locale = objects.property().value("unknown") - - this.inputDirectory = objects.directoryProperty() - this.destinationDirectory = this.offline - .zip(layout.buildDirectory) { - offlineValue, buildDirValue -> buildDirValue.asFile.toPath().resolve("manual-${if (offlineValue) "offline" else "online"}") - } - .zip(this.locale) { localelessDirValue, localeValue -> localelessDirValue.resolve(localeValue).toFile() } - .let { objects.directoryProperty().value(layout.dir(it)) } - } + val destinationDirectory = this.offline + .zip(layout.buildDirectory) { offlineValue, buildDirValue -> + buildDirValue.asFile.toPath().resolve("manual-${if (offlineValue) "offline" else "online"}") + } + .zip(this.locale) { localelessDirValue, localeValue -> localelessDirValue.resolve(localeValue).toFile() } + .let { objects.directoryProperty().value(layout.dir(it)) } @TaskAction fun buildManual() { diff --git a/buildSrc/src/main/kotlin/freemarker/build/RmicTask.kt b/buildSrc/src/main/kotlin/freemarker/build/RmicTask.kt index d1918ac93..087741af2 100644 --- a/buildSrc/src/main/kotlin/freemarker/build/RmicTask.kt +++ b/buildSrc/src/main/kotlin/freemarker/build/RmicTask.kt @@ -20,7 +20,6 @@ package freemarker.build import java.nio.file.Files -import java.nio.file.Path import javax.inject.Inject import org.gradle.api.DefaultTask import org.gradle.api.file.ConfigurableFileCollection @@ -79,8 +78,7 @@ open class RmicTask @Inject constructor( val classesDir = rmiInputClasses .find { candidateDir -> - val candidatePackageDir = - rmicRelSrcPath.fold(candidateDir.toPath()) { parent, child -> parent.resolve(child) } + val candidatePackageDir = candidateDir.toPath().withChildren(rmicRelSrcPath) if (Files.isDirectory(candidatePackageDir)) { Files.newDirectoryStream(candidatePackageDir, rmicSrcPattern).use { files -> val firstFile = files.first { Files.isRegularFile(it) } diff --git a/buildSrc/src/main/kotlin/freemarker/build/SignatureTask.kt b/buildSrc/src/main/kotlin/freemarker/build/SignatureTask.kt index ec66de0a6..b11d48540 100644 --- a/buildSrc/src/main/kotlin/freemarker/build/SignatureTask.kt +++ b/buildSrc/src/main/kotlin/freemarker/build/SignatureTask.kt @@ -30,7 +30,7 @@ import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.PathSensitive import org.gradle.api.tasks.PathSensitivity import org.gradle.api.tasks.TaskAction -import org.gradle.kotlin.dsl.getByType +import org.gradle.kotlin.dsl.the import org.gradle.plugins.signing.SigningExtension open class SignatureTask @Inject constructor( @@ -49,7 +49,7 @@ open class SignatureTask @Inject constructor( init { this.inputFile = objects.fileProperty() this.outputFile = this.inputFile.map { f -> File("${f.asFile}.asc") } - this.signing = project.extensions.getByType() + this.signing = project.the() } @TaskAction diff --git a/freemarker-test/src/test/java/freemarker/cache/FileTemplateLoaderTest.java b/freemarker-core/src/test/java/freemarker/cache/FileTemplateLoaderTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/cache/FileTemplateLoaderTest.java rename to freemarker-core/src/test/java/freemarker/cache/FileTemplateLoaderTest.java diff --git a/freemarker-test/src/test/java/freemarker/cache/MultiTemplateLoaderTest.java b/freemarker-core/src/test/java/freemarker/cache/MultiTemplateLoaderTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/cache/MultiTemplateLoaderTest.java rename to freemarker-core/src/test/java/freemarker/cache/MultiTemplateLoaderTest.java diff --git a/freemarker-test/src/test/java/freemarker/cache/TemplateCacheTest.java b/freemarker-core/src/test/java/freemarker/cache/TemplateCacheTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/cache/TemplateCacheTest.java rename to freemarker-core/src/test/java/freemarker/cache/TemplateCacheTest.java diff --git a/freemarker-test/src/test/java/freemarker/cache/TemplateConfigurationFactoryTest.java b/freemarker-core/src/test/java/freemarker/cache/TemplateConfigurationFactoryTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/cache/TemplateConfigurationFactoryTest.java rename to freemarker-core/src/test/java/freemarker/cache/TemplateConfigurationFactoryTest.java diff --git a/freemarker-test/src/test/java/freemarker/cache/TemplateNameFormatTest.java b/freemarker-core/src/test/java/freemarker/cache/TemplateNameFormatTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/cache/TemplateNameFormatTest.java rename to freemarker-core/src/test/java/freemarker/cache/TemplateNameFormatTest.java diff --git a/freemarker-test/src/test/java/freemarker/cache/TemplateSourceMatcherTest.java b/freemarker-core/src/test/java/freemarker/cache/TemplateSourceMatcherTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/cache/TemplateSourceMatcherTest.java rename to freemarker-core/src/test/java/freemarker/cache/TemplateSourceMatcherTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/ASTBasedErrorMessagesTest.java b/freemarker-core/src/test/java/freemarker/core/ASTBasedErrorMessagesTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/ASTBasedErrorMessagesTest.java rename to freemarker-core/src/test/java/freemarker/core/ASTBasedErrorMessagesTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/ASTTest.java b/freemarker-core/src/test/java/freemarker/core/ASTTest.java similarity index 96% rename from freemarker-test/src/test/java/freemarker/core/ASTTest.java rename to freemarker-core/src/test/java/freemarker/core/ASTTest.java index b1b308e0b..57aabf5db 100644 --- a/freemarker-test/src/test/java/freemarker/core/ASTTest.java +++ b/freemarker-core/src/test/java/freemarker/core/ASTTest.java @@ -22,11 +22,15 @@ import java.io.FileNotFoundException; import java.io.IOException; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.core.ASTPrinter.Options; import freemarker.template.utility.StringUtil; import freemarker.test.utility.FileTestCase; import freemarker.test.utility.TestUtil; +@RunWith(JUnit38ClassRunner.class) public class ASTTest extends FileTestCase { public ASTTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/core/AbsoluteTemplateNameBITest.java b/freemarker-core/src/test/java/freemarker/core/AbsoluteTemplateNameBITest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/AbsoluteTemplateNameBITest.java rename to freemarker-core/src/test/java/freemarker/core/AbsoluteTemplateNameBITest.java diff --git a/freemarker-test/src/test/java/freemarker/core/AppMetaTemplateDateFormatFactory.java b/freemarker-core/src/test/java/freemarker/core/AppMetaTemplateDateFormatFactory.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/AppMetaTemplateDateFormatFactory.java rename to freemarker-core/src/test/java/freemarker/core/AppMetaTemplateDateFormatFactory.java diff --git a/freemarker-test/src/test/java/freemarker/core/ArgsSpecialVariableTest.java b/freemarker-core/src/test/java/freemarker/core/ArgsSpecialVariableTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/ArgsSpecialVariableTest.java rename to freemarker-core/src/test/java/freemarker/core/ArgsSpecialVariableTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/AttemptLoggingTest.java b/freemarker-core/src/test/java/freemarker/core/AttemptLoggingTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/AttemptLoggingTest.java rename to freemarker-core/src/test/java/freemarker/core/AttemptLoggingTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/BaseNTemplateNumberFormatFactory.java b/freemarker-core/src/test/java/freemarker/core/BaseNTemplateNumberFormatFactory.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/BaseNTemplateNumberFormatFactory.java rename to freemarker-core/src/test/java/freemarker/core/BaseNTemplateNumberFormatFactory.java diff --git a/freemarker-test/src/test/java/freemarker/core/BigDecimalArithmeticEngineTest.java b/freemarker-core/src/test/java/freemarker/core/BigDecimalArithmeticEngineTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/BigDecimalArithmeticEngineTest.java rename to freemarker-core/src/test/java/freemarker/core/BigDecimalArithmeticEngineTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/BreakAndContinuePlacementTest.java b/freemarker-core/src/test/java/freemarker/core/BreakAndContinuePlacementTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/BreakAndContinuePlacementTest.java rename to freemarker-core/src/test/java/freemarker/core/BreakAndContinuePlacementTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/CallerTemplateNameTest.java b/freemarker-core/src/test/java/freemarker/core/CallerTemplateNameTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/CallerTemplateNameTest.java rename to freemarker-core/src/test/java/freemarker/core/CallerTemplateNameTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/CamelCaseTest.java b/freemarker-core/src/test/java/freemarker/core/CamelCaseTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/CamelCaseTest.java rename to freemarker-core/src/test/java/freemarker/core/CamelCaseTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/CanonicalFormTest.java b/freemarker-core/src/test/java/freemarker/core/CanonicalFormTest.java similarity index 95% rename from freemarker-test/src/test/java/freemarker/core/CanonicalFormTest.java rename to freemarker-core/src/test/java/freemarker/core/CanonicalFormTest.java index 79c113627..a7bbdabda 100644 --- a/freemarker-test/src/test/java/freemarker/core/CanonicalFormTest.java +++ b/freemarker-core/src/test/java/freemarker/core/CanonicalFormTest.java @@ -22,6 +22,9 @@ import java.io.IOException; import java.io.StringWriter; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.cache.ClassTemplateLoader; import freemarker.template.Configuration; import freemarker.template.MalformedTemplateNameException; @@ -29,6 +32,7 @@ import freemarker.test.CopyrightCommentRemoverTemplateLoader; import freemarker.test.utility.FileTestCase; +@RunWith(JUnit38ClassRunner.class) public class CanonicalFormTest extends FileTestCase { public CanonicalFormTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/core/CapturingAssignmentTest.java b/freemarker-core/src/test/java/freemarker/core/CapturingAssignmentTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/CapturingAssignmentTest.java rename to freemarker-core/src/test/java/freemarker/core/CapturingAssignmentTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/CoercionToTextualTest.java b/freemarker-core/src/test/java/freemarker/core/CoercionToTextualTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/CoercionToTextualTest.java rename to freemarker-core/src/test/java/freemarker/core/CoercionToTextualTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/CombinedMarkupOutputFormatTest.java b/freemarker-core/src/test/java/freemarker/core/CombinedMarkupOutputFormatTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/CombinedMarkupOutputFormatTest.java rename to freemarker-core/src/test/java/freemarker/core/CombinedMarkupOutputFormatTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/ConfigurableTest.java b/freemarker-core/src/test/java/freemarker/core/ConfigurableTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/ConfigurableTest.java rename to freemarker-core/src/test/java/freemarker/core/ConfigurableTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/CoreLocaleUtilsTest.java b/freemarker-core/src/test/java/freemarker/core/CoreLocaleUtilsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/CoreLocaleUtilsTest.java rename to freemarker-core/src/test/java/freemarker/core/CoreLocaleUtilsTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/CustomHTMLOutputFormat.java b/freemarker-core/src/test/java/freemarker/core/CustomHTMLOutputFormat.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/CustomHTMLOutputFormat.java rename to freemarker-core/src/test/java/freemarker/core/CustomHTMLOutputFormat.java diff --git a/freemarker-test/src/test/java/freemarker/core/CustomTemplateHTMLModel.java b/freemarker-core/src/test/java/freemarker/core/CustomTemplateHTMLModel.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/CustomTemplateHTMLModel.java rename to freemarker-core/src/test/java/freemarker/core/CustomTemplateHTMLModel.java diff --git a/freemarker-test/src/test/java/freemarker/core/DateFormatTest.java b/freemarker-core/src/test/java/freemarker/core/DateFormatTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/DateFormatTest.java rename to freemarker-core/src/test/java/freemarker/core/DateFormatTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/DefaultTruncateBuiltinAlgorithmTest.java b/freemarker-core/src/test/java/freemarker/core/DefaultTruncateBuiltinAlgorithmTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/DefaultTruncateBuiltinAlgorithmTest.java rename to freemarker-core/src/test/java/freemarker/core/DefaultTruncateBuiltinAlgorithmTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/DirectiveCallPlaceTest.java b/freemarker-core/src/test/java/freemarker/core/DirectiveCallPlaceTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/DirectiveCallPlaceTest.java rename to freemarker-core/src/test/java/freemarker/core/DirectiveCallPlaceTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/DummyOutputFormat.java b/freemarker-core/src/test/java/freemarker/core/DummyOutputFormat.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/DummyOutputFormat.java rename to freemarker-core/src/test/java/freemarker/core/DummyOutputFormat.java diff --git a/freemarker-test/src/test/java/freemarker/core/EncodingOverrideTest.java b/freemarker-core/src/test/java/freemarker/core/EncodingOverrideTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/EncodingOverrideTest.java rename to freemarker-core/src/test/java/freemarker/core/EncodingOverrideTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/EndTagSyntaxTest.java b/freemarker-core/src/test/java/freemarker/core/EndTagSyntaxTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/EndTagSyntaxTest.java rename to freemarker-core/src/test/java/freemarker/core/EndTagSyntaxTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/EnvironmentCustomStateTest.java b/freemarker-core/src/test/java/freemarker/core/EnvironmentCustomStateTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/EnvironmentCustomStateTest.java rename to freemarker-core/src/test/java/freemarker/core/EnvironmentCustomStateTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/EnvironmentGetTemplateVariantsTest.java b/freemarker-core/src/test/java/freemarker/core/EnvironmentGetTemplateVariantsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/EnvironmentGetTemplateVariantsTest.java rename to freemarker-core/src/test/java/freemarker/core/EnvironmentGetTemplateVariantsTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/EpochMillisDivTemplateDateFormatFactory.java b/freemarker-core/src/test/java/freemarker/core/EpochMillisDivTemplateDateFormatFactory.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/EpochMillisDivTemplateDateFormatFactory.java rename to freemarker-core/src/test/java/freemarker/core/EpochMillisDivTemplateDateFormatFactory.java diff --git a/freemarker-test/src/test/java/freemarker/core/EpochMillisTemplateDateFormatFactory.java b/freemarker-core/src/test/java/freemarker/core/EpochMillisTemplateDateFormatFactory.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/EpochMillisTemplateDateFormatFactory.java rename to freemarker-core/src/test/java/freemarker/core/EpochMillisTemplateDateFormatFactory.java diff --git a/freemarker-test/src/test/java/freemarker/core/EvalJsonBuiltInTest.java b/freemarker-core/src/test/java/freemarker/core/EvalJsonBuiltInTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/EvalJsonBuiltInTest.java rename to freemarker-core/src/test/java/freemarker/core/EvalJsonBuiltInTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/ExtendedDecimalFormatTest.java b/freemarker-core/src/test/java/freemarker/core/ExtendedDecimalFormatTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/ExtendedDecimalFormatTest.java rename to freemarker-core/src/test/java/freemarker/core/ExtendedDecimalFormatTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/FilterBiTest.java b/freemarker-core/src/test/java/freemarker/core/FilterBiTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/FilterBiTest.java rename to freemarker-core/src/test/java/freemarker/core/FilterBiTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/GetOptionalTemplateTest.java b/freemarker-core/src/test/java/freemarker/core/GetOptionalTemplateTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/GetOptionalTemplateTest.java rename to freemarker-core/src/test/java/freemarker/core/GetOptionalTemplateTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/HTMLISOTemplateDateFormatFactory.java b/freemarker-core/src/test/java/freemarker/core/HTMLISOTemplateDateFormatFactory.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/HTMLISOTemplateDateFormatFactory.java rename to freemarker-core/src/test/java/freemarker/core/HTMLISOTemplateDateFormatFactory.java diff --git a/freemarker-test/src/test/java/freemarker/core/HTMLOutputFormatTest.java b/freemarker-core/src/test/java/freemarker/core/HTMLOutputFormatTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/HTMLOutputFormatTest.java rename to freemarker-core/src/test/java/freemarker/core/HTMLOutputFormatTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/HeaderParsingTest.java b/freemarker-core/src/test/java/freemarker/core/HeaderParsingTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/HeaderParsingTest.java rename to freemarker-core/src/test/java/freemarker/core/HeaderParsingTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/HexTemplateNumberFormatFactory.java b/freemarker-core/src/test/java/freemarker/core/HexTemplateNumberFormatFactory.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/HexTemplateNumberFormatFactory.java rename to freemarker-core/src/test/java/freemarker/core/HexTemplateNumberFormatFactory.java diff --git a/freemarker-test/src/test/java/freemarker/core/IncludeAndImportConfigurableLayersTest.java b/freemarker-core/src/test/java/freemarker/core/IncludeAndImportConfigurableLayersTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/IncludeAndImportConfigurableLayersTest.java rename to freemarker-core/src/test/java/freemarker/core/IncludeAndImportConfigurableLayersTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/IncludeAndImportTest.java b/freemarker-core/src/test/java/freemarker/core/IncludeAndImportTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/IncludeAndImportTest.java rename to freemarker-core/src/test/java/freemarker/core/IncludeAndImportTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/InterpolationSyntaxTest.java b/freemarker-core/src/test/java/freemarker/core/InterpolationSyntaxTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/InterpolationSyntaxTest.java rename to freemarker-core/src/test/java/freemarker/core/InterpolationSyntaxTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/InterpretAndEvalTemplateNameTest.java b/freemarker-core/src/test/java/freemarker/core/InterpretAndEvalTemplateNameTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/InterpretAndEvalTemplateNameTest.java rename to freemarker-core/src/test/java/freemarker/core/InterpretAndEvalTemplateNameTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/InterpretSettingInheritanceTest.java b/freemarker-core/src/test/java/freemarker/core/InterpretSettingInheritanceTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/InterpretSettingInheritanceTest.java rename to freemarker-core/src/test/java/freemarker/core/InterpretSettingInheritanceTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/IteratorIssuesTest.java b/freemarker-core/src/test/java/freemarker/core/IteratorIssuesTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/IteratorIssuesTest.java rename to freemarker-core/src/test/java/freemarker/core/IteratorIssuesTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/JSONParserTest.java b/freemarker-core/src/test/java/freemarker/core/JSONParserTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/JSONParserTest.java rename to freemarker-core/src/test/java/freemarker/core/JSONParserTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/LambdaParsingTest.java b/freemarker-core/src/test/java/freemarker/core/LambdaParsingTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/LambdaParsingTest.java rename to freemarker-core/src/test/java/freemarker/core/LambdaParsingTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/LamdaAndEscapeTest.java b/freemarker-core/src/test/java/freemarker/core/LamdaAndEscapeTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/LamdaAndEscapeTest.java rename to freemarker-core/src/test/java/freemarker/core/LamdaAndEscapeTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/LazilyGeneratedCollectionTest.java b/freemarker-core/src/test/java/freemarker/core/LazilyGeneratedCollectionTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/LazilyGeneratedCollectionTest.java rename to freemarker-core/src/test/java/freemarker/core/LazilyGeneratedCollectionTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/LegacyFMParserConstructorsTest.java b/freemarker-core/src/test/java/freemarker/core/LegacyFMParserConstructorsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/LegacyFMParserConstructorsTest.java rename to freemarker-core/src/test/java/freemarker/core/LegacyFMParserConstructorsTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/ListBreakContinueTest.java b/freemarker-core/src/test/java/freemarker/core/ListBreakContinueTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/ListBreakContinueTest.java rename to freemarker-core/src/test/java/freemarker/core/ListBreakContinueTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/ListErrorsTest.java b/freemarker-core/src/test/java/freemarker/core/ListErrorsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/ListErrorsTest.java rename to freemarker-core/src/test/java/freemarker/core/ListErrorsTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/ListWithStreamLikeBuiltinsTest.java b/freemarker-core/src/test/java/freemarker/core/ListWithStreamLikeBuiltinsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/ListWithStreamLikeBuiltinsTest.java rename to freemarker-core/src/test/java/freemarker/core/ListWithStreamLikeBuiltinsTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/LocAndTZSensitiveTemplateDateFormatFactory.java b/freemarker-core/src/test/java/freemarker/core/LocAndTZSensitiveTemplateDateFormatFactory.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/LocAndTZSensitiveTemplateDateFormatFactory.java rename to freemarker-core/src/test/java/freemarker/core/LocAndTZSensitiveTemplateDateFormatFactory.java diff --git a/freemarker-test/src/test/java/freemarker/core/LocaleSensitiveTemplateNumberFormatFactory.java b/freemarker-core/src/test/java/freemarker/core/LocaleSensitiveTemplateNumberFormatFactory.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/LocaleSensitiveTemplateNumberFormatFactory.java rename to freemarker-core/src/test/java/freemarker/core/LocaleSensitiveTemplateNumberFormatFactory.java diff --git a/freemarker-test/src/test/java/freemarker/core/MapBiTest.java b/freemarker-core/src/test/java/freemarker/core/MapBiTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/MapBiTest.java rename to freemarker-core/src/test/java/freemarker/core/MapBiTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/MinMaxBITest.java b/freemarker-core/src/test/java/freemarker/core/MinMaxBITest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/MinMaxBITest.java rename to freemarker-core/src/test/java/freemarker/core/MinMaxBITest.java diff --git a/freemarker-test/src/test/java/freemarker/core/MiscErrorMessagesTest.java b/freemarker-core/src/test/java/freemarker/core/MiscErrorMessagesTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/MiscErrorMessagesTest.java rename to freemarker-core/src/test/java/freemarker/core/MiscErrorMessagesTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/NullTransparencyTest.java b/freemarker-core/src/test/java/freemarker/core/NullTransparencyTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/NullTransparencyTest.java rename to freemarker-core/src/test/java/freemarker/core/NullTransparencyTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/NumberFormatTest.java b/freemarker-core/src/test/java/freemarker/core/NumberFormatTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/NumberFormatTest.java rename to freemarker-core/src/test/java/freemarker/core/NumberFormatTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/OptInTemplateClassResolverTest.java b/freemarker-core/src/test/java/freemarker/core/OptInTemplateClassResolverTest.java similarity index 98% rename from freemarker-test/src/test/java/freemarker/core/OptInTemplateClassResolverTest.java rename to freemarker-core/src/test/java/freemarker/core/OptInTemplateClassResolverTest.java index b0a9d294a..89dfbf779 100644 --- a/freemarker-test/src/test/java/freemarker/core/OptInTemplateClassResolverTest.java +++ b/freemarker-core/src/test/java/freemarker/core/OptInTemplateClassResolverTest.java @@ -24,6 +24,9 @@ import java.util.List; import java.util.Set; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; @@ -31,6 +34,7 @@ import junit.framework.AssertionFailedError; import junit.framework.TestCase; +@RunWith(JUnit38ClassRunner.class) public class OptInTemplateClassResolverTest extends TestCase { public OptInTemplateClassResolverTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/core/OutputFormatTest.java b/freemarker-core/src/test/java/freemarker/core/OutputFormatTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/OutputFormatTest.java rename to freemarker-core/src/test/java/freemarker/core/OutputFormatTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/ParseTimeParameterBIErrorMessagesTest.java b/freemarker-core/src/test/java/freemarker/core/ParseTimeParameterBIErrorMessagesTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/ParseTimeParameterBIErrorMessagesTest.java rename to freemarker-core/src/test/java/freemarker/core/ParseTimeParameterBIErrorMessagesTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/ParsingErrorMessagesTest.java b/freemarker-core/src/test/java/freemarker/core/ParsingErrorMessagesTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/ParsingErrorMessagesTest.java rename to freemarker-core/src/test/java/freemarker/core/ParsingErrorMessagesTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/PrintfGTemplateNumberFormatFactory.java b/freemarker-core/src/test/java/freemarker/core/PrintfGTemplateNumberFormatFactory.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/PrintfGTemplateNumberFormatFactory.java rename to freemarker-core/src/test/java/freemarker/core/PrintfGTemplateNumberFormatFactory.java diff --git a/freemarker-test/src/test/java/freemarker/core/RTFOutputFormatTest.java b/freemarker-core/src/test/java/freemarker/core/RTFOutputFormatTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/RTFOutputFormatTest.java rename to freemarker-core/src/test/java/freemarker/core/RTFOutputFormatTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/SQLTimeZoneTest.java b/freemarker-core/src/test/java/freemarker/core/SQLTimeZoneTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/SQLTimeZoneTest.java rename to freemarker-core/src/test/java/freemarker/core/SQLTimeZoneTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/SeldomEscapedOutputFormat.java b/freemarker-core/src/test/java/freemarker/core/SeldomEscapedOutputFormat.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/SeldomEscapedOutputFormat.java rename to freemarker-core/src/test/java/freemarker/core/SeldomEscapedOutputFormat.java diff --git a/freemarker-test/src/test/java/freemarker/core/SequenceBuiltInTest.java b/freemarker-core/src/test/java/freemarker/core/SequenceBuiltInTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/SequenceBuiltInTest.java rename to freemarker-core/src/test/java/freemarker/core/SequenceBuiltInTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/SettingDirectiveTest.java b/freemarker-core/src/test/java/freemarker/core/SettingDirectiveTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/SettingDirectiveTest.java rename to freemarker-core/src/test/java/freemarker/core/SettingDirectiveTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/SpecialVariableTest.java b/freemarker-core/src/test/java/freemarker/core/SpecialVariableTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/SpecialVariableTest.java rename to freemarker-core/src/test/java/freemarker/core/SpecialVariableTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/StringLiteralInterpolationTest.java b/freemarker-core/src/test/java/freemarker/core/StringLiteralInterpolationTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/StringLiteralInterpolationTest.java rename to freemarker-core/src/test/java/freemarker/core/StringLiteralInterpolationTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/TabSizeTest.java b/freemarker-core/src/test/java/freemarker/core/TabSizeTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/TabSizeTest.java rename to freemarker-core/src/test/java/freemarker/core/TabSizeTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/TagSyntaxVariationsTest.java b/freemarker-core/src/test/java/freemarker/core/TagSyntaxVariationsTest.java similarity index 98% rename from freemarker-test/src/test/java/freemarker/core/TagSyntaxVariationsTest.java rename to freemarker-core/src/test/java/freemarker/core/TagSyntaxVariationsTest.java index 08030d29f..fdbc08d66 100644 --- a/freemarker-test/src/test/java/freemarker/core/TagSyntaxVariationsTest.java +++ b/freemarker-core/src/test/java/freemarker/core/TagSyntaxVariationsTest.java @@ -23,6 +23,9 @@ import java.io.StringReader; import java.io.StringWriter; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; @@ -33,6 +36,7 @@ * Test various generated templates (permutations), including some deliberately * wrong ones, with various tag_syntax settings. */ +@RunWith(JUnit38ClassRunner.class) public class TagSyntaxVariationsTest extends TestCase { private static final String HDR_ANG = "<#ftl>"; diff --git a/freemarker-test/src/test/java/freemarker/core/TakeWhileAndDropWhileBiTest.java b/freemarker-core/src/test/java/freemarker/core/TakeWhileAndDropWhileBiTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/TakeWhileAndDropWhileBiTest.java rename to freemarker-core/src/test/java/freemarker/core/TakeWhileAndDropWhileBiTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/TemplatGetEncodingTest.java b/freemarker-core/src/test/java/freemarker/core/TemplatGetEncodingTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/TemplatGetEncodingTest.java rename to freemarker-core/src/test/java/freemarker/core/TemplatGetEncodingTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/TemplateConfigurationTest.java b/freemarker-core/src/test/java/freemarker/core/TemplateConfigurationTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/TemplateConfigurationTest.java rename to freemarker-core/src/test/java/freemarker/core/TemplateConfigurationTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/TemplateConfigurationWithTemplateCacheTest.java b/freemarker-core/src/test/java/freemarker/core/TemplateConfigurationWithTemplateCacheTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/TemplateConfigurationWithTemplateCacheTest.java rename to freemarker-core/src/test/java/freemarker/core/TemplateConfigurationWithTemplateCacheTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/TemplateDummyOutputModel.java b/freemarker-core/src/test/java/freemarker/core/TemplateDummyOutputModel.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/TemplateDummyOutputModel.java rename to freemarker-core/src/test/java/freemarker/core/TemplateDummyOutputModel.java diff --git a/freemarker-test/src/test/java/freemarker/core/TemplateLevelSettings.java b/freemarker-core/src/test/java/freemarker/core/TemplateLevelSettings.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/TemplateLevelSettings.java rename to freemarker-core/src/test/java/freemarker/core/TemplateLevelSettings.java diff --git a/freemarker-test/src/test/java/freemarker/core/TemplateNameSpecialVariablesTest.java b/freemarker-core/src/test/java/freemarker/core/TemplateNameSpecialVariablesTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/TemplateNameSpecialVariablesTest.java rename to freemarker-core/src/test/java/freemarker/core/TemplateNameSpecialVariablesTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/TemplateSeldomEscapedOutputModel.java b/freemarker-core/src/test/java/freemarker/core/TemplateSeldomEscapedOutputModel.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/TemplateSeldomEscapedOutputModel.java rename to freemarker-core/src/test/java/freemarker/core/TemplateSeldomEscapedOutputModel.java diff --git a/freemarker-test/src/test/java/freemarker/core/TemplateTransformModelTest.java b/freemarker-core/src/test/java/freemarker/core/TemplateTransformModelTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/TemplateTransformModelTest.java rename to freemarker-core/src/test/java/freemarker/core/TemplateTransformModelTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/ThreadInterruptingSupportTest.java b/freemarker-core/src/test/java/freemarker/core/ThreadInterruptingSupportTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/ThreadInterruptingSupportTest.java rename to freemarker-core/src/test/java/freemarker/core/ThreadInterruptingSupportTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/TruncateBuiltInTest.java b/freemarker-core/src/test/java/freemarker/core/TruncateBuiltInTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/TruncateBuiltInTest.java rename to freemarker-core/src/test/java/freemarker/core/TruncateBuiltInTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/TypeErrorMessagesTest.java b/freemarker-core/src/test/java/freemarker/core/TypeErrorMessagesTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/TypeErrorMessagesTest.java rename to freemarker-core/src/test/java/freemarker/core/TypeErrorMessagesTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/UncheckedExceptionHandlingTest.java b/freemarker-core/src/test/java/freemarker/core/UncheckedExceptionHandlingTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/UncheckedExceptionHandlingTest.java rename to freemarker-core/src/test/java/freemarker/core/UncheckedExceptionHandlingTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/UnclosedCommentTest.java b/freemarker-core/src/test/java/freemarker/core/UnclosedCommentTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/UnclosedCommentTest.java rename to freemarker-core/src/test/java/freemarker/core/UnclosedCommentTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/WhitespaceStrippingTest.java b/freemarker-core/src/test/java/freemarker/core/WhitespaceStrippingTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/WhitespaceStrippingTest.java rename to freemarker-core/src/test/java/freemarker/core/WhitespaceStrippingTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/WithArgsBuiltInTest.java b/freemarker-core/src/test/java/freemarker/core/WithArgsBuiltInTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/WithArgsBuiltInTest.java rename to freemarker-core/src/test/java/freemarker/core/WithArgsBuiltInTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/XHTMLOutputFormatTest.java b/freemarker-core/src/test/java/freemarker/core/XHTMLOutputFormatTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/XHTMLOutputFormatTest.java rename to freemarker-core/src/test/java/freemarker/core/XHTMLOutputFormatTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/XMLOutputFormatTest.java b/freemarker-core/src/test/java/freemarker/core/XMLOutputFormatTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/XMLOutputFormatTest.java rename to freemarker-core/src/test/java/freemarker/core/XMLOutputFormatTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/AbstractParallelIntrospectionTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/AbstractParallelIntrospectionTest.java similarity index 97% rename from freemarker-test/src/test/java/freemarker/ext/beans/AbstractParallelIntrospectionTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/AbstractParallelIntrospectionTest.java index e6d8b0139..3c310d6cc 100644 --- a/freemarker-test/src/test/java/freemarker/ext/beans/AbstractParallelIntrospectionTest.java +++ b/freemarker-core/src/test/java/freemarker/ext/beans/AbstractParallelIntrospectionTest.java @@ -19,12 +19,16 @@ package freemarker.ext.beans; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.template.TemplateHashModel; import freemarker.template.TemplateMethodModel; import freemarker.template.TemplateModelException; import freemarker.template.TemplateNumberModel; import junit.framework.TestCase; +@RunWith(JUnit38ClassRunner.class) public abstract class AbstractParallelIntrospectionTest extends TestCase { private static final int NUM_THREADS = 8; diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BeansAPINewInstanceTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/BeansAPINewInstanceTest.java similarity index 97% rename from freemarker-test/src/test/java/freemarker/ext/beans/BeansAPINewInstanceTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/BeansAPINewInstanceTest.java index fac6e452d..7ea5a54eb 100644 --- a/freemarker-test/src/test/java/freemarker/ext/beans/BeansAPINewInstanceTest.java +++ b/freemarker-core/src/test/java/freemarker/ext/beans/BeansAPINewInstanceTest.java @@ -19,10 +19,14 @@ package freemarker.ext.beans; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.template.Configuration; import freemarker.test.utility.TestUtil; import junit.framework.TestCase; +@RunWith(JUnit38ClassRunner.class) public class BeansAPINewInstanceTest extends TestCase { private BeansWrapper beansWrapper = new BeansWrapperBuilder(Configuration.VERSION_2_3_21).build(); diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperBasics.java b/freemarker-core/src/test/java/freemarker/ext/beans/BeansWrapperBasics.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperBasics.java rename to freemarker-core/src/test/java/freemarker/ext/beans/BeansWrapperBasics.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperCachesTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/BeansWrapperCachesTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperCachesTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/BeansWrapperCachesTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperReadOnlyTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/BeansWrapperReadOnlyTest.java similarity index 96% rename from freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperReadOnlyTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/BeansWrapperReadOnlyTest.java index 5cbcd6e28..d97909209 100644 --- a/freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperReadOnlyTest.java +++ b/freemarker-core/src/test/java/freemarker/ext/beans/BeansWrapperReadOnlyTest.java @@ -25,6 +25,9 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.template.DefaultObjectWrapper; import freemarker.template.ObjectWrapper; import freemarker.template.utility.ClassUtil; @@ -35,6 +38,7 @@ * Tests if all JavaBean properties of the standard {@link ObjectWrapper} classes are locked by * {@link WriteProtectable#writeProtect()}. */ +@RunWith(JUnit38ClassRunner.class) public class BeansWrapperReadOnlyTest extends TestCase { private static final String EXPECTED_MESSAGE_PART = "write protected"; diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperSingletonsTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/BeansWrapperSingletonsTest.java similarity index 99% rename from freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperSingletonsTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/BeansWrapperSingletonsTest.java index d5054e853..28ba8dfc0 100644 --- a/freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperSingletonsTest.java +++ b/freemarker-core/src/test/java/freemarker/ext/beans/BeansWrapperSingletonsTest.java @@ -29,6 +29,9 @@ import java.util.List; import java.util.Map; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.ext.beans.BeansWrapper.MethodAppearanceDecision; import freemarker.ext.beans.BeansWrapper.MethodAppearanceDecisionInput; import freemarker.template.Configuration; @@ -42,6 +45,7 @@ import freemarker.test.utility.TestUtil; import junit.framework.TestCase; +@RunWith(JUnit38ClassRunner.class) public class BeansWrapperSingletonsTest extends TestCase { public BeansWrapperSingletonsTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/CommonSupertypeForUnwrappingHintTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/CommonSupertypeForUnwrappingHintTest.java similarity index 98% rename from freemarker-test/src/test/java/freemarker/ext/beans/CommonSupertypeForUnwrappingHintTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/CommonSupertypeForUnwrappingHintTest.java index 68db7e214..db749d8cf 100644 --- a/freemarker-test/src/test/java/freemarker/ext/beans/CommonSupertypeForUnwrappingHintTest.java +++ b/freemarker-core/src/test/java/freemarker/ext/beans/CommonSupertypeForUnwrappingHintTest.java @@ -22,10 +22,14 @@ import java.io.Serializable; import java.util.List; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.template.Configuration; import freemarker.template.TemplateModelException; import junit.framework.TestCase; +@RunWith(JUnit38ClassRunner.class) public class CommonSupertypeForUnwrappingHintTest extends TestCase { final OverloadedMethodsSubset buggy diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/DefaultMemberAccessPolicyTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/DefaultMemberAccessPolicyTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/DefaultMemberAccessPolicyTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/DefaultMemberAccessPolicyTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperMemberAccessPolicyTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/DefaultObjectWrapperMemberAccessPolicyTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperMemberAccessPolicyTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/DefaultObjectWrapperMemberAccessPolicyTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/EnumModelsTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/EnumModelsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/EnumModelsTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/EnumModelsTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/ErrorMessagesTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/ErrorMessagesTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/ErrorMessagesTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/ErrorMessagesTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/FineTuneMethodAppearanceTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/FineTuneMethodAppearanceTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/FineTuneMethodAppearanceTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/FineTuneMethodAppearanceTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/GetPropertyNameFromReaderMethodNameTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/GetPropertyNameFromReaderMethodNameTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/GetPropertyNameFromReaderMethodNameTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/GetPropertyNameFromReaderMethodNameTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/GetlessMethodsAsPropertyGettersRule.java b/freemarker-core/src/test/java/freemarker/ext/beans/GetlessMethodsAsPropertyGettersRule.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/GetlessMethodsAsPropertyGettersRule.java rename to freemarker-core/src/test/java/freemarker/ext/beans/GetlessMethodsAsPropertyGettersRule.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/IsApplicableTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/IsApplicableTest.java similarity index 98% rename from freemarker-test/src/test/java/freemarker/ext/beans/IsApplicableTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/IsApplicableTest.java index df5a22132..f28f292f3 100644 --- a/freemarker-test/src/test/java/freemarker/ext/beans/IsApplicableTest.java +++ b/freemarker-core/src/test/java/freemarker/ext/beans/IsApplicableTest.java @@ -26,9 +26,13 @@ import java.util.ArrayList; import java.util.List; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import junit.framework.TestCase; @SuppressWarnings("boxing") +@RunWith(JUnit38ClassRunner.class) public class IsApplicableTest extends TestCase { public IsApplicableTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/IsMoreSpecificParameterTypeTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/IsMoreSpecificParameterTypeTest.java similarity index 98% rename from freemarker-test/src/test/java/freemarker/ext/beans/IsMoreSpecificParameterTypeTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/IsMoreSpecificParameterTypeTest.java index 4d456de07..8a1dbcbd9 100644 --- a/freemarker-test/src/test/java/freemarker/ext/beans/IsMoreSpecificParameterTypeTest.java +++ b/freemarker-core/src/test/java/freemarker/ext/beans/IsMoreSpecificParameterTypeTest.java @@ -23,8 +23,12 @@ import java.util.HashMap; import java.util.Map; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import junit.framework.TestCase; +@RunWith(JUnit38ClassRunner.class) public class IsMoreSpecificParameterTypeTest extends TestCase { public IsMoreSpecificParameterTypeTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/Java9InstrospectorBugWorkaroundTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/Java9InstrospectorBugWorkaroundTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/Java9InstrospectorBugWorkaroundTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/Java9InstrospectorBugWorkaroundTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/LegacyDefaultMemberAccessPolicyTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/LegacyDefaultMemberAccessPolicyTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/LegacyDefaultMemberAccessPolicyTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/LegacyDefaultMemberAccessPolicyTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/ManyObjectsOfDifferentClasses.java b/freemarker-core/src/test/java/freemarker/ext/beans/ManyObjectsOfDifferentClasses.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/ManyObjectsOfDifferentClasses.java rename to freemarker-core/src/test/java/freemarker/ext/beans/ManyObjectsOfDifferentClasses.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/ManyStaticsOfDifferentClasses.java b/freemarker-core/src/test/java/freemarker/ext/beans/ManyStaticsOfDifferentClasses.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/ManyStaticsOfDifferentClasses.java rename to freemarker-core/src/test/java/freemarker/ext/beans/ManyStaticsOfDifferentClasses.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/MemberAccessMonitoringTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/MemberAccessMonitoringTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/MemberAccessMonitoringTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/MemberAccessMonitoringTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/MemberSelectorListMemberAccessPolicyTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/MemberSelectorListMemberAccessPolicyTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/MemberSelectorListMemberAccessPolicyTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/MemberSelectorListMemberAccessPolicyTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/MethodMatcherTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/MethodMatcherTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/MethodMatcherTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/MethodMatcherTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/MethodUtilTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/MethodUtilTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/MethodUtilTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/MethodUtilTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/MethodUtilTest2.java b/freemarker-core/src/test/java/freemarker/ext/beans/MethodUtilTest2.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/MethodUtilTest2.java rename to freemarker-core/src/test/java/freemarker/ext/beans/MethodUtilTest2.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/MiscNumericalOperationsTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/MiscNumericalOperationsTest.java similarity index 98% rename from freemarker-test/src/test/java/freemarker/ext/beans/MiscNumericalOperationsTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/MiscNumericalOperationsTest.java index 508bbcb9d..db2959dda 100644 --- a/freemarker-test/src/test/java/freemarker/ext/beans/MiscNumericalOperationsTest.java +++ b/freemarker-core/src/test/java/freemarker/ext/beans/MiscNumericalOperationsTest.java @@ -23,10 +23,13 @@ import java.math.BigInteger; import org.junit.Assert; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; import freemarker.template.Configuration; import junit.framework.TestCase; +@RunWith(JUnit38ClassRunner.class) public class MiscNumericalOperationsTest extends TestCase { public MiscNumericalOperationsTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/ModelCacheTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/ModelCacheTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/ModelCacheTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/ModelCacheTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/OverloadedNumberUtilTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/OverloadedNumberUtilTest.java similarity index 99% rename from freemarker-test/src/test/java/freemarker/ext/beans/OverloadedNumberUtilTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/OverloadedNumberUtilTest.java index 68a83fd62..f3d251d52 100644 --- a/freemarker-test/src/test/java/freemarker/ext/beans/OverloadedNumberUtilTest.java +++ b/freemarker-core/src/test/java/freemarker/ext/beans/OverloadedNumberUtilTest.java @@ -22,9 +22,13 @@ import java.math.BigDecimal; import java.math.BigInteger; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import junit.framework.TestCase; @SuppressWarnings("boxing") +@RunWith(JUnit38ClassRunner.class) public class OverloadedNumberUtilTest extends TestCase { public OverloadedNumberUtilTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/ParameterListPreferabilityTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/ParameterListPreferabilityTest.java similarity index 99% rename from freemarker-test/src/test/java/freemarker/ext/beans/ParameterListPreferabilityTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/ParameterListPreferabilityTest.java index e2c3976f0..9025fde3e 100644 --- a/freemarker-test/src/test/java/freemarker/ext/beans/ParameterListPreferabilityTest.java +++ b/freemarker-core/src/test/java/freemarker/ext/beans/ParameterListPreferabilityTest.java @@ -27,10 +27,14 @@ import java.util.Map; import java.util.TreeMap; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.template.utility.NumberUtil; import junit.framework.TestCase; @SuppressWarnings("boxing") +@RunWith(JUnit38ClassRunner.class) public class ParameterListPreferabilityTest extends TestCase { public ParameterListPreferabilityTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/PrallelObjectIntrospectionTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/PrallelObjectIntrospectionTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/PrallelObjectIntrospectionTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/PrallelObjectIntrospectionTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/PrallelStaticIntrospectionTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/PrallelStaticIntrospectionTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/PrallelStaticIntrospectionTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/PrallelStaticIntrospectionTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/StaticModelsTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/StaticModelsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/StaticModelsTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/StaticModelsTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/TypeFlagsTest.java b/freemarker-core/src/test/java/freemarker/ext/beans/TypeFlagsTest.java similarity index 99% rename from freemarker-test/src/test/java/freemarker/ext/beans/TypeFlagsTest.java rename to freemarker-core/src/test/java/freemarker/ext/beans/TypeFlagsTest.java index d1584c5d5..192ea574b 100644 --- a/freemarker-test/src/test/java/freemarker/ext/beans/TypeFlagsTest.java +++ b/freemarker-core/src/test/java/freemarker/ext/beans/TypeFlagsTest.java @@ -34,9 +34,13 @@ import java.util.Map; import java.util.Set; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.template.Configuration; import junit.framework.TestCase; +@RunWith(JUnit38ClassRunner.class) public class TypeFlagsTest extends TestCase { public TypeFlagsTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/ext/dom/DOMConvenienceStaticsTest.java b/freemarker-core/src/test/java/freemarker/ext/dom/DOMConvenienceStaticsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/dom/DOMConvenienceStaticsTest.java rename to freemarker-core/src/test/java/freemarker/ext/dom/DOMConvenienceStaticsTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/dom/DOMSiblingTest.java b/freemarker-core/src/test/java/freemarker/ext/dom/DOMSiblingTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/dom/DOMSiblingTest.java rename to freemarker-core/src/test/java/freemarker/ext/dom/DOMSiblingTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/dom/DOMTest.java b/freemarker-core/src/test/java/freemarker/ext/dom/DOMTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/dom/DOMTest.java rename to freemarker-core/src/test/java/freemarker/ext/dom/DOMTest.java diff --git a/freemarker-test/src/test/java/freemarker/manual/AbsoluteTemplateNameBIExample.java b/freemarker-core/src/test/java/freemarker/manual/AbsoluteTemplateNameBIExample.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/manual/AbsoluteTemplateNameBIExample.java rename to freemarker-core/src/test/java/freemarker/manual/AbsoluteTemplateNameBIExample.java diff --git a/freemarker-test/src/test/java/freemarker/manual/AutoEscapingExample.java b/freemarker-core/src/test/java/freemarker/manual/AutoEscapingExample.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/manual/AutoEscapingExample.java rename to freemarker-core/src/test/java/freemarker/manual/AutoEscapingExample.java diff --git a/freemarker-test/src/test/java/freemarker/manual/ConfigureOutputFormatExamples.java b/freemarker-core/src/test/java/freemarker/manual/ConfigureOutputFormatExamples.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/manual/ConfigureOutputFormatExamples.java rename to freemarker-core/src/test/java/freemarker/manual/ConfigureOutputFormatExamples.java diff --git a/freemarker-test/src/test/java/freemarker/manual/CustomFormatsExample.java b/freemarker-core/src/test/java/freemarker/manual/CustomFormatsExample.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/manual/CustomFormatsExample.java rename to freemarker-core/src/test/java/freemarker/manual/CustomFormatsExample.java diff --git a/freemarker-test/src/test/java/freemarker/manual/ExamplesTest.java b/freemarker-core/src/test/java/freemarker/manual/ExamplesTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/manual/ExamplesTest.java rename to freemarker-core/src/test/java/freemarker/manual/ExamplesTest.java diff --git a/freemarker-test/src/test/java/freemarker/manual/GettingStartedExample.java b/freemarker-core/src/test/java/freemarker/manual/GettingStartedExample.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/manual/GettingStartedExample.java rename to freemarker-core/src/test/java/freemarker/manual/GettingStartedExample.java diff --git a/freemarker-test/src/test/java/freemarker/manual/Product.java b/freemarker-core/src/test/java/freemarker/manual/Product.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/manual/Product.java rename to freemarker-core/src/test/java/freemarker/manual/Product.java diff --git a/freemarker-test/src/test/java/freemarker/manual/TemplateConfigurationExamples.java b/freemarker-core/src/test/java/freemarker/manual/TemplateConfigurationExamples.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/manual/TemplateConfigurationExamples.java rename to freemarker-core/src/test/java/freemarker/manual/TemplateConfigurationExamples.java diff --git a/freemarker-test/src/test/java/freemarker/manual/UnitAwareTemplateNumberFormatFactory.java b/freemarker-core/src/test/java/freemarker/manual/UnitAwareTemplateNumberFormatFactory.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/manual/UnitAwareTemplateNumberFormatFactory.java rename to freemarker-core/src/test/java/freemarker/manual/UnitAwareTemplateNumberFormatFactory.java diff --git a/freemarker-test/src/test/java/freemarker/manual/UnitAwareTemplateNumberModel.java b/freemarker-core/src/test/java/freemarker/manual/UnitAwareTemplateNumberModel.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/manual/UnitAwareTemplateNumberModel.java rename to freemarker-core/src/test/java/freemarker/manual/UnitAwareTemplateNumberModel.java diff --git a/freemarker-test/src/test/java/freemarker/manual/WithArgsExamples.java b/freemarker-core/src/test/java/freemarker/manual/WithArgsExamples.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/manual/WithArgsExamples.java rename to freemarker-core/src/test/java/freemarker/manual/WithArgsExamples.java diff --git a/freemarker-test/src/test/java/freemarker/manual/WithArgsLastExamples.java b/freemarker-core/src/test/java/freemarker/manual/WithArgsLastExamples.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/manual/WithArgsLastExamples.java rename to freemarker-core/src/test/java/freemarker/manual/WithArgsLastExamples.java diff --git a/freemarker-test/src/test/java/freemarker/template/ActualNamingConvetionTest.java b/freemarker-core/src/test/java/freemarker/template/ActualNamingConvetionTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/ActualNamingConvetionTest.java rename to freemarker-core/src/test/java/freemarker/template/ActualNamingConvetionTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/ActualTagSyntaxTest.java b/freemarker-core/src/test/java/freemarker/template/ActualTagSyntaxTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/ActualTagSyntaxTest.java rename to freemarker-core/src/test/java/freemarker/template/ActualTagSyntaxTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/ConfigurationTest.java b/freemarker-core/src/test/java/freemarker/template/ConfigurationTest.java similarity index 99% rename from freemarker-test/src/test/java/freemarker/template/ConfigurationTest.java rename to freemarker-core/src/test/java/freemarker/template/ConfigurationTest.java index 9bf0609d6..84c322bc3 100644 --- a/freemarker-test/src/test/java/freemarker/template/ConfigurationTest.java +++ b/freemarker-core/src/test/java/freemarker/template/ConfigurationTest.java @@ -37,6 +37,8 @@ import java.util.TimeZone; import org.junit.Test; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -91,6 +93,7 @@ import freemarker.template.utility.NullWriter; import junit.framework.TestCase; +@RunWith(JUnit38ClassRunner.class) public class ConfigurationTest extends TestCase { public ConfigurationTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/template/CustomAttributeTest.java b/freemarker-core/src/test/java/freemarker/template/CustomAttributeTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/CustomAttributeTest.java rename to freemarker-core/src/test/java/freemarker/template/CustomAttributeTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/ExceptionTest.java b/freemarker-core/src/test/java/freemarker/template/ExceptionTest.java similarity index 97% rename from freemarker-test/src/test/java/freemarker/template/ExceptionTest.java rename to freemarker-core/src/test/java/freemarker/template/ExceptionTest.java index 938cc16f2..d795c9581 100644 --- a/freemarker-test/src/test/java/freemarker/template/ExceptionTest.java +++ b/freemarker-core/src/test/java/freemarker/template/ExceptionTest.java @@ -32,10 +32,15 @@ import java.util.Collections; import java.util.Locale; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.cache.StringTemplateLoader; import freemarker.core.ParseException; import freemarker.template.utility.NullWriter; import junit.framework.TestCase; + +@RunWith(JUnit38ClassRunner.class) public class ExceptionTest extends TestCase { public ExceptionTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/template/GetSourceTest.java b/freemarker-core/src/test/java/freemarker/template/GetSourceTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/GetSourceTest.java rename to freemarker-core/src/test/java/freemarker/template/GetSourceTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/IncudeFromNamelessTest.java b/freemarker-core/src/test/java/freemarker/template/IncudeFromNamelessTest.java similarity index 94% rename from freemarker-test/src/test/java/freemarker/template/IncudeFromNamelessTest.java rename to freemarker-core/src/test/java/freemarker/template/IncudeFromNamelessTest.java index 19dbe582c..539871d9f 100644 --- a/freemarker-test/src/test/java/freemarker/template/IncudeFromNamelessTest.java +++ b/freemarker-core/src/test/java/freemarker/template/IncudeFromNamelessTest.java @@ -23,9 +23,13 @@ import java.io.StringReader; import java.io.StringWriter; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.cache.StringTemplateLoader; import junit.framework.TestCase; +@RunWith(JUnit38ClassRunner.class) public class IncudeFromNamelessTest extends TestCase { public IncudeFromNamelessTest(String name) { diff --git a/freemarker-test/src/test/java/freemarker/template/JavaCCExceptionAsEOFFixTest.java b/freemarker-core/src/test/java/freemarker/template/JavaCCExceptionAsEOFFixTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/JavaCCExceptionAsEOFFixTest.java rename to freemarker-core/src/test/java/freemarker/template/JavaCCExceptionAsEOFFixTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/MistakenlyPublicImportAPIsTest.java b/freemarker-core/src/test/java/freemarker/template/MistakenlyPublicImportAPIsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/MistakenlyPublicImportAPIsTest.java rename to freemarker-core/src/test/java/freemarker/template/MistakenlyPublicImportAPIsTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/MistakenlyPublicMacroAPIsTest.java b/freemarker-core/src/test/java/freemarker/template/MistakenlyPublicMacroAPIsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/MistakenlyPublicMacroAPIsTest.java rename to freemarker-core/src/test/java/freemarker/template/MistakenlyPublicMacroAPIsTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/NullConfigurationTest.java b/freemarker-core/src/test/java/freemarker/template/NullConfigurationTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/NullConfigurationTest.java rename to freemarker-core/src/test/java/freemarker/template/NullConfigurationTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/StaticObjectWrappersTest.java b/freemarker-core/src/test/java/freemarker/template/StaticObjectWrappersTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/StaticObjectWrappersTest.java rename to freemarker-core/src/test/java/freemarker/template/StaticObjectWrappersTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/TemplateConstructorsTest.java b/freemarker-core/src/test/java/freemarker/template/TemplateConstructorsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/TemplateConstructorsTest.java rename to freemarker-core/src/test/java/freemarker/template/TemplateConstructorsTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/TemplateLanguageVersionTest.java b/freemarker-core/src/test/java/freemarker/template/TemplateLanguageVersionTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/TemplateLanguageVersionTest.java rename to freemarker-core/src/test/java/freemarker/template/TemplateLanguageVersionTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/TemplateLookupStrategyTest.java b/freemarker-core/src/test/java/freemarker/template/TemplateLookupStrategyTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/TemplateLookupStrategyTest.java rename to freemarker-core/src/test/java/freemarker/template/TemplateLookupStrategyTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/VersionTest.java b/freemarker-core/src/test/java/freemarker/template/VersionTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/VersionTest.java rename to freemarker-core/src/test/java/freemarker/template/VersionTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/utility/ConstantsTest.java b/freemarker-core/src/test/java/freemarker/template/utility/ConstantsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/utility/ConstantsTest.java rename to freemarker-core/src/test/java/freemarker/template/utility/ConstantsTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/utility/DateUtilTest.java b/freemarker-core/src/test/java/freemarker/template/utility/DateUtilTest.java similarity index 99% rename from freemarker-test/src/test/java/freemarker/template/utility/DateUtilTest.java rename to freemarker-core/src/test/java/freemarker/template/utility/DateUtilTest.java index 27243d9d1..af849485c 100644 --- a/freemarker-test/src/test/java/freemarker/template/utility/DateUtilTest.java +++ b/freemarker-core/src/test/java/freemarker/template/utility/DateUtilTest.java @@ -30,12 +30,16 @@ import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; + import freemarker.template.utility.DateUtil.CalendarFieldsToDateConverter; import freemarker.template.utility.DateUtil.DateParseException; import freemarker.template.utility.DateUtil.DateToISO8601CalendarFactory; import freemarker.template.utility.DateUtil.TrivialCalendarFieldsToDateConverter; import junit.framework.TestCase; +@RunWith(JUnit38ClassRunner.class) public class DateUtilTest extends TestCase { private final TimeZone originalDefaultTZ = TimeZone.getDefault(); diff --git a/freemarker-test/src/test/java/freemarker/template/utility/DeepUnwrapTest.java b/freemarker-core/src/test/java/freemarker/template/utility/DeepUnwrapTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/utility/DeepUnwrapTest.java rename to freemarker-core/src/test/java/freemarker/template/utility/DeepUnwrapTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/utility/NumberUtilTest.java b/freemarker-core/src/test/java/freemarker/template/utility/NumberUtilTest.java similarity index 98% rename from freemarker-test/src/test/java/freemarker/template/utility/NumberUtilTest.java rename to freemarker-core/src/test/java/freemarker/template/utility/NumberUtilTest.java index 3e13b6cae..307a7738f 100644 --- a/freemarker-test/src/test/java/freemarker/template/utility/NumberUtilTest.java +++ b/freemarker-core/src/test/java/freemarker/template/utility/NumberUtilTest.java @@ -23,9 +23,12 @@ import java.math.BigInteger; import org.junit.Test; +import org.junit.internal.runners.JUnit38ClassRunner; +import org.junit.runner.RunWith; import junit.framework.TestCase; +@RunWith(JUnit38ClassRunner.class) public class NumberUtilTest extends TestCase { @Test diff --git a/freemarker-test/src/test/java/freemarker/template/utility/StringUtilTest.java b/freemarker-core/src/test/java/freemarker/template/utility/StringUtilTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/utility/StringUtilTest.java rename to freemarker-core/src/test/java/freemarker/template/utility/StringUtilTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/utility/TemplateModelUtilTest.java b/freemarker-core/src/test/java/freemarker/template/utility/TemplateModelUtilTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/utility/TemplateModelUtilTest.java rename to freemarker-core/src/test/java/freemarker/template/utility/TemplateModelUtilTest.java diff --git a/freemarker-test/src/test/java/freemarker/test/MonitoredTemplateLoader.java b/freemarker-core/src/test/java/freemarker/test/MonitoredTemplateLoader.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/MonitoredTemplateLoader.java rename to freemarker-core/src/test/java/freemarker/test/MonitoredTemplateLoader.java diff --git a/freemarker-test/src/test/java/freemarker/test/RuntimeEnvironmentReporterTest.java b/freemarker-core/src/test/java/freemarker/test/RuntimeEnvironmentReporterTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/RuntimeEnvironmentReporterTest.java rename to freemarker-core/src/test/java/freemarker/test/RuntimeEnvironmentReporterTest.java diff --git a/freemarker-test/src/test/java/freemarker/test/TemplateTest.java b/freemarker-core/src/test/java/freemarker/test/TemplateTest.java similarity index 99% rename from freemarker-test/src/test/java/freemarker/test/TemplateTest.java rename to freemarker-core/src/test/java/freemarker/test/TemplateTest.java index b55eb62ab..a730b3e4d 100644 --- a/freemarker-test/src/test/java/freemarker/test/TemplateTest.java +++ b/freemarker-core/src/test/java/freemarker/test/TemplateTest.java @@ -45,11 +45,11 @@ import freemarker.template.Template; import freemarker.template.TemplateException; import freemarker.template.utility.StringUtil; -import freemarker.test.templatesuite.TemplateTestSuite; import freemarker.test.utility.TestUtil; /** - * Superclass of JUnit tests that process templates but aren't practical to implement via {@link TemplateTestSuite}. + * Superclass of JUnit tests that process templates but aren't practical to implement via + * {@code freemarker.test.templatesuite.TemplateTestSuite}. */ @Ignore public abstract class TemplateTest { diff --git a/freemarker-test/src/test/java/freemarker/test/TreeView.java b/freemarker-core/src/test/java/freemarker/test/TreeView.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/TreeView.java rename to freemarker-core/src/test/java/freemarker/test/TreeView.java diff --git a/freemarker-test/src/test/resources/freemarker/cache/test.ftl b/freemarker-core/src/test/resources/freemarker/cache/test.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/cache/test.ftl rename to freemarker-core/src/test/resources/freemarker/cache/test.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-1.ast b/freemarker-core/src/test/resources/freemarker/core/ast-1.ast similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-1.ast rename to freemarker-core/src/test/resources/freemarker/core/ast-1.ast diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-1.ftl b/freemarker-core/src/test/resources/freemarker/core/ast-1.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-1.ftl rename to freemarker-core/src/test/resources/freemarker/core/ast-1.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-assignments.ast b/freemarker-core/src/test/resources/freemarker/core/ast-assignments.ast similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-assignments.ast rename to freemarker-core/src/test/resources/freemarker/core/ast-assignments.ast diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-assignments.ftl b/freemarker-core/src/test/resources/freemarker/core/ast-assignments.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-assignments.ftl rename to freemarker-core/src/test/resources/freemarker/core/ast-assignments.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-builtins.ast b/freemarker-core/src/test/resources/freemarker/core/ast-builtins.ast similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-builtins.ast rename to freemarker-core/src/test/resources/freemarker/core/ast-builtins.ast diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-builtins.ftl b/freemarker-core/src/test/resources/freemarker/core/ast-builtins.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-builtins.ftl rename to freemarker-core/src/test/resources/freemarker/core/ast-builtins.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-lambda.ast b/freemarker-core/src/test/resources/freemarker/core/ast-lambda.ast similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-lambda.ast rename to freemarker-core/src/test/resources/freemarker/core/ast-lambda.ast diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-lambda.ftl b/freemarker-core/src/test/resources/freemarker/core/ast-lambda.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-lambda.ftl rename to freemarker-core/src/test/resources/freemarker/core/ast-lambda.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-locations.ast b/freemarker-core/src/test/resources/freemarker/core/ast-locations.ast similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-locations.ast rename to freemarker-core/src/test/resources/freemarker/core/ast-locations.ast diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-locations.ftl b/freemarker-core/src/test/resources/freemarker/core/ast-locations.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-locations.ftl rename to freemarker-core/src/test/resources/freemarker/core/ast-locations.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-mixedcontentsimplifications.ast b/freemarker-core/src/test/resources/freemarker/core/ast-mixedcontentsimplifications.ast similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-mixedcontentsimplifications.ast rename to freemarker-core/src/test/resources/freemarker/core/ast-mixedcontentsimplifications.ast diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-mixedcontentsimplifications.ftl b/freemarker-core/src/test/resources/freemarker/core/ast-mixedcontentsimplifications.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-mixedcontentsimplifications.ftl rename to freemarker-core/src/test/resources/freemarker/core/ast-mixedcontentsimplifications.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-multipleignoredchildren.ast b/freemarker-core/src/test/resources/freemarker/core/ast-multipleignoredchildren.ast similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-multipleignoredchildren.ast rename to freemarker-core/src/test/resources/freemarker/core/ast-multipleignoredchildren.ast diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-multipleignoredchildren.ftl b/freemarker-core/src/test/resources/freemarker/core/ast-multipleignoredchildren.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-multipleignoredchildren.ftl rename to freemarker-core/src/test/resources/freemarker/core/ast-multipleignoredchildren.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-nestedignoredchildren.ast b/freemarker-core/src/test/resources/freemarker/core/ast-nestedignoredchildren.ast similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-nestedignoredchildren.ast rename to freemarker-core/src/test/resources/freemarker/core/ast-nestedignoredchildren.ast diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-nestedignoredchildren.ftl b/freemarker-core/src/test/resources/freemarker/core/ast-nestedignoredchildren.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-nestedignoredchildren.ftl rename to freemarker-core/src/test/resources/freemarker/core/ast-nestedignoredchildren.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-range.ast b/freemarker-core/src/test/resources/freemarker/core/ast-range.ast similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-range.ast rename to freemarker-core/src/test/resources/freemarker/core/ast-range.ast diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-range.ftl b/freemarker-core/src/test/resources/freemarker/core/ast-range.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-range.ftl rename to freemarker-core/src/test/resources/freemarker/core/ast-range.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-strlitinterpolation.ast b/freemarker-core/src/test/resources/freemarker/core/ast-strlitinterpolation.ast similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-strlitinterpolation.ast rename to freemarker-core/src/test/resources/freemarker/core/ast-strlitinterpolation.ast diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-strlitinterpolation.ftl b/freemarker-core/src/test/resources/freemarker/core/ast-strlitinterpolation.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-strlitinterpolation.ftl rename to freemarker-core/src/test/resources/freemarker/core/ast-strlitinterpolation.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-whitespacestripping.ast b/freemarker-core/src/test/resources/freemarker/core/ast-whitespacestripping.ast similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-whitespacestripping.ast rename to freemarker-core/src/test/resources/freemarker/core/ast-whitespacestripping.ast diff --git a/freemarker-test/src/test/resources/freemarker/core/ast-whitespacestripping.ftl b/freemarker-core/src/test/resources/freemarker/core/ast-whitespacestripping.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/ast-whitespacestripping.ftl rename to freemarker-core/src/test/resources/freemarker/core/ast-whitespacestripping.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/cano-assignments.ftl b/freemarker-core/src/test/resources/freemarker/core/cano-assignments.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/cano-assignments.ftl rename to freemarker-core/src/test/resources/freemarker/core/cano-assignments.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/cano-assignments.ftl.out b/freemarker-core/src/test/resources/freemarker/core/cano-assignments.ftl.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/cano-assignments.ftl.out rename to freemarker-core/src/test/resources/freemarker/core/cano-assignments.ftl.out diff --git a/freemarker-test/src/test/resources/freemarker/core/cano-builtins.ftl b/freemarker-core/src/test/resources/freemarker/core/cano-builtins.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/cano-builtins.ftl rename to freemarker-core/src/test/resources/freemarker/core/cano-builtins.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/cano-builtins.ftl.out b/freemarker-core/src/test/resources/freemarker/core/cano-builtins.ftl.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/cano-builtins.ftl.out rename to freemarker-core/src/test/resources/freemarker/core/cano-builtins.ftl.out diff --git a/freemarker-test/src/test/resources/freemarker/core/cano-identifier-escaping.ftl b/freemarker-core/src/test/resources/freemarker/core/cano-identifier-escaping.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/cano-identifier-escaping.ftl rename to freemarker-core/src/test/resources/freemarker/core/cano-identifier-escaping.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/cano-identifier-escaping.ftl.out b/freemarker-core/src/test/resources/freemarker/core/cano-identifier-escaping.ftl.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/cano-identifier-escaping.ftl.out rename to freemarker-core/src/test/resources/freemarker/core/cano-identifier-escaping.ftl.out diff --git a/freemarker-test/src/test/resources/freemarker/core/cano-macros.ftl b/freemarker-core/src/test/resources/freemarker/core/cano-macros.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/cano-macros.ftl rename to freemarker-core/src/test/resources/freemarker/core/cano-macros.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/cano-macros.ftl.out b/freemarker-core/src/test/resources/freemarker/core/cano-macros.ftl.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/cano-macros.ftl.out rename to freemarker-core/src/test/resources/freemarker/core/cano-macros.ftl.out diff --git a/freemarker-test/src/test/resources/freemarker/core/cano-strlitinterpolation.ftl b/freemarker-core/src/test/resources/freemarker/core/cano-strlitinterpolation.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/cano-strlitinterpolation.ftl rename to freemarker-core/src/test/resources/freemarker/core/cano-strlitinterpolation.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/cano-strlitinterpolation.ftl.out b/freemarker-core/src/test/resources/freemarker/core/cano-strlitinterpolation.ftl.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/cano-strlitinterpolation.ftl.out rename to freemarker-core/src/test/resources/freemarker/core/cano-strlitinterpolation.ftl.out diff --git a/freemarker-test/src/test/resources/freemarker/core/encodingOverride-ISO-8859-1.ftl b/freemarker-core/src/test/resources/freemarker/core/encodingOverride-ISO-8859-1.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/encodingOverride-ISO-8859-1.ftl rename to freemarker-core/src/test/resources/freemarker/core/encodingOverride-ISO-8859-1.ftl diff --git a/freemarker-test/src/test/resources/freemarker/core/encodingOverride-UTF-8.ftl b/freemarker-core/src/test/resources/freemarker/core/encodingOverride-UTF-8.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/core/encodingOverride-UTF-8.ftl rename to freemarker-core/src/test/resources/freemarker/core/encodingOverride-UTF-8.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/dom/DOMSiblingTest.xml b/freemarker-core/src/test/resources/freemarker/ext/dom/DOMSiblingTest.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/dom/DOMSiblingTest.xml rename to freemarker-core/src/test/resources/freemarker/ext/dom/DOMSiblingTest.xml diff --git a/freemarker-test/src/test/resources/freemarker/manual/AbsoluteTemplateNameBIExample-foo.ftl b/freemarker-core/src/test/resources/freemarker/manual/AbsoluteTemplateNameBIExample-foo.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AbsoluteTemplateNameBIExample-foo.ftl rename to freemarker-core/src/test/resources/freemarker/manual/AbsoluteTemplateNameBIExample-foo.ftl diff --git a/freemarker-test/src/test/resources/freemarker/manual/AbsoluteTemplateNameBIExample-lib.ftl b/freemarker-core/src/test/resources/freemarker/manual/AbsoluteTemplateNameBIExample-lib.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AbsoluteTemplateNameBIExample-lib.ftl rename to freemarker-core/src/test/resources/freemarker/manual/AbsoluteTemplateNameBIExample-lib.ftl diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-capture.ftlh b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-capture.ftlh similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-capture.ftlh rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-capture.ftlh diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-capture.ftlh.out b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-capture.ftlh.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-capture.ftlh.out rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-capture.ftlh.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-convert.ftlh b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-convert.ftlh similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-convert.ftlh rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-convert.ftlh diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-convert.ftlh.out b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-convert.ftlh.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-convert.ftlh.out rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-convert.ftlh.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-convert2.ftl b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-convert2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-convert2.ftl rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-convert2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-convert2.ftl.out b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-convert2.ftl.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-convert2.ftl.out rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-convert2.ftl.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-infoBox.ftlh b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-infoBox.ftlh similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-infoBox.ftlh rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-infoBox.ftlh diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-infoBox.ftlh.out b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-infoBox.ftlh.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-infoBox.ftlh.out rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-infoBox.ftlh.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-markup.ftlh b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-markup.ftlh similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-markup.ftlh rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-markup.ftlh diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-markup.ftlh.out b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-markup.ftlh.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-markup.ftlh.out rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-markup.ftlh.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-stringConcat.ftlh b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-stringConcat.ftlh similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-stringConcat.ftlh rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-stringConcat.ftlh diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-stringConcat.ftlh.out b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-stringConcat.ftlh.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-stringConcat.ftlh.out rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-stringConcat.ftlh.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral.ftlh b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral.ftlh similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral.ftlh rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral.ftlh diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral.ftlh.out b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral.ftlh.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral.ftlh.out rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral.ftlh.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral2.ftlh b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral2.ftlh similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral2.ftlh rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral2.ftlh diff --git a/freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral2.ftlh.out b/freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral2.ftlh.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral2.ftlh.out rename to freemarker-core/src/test/resources/freemarker/manual/AutoEscapingExample-stringLiteral2.ftlh.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/ConfigureOutputFormatExamples1.properties b/freemarker-core/src/test/resources/freemarker/manual/ConfigureOutputFormatExamples1.properties similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/ConfigureOutputFormatExamples1.properties rename to freemarker-core/src/test/resources/freemarker/manual/ConfigureOutputFormatExamples1.properties diff --git a/freemarker-test/src/test/resources/freemarker/manual/ConfigureOutputFormatExamples2.properties b/freemarker-core/src/test/resources/freemarker/manual/ConfigureOutputFormatExamples2.properties similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/ConfigureOutputFormatExamples2.properties rename to freemarker-core/src/test/resources/freemarker/manual/ConfigureOutputFormatExamples2.properties diff --git a/freemarker-test/src/test/resources/freemarker/manual/CustomFormatsExample-alias1.ftlh b/freemarker-core/src/test/resources/freemarker/manual/CustomFormatsExample-alias1.ftlh similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/CustomFormatsExample-alias1.ftlh rename to freemarker-core/src/test/resources/freemarker/manual/CustomFormatsExample-alias1.ftlh diff --git a/freemarker-test/src/test/resources/freemarker/manual/CustomFormatsExample-alias1.ftlh.out b/freemarker-core/src/test/resources/freemarker/manual/CustomFormatsExample-alias1.ftlh.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/CustomFormatsExample-alias1.ftlh.out rename to freemarker-core/src/test/resources/freemarker/manual/CustomFormatsExample-alias1.ftlh.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/CustomFormatsExample-alias2.ftlh b/freemarker-core/src/test/resources/freemarker/manual/CustomFormatsExample-alias2.ftlh similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/CustomFormatsExample-alias2.ftlh rename to freemarker-core/src/test/resources/freemarker/manual/CustomFormatsExample-alias2.ftlh diff --git a/freemarker-test/src/test/resources/freemarker/manual/CustomFormatsExample-alias2.ftlh.out b/freemarker-core/src/test/resources/freemarker/manual/CustomFormatsExample-alias2.ftlh.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/CustomFormatsExample-alias2.ftlh.out rename to freemarker-core/src/test/resources/freemarker/manual/CustomFormatsExample-alias2.ftlh.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/CustomFormatsExample-modelAware.ftlh b/freemarker-core/src/test/resources/freemarker/manual/CustomFormatsExample-modelAware.ftlh similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/CustomFormatsExample-modelAware.ftlh rename to freemarker-core/src/test/resources/freemarker/manual/CustomFormatsExample-modelAware.ftlh diff --git a/freemarker-test/src/test/resources/freemarker/manual/CustomFormatsExample-modelAware.ftlh.out b/freemarker-core/src/test/resources/freemarker/manual/CustomFormatsExample-modelAware.ftlh.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/CustomFormatsExample-modelAware.ftlh.out rename to freemarker-core/src/test/resources/freemarker/manual/CustomFormatsExample-modelAware.ftlh.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/TemplateConfigurationExamples1.properties b/freemarker-core/src/test/resources/freemarker/manual/TemplateConfigurationExamples1.properties similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/TemplateConfigurationExamples1.properties rename to freemarker-core/src/test/resources/freemarker/manual/TemplateConfigurationExamples1.properties diff --git a/freemarker-test/src/test/resources/freemarker/manual/TemplateConfigurationExamples2.properties b/freemarker-core/src/test/resources/freemarker/manual/TemplateConfigurationExamples2.properties similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/TemplateConfigurationExamples2.properties rename to freemarker-core/src/test/resources/freemarker/manual/TemplateConfigurationExamples2.properties diff --git a/freemarker-test/src/test/resources/freemarker/manual/TemplateConfigurationExamples3.properties b/freemarker-core/src/test/resources/freemarker/manual/TemplateConfigurationExamples3.properties similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/TemplateConfigurationExamples3.properties rename to freemarker-core/src/test/resources/freemarker/manual/TemplateConfigurationExamples3.properties diff --git a/freemarker-test/src/test/resources/freemarker/manual/WithArgsExamples-usingWithArgsSpecialVariable.ftl b/freemarker-core/src/test/resources/freemarker/manual/WithArgsExamples-usingWithArgsSpecialVariable.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/WithArgsExamples-usingWithArgsSpecialVariable.ftl rename to freemarker-core/src/test/resources/freemarker/manual/WithArgsExamples-usingWithArgsSpecialVariable.ftl diff --git a/freemarker-test/src/test/resources/freemarker/manual/WithArgsExamples-usingWithArgsSpecialVariable.ftl.out b/freemarker-core/src/test/resources/freemarker/manual/WithArgsExamples-usingWithArgsSpecialVariable.ftl.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/WithArgsExamples-usingWithArgsSpecialVariable.ftl.out rename to freemarker-core/src/test/resources/freemarker/manual/WithArgsExamples-usingWithArgsSpecialVariable.ftl.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/WithArgsLastExamples.ftl b/freemarker-core/src/test/resources/freemarker/manual/WithArgsLastExamples.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/WithArgsLastExamples.ftl rename to freemarker-core/src/test/resources/freemarker/manual/WithArgsLastExamples.ftl diff --git a/freemarker-test/src/test/resources/freemarker/manual/WithArgsLastExamples.ftl.out b/freemarker-core/src/test/resources/freemarker/manual/WithArgsLastExamples.ftl.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/WithArgsLastExamples.ftl.out rename to freemarker-core/src/test/resources/freemarker/manual/WithArgsLastExamples.ftl.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-foo.ftl b/freemarker-core/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-foo.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-foo.ftl rename to freemarker-core/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-foo.ftl diff --git a/freemarker-test/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-main.ftl b/freemarker-core/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-main.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-main.ftl rename to freemarker-core/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-main.ftl diff --git a/freemarker-test/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-main.ftl.out b/freemarker-core/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-main.ftl.out similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-main.ftl.out rename to freemarker-core/src/test/resources/freemarker/manual/dir/AbsoluteTemplateNameBIExample-main.ftl.out diff --git a/freemarker-test/src/test/resources/freemarker/manual/test.ftlh b/freemarker-core/src/test/resources/freemarker/manual/test.ftlh similarity index 100% rename from freemarker-test/src/test/resources/freemarker/manual/test.ftlh rename to freemarker-core/src/test/resources/freemarker/manual/test.ftlh diff --git a/freemarker-test/src/test/resources/freemarker/template/toCache1.ftl b/freemarker-core/src/test/resources/freemarker/template/toCache1.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/template/toCache1.ftl rename to freemarker-core/src/test/resources/freemarker/template/toCache1.ftl diff --git a/freemarker-test/src/test/resources/freemarker/template/toCache2.ftl b/freemarker-core/src/test/resources/freemarker/template/toCache2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/template/toCache2.ftl rename to freemarker-core/src/test/resources/freemarker/template/toCache2.ftl diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperMiscTest.java b/freemarker-core8/src/test/java/freemarker/ext/beans/BeansWrapperMiscTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperMiscTest.java rename to freemarker-core8/src/test/java/freemarker/ext/beans/BeansWrapperMiscTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BridgeMethodsBean.java b/freemarker-core8/src/test/java/freemarker/ext/beans/BridgeMethodsBean.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/BridgeMethodsBean.java rename to freemarker-core8/src/test/java/freemarker/ext/beans/BridgeMethodsBean.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BridgeMethodsBeanBase.java b/freemarker-core8/src/test/java/freemarker/ext/beans/BridgeMethodsBeanBase.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/BridgeMethodsBeanBase.java rename to freemarker-core8/src/test/java/freemarker/ext/beans/BridgeMethodsBeanBase.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/Java8BeansWrapperBridgeMethodsTest.java b/freemarker-core8/src/test/java/freemarker/ext/beans/Java8BeansWrapperBridgeMethodsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/Java8BeansWrapperBridgeMethodsTest.java rename to freemarker-core8/src/test/java/freemarker/ext/beans/Java8BeansWrapperBridgeMethodsTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/Java8BeansWrapperTest.java b/freemarker-core8/src/test/java/freemarker/ext/beans/Java8BeansWrapperTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/Java8BeansWrapperTest.java rename to freemarker-core8/src/test/java/freemarker/ext/beans/Java8BeansWrapperTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBean.java b/freemarker-core8/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBean.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBean.java rename to freemarker-core8/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBean.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBean2.java b/freemarker-core8/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBean2.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBean2.java rename to freemarker-core8/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBean2.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBeanBase.java b/freemarker-core8/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBeanBase.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBeanBase.java rename to freemarker-core8/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBeanBase.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBeanBase2.java b/freemarker-core8/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBeanBase2.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBeanBase2.java rename to freemarker-core8/src/test/java/freemarker/ext/beans/Java8BridgeMethodsWithDefaultMethodBeanBase2.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/Java8DefaultMethodsBean.java b/freemarker-core8/src/test/java/freemarker/ext/beans/Java8DefaultMethodsBean.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/Java8DefaultMethodsBean.java rename to freemarker-core8/src/test/java/freemarker/ext/beans/Java8DefaultMethodsBean.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/Java8DefaultMethodsBeanBase.java b/freemarker-core8/src/test/java/freemarker/ext/beans/Java8DefaultMethodsBeanBase.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/Java8DefaultMethodsBeanBase.java rename to freemarker-core8/src/test/java/freemarker/ext/beans/Java8DefaultMethodsBeanBase.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/JspTestFreemarkerServlet.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/JspTestFreemarkerServlet.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/JspTestFreemarkerServlet.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/JspTestFreemarkerServlet.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/JspTestFreemarkerServletWithDefaultOverride.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/JspTestFreemarkerServletWithDefaultOverride.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/JspTestFreemarkerServletWithDefaultOverride.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/JspTestFreemarkerServletWithDefaultOverride.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/RealServletContainertTest.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/RealServletContainertTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/RealServletContainertTest.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/RealServletContainertTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/TLDParsingTest.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/TLDParsingTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/TLDParsingTest.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/TLDParsingTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/TaglibMethodUtilTest.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/TaglibMethodUtilTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/TaglibMethodUtilTest.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/TaglibMethodUtilTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/AttributeAccessorTag.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/AttributeAccessorTag.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/AttributeAccessorTag.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/AttributeAccessorTag.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/AttributeInfoTag.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/AttributeInfoTag.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/AttributeInfoTag.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/AttributeInfoTag.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/EnclosingClass.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/EnclosingClass.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/EnclosingClass.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/EnclosingClass.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/GetAndSetTag.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/GetAndSetTag.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/GetAndSetTag.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/GetAndSetTag.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestFunctions.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestFunctions.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestFunctions.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestFunctions.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag2.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag2.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag2.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag2.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag3.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag3.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag3.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestSimpleTag3.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag2.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag2.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag2.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag2.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag3.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag3.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag3.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/taglibmembers/TestTag3.java diff --git a/freemarker-test/src/test/java/freemarker/ext/jsp/webapps/config/WebappLocalFreemarkerServlet.java b/freemarker-jsp21/src/test/java/freemarker/ext/jsp/webapps/config/WebappLocalFreemarkerServlet.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/jsp/webapps/config/WebappLocalFreemarkerServlet.java rename to freemarker-jsp21/src/test/java/freemarker/ext/jsp/webapps/config/WebappLocalFreemarkerServlet.java diff --git a/freemarker-test/src/test/java/freemarker/ext/servlet/FreemarkerServletTest.java b/freemarker-jsp21/src/test/java/freemarker/ext/servlet/FreemarkerServletTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/servlet/FreemarkerServletTest.java rename to freemarker-jsp21/src/test/java/freemarker/ext/servlet/FreemarkerServletTest.java diff --git a/freemarker-test/src/test/java/freemarker/ext/servlet/InitParamParserTest.java b/freemarker-jsp21/src/test/java/freemarker/ext/servlet/InitParamParserTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/servlet/InitParamParserTest.java rename to freemarker-jsp21/src/test/java/freemarker/ext/servlet/InitParamParserTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/MockServletContext.java b/freemarker-jsp21/src/test/java/freemarker/template/MockServletContext.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/MockServletContext.java rename to freemarker-jsp21/src/test/java/freemarker/template/MockServletContext.java diff --git a/freemarker-test/src/test/java/freemarker/template/TemplateNotFoundMessageTest.java b/freemarker-jsp21/src/test/java/freemarker/template/TemplateNotFoundMessageTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/TemplateNotFoundMessageTest.java rename to freemarker-jsp21/src/test/java/freemarker/template/TemplateNotFoundMessageTest.java diff --git a/freemarker-test/src/test/java/freemarker/test/servlet/DefaultModel2TesterAction.java b/freemarker-jsp21/src/test/java/freemarker/test/servlet/DefaultModel2TesterAction.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/servlet/DefaultModel2TesterAction.java rename to freemarker-jsp21/src/test/java/freemarker/test/servlet/DefaultModel2TesterAction.java diff --git a/freemarker-test/src/test/java/freemarker/test/servlet/Model2Action.java b/freemarker-jsp21/src/test/java/freemarker/test/servlet/Model2Action.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/servlet/Model2Action.java rename to freemarker-jsp21/src/test/java/freemarker/test/servlet/Model2Action.java diff --git a/freemarker-test/src/test/java/freemarker/test/servlet/Model2TesterServlet.java b/freemarker-jsp21/src/test/java/freemarker/test/servlet/Model2TesterServlet.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/servlet/Model2TesterServlet.java rename to freemarker-jsp21/src/test/java/freemarker/test/servlet/Model2TesterServlet.java diff --git a/freemarker-test/src/test/java/freemarker/test/servlet/WebAppTestCase.java b/freemarker-jsp21/src/test/java/freemarker/test/servlet/WebAppTestCase.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/servlet/WebAppTestCase.java rename to freemarker-jsp21/src/test/java/freemarker/test/servlet/WebAppTestCase.java diff --git a/freemarker-test/src/test/resources/META-INF/tldDiscovery MetaInfTldSources-1.tld b/freemarker-jsp21/src/test/resources/META-INF/tldDiscovery MetaInfTldSources-1.tld similarity index 100% rename from freemarker-test/src/test/resources/META-INF/tldDiscovery MetaInfTldSources-1.tld rename to freemarker-jsp21/src/test/resources/META-INF/tldDiscovery MetaInfTldSources-1.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/TLDParsingTest.tld b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/TLDParsingTest.tld similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/TLDParsingTest.tld rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/TLDParsingTest.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/templates/classpath-test.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/templates/classpath-test.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/templates/classpath-test.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/templates/classpath-test.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/tldDiscovery-ClassPathTlds-1.tld b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/tldDiscovery-ClassPathTlds-1.tld similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/tldDiscovery-ClassPathTlds-1.tld rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/tldDiscovery-ClassPathTlds-1.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/tldDiscovery-ClassPathTlds-2.tld b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/tldDiscovery-ClassPathTlds-2.tld similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/tldDiscovery-ClassPathTlds-2.tld rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/tldDiscovery-ClassPathTlds-2.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/CONTENTS.txt b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/CONTENTS.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/CONTENTS.txt rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/CONTENTS.txt diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/el-function-tag-name-clash.tld b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/el-function-tag-name-clash.tld similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/el-function-tag-name-clash.tld rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/el-function-tag-name-clash.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/el-functions.tld b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/el-functions.tld similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/el-functions.tld rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/el-functions.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes-2.3.0.txt b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes-2.3.0.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes-2.3.0.txt rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes-2.3.0.txt diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes-2.3.22-future.txt b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes-2.3.22-future.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes-2.3.22-future.txt rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes-2.3.22-future.txt diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes.txt b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes.txt rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/attributes.txt diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/customTags1.txt b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/customTags1.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/customTags1.txt rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/expected/customTags1.txt diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/test.tld b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/test.tld similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/test.tld rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/test.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/web.xml b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/web.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/web.xml rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/WEB-INF/web.xml diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/attributes.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/attributes.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/attributes.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/attributes.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/customELFunctions1.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/customELFunctions1.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/customELFunctions1.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/customELFunctions1.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/customELFunctions1.jsp b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/customELFunctions1.jsp similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/customELFunctions1.jsp rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/customELFunctions1.jsp diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/customTags1.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/customTags1.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/customTags1.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/customTags1.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/elFunctionsTagNameClash.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/elFunctionsTagNameClash.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/elFunctionsTagNameClash.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/elFunctionsTagNameClash.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/elFunctionsTagNameClash.jsp b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/elFunctionsTagNameClash.jsp similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/elFunctionsTagNameClash.jsp rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/elFunctionsTagNameClash.jsp diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial-jstl-@Ignore.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial-jstl-@Ignore.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial-jstl-@Ignore.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial-jstl-@Ignore.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial.jsp b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial.jsp similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial.jsp rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/basic/trivial.jsp diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/CONTENTS.txt b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/CONTENTS.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/CONTENTS.txt rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/CONTENTS.txt diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/classes/sub/test.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/classes/sub/test.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/classes/sub/test.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/classes/sub/test.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/classes/test.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/classes/test.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/classes/test.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/classes/test.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/lib/templates.jar/sub/test2.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/lib/templates.jar/sub/test2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/lib/templates.jar/sub/test2.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/lib/templates.jar/sub/test2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/templates/test.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/templates/test.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/templates/test.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/templates/test.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/web.xml b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/web.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/web.xml rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/WEB-INF/web.xml diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/test.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/test.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/config/test.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/config/test.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/CONTENTS.txt b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/CONTENTS.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/CONTENTS.txt rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/CONTENTS.txt diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/WEB-INF/web.xml b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/WEB-INF/web.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/WEB-INF/web.xml rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/WEB-INF/web.xml diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-parsetime.ftlnv b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-parsetime.ftlnv similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-parsetime.ftlnv rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-parsetime.ftlnv diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-parsetime.jsp b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-parsetime.jsp similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-parsetime.jsp rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-parsetime.jsp diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-runtime.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-runtime.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-runtime.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-runtime.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-runtime.jsp b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-runtime.jsp similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-runtime.jsp rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/failing-runtime.jsp diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/not-failing.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/not-failing.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/errors/not-failing.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/errors/not-failing.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/CONTENTS.txt b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/CONTENTS.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/CONTENTS.txt rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/CONTENTS.txt diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/WEB-INF/templates/test.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/WEB-INF/templates/test.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/WEB-INF/templates/test.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/WEB-INF/templates/test.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/WEB-INF/web.xml b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/WEB-INF/web.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/WEB-INF/web.xml rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/multipleLoaders/WEB-INF/web.xml diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/CONTENTS.txt b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/CONTENTS.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/CONTENTS.txt rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/CONTENTS.txt diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/subdir/test-rel.txt b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/subdir/test-rel.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/subdir/test-rel.txt rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/subdir/test-rel.txt diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/test-noClasspath.txt b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/test-noClasspath.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/test-noClasspath.txt rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/test-noClasspath.txt diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/test1.txt b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/test1.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/test1.txt rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/expected/test1.txt diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/fmtesttag 2.tld b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/fmtesttag 2.tld similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/fmtesttag 2.tld rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/fmtesttag 2.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/fmtesttag4.tld b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/fmtesttag4.tld similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/fmtesttag4.tld rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/fmtesttag4.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/lib/taglib-foo.jar/META-INF/foo bar.tld b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/lib/taglib-foo.jar/META-INF/foo bar.tld similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/lib/taglib-foo.jar/META-INF/foo bar.tld rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/lib/taglib-foo.jar/META-INF/foo bar.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/subdir-with-tld/fmtesttag3.tld b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/subdir-with-tld/fmtesttag3.tld similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/subdir-with-tld/fmtesttag3.tld rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/subdir-with-tld/fmtesttag3.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/taglib 2.jar/META-INF/taglib.tld b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/taglib 2.jar/META-INF/taglib.tld similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/taglib 2.jar/META-INF/taglib.tld rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/taglib 2.jar/META-INF/taglib.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/web.xml b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/web.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/web.xml rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/WEB-INF/web.xml diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/not-auto-scanned/fmtesttag.tld b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/not-auto-scanned/fmtesttag.tld similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/not-auto-scanned/fmtesttag.tld rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/not-auto-scanned/fmtesttag.tld diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/subdir/test-rel.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/subdir/test-rel.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/subdir/test-rel.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/subdir/test-rel.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/test-noClasspath.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/test-noClasspath.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/test-noClasspath.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/test-noClasspath.ftl diff --git a/freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/test1.ftl b/freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/test1.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/test1.ftl rename to freemarker-jsp21/src/test/resources/freemarker/ext/jsp/webapps/tldDiscovery/test1.ftl diff --git a/freemarker-test/src/test/java/freemarker/test/servlet/web.xml b/freemarker-jsp21/src/test/resources/freemarker/test/servlet/web.xml similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/servlet/web.xml rename to freemarker-jsp21/src/test/resources/freemarker/test/servlet/web.xml diff --git a/freemarker-test/src/test/java/freemarker/core/ObjectBuilderSettingsTest.java b/freemarker-jython25/src/test/java/freemarker/core/ObjectBuilderSettingsTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/ObjectBuilderSettingsTest.java rename to freemarker-jython25/src/test/java/freemarker/core/ObjectBuilderSettingsTest.java diff --git a/freemarker-test/src/test/java/freemarker/core/subpkg/PackageVisibleAll.java b/freemarker-jython25/src/test/java/freemarker/core/subpkg/PackageVisibleAll.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/subpkg/PackageVisibleAll.java rename to freemarker-jython25/src/test/java/freemarker/core/subpkg/PackageVisibleAll.java diff --git a/freemarker-test/src/test/java/freemarker/core/subpkg/PackageVisibleAllWithBuilder.java b/freemarker-jython25/src/test/java/freemarker/core/subpkg/PackageVisibleAllWithBuilder.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/subpkg/PackageVisibleAllWithBuilder.java rename to freemarker-jython25/src/test/java/freemarker/core/subpkg/PackageVisibleAllWithBuilder.java diff --git a/freemarker-test/src/test/java/freemarker/core/subpkg/PackageVisibleAllWithBuilderBuilder.java b/freemarker-jython25/src/test/java/freemarker/core/subpkg/PackageVisibleAllWithBuilderBuilder.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/subpkg/PackageVisibleAllWithBuilderBuilder.java rename to freemarker-jython25/src/test/java/freemarker/core/subpkg/PackageVisibleAllWithBuilderBuilder.java diff --git a/freemarker-test/src/test/java/freemarker/core/subpkg/PackageVisibleWithPublicConstructor.java b/freemarker-jython25/src/test/java/freemarker/core/subpkg/PackageVisibleWithPublicConstructor.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/subpkg/PackageVisibleWithPublicConstructor.java rename to freemarker-jython25/src/test/java/freemarker/core/subpkg/PackageVisibleWithPublicConstructor.java diff --git a/freemarker-test/src/test/java/freemarker/core/subpkg/PublicAll.java b/freemarker-jython25/src/test/java/freemarker/core/subpkg/PublicAll.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/subpkg/PublicAll.java rename to freemarker-jython25/src/test/java/freemarker/core/subpkg/PublicAll.java diff --git a/freemarker-test/src/test/java/freemarker/core/subpkg/PublicWithMixedConstructors.java b/freemarker-jython25/src/test/java/freemarker/core/subpkg/PublicWithMixedConstructors.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/subpkg/PublicWithMixedConstructors.java rename to freemarker-jython25/src/test/java/freemarker/core/subpkg/PublicWithMixedConstructors.java diff --git a/freemarker-test/src/test/java/freemarker/core/subpkg/PublicWithPackageVisibleConstructor.java b/freemarker-jython25/src/test/java/freemarker/core/subpkg/PublicWithPackageVisibleConstructor.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/subpkg/PublicWithPackageVisibleConstructor.java rename to freemarker-jython25/src/test/java/freemarker/core/subpkg/PublicWithPackageVisibleConstructor.java diff --git a/freemarker-test/src/test/java/freemarker/template/DefaultObjectWrapperTest.java b/freemarker-jython25/src/test/java/freemarker/template/DefaultObjectWrapperTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/DefaultObjectWrapperTest.java rename to freemarker-jython25/src/test/java/freemarker/template/DefaultObjectWrapperTest.java diff --git a/freemarker-test/src/test/java/freemarker/template/SimpleObjectWrapperTest.java b/freemarker-jython25/src/test/java/freemarker/template/SimpleObjectWrapperTest.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/template/SimpleObjectWrapperTest.java rename to freemarker-jython25/src/test/java/freemarker/template/SimpleObjectWrapperTest.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/TemplateTestCase.java b/freemarker-jython25/src/test/java/freemarker/test/templatesuite/TemplateTestCase.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/TemplateTestCase.java rename to freemarker-jython25/src/test/java/freemarker/test/templatesuite/TemplateTestCase.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/TemplateTestSuite.java b/freemarker-jython25/src/test/java/freemarker/test/templatesuite/TemplateTestSuite.java similarity index 99% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/TemplateTestSuite.java rename to freemarker-jython25/src/test/java/freemarker/test/templatesuite/TemplateTestSuite.java index 52435d1a3..1fd83e5c6 100644 --- a/freemarker-test/src/test/java/freemarker/test/templatesuite/TemplateTestSuite.java +++ b/freemarker-jython25/src/test/java/freemarker/test/templatesuite/TemplateTestSuite.java @@ -32,6 +32,8 @@ import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; +import org.junit.runner.RunWith; +import org.junit.runners.AllTests; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -53,6 +55,7 @@ * If you only want to run certain tests, you can specify a regular expression for * the test name in the {@link #TEST_FILTER_PROPERTY_NAME} system property. */ +@RunWith(AllTests.class) public class TemplateTestSuite extends TestSuite { private static final String ELEM_TEST_CASE = "testCase"; diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/package.html b/freemarker-jython25/src/test/java/freemarker/test/templatesuite/package.html similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/package.html rename to freemarker-jython25/src/test/java/freemarker/test/templatesuite/package.html diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/arithmetic.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/arithmetic.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/arithmetic.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/arithmetic.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/bean-maps.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/bean-maps.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/bean-maps.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/bean-maps.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/beans.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/beans.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/beans.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/beans.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/boolean-formatting.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/boolean-formatting.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/boolean-formatting.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/boolean-formatting.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/boolean.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/boolean.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/boolean.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/boolean.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/charset-in-header.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/charset-in-header.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/charset-in-header.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/charset-in-header.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/classic-compatible.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/classic-compatible.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/classic-compatible.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/classic-compatible.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/comment.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/comment.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/comment.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/comment.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/comparisons.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/comparisons.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/comparisons.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/comparisons.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/compress.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/compress.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/compress.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/compress.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/dateformat-java.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/dateformat-java.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/dateformat-java.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/dateformat-java.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/default-xmlns.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/default-xmlns.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/default-xmlns.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/default-xmlns.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/default.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/default.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/default.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/default.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/encoding-builtins-ici-2.3.20.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/encoding-builtins-ici-2.3.20.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/encoding-builtins-ici-2.3.20.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/encoding-builtins-ici-2.3.20.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/encoding-builtins.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/encoding-builtins.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/encoding-builtins.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/encoding-builtins.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/escapes.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/escapes.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/escapes.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/escapes.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/exception.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/exception.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/exception.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/exception.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/exception2.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/exception2.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/exception2.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/exception2.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/exception3.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/exception3.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/exception3.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/exception3.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/exthash.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/exthash.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/exthash.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/exthash.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/hashconcat.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/hashconcat.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/hashconcat.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/hashconcat.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/hashliteral.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/hashliteral.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/hashliteral.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/hashliteral.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/helloworld.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/helloworld.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/helloworld.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/helloworld.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/identifier-escaping.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/identifier-escaping.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/identifier-escaping.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/identifier-escaping.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/identifier-non-ascii.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/identifier-non-ascii.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/identifier-non-ascii.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/identifier-non-ascii.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/if.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/if.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/if.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/if.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/import.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/import.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/import.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/import.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/include.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/include.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/include.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/include.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/include2.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/include2.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/include2.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/include2.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/interpret.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/interpret.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/interpret.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/interpret.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/iterators.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/iterators.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/iterators.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/iterators.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/lastcharacter.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/lastcharacter.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/lastcharacter.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/lastcharacter.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/list-bis.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/list-bis.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/list-bis.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/list-bis.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/list.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/list.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/list.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/list.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/list2.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/list2.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/list2.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/list2.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/list3.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/list3.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/list3.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/list3.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/listhash.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/listhash.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/listhash.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/listhash.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/listhashliteral-ici-2.3.20.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/listhashliteral-ici-2.3.20.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/listhashliteral-ici-2.3.20.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/listhashliteral-ici-2.3.20.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/listhashliteral-ici-2.3.21.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/listhashliteral-ici-2.3.21.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/listhashliteral-ici-2.3.21.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/listhashliteral-ici-2.3.21.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/listliteral.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/listliteral.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/listliteral.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/listliteral.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/localization.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/localization.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/localization.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/localization.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/logging.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/logging.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/logging.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/logging.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/loopvariable.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/loopvariable.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/loopvariable.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/loopvariable.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/macros-return.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/macros-return.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/macros-return.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/macros-return.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/macros.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/macros.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/macros.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/macros.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/macros2.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/macros2.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/macros2.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/macros2.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/multimodels.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/multimodels.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/multimodels.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/multimodels.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/nested.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/nested.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/nested.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/nested.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/new-allowsnothing.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/new-allowsnothing.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/new-allowsnothing.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/new-allowsnothing.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/new-defaultresolver.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/new-defaultresolver.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/new-defaultresolver.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/new-defaultresolver.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/new-optin.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/new-optin.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/new-optin.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/new-optin.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/new-safer.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/new-safer.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/new-safer.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/new-safer.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/new-unrestricted.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/new-unrestricted.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/new-unrestricted.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/new-unrestricted.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/newlines1.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/newlines1.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/newlines1.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/newlines1.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/newlines2.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/newlines2.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/newlines2.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/newlines2.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/non-strict-syntax.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/non-strict-syntax.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/non-strict-syntax.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/non-strict-syntax.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/noparse.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/noparse.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/noparse.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/noparse.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/number-format.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/number-format.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/number-format.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/number-format.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/number-literal.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/number-literal.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/number-literal.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/number-literal.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/number-to-date.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/number-to-date.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/number-to-date.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/number-to-date.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/numerical-cast.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/numerical-cast.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/numerical-cast.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/numerical-cast.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/output-encoding1.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/output-encoding1.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/output-encoding1.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/output-encoding1.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/output-encoding2.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/output-encoding2.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/output-encoding2.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/output-encoding2.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/output-encoding3.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/output-encoding3.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/output-encoding3.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/output-encoding3.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/precedence.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/precedence.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/precedence.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/precedence.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/recover.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/recover.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/recover.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/recover.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/root.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/root.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/root.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/root.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/sequence-builtins.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/sequence-builtins.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/sequence-builtins.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/sequence-builtins.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/specialvars.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/specialvars.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/specialvars.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/specialvars.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/strictinheader.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/strictinheader.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/strictinheader.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/strictinheader.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/string-builtins-regexps-matches.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/string-builtins-regexps-matches.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/string-builtins-regexps-matches.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/string-builtins-regexps-matches.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/string-builtins-regexps.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/string-builtins-regexps.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/string-builtins-regexps.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/string-builtins-regexps.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/string-builtins1.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/string-builtins1.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/string-builtins1.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/string-builtins1.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/string-builtins2.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/string-builtins2.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/string-builtins2.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/string-builtins2.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/stringbimethods.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/stringbimethods.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/stringbimethods.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/stringbimethods.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/stringliteral.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/stringliteral.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/stringliteral.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/stringliteral.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/switch.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/switch.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/switch.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/switch.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/transforms.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/transforms.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/transforms.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/transforms.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/type-builtins-ici-2.3.21.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/type-builtins-ici-2.3.21.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/type-builtins-ici-2.3.21.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/type-builtins-ici-2.3.21.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/type-builtins-ici-2.3.24.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/type-builtins-ici-2.3.24.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/type-builtins-ici-2.3.24.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/type-builtins-ici-2.3.24.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/type-builtins.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/type-builtins.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/type-builtins.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/type-builtins.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/var-layers.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/var-layers.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/var-layers.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/var-layers.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/varargs.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/varargs.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/varargs.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/varargs.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/variables.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/variables.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/variables.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/variables.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/whitespace-trim.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/whitespace-trim.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/whitespace-trim.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/whitespace-trim.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/wstrip-in-header.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/wstrip-in-header.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/wstrip-in-header.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/wstrip-in-header.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/wstripping.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/wstripping.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/wstripping.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/wstripping.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xml-fragment.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xml-fragment.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xml-fragment.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xml-fragment.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xml-ns_prefix-scope.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xml-ns_prefix-scope.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xml-ns_prefix-scope.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xml-ns_prefix-scope.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xml.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xml.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xml.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xml.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xmlns1.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xmlns1.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xmlns1.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xmlns1.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xmlns3.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xmlns3.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xmlns3.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xmlns3.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xmlns4.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xmlns4.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xmlns4.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xmlns4.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xmlns5.txt b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xmlns5.txt similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/expected/xmlns5.txt rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/expected/xmlns5.txt diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/models/BeansTestResources.properties b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/BeansTestResources.properties similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/models/BeansTestResources.properties rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/BeansTestResources.properties diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/models/defaultxmlns1.xml b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/defaultxmlns1.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/models/defaultxmlns1.xml rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/defaultxmlns1.xml diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/models/xml-ns_prefix-scope.xml b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/xml-ns_prefix-scope.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/models/xml-ns_prefix-scope.xml rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/xml-ns_prefix-scope.xml diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/models/xml.xml b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/xml.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/models/xml.xml rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/xml.xml diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/models/xmlfragment.xml b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/xmlfragment.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/models/xmlfragment.xml rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/xmlfragment.xml diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/models/xmlns.xml b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/xmlns.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/models/xmlns.xml rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/xmlns.xml diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/models/xmlns2.xml b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/xmlns2.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/models/xmlns2.xml rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/xmlns2.xml diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/models/xmlns3.xml b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/xmlns3.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/models/xmlns3.xml rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/models/xmlns3.xml diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/api-builtins.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/api-builtins.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/api-builtins.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/api-builtins.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/arithmetic.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/arithmetic.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/arithmetic.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/arithmetic.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/assignments.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/assignments.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/assignments.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/assignments.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/bean-maps.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/bean-maps.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/bean-maps.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/bean-maps.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/beans.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/beans.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/beans.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/beans.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/boolean-formatting.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/boolean-formatting.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/boolean-formatting.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/boolean-formatting.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/boolean.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/boolean.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/boolean.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/boolean.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header_inc1.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header_inc1.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header_inc1.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header_inc1.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header_inc2.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header_inc2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header_inc2.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/charset-in-header_inc2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/classic-compatible-mode2.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/classic-compatible-mode2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/classic-compatible-mode2.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/classic-compatible-mode2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/classic-compatible.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/classic-compatible.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/classic-compatible.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/classic-compatible.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/comment.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/comment.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/comment.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/comment.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/comparisons.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/comparisons.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/comparisons.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/comparisons.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/compress.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/compress.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/compress.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/compress.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/date-type-builtins.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/date-type-builtins.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/date-type-builtins.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/date-type-builtins.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi-common.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi-common.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi-common.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi-common.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi-ici-2.3.21.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi-ici-2.3.21.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi-ici-2.3.21.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi-ici-2.3.21.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-bi.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-like.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-like.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-like.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/dateformat-iso-like.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/dateformat-java.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/dateformat-java.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/dateformat-java.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/dateformat-java.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/dateparsing.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/dateparsing.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/dateparsing.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/dateparsing.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/default-xmlns.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/default-xmlns.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/default-xmlns.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/default-xmlns.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/default.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/default.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/default.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/default.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/encoding-builtins.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/encoding-builtins.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/encoding-builtins.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/encoding-builtins.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/escapes.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/escapes.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/escapes.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/escapes.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/exception.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/exception.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/exception.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/exception.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/exception2.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/exception2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/exception2.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/exception2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/exception3.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/exception3.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/exception3.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/exception3.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/existence-operators.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/existence-operators.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/existence-operators.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/existence-operators.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/hashconcat.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/hashconcat.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/hashconcat.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/hashconcat.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/hashliteral.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/hashliteral.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/hashliteral.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/hashliteral.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/helloworld.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/helloworld.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/helloworld.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/helloworld.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/identifier-escaping.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/identifier-escaping.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/identifier-escaping.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/identifier-escaping.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/identifier-non-ascii.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/identifier-non-ascii.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/identifier-non-ascii.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/identifier-non-ascii.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/if.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/if.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/if.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/if.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/import.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/import.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/import.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/import.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/import_lib.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/import_lib.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/import_lib.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/import_lib.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/include.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/include.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/include.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/include.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/include2-included-encoding.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/include2-included-encoding.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/include2-included-encoding.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/include2-included-encoding.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/include2-included.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/include2-included.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/include2-included.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/include2-included.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/include2.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/include2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/include2.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/include2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/included.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/included.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/included.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/included.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/interpret.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/interpret.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/interpret.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/interpret.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/iterators.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/iterators.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/iterators.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/iterators.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/lastcharacter.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/lastcharacter.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/lastcharacter.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/lastcharacter.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/list-bis.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/list-bis.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/list-bis.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/list-bis.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/list.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/list.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/list.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/list.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/list2.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/list2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/list2.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/list2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/list3.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/list3.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/list3.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/list3.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/listhash.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/listhash.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/listhash.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/listhash.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/listhashliteral.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/listhashliteral.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/listhashliteral.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/listhashliteral.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/listliteral.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/listliteral.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/listliteral.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/listliteral.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/localization.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/localization.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/localization.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/localization.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/localization_en.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/localization_en.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/localization_en.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/localization_en.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/localization_en_AU.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/localization_en_AU.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/localization_en_AU.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/localization_en_AU.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/logging.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/logging.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/logging.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/logging.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/loopvariable.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/loopvariable.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/loopvariable.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/loopvariable.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/macros-return.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/macros-return.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/macros-return.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/macros-return.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/macros.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/macros.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/macros.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/macros.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/macros2.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/macros2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/macros2.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/macros2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/multimodels.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/multimodels.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/multimodels.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/multimodels.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/nested.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/nested.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/nested.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/nested.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/nestedinclude.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/nestedinclude.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/nestedinclude.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/nestedinclude.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/new-allowsnothing.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/new-allowsnothing.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/new-allowsnothing.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/new-allowsnothing.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/new-defaultresolver.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/new-defaultresolver.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/new-defaultresolver.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/new-defaultresolver.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/new-optin.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/new-optin.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/new-optin.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/new-optin.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/new-safer.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/new-safer.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/new-safer.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/new-safer.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/new-unrestricted.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/new-unrestricted.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/new-unrestricted.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/new-unrestricted.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/newlines1.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/newlines1.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/newlines1.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/newlines1.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/newlines2.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/newlines2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/newlines2.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/newlines2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/non-strict-syntax.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/non-strict-syntax.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/non-strict-syntax.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/non-strict-syntax.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/noparse.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/noparse.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/noparse.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/noparse.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/number-format.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/number-format.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/number-format.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/number-format.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/number-literal.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/number-literal.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/number-literal.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/number-literal.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/number-math-builtins.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/number-math-builtins.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/number-math-builtins.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/number-math-builtins.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/number-to-date.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/number-to-date.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/number-to-date.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/number-to-date.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/numerical-cast.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/numerical-cast.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/numerical-cast.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/numerical-cast.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/output-encoding1.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/output-encoding1.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/output-encoding1.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/output-encoding1.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/output-encoding2.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/output-encoding2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/output-encoding2.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/output-encoding2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/output-encoding3.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/output-encoding3.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/output-encoding3.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/output-encoding3.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-bwici-2.3.20.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-bwici-2.3.20.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-bwici-2.3.20.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-bwici-2.3.20.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-bwici-2.3.21.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-bwici-2.3.21.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-bwici-2.3.21.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-bwici-2.3.21.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-common.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-common.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-common.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-common.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-desc-bwici-2.3.20.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-desc-bwici-2.3.20.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-desc-bwici-2.3.20.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-desc-bwici-2.3.20.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-inc-bwici-2.3.20.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-inc-bwici-2.3.20.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-inc-bwici-2.3.20.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-2-inc-bwici-2.3.20.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-23bc.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-23bc.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-23bc.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/overloaded-methods-23bc.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/precedence.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/precedence.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/precedence.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/precedence.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/range-common.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/range-common.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/range-common.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/range-common.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/range-ici-2.3.20.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/range-ici-2.3.20.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/range-ici-2.3.20.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/range-ici-2.3.20.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/range-ici-2.3.21.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/range-ici-2.3.21.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/range-ici-2.3.21.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/range-ici-2.3.21.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/range-lazy.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/range-lazy.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/range-lazy.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/range-lazy.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/recover.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/recover.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/recover.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/recover.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/root.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/root.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/root.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/root.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/sequence-builtins.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/sequence-builtins.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/sequence-builtins.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/sequence-builtins.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/setting.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/setting.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/setting.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/setting.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/simplehash-char-key.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/simplehash-char-key.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/simplehash-char-key.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/simplehash-char-key.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/specialvars.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/specialvars.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/specialvars.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/specialvars.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/strictinheader.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/strictinheader.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/strictinheader.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/strictinheader.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/strictinheader_inc1.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/strictinheader_inc1.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/strictinheader_inc1.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/strictinheader_inc1.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/strictinheader_inc2.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/strictinheader_inc2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/strictinheader_inc2.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/strictinheader_inc2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtin-coercion.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtin-coercion.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtin-coercion.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtin-coercion.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-ici-2.3.19.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-ici-2.3.19.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-ici-2.3.19.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-ici-2.3.19.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-ici-2.3.20.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-ici-2.3.20.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-ici-2.3.20.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-ici-2.3.20.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-regexps-matches.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-regexps-matches.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-regexps-matches.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-regexps-matches.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-regexps.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-regexps.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-regexps.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins-regexps.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins1.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins1.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins1.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins1.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins2.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins2.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins3.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins3.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/string-builtins3.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/string-builtins3.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/stringbimethods.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/stringbimethods.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/stringbimethods.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/stringbimethods.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/stringliteral.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/stringliteral.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/stringliteral.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/stringliteral.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/subdir/include-subdir.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/subdir/include-subdir.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/subdir/include-subdir.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/subdir/include-subdir.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/subdir/include-subdir2.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/subdir/include-subdir2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/subdir/include-subdir2.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/subdir/include-subdir2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/subdir/new-optin-2.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/subdir/new-optin-2.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/subdir/new-optin-2.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/subdir/new-optin-2.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/subdir/new-optin.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/subdir/new-optin.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/subdir/new-optin.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/subdir/new-optin.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/subdir/subsub/new-optin.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/subdir/subsub/new-optin.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/subdir/subsub/new-optin.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/subdir/subsub/new-optin.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/switch-builtin.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/switch-builtin.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/switch-builtin.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/switch-builtin.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/switch.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/switch.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/switch.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/switch.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/then-builtin.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/then-builtin.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/then-builtin.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/then-builtin.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/transforms.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/transforms.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/transforms.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/transforms.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/type-builtins.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/type-builtins.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/type-builtins.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/type-builtins.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/undefined.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/undefined.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/undefined.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/undefined.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/url.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/url.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/url.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/url.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/var-layers.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/var-layers.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/var-layers.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/var-layers.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/varargs.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/varargs.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/varargs.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/varargs.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/variables.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/variables.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/variables.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/variables.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/varlayers_lib.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/varlayers_lib.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/varlayers_lib.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/varlayers_lib.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/whitespace-trim.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/whitespace-trim.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/whitespace-trim.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/whitespace-trim.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/wsstripinheader_inc.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/wsstripinheader_inc.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/wsstripinheader_inc.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/wsstripinheader_inc.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/wstrip-in-header.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/wstrip-in-header.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/wstrip-in-header.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/wstrip-in-header.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xml-fragment.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xml-fragment.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xml-fragment.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xml-fragment.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xml-ns_prefix-scope-lib.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xml-ns_prefix-scope-lib.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xml-ns_prefix-scope-lib.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xml-ns_prefix-scope-lib.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xml-ns_prefix-scope-main.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xml-ns_prefix-scope-main.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xml-ns_prefix-scope-main.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xml-ns_prefix-scope-main.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xml.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xml.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xml.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xml.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xmlns1.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xmlns1.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xmlns1.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xmlns1.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xmlns3.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xmlns3.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xmlns3.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xmlns3.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xmlns4.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xmlns4.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xmlns4.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xmlns4.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xmlns5.ftl b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xmlns5.ftl similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/templates/xmlns5.ftl rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/templates/xmlns5.ftl diff --git a/freemarker-test/src/test/resources/freemarker/test/templatesuite/testcases.xml b/freemarker-jython25/src/test/resources/freemarker/test/templatesuite/testcases.xml similarity index 100% rename from freemarker-test/src/test/resources/freemarker/test/templatesuite/testcases.xml rename to freemarker-jython25/src/test/resources/freemarker/test/templatesuite/testcases.xml diff --git a/freemarker-test/src/test/java/freemarker/core/ASTPrinter.java b/freemarker-test-utils/src/main/java/freemarker/core/ASTPrinter.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/core/ASTPrinter.java rename to freemarker-test-utils/src/main/java/freemarker/core/ASTPrinter.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/AlphabeticalMethodSorter.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/AlphabeticalMethodSorter.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/AlphabeticalMethodSorter.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/AlphabeticalMethodSorter.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperDesc2003020.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/BeansWrapperDesc2003020.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperDesc2003020.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/BeansWrapperDesc2003020.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperDesc2003021.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/BeansWrapperDesc2003021.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperDesc2003021.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/BeansWrapperDesc2003021.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperInc2003020.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/BeansWrapperInc2003020.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperInc2003020.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/BeansWrapperInc2003020.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperInc2003021.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/BeansWrapperInc2003021.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperInc2003021.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/BeansWrapperInc2003021.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperWithShortedMethods.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/BeansWrapperWithShortedMethods.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/BeansWrapperWithShortedMethods.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/BeansWrapperWithShortedMethods.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003020.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003020.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003020.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003020.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003021.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003021.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003021.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003021.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003022.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003022.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003022.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperDesc2003022.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperInc2003020.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperInc2003020.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperInc2003020.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperInc2003020.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperInc2003021.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperInc2003021.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperInc2003021.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperInc2003021.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperInc2003022.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperInc2003022.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperInc2003022.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperInc2003022.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperWithSortedMethods.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperWithSortedMethods.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/DefaultObjectWrapperWithSortedMethods.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/DefaultObjectWrapperWithSortedMethods.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/Java7MembersOnlyBeansWrapper.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/Java7MembersOnlyBeansWrapper.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/Java7MembersOnlyBeansWrapper.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/Java7MembersOnlyBeansWrapper.java diff --git a/freemarker-test/src/test/java/freemarker/ext/beans/RationalNumber.java b/freemarker-test-utils/src/main/java/freemarker/ext/beans/RationalNumber.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/ext/beans/RationalNumber.java rename to freemarker-test-utils/src/main/java/freemarker/ext/beans/RationalNumber.java diff --git a/freemarker-test/src/test/java/freemarker/test/CopyrightCommentRemoverTemplateLoader.java b/freemarker-test-utils/src/main/java/freemarker/test/CopyrightCommentRemoverTemplateLoader.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/CopyrightCommentRemoverTemplateLoader.java rename to freemarker-test-utils/src/main/java/freemarker/test/CopyrightCommentRemoverTemplateLoader.java diff --git a/freemarker-test/src/test/java/freemarker/test/ResourcesExtractor.java b/freemarker-test-utils/src/main/java/freemarker/test/ResourcesExtractor.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/ResourcesExtractor.java rename to freemarker-test-utils/src/main/java/freemarker/test/ResourcesExtractor.java diff --git a/freemarker-test/src/test/java/freemarker/test/hamcerst/Matchers.java b/freemarker-test-utils/src/main/java/freemarker/test/hamcerst/Matchers.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/hamcerst/Matchers.java rename to freemarker-test-utils/src/main/java/freemarker/test/hamcerst/Matchers.java diff --git a/freemarker-test/src/test/java/freemarker/test/hamcerst/StringContainsIgnoringCase.java b/freemarker-test-utils/src/main/java/freemarker/test/hamcerst/StringContainsIgnoringCase.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/hamcerst/StringContainsIgnoringCase.java rename to freemarker-test-utils/src/main/java/freemarker/test/hamcerst/StringContainsIgnoringCase.java diff --git a/freemarker-test/src/test/java/freemarker/test/package.html b/freemarker-test-utils/src/main/java/freemarker/test/package.html similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/package.html rename to freemarker-test-utils/src/main/java/freemarker/test/package.html diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/AllTemplateModels.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/AllTemplateModels.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/AllTemplateModels.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/AllTemplateModels.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/BeanTestClass.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BeanTestClass.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/BeanTestClass.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BeanTestClass.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/BeanTestInterface.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BeanTestInterface.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/BeanTestInterface.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BeanTestInterface.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/BeanTestSuperclass.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BeanTestSuperclass.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/BeanTestSuperclass.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BeanTestSuperclass.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanAndScalarModel.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanAndScalarModel.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanAndScalarModel.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanAndScalarModel.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanHash1.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanHash1.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanHash1.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanHash1.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanHash2.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanHash2.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanHash2.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanHash2.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanList1.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanList1.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanList1.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanList1.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanList2.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanList2.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanList2.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanList2.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanVsStringMethods.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanVsStringMethods.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/BooleanVsStringMethods.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/BooleanVsStringMethods.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/EnumTestClass.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/EnumTestClass.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/EnumTestClass.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/EnumTestClass.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/ExceptionModel.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/ExceptionModel.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/ExceptionModel.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/ExceptionModel.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/HashAndScalarModel.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/HashAndScalarModel.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/HashAndScalarModel.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/HashAndScalarModel.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/JavaObjectInfo.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/JavaObjectInfo.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/JavaObjectInfo.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/JavaObjectInfo.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/LegacyList.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/LegacyList.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/LegacyList.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/LegacyList.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/Listables.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/Listables.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/Listables.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/Listables.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/MultiModel1.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/MultiModel1.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/MultiModel1.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/MultiModel1.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/MultiModel2.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/MultiModel2.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/MultiModel2.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/MultiModel2.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/MultiModel3.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/MultiModel3.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/MultiModel3.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/MultiModel3.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/MultiModel4.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/MultiModel4.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/MultiModel4.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/MultiModel4.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/MultiModel5.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/MultiModel5.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/MultiModel5.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/MultiModel5.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/NewTestModel.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/NewTestModel.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/NewTestModel.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/NewTestModel.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/NewTestModel2.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/NewTestModel2.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/NewTestModel2.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/NewTestModel2.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/NumberAndStringModel.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/NumberAndStringModel.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/NumberAndStringModel.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/NumberAndStringModel.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/OverloadedConstructor.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/OverloadedConstructor.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/OverloadedConstructor.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/OverloadedConstructor.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/OverloadedMethods.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/OverloadedMethods.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/OverloadedMethods.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/OverloadedMethods.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/OverloadedMethods2.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/OverloadedMethods2.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/OverloadedMethods2.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/OverloadedMethods2.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/SimpleTestMethod.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/SimpleTestMethod.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/SimpleTestMethod.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/SimpleTestMethod.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/TransformHashWrapper.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/TransformHashWrapper.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/TransformHashWrapper.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/TransformHashWrapper.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/TransformMethodWrapper1.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/TransformMethodWrapper1.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/TransformMethodWrapper1.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/TransformMethodWrapper1.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/TransformMethodWrapper2.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/TransformMethodWrapper2.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/TransformMethodWrapper2.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/TransformMethodWrapper2.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/TransformModel1.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/TransformModel1.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/TransformModel1.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/TransformModel1.java diff --git a/freemarker-test/src/test/java/freemarker/test/templatesuite/models/VarArgTestModel.java b/freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/VarArgTestModel.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/templatesuite/models/VarArgTestModel.java rename to freemarker-test-utils/src/main/java/freemarker/test/templatesuite/models/VarArgTestModel.java diff --git a/freemarker-test/src/test/java/freemarker/test/utility/AssertDirective.java b/freemarker-test-utils/src/main/java/freemarker/test/utility/AssertDirective.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/utility/AssertDirective.java rename to freemarker-test-utils/src/main/java/freemarker/test/utility/AssertDirective.java diff --git a/freemarker-test/src/test/java/freemarker/test/utility/AssertEqualsDirective.java b/freemarker-test-utils/src/main/java/freemarker/test/utility/AssertEqualsDirective.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/utility/AssertEqualsDirective.java rename to freemarker-test-utils/src/main/java/freemarker/test/utility/AssertEqualsDirective.java diff --git a/freemarker-test/src/test/java/freemarker/test/utility/AssertFailsDirective.java b/freemarker-test-utils/src/main/java/freemarker/test/utility/AssertFailsDirective.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/utility/AssertFailsDirective.java rename to freemarker-test-utils/src/main/java/freemarker/test/utility/AssertFailsDirective.java diff --git a/freemarker-test/src/test/java/freemarker/test/utility/AssertationFailedInTemplateException.java b/freemarker-test-utils/src/main/java/freemarker/test/utility/AssertationFailedInTemplateException.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/utility/AssertationFailedInTemplateException.java rename to freemarker-test-utils/src/main/java/freemarker/test/utility/AssertationFailedInTemplateException.java diff --git a/freemarker-test/src/test/java/freemarker/test/utility/BadParameterTypeException.java b/freemarker-test-utils/src/main/java/freemarker/test/utility/BadParameterTypeException.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/utility/BadParameterTypeException.java rename to freemarker-test-utils/src/main/java/freemarker/test/utility/BadParameterTypeException.java diff --git a/freemarker-test/src/test/java/freemarker/test/utility/FileTestCase.java b/freemarker-test-utils/src/main/java/freemarker/test/utility/FileTestCase.java similarity index 63% rename from freemarker-test/src/test/java/freemarker/test/utility/FileTestCase.java rename to freemarker-test-utils/src/main/java/freemarker/test/utility/FileTestCase.java index c35b4c5c5..652f1074b 100644 --- a/freemarker-test/src/test/java/freemarker/test/utility/FileTestCase.java +++ b/freemarker-test-utils/src/main/java/freemarker/test/utility/FileTestCase.java @@ -29,9 +29,12 @@ import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; +import java.net.MalformedURLException; +import java.net.URISyntaxException; import java.net.URL; +import java.nio.file.Path; +import java.nio.file.Paths; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import freemarker.template.utility.StringUtil; import junit.framework.AssertionFailedError; import junit.framework.TestCase; @@ -133,19 +136,121 @@ protected File getActualFileDirectory() throws IOException { return getExpectedFileDirectory(); } - @SuppressFBWarnings(value="UI_INHERITANCE_UNSAFE_GETRESOURCE", justification="By design relative to subclass") - private File getTestClassDirectoryLegacy() throws IOException { - URL url = this.getClass().getResource("."); - if (url == null) throw new IOException("Couldn't get resource URL for \".\""); - return new File(url.getFile()); + private static String extractRawPathFromJarUrl(URL url) { + String jarPathTerminator = "!/"; + + String path = url.getPath(); + if (path.endsWith(jarPathTerminator)) { + return path.substring(0, path.length() - jarPathTerminator.length()); + } + + int jarPathEnd = path.indexOf(jarPathTerminator); + return path.substring(0, jarPathEnd); + } + + private static URL extractUrlFromJarUrl(URL url) { + try { + return new URL(extractRawPathFromJarUrl(url)); + } catch (MalformedURLException ex) { + throw new IllegalArgumentException("Unexpected URL: " + url, ex); + } + } + + private static URL extractFileUrlFromUrl(URL url) { + String protocol = url.getProtocol(); + if ("jar".equals(protocol)) { + return extractUrlFromJarUrl(url); + } + else{ + return url; + } + } + + private static File urlToFile(URL url) { + try { + return new File(url.toURI()); + } catch (URISyntaxException ex) { + throw new IllegalArgumentException(ex); + } + } + + private static File extractPathFromURL(URL url) { + URL fileUrl = extractFileUrlFromUrl(url); + if ("file".equals(fileUrl.getProtocol())) { + return urlToFile(fileUrl); + } + else { + throw new IllegalArgumentException("Unexpected URL: " + url); + } + } + + private static URL findUrlClassPathOfClass(Class cl) { + URL urlOfClassPath = cl.getProtectionDomain().getCodeSource().getLocation(); + if (urlOfClassPath == null) { + throw new IllegalArgumentException("Unable to locate classpath of " + cl); + } + + return extractFileUrlFromUrl(urlOfClassPath); + } + + private static File toCanonicalFile(File file) { + if (file == null) { + return null; + } + + try { + return file.getCanonicalFile(); + } catch (IOException ex) { + return file; + } + } + + private static File findClassPathOfClass(Class cl) { + return toCanonicalFile(extractPathFromURL(findUrlClassPathOfClass(cl))); + } + + private static Path switchToResourceRoot(Path classesClasspathRoot) { + Path javaDir = classesClasspathRoot.getParent(); + if (javaDir == null || !javaDir.endsWith("java")) { + return classesClasspathRoot; + } + + Path classesDir = javaDir.getParent(); + if (classesDir == null || !classesDir.endsWith("classes")) { + return classesClasspathRoot; + } + + Path parent = classesDir.getParent(); + if (parent == null) { + return classesClasspathRoot; + } + + return parent.resolve("resources").resolve(classesClasspathRoot.getFileName()); + } + + private static Path addPackageDir(Path root, Class relPathClass) { + Path result = root; + for (String child : relPathClass.getPackage().getName().split("\\.")) { + result = result.resolve(child); + } + return result; + } + + private File getTestClassDirectoryAssumingGradleStructure() throws IOException { + File classpathRoot = findClassPathOfClass(getClass()); + if (classpathRoot != null) { + Path resourcesRoot = switchToResourceRoot(classpathRoot.toPath()); + return addPackageDir(resourcesRoot, getClass()).toFile(); + } + throw new IOException("Couldn't get resource URL for " + getClass().getPackage().getName()); } protected final File getTestClassDirectory() throws IOException { String rootStr = System.getProperty("freemarker.test.resourcesDir"); if (rootStr == null) { - return getTestClassDirectoryLegacy(); + return getTestClassDirectoryAssumingGradleStructure(); } - return new File(rootStr, getClass().getPackage().getName().replace('.', File.separatorChar)); + return addPackageDir(Paths.get(rootStr), getClass()).toFile(); } protected String loadFile(File f) throws FileNotFoundException, IOException { diff --git a/freemarker-test/src/test/java/freemarker/test/utility/MissingRequiredParameterException.java b/freemarker-test-utils/src/main/java/freemarker/test/utility/MissingRequiredParameterException.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/utility/MissingRequiredParameterException.java rename to freemarker-test-utils/src/main/java/freemarker/test/utility/MissingRequiredParameterException.java diff --git a/freemarker-test/src/test/java/freemarker/test/utility/NoOutputDirective.java b/freemarker-test-utils/src/main/java/freemarker/test/utility/NoOutputDirective.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/utility/NoOutputDirective.java rename to freemarker-test-utils/src/main/java/freemarker/test/utility/NoOutputDirective.java diff --git a/freemarker-test/src/test/java/freemarker/test/utility/ParameterException.java b/freemarker-test-utils/src/main/java/freemarker/test/utility/ParameterException.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/utility/ParameterException.java rename to freemarker-test-utils/src/main/java/freemarker/test/utility/ParameterException.java diff --git a/freemarker-test/src/test/java/freemarker/test/utility/TestUtil.java b/freemarker-test-utils/src/main/java/freemarker/test/utility/TestUtil.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/utility/TestUtil.java rename to freemarker-test-utils/src/main/java/freemarker/test/utility/TestUtil.java diff --git a/freemarker-test/src/test/java/freemarker/test/utility/UnsupportedParameterException.java b/freemarker-test-utils/src/main/java/freemarker/test/utility/UnsupportedParameterException.java similarity index 100% rename from freemarker-test/src/test/java/freemarker/test/utility/UnsupportedParameterException.java rename to freemarker-test-utils/src/main/java/freemarker/test/utility/UnsupportedParameterException.java diff --git a/freemarker-test/src/test/resources/logback-test.xml b/freemarker-test-utils/src/main/resources/logback-test.xml similarity index 100% rename from freemarker-test/src/test/resources/logback-test.xml rename to freemarker-test-utils/src/main/resources/logback-test.xml diff --git a/settings.gradle.kts b/settings.gradle.kts index 31719470d..633273917 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -20,3 +20,14 @@ rootProject.name = "freemarker" apply(from = rootDir.toPath().resolve("gradle").resolve("repositories.gradle.kts")) + +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + version("defaultJava", "8") + version("junit", "4.12") + + library("junit", "junit", "junit").versionRef("junit") + } + } +}