Browse Source

Update ratpack to 1.7.6 (#5529)

jringuette 5 years ago
parent
commit
17acfeee20

+ 3 - 3
frameworks/Java/ratpack/README.md

@@ -36,9 +36,9 @@ There are two repository implementations.
 
 ## Versions
 
-* [Java OpenJDK 1.8](http://openjdk.java.net/)
-* [Ratpack 1.6.0](http://ratpack.io/)
-* [reactive-pg-client 0.10.9](https://github.com/reactiverse/reactive-pg-client)
+* [Java OpenJDK 11](http://openjdk.java.net/)
+* [Ratpack 1.7.6](http://ratpack.io/)
+* [reactive-pg-client 0.11.4](https://github.com/reactiverse/reactive-pg-client)
 
 ## Test URLs
 

+ 9 - 9
frameworks/Java/ratpack/build.gradle

@@ -3,7 +3,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath "io.ratpack:ratpack-gradle:1.6.1"
+        classpath "io.ratpack:ratpack-gradle:1.7.6"
         classpath "com.github.jengelman.gradle.plugins:shadow:5.0.0"
     }
 }
@@ -18,17 +18,17 @@ repositories {
 }
 
 dependencies {
-    compile 'io.ratpack:ratpack-guice:1.6.1'
-    compile 'io.ratpack:ratpack-hikari:1.6.1'
-    compile 'io.ratpack:ratpack-handlebars:1.6.1'
-    compile 'io.ratpack:ratpack-rx2:1.6.1'
-    compile 'io.reactiverse:reactive-pg-client:0.11.3'
-    compile 'io.vertx:vertx-rx-java2:3.7.0'
+    compile 'io.ratpack:ratpack-guice:1.7.6'
+    compile 'io.ratpack:ratpack-hikari:1.7.6'
+    compile 'io.ratpack:ratpack-handlebars:1.7.6'
+    compile 'io.ratpack:ratpack-rx2:1.7.6'
+    compile 'io.reactiverse:reactive-pg-client:0.11.4'
+    compile 'io.vertx:vertx-rx-java2:3.8.5'
 
     // Default SLF4J binding.  Note that this is a blocking implementation.
     // See here for a non blocking appender http://logging.apache.org/log4j/2.x/manual/async.html
-    runtime 'org.slf4j:slf4j-simple:1.8.0-beta4'
-    runtime 'org.postgresql:postgresql:42.2.5'
+    runtime 'org.slf4j:slf4j-simple:1.7.30'
+    runtime 'org.postgresql:postgresql:42.2.10'
 
 }
 

+ 24 - 27
frameworks/Java/ratpack/src/main/java/models/PgClientRepository.java

@@ -1,16 +1,16 @@
 package models;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import io.reactiverse.reactivex.pgclient.PgClient;
 import io.reactiverse.reactivex.pgclient.PgIterator;
 import io.reactiverse.reactivex.pgclient.Row;
 import io.reactiverse.reactivex.pgclient.Tuple;
+import io.reactivex.Observable;
 import module.PgClients;
 import ratpack.exec.Promise;
 import ratpack.rx2.RxRatpack;
-import io.reactivex.Observable;
-
-import java.util.ArrayList;
-import java.util.List;
 
 public class PgClientRepository implements DbRepository {
     private final PgClients pgClients;
@@ -21,48 +21,45 @@ public class PgClientRepository implements DbRepository {
 
     @Override
     public Promise<World> getWorld(int id) {
-        return getWorlds(new int[]{id}).map(worlds -> worlds.get(0));
+        return getWorlds(new int[] { id }).map(worlds -> worlds.get(0));
     }
 
     @Override
     public Promise<List<World>> getWorlds(int[] ids) {
 
-        Observable<World>[] observables = new Observable[ids.length];
-
         PgClient pgClient = pgClients.getOne();
 
-        for (int i = 0; i < ids.length; i++) {
-            observables[i] = pgClient.rxPreparedQuery("SELECT * FROM world WHERE id = $1", Tuple.of(ids[i])).map(rowset -> {
-                final Row row = rowset.iterator().next();
+        Observable<World> observable = Observable.range(0, ids.length)
+                .flatMap(i -> pgClient.rxPreparedQuery("SELECT * FROM world WHERE id = $1", Tuple.of(ids[i]))
+                        .map(rowset -> {
+                            final Row row = rowset.iterator().next();
 
-                return new World(row.getInteger(0), row.getInteger(1));
-            }).toObservable();
-        }
+                            return new World(row.getInteger(0), row.getInteger(1));
+                        })
+                        .toObservable());
 
-        return getPromise(observables);
+        return RxRatpack.promiseAll(observable);
     }
 
     @Override
     public Promise<List<World>> findAndUpdateWorlds(int[] ids, int[] randomNumbers) {
         return getWorlds(ids).flatMap(worlds -> {
-            Observable<World>[] observables = new Observable[worlds.size()];
-
             PgClient pgClient = pgClients.getOne();
 
-            for (int i = 0; i < worlds.size(); i++) {
-                World world = worlds.get(i);
-                world.randomNumber = randomNumbers[i];
-                observables[i] = pgClient.rxPreparedQuery("UPDATE world SET randomnumber = $1 WHERE id = $2", Tuple.of(world.randomNumber, world.id)).map(rowset -> world).toObservable();
-            }
-
-            return getPromise(observables);
+            Observable<World> observable = Observable.range(0, worlds.size())
+                    .flatMap(i -> {
+                        World world = worlds.get(i);
+                        world.randomNumber = randomNumbers[i];
+                        return pgClient
+                                .rxPreparedQuery("UPDATE world SET randomnumber = $1 WHERE id = $2", Tuple.of(world.randomNumber, world.id))
+                                .map(rowset -> world)
+                                .toObservable();
+                    });
+
+            return RxRatpack.promiseAll(observable);
         });
     }
 
-    private Promise<List<World>> getPromise(Observable<World>[] observables) {
-        return RxRatpack.promiseAll(Observable.mergeArray(observables));
-    }
-
     @Override
     public Promise<List<Fortune>> fortunes() {
         return RxRatpack.promiseAll(pgClients.getOne().rxPreparedQuery("SELECT * FROM fortune").flatMapObservable(pgRowSet -> {