diff --git a/.gitignore b/.gitignore
index 95da09e28b..c71b4410aa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -105,6 +105,7 @@ samples-and-tests/test-scala/logs
samples-and-tests/i-am-a-developer/i-am-working-here
samples-and-tests/i-am-a-developer/i-am-creating-jobs-here
samples-and-tests/i-am-a-developer/i-am-testing-log-levels-here
+samples-and-tests/i-am-a-developer/i-am-testing-ssl-config-here
samples-and-tests/just-test-cases/attachments
samples-and-tests/booking/logs
samples-and-tests/booking/tmp
diff --git a/framework/build.xml b/framework/build.xml
index b768d24d68..5b02f0c075 100644
--- a/framework/build.xml
+++ b/framework/build.xml
@@ -97,10 +97,9 @@
-
-
+
-
+
@@ -234,7 +233,7 @@
-
+
diff --git a/framework/dependencies.yml b/framework/dependencies.yml
index 1bac8ed0af..4b2186d16f 100644
--- a/framework/dependencies.yml
+++ b/framework/dependencies.yml
@@ -9,10 +9,10 @@ transitiveDependencies: false
require: &allDependencies
- antlr 2.7.7
- com.mchange -> c3p0 0.9.5.2
- - com.zaxxer -> HikariCP 2.7.9
- - org.ow2.asm -> asm-all 5.2
- - cglib -> cglib 3.2.4
- - com.google.code.gson -> gson 2.8.0
+ - com.zaxxer -> HikariCP 3.2.0
+ - org.ow2.asm -> asm 6.2
+ - cglib -> cglib 3.2.7
+ - com.google.code.gson -> gson 2.8.5
- com.jamonapi -> jamon 2.81
- com.ning -> async-http-client 1.9.40
- commons-beanutils 1.9.2
@@ -45,15 +45,15 @@ require: &allDependencies
- org.apache.ivy -> ivy 2.4.0
- org.bouncycastle -> bcprov-jdk15on 1.60
- org.bouncycastle -> bcpkix-jdk15on 1.60
- - org.codehaus.groovy -> groovy-all 2.4.15
- - org.eclipse.jdt.core 3.12.3
+ - org.codehaus.groovy -> groovy 2.5.1
+ - org.codehaus.groovy -> groovy-xml 2.5.1
+ - org.eclipse.jdt -> org.eclipse.jdt.core 3.14.0
- org.hibernate -> hibernate-core 5.2.10.patched
- org.hibernate.common -> hibernate-commons-annotations 5.0.1.Final
- - org.hibernate -> hibernate-entitymanager 5.2.10.Final
- org.hibernate -> hibernate-validator 5.4.1.Final
- org.jboss.logging -> jboss-logging 3.3.0.Final
- org.jboss.spec.javax.transaction -> jboss-transaction-api_1.2_spec 1.0.1.Final
- - org.hibernate.javax.persistence -> hibernate-jpa-2.1-api 1.0.0.Final
+ - org.hibernate.javax.persistence -> hibernate-jpa-2.1-api 1.0.0.Final
- com.fasterxml -> classmate 1.3.3
- org.hibernate -> hibernate-c3p0 5.2.10.Final
- org.hibernate -> hibernate-ehcache 5.2.10.Final
diff --git a/framework/lib-test/byte-buddy-1.8.15.jar b/framework/lib-test/byte-buddy-1.8.15.jar
new file mode 100644
index 0000000000..b8c8379f44
Binary files /dev/null and b/framework/lib-test/byte-buddy-1.8.15.jar differ
diff --git a/framework/lib-test/mockito-all-1.10.19.jar b/framework/lib-test/mockito-all-1.10.19.jar
deleted file mode 100644
index c831489cd9..0000000000
Binary files a/framework/lib-test/mockito-all-1.10.19.jar and /dev/null differ
diff --git a/framework/lib-test/mockito-core-2.21.0.jar b/framework/lib-test/mockito-core-2.21.0.jar
new file mode 100644
index 0000000000..73de643e08
Binary files /dev/null and b/framework/lib-test/mockito-core-2.21.0.jar differ
diff --git a/framework/lib-test/objenesis-2.6.jar b/framework/lib-test/objenesis-2.6.jar
new file mode 100644
index 0000000000..b4b29d563b
Binary files /dev/null and b/framework/lib-test/objenesis-2.6.jar differ
diff --git a/framework/lib/HikariCP-2.7.9.jar b/framework/lib/HikariCP-2.7.9.jar
deleted file mode 100644
index a5ab8f31e5..0000000000
Binary files a/framework/lib/HikariCP-2.7.9.jar and /dev/null differ
diff --git a/framework/lib/HikariCP-3.2.0.jar b/framework/lib/HikariCP-3.2.0.jar
new file mode 100644
index 0000000000..a030a7f8dc
Binary files /dev/null and b/framework/lib/HikariCP-3.2.0.jar differ
diff --git a/framework/lib/asm-6.2.jar b/framework/lib/asm-6.2.jar
new file mode 100644
index 0000000000..792142a59a
Binary files /dev/null and b/framework/lib/asm-6.2.jar differ
diff --git a/framework/lib/cglib-3.2.4.jar b/framework/lib/cglib-3.2.7.jar
similarity index 69%
rename from framework/lib/cglib-3.2.4.jar
rename to framework/lib/cglib-3.2.7.jar
index 8ef8ae60ce..8347c5f25e 100644
Binary files a/framework/lib/cglib-3.2.4.jar and b/framework/lib/cglib-3.2.7.jar differ
diff --git a/framework/lib/groovy-2.5.1.jar b/framework/lib/groovy-2.5.1.jar
new file mode 100644
index 0000000000..75fc3f3e52
Binary files /dev/null and b/framework/lib/groovy-2.5.1.jar differ
diff --git a/framework/lib/groovy-all-2.4.15.jar b/framework/lib/groovy-all-2.4.15.jar
deleted file mode 100644
index 3c4f8f357d..0000000000
Binary files a/framework/lib/groovy-all-2.4.15.jar and /dev/null differ
diff --git a/framework/lib/groovy-xml-2.5.1.jar b/framework/lib/groovy-xml-2.5.1.jar
new file mode 100644
index 0000000000..c9a2098c12
Binary files /dev/null and b/framework/lib/groovy-xml-2.5.1.jar differ
diff --git a/framework/lib/gson-2.8.0.jar b/framework/lib/gson-2.8.0.jar
deleted file mode 100644
index 1235f63816..0000000000
Binary files a/framework/lib/gson-2.8.0.jar and /dev/null differ
diff --git a/framework/lib/gson-2.8.5.jar b/framework/lib/gson-2.8.5.jar
new file mode 100644
index 0000000000..0d5baf3fa7
Binary files /dev/null and b/framework/lib/gson-2.8.5.jar differ
diff --git a/framework/lib/org.eclipse.jdt.core-3.12.3.jar b/framework/lib/org.eclipse.jdt.core-3.12.3.jar
deleted file mode 100644
index 501a10289e..0000000000
Binary files a/framework/lib/org.eclipse.jdt.core-3.12.3.jar and /dev/null differ
diff --git a/framework/lib/org.eclipse.jdt.core-3.14.0.jar b/framework/lib/org.eclipse.jdt.core-3.14.0.jar
new file mode 100644
index 0000000000..674a040b94
Binary files /dev/null and b/framework/lib/org.eclipse.jdt.core-3.14.0.jar differ
diff --git a/framework/src/play/classloading/ApplicationCompiler.java b/framework/src/play/classloading/ApplicationCompiler.java
index 5b0e608f30..e2c754e303 100644
--- a/framework/src/play/classloading/ApplicationCompiler.java
+++ b/framework/src/play/classloading/ApplicationCompiler.java
@@ -36,6 +36,14 @@ public class ApplicationCompiler {
Map packagesCache = new HashMap<>();
ApplicationClasses applicationClasses;
Map settings;
+ private static final String JAVA_SOURCE_DEFAULT_VERSION = "1.8";
+ static final Map compatibleJavaVersions = new HashMap<>();
+
+ static {
+ compatibleJavaVersions.put("1.8", CompilerOptions.VERSION_1_8);
+ compatibleJavaVersions.put("9", CompilerOptions.VERSION_9);
+ compatibleJavaVersions.put("10", CompilerOptions.VERSION_10);
+ }
/**
* Try to guess the magic configuration options
@@ -53,21 +61,22 @@ public ApplicationCompiler(ApplicationClasses applicationClasses) {
this.settings.put(CompilerOptions.OPTION_ReportUnusedImport, CompilerOptions.IGNORE);
this.settings.put(CompilerOptions.OPTION_Encoding, "UTF-8");
this.settings.put(CompilerOptions.OPTION_LocalVariableAttribute, CompilerOptions.GENERATE);
- String javaVersion = CompilerOptions.VERSION_1_8;
- if (System.getProperty("java.version").startsWith("1.5") || System.getProperty("java.version").startsWith("1.6")
- || System.getProperty("java.version").startsWith("1.7")) {
- throw new CompilationException("Java version prior to 1.8 are not supported");
+
+ final String runningJavaVersion = System.getProperty("java.version");
+ if (runningJavaVersion.startsWith("1.5") || runningJavaVersion.startsWith("1.6") || runningJavaVersion.startsWith("1.7")) {
+ throw new CompilationException("JDK version prior to 1.8 are not supported to run the application");
}
-
- if ("1.5".equals(Play.configuration.get("java.source")) || "1.6".equals(Play.configuration.get("java.source"))
- || "1.7".equals(Play.configuration.get("java.source"))) {
- throw new CompilationException("Java version prior to 1.8 are not supported");
+ final String configSourceVersion = Play.configuration.getProperty("java.source", JAVA_SOURCE_DEFAULT_VERSION);
+ final String jdtVersion = compatibleJavaVersions.get(configSourceVersion);
+ if (jdtVersion == null) {
+ throw new CompilationException(String.format("Incompatible Java version specified (%s). Compatible versions are: %s",
+ configSourceVersion, compatibleJavaVersions.keySet()));
}
- this.settings.put(CompilerOptions.OPTION_Source, javaVersion);
- this.settings.put(CompilerOptions.OPTION_TargetPlatform, javaVersion);
+ this.settings.put(CompilerOptions.OPTION_Source, jdtVersion);
+ this.settings.put(CompilerOptions.OPTION_TargetPlatform, jdtVersion);
this.settings.put(CompilerOptions.OPTION_PreserveUnusedLocal, CompilerOptions.PRESERVE);
- this.settings.put(CompilerOptions.OPTION_Compliance, javaVersion);
+ this.settings.put(CompilerOptions.OPTION_Compliance, jdtVersion);
this.settings.put(CompilerOptions.OPTION_MethodParametersAttribute, CompilerOptions.GENERATE);
}
@@ -161,8 +170,8 @@ public NameEnvironmentAnswer findType(char[][] compoundTypeName) {
@Override
public NameEnvironmentAnswer findType(char[] typeName, char[][] packageName) {
StringBuilder result = new StringBuilder(packageName.length * 7 + 1 + typeName.length);
- for (int i = 0; i < packageName.length; i++) {
- result.append(packageName[i]);
+ for (final char[] element : packageName) {
+ result.append(element);
result.append('.');
}
result.append(typeName);
@@ -271,8 +280,7 @@ public void acceptResult(CompilationResult result) {
}
// Something has been compiled
ClassFile[] clazzFiles = result.getClassFiles();
- for (int i = 0; i < clazzFiles.length; i++) {
- ClassFile clazzFile = clazzFiles[i];
+ for (final ClassFile clazzFile : clazzFiles) {
char[][] compoundName = clazzFile.getCompoundName();
StringBuilder clazzName = new StringBuilder();
for (int j = 0; j < compoundName.length; j++) {
diff --git a/framework/src/play/data/parsing/MultipartStream.java b/framework/src/play/data/parsing/MultipartStream.java
index 783bd60513..6dae8b6453 100644
--- a/framework/src/play/data/parsing/MultipartStream.java
+++ b/framework/src/play/data/parsing/MultipartStream.java
@@ -235,6 +235,7 @@ private void notifyListener() {
* @deprecated Use {@link #MultipartStream(InputStream, byte[], ProgressNotifier)},
* or {@link #MultipartStream(InputStream, byte[], int, ProgressNotifier)}
*/
+ @Deprecated
public MultipartStream() {
this(null, null, null);
}
@@ -256,6 +257,7 @@ public MultipartStream() {
* @see #MultipartStream(InputStream, byte[], ProgressNotifier)
* @deprecated Use {@link #MultipartStream(InputStream, byte[], int, ProgressNotifier)}.
*/
+ @Deprecated
public MultipartStream(InputStream input, byte[] boundary, int bufSize) {
this(input, boundary, bufSize, null);
}
@@ -328,6 +330,7 @@ public MultipartStream(InputStream input, byte[] boundary, int bufSize) {
* ProgressNotifier)}.
* @see #MultipartStream(InputStream, byte[], int, ProgressNotifier)
*/
+ @Deprecated
public MultipartStream(InputStream input,
byte[] boundary) {
this(input, boundary, DEFAULT_BUFSIZE, null);
diff --git a/framework/src/play/db/DB.java b/framework/src/play/db/DB.java
index b538b8a242..c8bd3c05f1 100644
--- a/framework/src/play/db/DB.java
+++ b/framework/src/play/db/DB.java
@@ -14,12 +14,10 @@
import javax.sql.DataSource;
import javax.sql.RowSet;
import javax.sql.rowset.CachedRowSet;
+import javax.sql.rowset.RowSetProvider;
-import org.hibernate.jpa.HibernateEntityManager;
import org.hibernate.internal.SessionImpl;
-import com.sun.rowset.CachedRowSetImpl;
-
import play.Logger;
import play.db.jpa.JPA;
import play.exceptions.DatabaseException;
@@ -178,7 +176,7 @@ public static void close(String name) {
public static Connection getConnection(String name) {
try {
if (JPA.isEnabled()) {
- return ((SessionImpl) ((HibernateEntityManager) JPA.em(name)).getSession()).connection();
+ return ((SessionImpl) ((org.hibernate.Session) JPA.em(name)).getSession()).connection();
}
Connection localConnection = getLocalConnection(name);
@@ -274,7 +272,7 @@ public static RowSet executeQuery(String name, String SQL) {
// Need to use a CachedRowSet that caches its rows in memory, which
// makes it possible to operate without always being connected to
// its data source
- CachedRowSet rowset = new CachedRowSetImpl();
+ CachedRowSet rowset = RowSetProvider.newFactory().createCachedRowSet();
rowset.populate(rs);
return rowset;
} catch (SQLException ex) {
diff --git a/framework/src/play/db/evolutions/EvolutionQuery.java b/framework/src/play/db/evolutions/EvolutionQuery.java
index 20e89b263f..ea096adc42 100644
--- a/framework/src/play/db/evolutions/EvolutionQuery.java
+++ b/framework/src/play/db/evolutions/EvolutionQuery.java
@@ -1,13 +1,5 @@
package play.db.evolutions;
-import play.Logger;
-import play.Play;
-import play.db.Configuration;
-import play.db.DB;
-import play.db.SQLSplitter;
-import play.db.jpa.JPAPlugin;
-import play.exceptions.UnexpectedException;
-
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
@@ -17,10 +9,17 @@
import javax.sql.RowSet;
import javax.sql.rowset.CachedRowSet;
+import javax.sql.rowset.RowSetProvider;
import org.apache.commons.lang.StringUtils;
-import com.sun.rowset.CachedRowSetImpl;
+import play.Logger;
+import play.Play;
+import play.db.Configuration;
+import play.db.DB;
+import play.db.SQLSplitter;
+import play.db.jpa.JPAPlugin;
+import play.exceptions.UnexpectedException;
public class EvolutionQuery{
@@ -158,7 +157,7 @@ public static RowSet getEvolutionsToApply(Connection connection, String moduleKe
// Need to use a CachedRowSet that caches its rows in memory, which
// makes it possible to operate without always being connected to
// its data source
- CachedRowSet rowset = new CachedRowSetImpl();
+ CachedRowSet rowset = RowSetProvider.newFactory().createCachedRowSet();
rowset.populate(resultSet);
return rowset;
} catch (SQLException e) {
@@ -180,7 +179,7 @@ public static RowSet getEvolutions(Connection connection, String moduleKey) thro
// Need to use a CachedRowSet that caches its rows in memory, which
// makes it possible to operate without always being connected to
// its data source
- CachedRowSet rowset = new CachedRowSetImpl();
+ CachedRowSet rowset = RowSetProvider.newFactory().createCachedRowSet();
rowset.populate(resultSet);
return rowset;
} catch (SQLException e) {
diff --git a/framework/src/play/templates/GroovyTemplate.java b/framework/src/play/templates/GroovyTemplate.java
index 012d812263..e07358a487 100644
--- a/framework/src/play/templates/GroovyTemplate.java
+++ b/framework/src/play/templates/GroovyTemplate.java
@@ -100,20 +100,20 @@ public Class defineTemplate(String name, byte[] byteCode) {
}
}
- @SuppressWarnings("unchecked")
@Override
void directLoad(byte[] code) throws Exception {
- TClassLoader tClassLoader = new TClassLoader();
- String[] lines = new String(code, "utf-8").split("\n");
- this.linesMatrix = (HashMap) Java.deserialize(Codec.decodeBASE64(lines[1]));
- this.doBodyLines = (HashSet) Java.deserialize(Codec.decodeBASE64(lines[3]));
- for (int i = 4; i < lines.length; i = i + 2) {
- String className = lines[i];
- byte[] byteCode = Codec.decodeBASE64(lines[i + 1]);
- Class c = tClassLoader.defineTemplate(className, byteCode);
- if (compiledTemplate == null) {
- compiledTemplate = c;
- }
+ try (TClassLoader tClassLoader = new TClassLoader()) {
+ String[] lines = new String(code, "utf-8").split("\n");
+ this.linesMatrix = (HashMap) Java.deserialize(Codec.decodeBASE64(lines[1]));
+ this.doBodyLines = (HashSet) Java.deserialize(Codec.decodeBASE64(lines[3]));
+ for (int i = 4; i < lines.length; i = i + 2) {
+ String className = lines[i];
+ byte[] byteCode = Codec.decodeBASE64(lines[i + 1]);
+ Class c = tClassLoader.defineTemplate(className, byteCode);
+ if (compiledTemplate == null) {
+ compiledTemplate = c;
+ }
+ }
}
}
@@ -446,20 +446,7 @@ public void invokeTag(Integer fromLine, String tag, Map attrs, C
TagContext.exitTag();
}
- /**
- * @param className
- * The class name
- * @return The given class
- * @throws Exception
- * if problem occured when loading the class
- * @deprecated '_' should not be used as an identifier, since it is a reserved keyword from source level 1.8 on
- * use {@link #__loadClass} instead
- */
- @Deprecated
- public Class _(String className) throws Exception {
- return __loadClass(className);
- }
-
+
/**
* Load the class from Pay Class loader
*
diff --git a/framework/src/play/templates/GroovyTemplateCompiler.java b/framework/src/play/templates/GroovyTemplateCompiler.java
index 15513e01a9..85571609cf 100644
--- a/framework/src/play/templates/GroovyTemplateCompiler.java
+++ b/framework/src/play/templates/GroovyTemplateCompiler.java
@@ -101,14 +101,14 @@ public int compare(String o1, String o2) {
if (names.size() <= 1 || source.contains("new ")) {
for (String cName : names) { // dynamic class binding
source = source.replaceAll("new " + Pattern.quote(cName) + "(\\([^)]*\\))",
- "_('" + originalNames.get(cName).replace("$", "\\$") + "').newInstance$1");
+ "__loadClass('" + originalNames.get(cName).replace("$", "\\$") + "').newInstance$1");
}
}
if (names.size() <= 1 || source.contains("instanceof")) {
for (String cName : names) { // dynamic class binding
source = source.replaceAll("([a-zA-Z0-9.-_$]+)\\s+instanceof\\s+" + Pattern.quote(cName),
- "_('" + originalNames.get(cName).replace("$", "\\$") + "').isAssignableFrom($1.class)");
+ "__loadClass('" + originalNames.get(cName).replace("$", "\\$") + "').isAssignableFrom($1.class)");
}
}
@@ -149,7 +149,7 @@ protected void head() {
println(" extends play.templates.GroovyTemplate.ExecutableTemplate {");
println("public Object run() { use(play.templates.JavaExtensions) {");
for (String n : extensionsClassnames) {
- println("use(_('" + n + "')) {");
+ println("use(__loadClass('" + n + "')) {");
}
}
@@ -390,7 +390,7 @@ protected void endTag() {
}
if (m != null) {
print("play.templates.TagContext.enterTag('" + tag.name + "');");
- print("_('" + m.getDeclaringClass().getName() + "')._" + tName + "(attrs" + tagIndex + ",body" + tagIndex
+ print("__loadClass('" + m.getDeclaringClass().getName() + "')._" + tName + "(attrs" + tagIndex + ",body" + tagIndex
+ ", out, this, " + tag.startLine + ");");
print("play.templates.TagContext.exitTag();");
} else {
diff --git a/framework/test-src/play/templates/JavaExtensionsTest.java b/framework/test-src/play/templates/JavaExtensionsTest.java
index 7543362c02..8be18bb474 100755
--- a/framework/test-src/play/templates/JavaExtensionsTest.java
+++ b/framework/test-src/play/templates/JavaExtensionsTest.java
@@ -45,8 +45,8 @@ public void testContains() {
@Test
public void testAdd() {
- String[] testArray = {"a", "b", "c"};
- assertThat(JavaExtensions.add(new String[]{"a", "b"}, "c")).hasSize(3).contains(testArray);
+ final String[] items = JavaExtensions.add(new String[]{"a", "b"}, "c");
+ assertThat(items).hasSize(3).contains((Object[]) new String[] {"a", "b", "c"});
}
diff --git a/modules/crud/app/views/tags/crud/form.html b/modules/crud/app/views/tags/crud/form.html
index efb7c71e82..249b1d50af 100644
--- a/modules/crud/app/views/tags/crud/form.html
+++ b/modules/crud/app/views/tags/crud/form.html
@@ -1,10 +1,10 @@
%{
if(_object) {
currentObject = _object
- currentType = _('controllers.CRUD$ObjectType').forClass(_object.getClass().getName())
+ currentType = __loadClass('controllers.CRUD$ObjectType').forClass(_object.getClass().getName())
} else if(_class) {
currentObject = null;
- currentType = _('controllers.CRUD$ObjectType').forClass(_class)
+ currentType = __loadClass('controllers.CRUD$ObjectType').forClass(_class)
} else {
currentObject = _caller.object
currentType = _caller.type
diff --git a/modules/crud/app/views/tags/crud/types.tag b/modules/crud/app/views/tags/crud/types.tag
index 3986b897df..e458b94e05 100644
--- a/modules/crud/app/views/tags/crud/types.tag
+++ b/modules/crud/app/views/tags/crud/types.tag
@@ -1,13 +1,13 @@
%{
models = [];
- for(controllerClass in play.Play.classloader.getAssignableClasses(_('controllers.CRUD'))) {
- resourceModel = _('controllers.CRUD$ObjectType').get(controllerClass)
+ for(controllerClass in play.Play.classloader.getAssignableClasses(__loadClass('controllers.CRUD'))) {
+ resourceModel = __loadClass('controllers.CRUD$ObjectType').get(controllerClass)
if(resourceModel != null) {
models.add(resourceModel)
}
}
- for(controllerClass in play.Play.classloader.getAssignableClasses(_('play.scalasupport.crud.CRUDWrapper'))) {
- resourceModel = _('controllers.CRUD$ObjectType').get(controllerClass)
+ for(controllerClass in play.Play.classloader.getAssignableClasses(__loadClass('play.scalasupport.crud.CRUDWrapper'))) {
+ resourceModel = __loadClass('controllers.CRUD$ObjectType').get(controllerClass)
if(resourceModel != null) {
models.add(resourceModel)
}
diff --git a/modules/docviewer/build.xml b/modules/docviewer/build.xml
index d489d5f4e1..e120dcc18f 100644
--- a/modules/docviewer/build.xml
+++ b/modules/docviewer/build.xml
@@ -31,7 +31,7 @@
-
+
diff --git a/modules/grizzly/build.xml b/modules/grizzly/build.xml
index 3948a09e5d..0ca4ebdd77 100644
--- a/modules/grizzly/build.xml
+++ b/modules/grizzly/build.xml
@@ -34,7 +34,7 @@
-
+
diff --git a/modules/testrunner/build.xml b/modules/testrunner/build.xml
index 790feb8ed3..52ebfcf51d 100644
--- a/modules/testrunner/build.xml
+++ b/modules/testrunner/build.xml
@@ -15,7 +15,7 @@
-
+
diff --git a/samples-and-tests/just-test-cases/test/invocationContext.test.html b/samples-and-tests/just-test-cases/test/invocationContext.test.html
index 113be11e53..63d02ce0ec 100644
--- a/samples-and-tests/just-test-cases/test/invocationContext.test.html
+++ b/samples-and-tests/just-test-cases/test/invocationContext.test.html
@@ -3,10 +3,13 @@
open('@{Application.some1()}')
assertTextPresent('@play.db.jpa.Transactional')
+ // annotation parameters are in quotes in JDK9+ but not in JDK1.8, so we skip the check of Youhou.value
open('@{Application.some2()}')
- assertTextPresent('@utils.Youhou(value=),@play.db.jpa.Transactional')
+ assertTextPresent('@utils.Youhou(value=')
+ assertTextPresent('),@play.db.jpa.Transactional')
open('@{Application.some3()}')
- assertTextPresent('@utils.Youhou(value=fromJob),')
+ assertTextPresent('@utils.Youhou(value=')
+ assertTextPresent('fromJob')
#{/selenium}
diff --git a/samples-and-tests/just-test-cases/test/templateTricks.test.html b/samples-and-tests/just-test-cases/test/templateTricks.test.html
index 6e9e77811e..ca17646453 100644
--- a/samples-and-tests/just-test-cases/test/templateTricks.test.html
+++ b/samples-and-tests/just-test-cases/test/templateTricks.test.html
@@ -7,7 +7,7 @@
assertTextPresent('Template execution error')
assertTextPresent('In /app/views/Application/dynamicClassBinding.html (around line 4)')
assertTextPresent('Could not find matching constructor for: models.Bottle')
- assertTextPresent('(java.lang.Integer, java.lang.String)')
+ assertTextPresent('(Integer, String)')
open('/')