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") + } + } +}