Browse Source

Inject ctx.

Anuraag Agrawal 5 years ago
parent
commit
61091e3788

+ 14 - 15
frameworks/Java/armeria/src/main/java/hello/services/PostgresDbService.java

@@ -12,7 +12,6 @@ import javax.sql.DataSource;
 import com.zaxxer.hikari.HikariDataSource;
 import com.zaxxer.hikari.HikariDataSource;
 
 
 import com.linecorp.armeria.server.ServiceRequestContext;
 import com.linecorp.armeria.server.ServiceRequestContext;
-import com.linecorp.armeria.server.annotation.Default;
 import com.linecorp.armeria.server.annotation.Get;
 import com.linecorp.armeria.server.annotation.Get;
 import com.linecorp.armeria.server.annotation.Param;
 import com.linecorp.armeria.server.annotation.Param;
 import com.linecorp.armeria.server.annotation.ProducesJson;
 import com.linecorp.armeria.server.annotation.ProducesJson;
@@ -34,25 +33,25 @@ public class PostgresDbService {
 
 
   @Get("/db")
   @Get("/db")
   @ProducesJson
   @ProducesJson
-  public CompletableFuture<World> db() throws Exception {
-    return getWorld(getRandomNumber());
+  public CompletableFuture<World> db(ServiceRequestContext ctx) throws Exception {
+    return getWorld(getRandomNumber(), ctx);
   }
   }
 
 
   // need to use regex as /queries/{count} doesn't work when count is null
   // need to use regex as /queries/{count} doesn't work when count is null
   @Get("regex:^/queries/(?<count>.*)$")
   @Get("regex:^/queries/(?<count>.*)$")
   @ProducesJson
   @ProducesJson
   public CompletableFuture<World[]> queries(
   public CompletableFuture<World[]> queries(
-      @Param("count")
-      @Default("") String count) {
-    return getWorlds(getSanitizedCount(count));
+      @Param("count") String count,
+      ServiceRequestContext ctx) {
+    return getWorlds(getSanitizedCount(count), ctx);
   }
   }
 
 
   @Get("regex:^/updates/(?<count>.*)$")
   @Get("regex:^/updates/(?<count>.*)$")
   @ProducesJson
   @ProducesJson
   public CompletableFuture<World[]> update(
   public CompletableFuture<World[]> update(
-      @Param("count")
-      @Default("") String count) {
-    return getUpdatedWorlds(getSanitizedCount(count));
+      @Param("count") String count,
+      ServiceRequestContext ctx) {
+    return getUpdatedWorlds(getSanitizedCount(count), ctx);
   }
   }
 
 
   private static int getRandomNumber() {
   private static int getRandomNumber() {
@@ -74,7 +73,7 @@ public class PostgresDbService {
     }
     }
   }
   }
 
 
-  private CompletableFuture<World> getWorld(int number) {
+  private CompletableFuture<World> getWorld(int number, ServiceRequestContext ctx) {
     return CompletableFuture.supplyAsync(
     return CompletableFuture.supplyAsync(
         () -> {
         () -> {
           try (final Connection connection = dataSource.getConnection();
           try (final Connection connection = dataSource.getConnection();
@@ -90,10 +89,10 @@ public class PostgresDbService {
           } catch (SQLException e) {
           } catch (SQLException e) {
             throw new IllegalStateException("Database error", e);
             throw new IllegalStateException("Database error", e);
           }
           }
-        }, ServiceRequestContext.current().blockingTaskExecutor());
+        }, ctx.blockingTaskExecutor());
   }
   }
 
 
-  private CompletableFuture<World[]> getWorlds(int count) {
+  private CompletableFuture<World[]> getWorlds(int count, ServiceRequestContext ctx) {
     return CompletableFuture.supplyAsync(
     return CompletableFuture.supplyAsync(
         () -> {
         () -> {
           World[] worlds = new World[count];
           World[] worlds = new World[count];
@@ -116,10 +115,10 @@ public class PostgresDbService {
             throw new IllegalStateException("Database error", e);
             throw new IllegalStateException("Database error", e);
           }
           }
           return worlds;
           return worlds;
-        }, ServiceRequestContext.current().blockingTaskExecutor());
+        }, ctx.blockingTaskExecutor());
   }
   }
 
 
-  private CompletableFuture<World[]> getUpdatedWorlds(int count) {
+  private CompletableFuture<World[]> getUpdatedWorlds(int count, ServiceRequestContext ctx) {
     return CompletableFuture.supplyAsync(
     return CompletableFuture.supplyAsync(
         () -> {
         () -> {
 
 
@@ -155,6 +154,6 @@ public class PostgresDbService {
             throw new IllegalStateException("Database error", e);
             throw new IllegalStateException("Database error", e);
           }
           }
           return worlds;
           return worlds;
-        }, ServiceRequestContext.current().blockingTaskExecutor());
+        }, ctx.blockingTaskExecutor());
   }
   }
 }
 }

+ 4 - 4
frameworks/Java/armeria/src/main/java/hello/services/PostgresFortunesService.java

@@ -48,8 +48,8 @@ public class PostgresFortunesService {
   }
   }
 
 
   @Get("/fortunes")
   @Get("/fortunes")
-  public CompletableFuture<HttpResponse> fortunes() {
-    return getFortunes().thenApply(fortunes -> {
+  public CompletableFuture<HttpResponse> fortunes(ServiceRequestContext ctx) {
+    return getFortunes(ctx).thenApply(fortunes -> {
       fortunes.add(
       fortunes.add(
           new Fortune(0, "Additional fortune added at request time."));
           new Fortune(0, "Additional fortune added at request time."));
       fortunes.sort(Comparator.comparing(Fortune::getMessage));
       fortunes.sort(Comparator.comparing(Fortune::getMessage));
@@ -59,7 +59,7 @@ public class PostgresFortunesService {
     });
     });
   }
   }
 
 
-  private CompletableFuture<List<Fortune>> getFortunes() {
+  private CompletableFuture<List<Fortune>> getFortunes(ServiceRequestContext ctx) {
     return CompletableFuture.supplyAsync(
     return CompletableFuture.supplyAsync(
         () -> {
         () -> {
           List<Fortune> fortunes = new ArrayList<>();
           List<Fortune> fortunes = new ArrayList<>();
@@ -79,7 +79,7 @@ public class PostgresFortunesService {
             throw new IllegalStateException("Database error", e);
             throw new IllegalStateException("Database error", e);
           }
           }
           return fortunes;
           return fortunes;
-        }, ServiceRequestContext.current().blockingTaskExecutor()
+        }, ctx.blockingTaskExecutor()
     );
     );
   }
   }