Browse Source

Update ninja-standalone to Java 11 (#4760)

* Upgrade Java/ninja

* Add crude resolution to date header problem - just a servlet filter to reset it

* Actually use Java 11 in the docker file

* Add a workaround for the date header

* Fix missed multiple queries
Radoslav Petrov 6 years ago
parent
commit
169729a537

+ 2 - 2
frameworks/Java/ninja-standalone/ninja-standalone.dockerfile

@@ -1,10 +1,10 @@
-FROM maven:3.5.3-jdk-10-slim as maven
+FROM maven:3.6.1-jdk-11-slim as maven
 WORKDIR /ninja-standalone
 COPY pom.xml pom.xml
 COPY src src
 RUN mvn compile assembly:single -q
 
-FROM openjdk:10-jre-slim
+FROM openjdk:11.0.3-jre-slim
 WORKDIR /ninja-standalone
 COPY --from=maven /ninja-standalone/target/ninja-standalone-0.0.1-SNAPSHOT-jar-with-dependencies.jar app.jar
 CMD ["java", "-Dninja.port=8080", "-jar", "app.jar"]

+ 5 - 5
frameworks/Java/ninja-standalone/pom.xml

@@ -9,8 +9,8 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>10</maven.compiler.source>
-        <maven.compiler.target>10</maven.compiler.target>
+        <maven.compiler.source>11</maven.compiler.source>
+        <maven.compiler.target>11</maven.compiler.target>
 
         <maven-assembly-plugin.version>3.1.0</maven-assembly-plugin.version>
         <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
@@ -19,12 +19,12 @@
         <maven-war-plugin.version>3.2.0</maven-war-plugin.version>
 
         <h2.version>1.4.197</h2.version>
-        <hibernate.version>5.2.16.Final</hibernate.version>
+        <hibernate.version>5.4.2.Final</hibernate.version>
         <hibernate-validator.version>6.0.9.Final</hibernate-validator.version>
         <jaxb-api.version>2.3.0</jaxb-api.version>
-        <jetty.version>9.3.15.v20161220</jetty.version>
+        <jetty.version>9.4.18.v20190429</jetty.version>
         <mysql.version>5.1.47</mysql.version>
-        <ninja.version>6.2.2</ninja.version>
+        <ninja.version>6.5.0</ninja.version>
         <xml-apis.version>2.0.2</xml-apis.version>
     </properties>
 

+ 6 - 5
frameworks/Java/ninja-standalone/src/main/java/controllers/HelloDbController.java

@@ -24,7 +24,8 @@ public class HelloDbController {
 
     @UnitOfWork
     public Result singleGet() {
-        return Results.json().render(getRandomWorld());
+    	//Cache control header is set to disable the double setting of the date header.
+        return Results.json().render(getRandomWorld()).addHeader(Result.CACHE_CONTROL, "");
     }
 
     @UnitOfWork
@@ -41,8 +42,8 @@ public class HelloDbController {
         for (int i = 0; i < queries; i++) {
             worlds[i] = getRandomWorld();
         }
-
-        return Results.json().render(worlds);
+        //Cache control header is set to disable the double setting of the date header.
+        return Results.json().render(worlds).addHeader(Result.CACHE_CONTROL, "");
     }
 
     @UnitOfWork
@@ -65,8 +66,8 @@ public class HelloDbController {
             world.randomNumber = ThreadLocalRandom.current().nextInt(DB_ROWS) + 1;
             this.updateWorld(world);
         }
-
-        return Results.json().render(worlds);
+        //Cache control header is set to disable the double setting of the date header.
+        return Results.json().render(worlds).addHeader(Result.CACHE_CONTROL, "");
     }
 
     @Transactional

+ 2 - 2
frameworks/Java/ninja-standalone/src/main/java/controllers/HelloFortuneController.java

@@ -24,7 +24,7 @@ public class HelloFortuneController {
         List<Fortune> fortunes = fortuneDao.getAll();
         fortunes.add(new Fortune(0, "Additional fortune added at request time."));
         Collections.sort(fortunes);
-
-        return Results.html().render("fortunes", fortunes);
+        //Cache control header is set to disable the double setting of the date header.
+        return Results.html().render("fortunes", fortunes).addHeader(Result.CACHE_CONTROL, "");
     }
 }

+ 2 - 1
frameworks/Java/ninja-standalone/src/main/java/controllers/HelloJsonController.java

@@ -9,7 +9,8 @@ import com.google.inject.Singleton;
 public class HelloJsonController {
 
     public Result index() {
-        return Results.json().render(new Message("Hello, World!"));
+    	//Cache control header is set to disable the double setting of the date header.
+        return Results.json().render(new Message("Hello, World!")).addHeader(Result.CACHE_CONTROL, "");
     }
 
     public static final class Message {

+ 2 - 1
frameworks/Java/ninja-standalone/src/main/java/controllers/HelloPlaintextController.java

@@ -9,7 +9,8 @@ import com.google.inject.Singleton;
 public class HelloPlaintextController {
 
     public Result index() {
-        return Results.text().render("Hello, World!");
+    	//Cache control header is set to disable the double setting of the date header.
+        return Results.text().render("Hello, World!").addHeader(Result.CACHE_CONTROL, "");
     }
 
 }