From 2182ebd99ef6c772e2199faed6fcee65614094c7 Mon Sep 17 00:00:00 2001 From: Vinay Kumar Date: Thu, 10 Jan 2019 18:00:15 +0530 Subject: [PATCH 1/3] update build file --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index d927603..d9bfbde 100644 --- a/pom.xml +++ b/pom.xml @@ -78,6 +78,12 @@ sign + + + --pinentry-mode + loopback + + From 98629c7fc29e98275302f46e01d47107f7c8de1a Mon Sep 17 00:00:00 2001 From: Vinay Kumar Date: Sun, 13 Jan 2019 03:14:07 +0530 Subject: [PATCH 2/3] Upgraded API framework --- pom.xml | 4 ++-- src/main/java/in/erail/amazon/lambda/AWSLambda.java | 2 +- .../erail/amazon/lambda/service/ProxyService.java | 13 +++++++++---- src/main/java/in/erail/service/HelloService.java | 4 +++- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index d9bfbde..f2c7432 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 in.erail api-framework-amazon-lambda - 2.4.3 + 2.4.4 jar @@ -15,7 +15,7 @@ UTF-8 1.8 1.8 - 2.4.3 + 2.4.4 ${settings.localRepository}/in/erail/api-framework/${api.framework.version}/api-framework-${api.framework.version}-common-config.zip ${project.basedir}/config-layers/common ${project.basedir}/config-layers/test diff --git a/src/main/java/in/erail/amazon/lambda/AWSLambda.java b/src/main/java/in/erail/amazon/lambda/AWSLambda.java index 603245e..19f81de 100644 --- a/src/main/java/in/erail/amazon/lambda/AWSLambda.java +++ b/src/main/java/in/erail/amazon/lambda/AWSLambda.java @@ -71,7 +71,7 @@ public Single handleMessage(JsonObject pRequest) { .map(this::convertBodyToBase64) .map(reqJson -> reqJson.mapTo(RequestEvent.class)) .doOnSuccess(this::populateSystemProperties) - .flatMapMaybe(req -> getService().process(req)) + .flatMapMaybe(req -> getService().handleEvent(req)) .toSingle(new ResponseEvent()) .map(resp -> JsonObject.mapFrom(resp)) .map(this::sanatizeResponse) diff --git a/src/main/java/in/erail/amazon/lambda/service/ProxyService.java b/src/main/java/in/erail/amazon/lambda/service/ProxyService.java index a1212af..6775f1d 100644 --- a/src/main/java/in/erail/amazon/lambda/service/ProxyService.java +++ b/src/main/java/in/erail/amazon/lambda/service/ProxyService.java @@ -6,6 +6,7 @@ import in.erail.server.Server; import in.erail.service.RESTServiceImpl; import io.reactivex.Maybe; +import io.reactivex.MaybeSource; import io.vertx.reactivex.core.MultiMap; import io.vertx.reactivex.core.buffer.Buffer; import io.vertx.reactivex.ext.web.client.HttpRequest; @@ -75,8 +76,11 @@ protected String generateURL(RequestEvent pRequest) { return sb.toString(); } - @Override - public Maybe process(RequestEvent proxyRequest) { + public MaybeSource process(Maybe pRequest) { + return pRequest.flatMap(this::handle); + } + + public Maybe handle(RequestEvent proxyRequest) { //Build Request HttpRequest clientRequest = getWebClient().requestAbs(proxyRequest.getHttpMethod(), generateURL(proxyRequest)); @@ -109,15 +113,16 @@ public Maybe process(RequestEvent proxyRequest) { event.setStatusCode(resp.statusCode()); event.setIsBase64Encoded(true); - + Optional .ofNullable(resp.body()) .ifPresent(b -> event.setBody(b.getBytes())); - + return event; }) .doOnSuccess(e -> getLog().debug(() -> e.toString())) .toMaybe(); + } public String getHost() { diff --git a/src/main/java/in/erail/service/HelloService.java b/src/main/java/in/erail/service/HelloService.java index 1ab343b..43f13af 100644 --- a/src/main/java/in/erail/service/HelloService.java +++ b/src/main/java/in/erail/service/HelloService.java @@ -4,6 +4,7 @@ import in.erail.model.RequestEvent; import in.erail.model.ResponseEvent; import io.reactivex.Maybe; +import io.reactivex.MaybeSource; import io.vertx.core.json.JsonArray; public class HelloService extends RESTServiceImpl { @@ -18,8 +19,9 @@ public HelloService() { mHelloData.add("S5"); } + @Override - public Maybe process(RequestEvent pRequest) { + public MaybeSource process(Maybe pRequest) { return Maybe.just(new ResponseEvent() .setBody(getHelloData().toString().getBytes()) .setMediaType(MediaType.JSON_UTF_8)); From e72128ea2f975193bcf224475e8b194b08fd3279 Mon Sep 17 00:00:00 2001 From: Vinay Kumar Date: Tue, 15 Jan 2019 13:00:25 +0000 Subject: [PATCH 3/3] Refactored code --- .../in/erail/amazon/lambda/AWSLambda.java | 10 +++++----- .../amazon/lambda/service/ProxyService.java | 19 +++++++++++-------- .../java/in/erail/service/HelloService.java | 15 +++++++-------- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/main/java/in/erail/amazon/lambda/AWSLambda.java b/src/main/java/in/erail/amazon/lambda/AWSLambda.java index 19f81de..54b5be2 100644 --- a/src/main/java/in/erail/amazon/lambda/AWSLambda.java +++ b/src/main/java/in/erail/amazon/lambda/AWSLambda.java @@ -6,6 +6,7 @@ import com.google.common.base.Strings; import com.google.common.io.ByteStreams; import in.erail.glue.Glue; +import in.erail.model.Event; import in.erail.service.RESTService; import io.reactivex.Single; import io.reactivex.schedulers.Schedulers; @@ -16,7 +17,6 @@ import java.io.OutputStream; import java.io.OutputStreamWriter; import in.erail.model.RequestEvent; -import in.erail.model.ResponseEvent; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -69,11 +69,11 @@ public Single handleMessage(JsonObject pRequest) { .just(pRequest) .subscribeOn(Schedulers.computation()) .map(this::convertBodyToBase64) - .map(reqJson -> reqJson.mapTo(RequestEvent.class)) + .map(reqJson -> reqJson.mapTo(getService().getRequestEventClass())) .doOnSuccess(this::populateSystemProperties) - .flatMapMaybe(req -> getService().handleEvent(req)) - .toSingle(new ResponseEvent()) - .map(resp -> JsonObject.mapFrom(resp)) + .flatMapMaybe(req -> getService().handleEvent(getService().createEvent(req))) + .toSingle(new Event()) + .map(resp -> JsonObject.mapFrom(resp.getResponse())) .map(this::sanatizeResponse) .map(respJson -> respJson.toString()); } diff --git a/src/main/java/in/erail/amazon/lambda/service/ProxyService.java b/src/main/java/in/erail/amazon/lambda/service/ProxyService.java index 6775f1d..3ca5f97 100644 --- a/src/main/java/in/erail/amazon/lambda/service/ProxyService.java +++ b/src/main/java/in/erail/amazon/lambda/service/ProxyService.java @@ -1,6 +1,7 @@ package in.erail.amazon.lambda.service; import com.google.common.base.Joiner; +import in.erail.model.Event; import in.erail.model.RequestEvent; import in.erail.model.ResponseEvent; import in.erail.server.Server; @@ -76,12 +77,14 @@ protected String generateURL(RequestEvent pRequest) { return sb.toString(); } - public MaybeSource process(Maybe pRequest) { + public MaybeSource process(Maybe pRequest) { return pRequest.flatMap(this::handle); } - public Maybe handle(RequestEvent proxyRequest) { + public Maybe handle(Event pEvent) { + RequestEvent proxyRequest = pEvent.getRequest(); + //Build Request HttpRequest clientRequest = getWebClient().requestAbs(proxyRequest.getHttpMethod(), generateURL(proxyRequest)); @@ -101,7 +104,7 @@ public Maybe handle(RequestEvent proxyRequest) { return clientRequest .rxSendBuffer(Buffer.buffer(body)) .map((resp) -> { - ResponseEvent event = new ResponseEvent(); + ResponseEvent responseEvent = pEvent.getResponse(); //Add Headers Optional @@ -109,16 +112,16 @@ public Maybe handle(RequestEvent proxyRequest) { .orElse(MultiMap.caseInsensitiveMultiMap()) .entries() .stream() - .forEach((t) -> event.addHeader(t.getKey(), t.getValue())); + .forEach((t) -> responseEvent.addHeader(t.getKey(), t.getValue())); - event.setStatusCode(resp.statusCode()); - event.setIsBase64Encoded(true); + responseEvent.setStatusCode(resp.statusCode()); + responseEvent.setIsBase64Encoded(true); Optional .ofNullable(resp.body()) - .ifPresent(b -> event.setBody(b.getBytes())); + .ifPresent(b -> responseEvent.setBody(b.getBytes())); - return event; + return pEvent; }) .doOnSuccess(e -> getLog().debug(() -> e.toString())) .toMaybe(); diff --git a/src/main/java/in/erail/service/HelloService.java b/src/main/java/in/erail/service/HelloService.java index 43f13af..11cd1c1 100644 --- a/src/main/java/in/erail/service/HelloService.java +++ b/src/main/java/in/erail/service/HelloService.java @@ -1,8 +1,7 @@ package in.erail.service; import com.google.common.net.MediaType; -import in.erail.model.RequestEvent; -import in.erail.model.ResponseEvent; +import in.erail.model.Event; import io.reactivex.Maybe; import io.reactivex.MaybeSource; import io.vertx.core.json.JsonArray; @@ -19,14 +18,14 @@ public HelloService() { mHelloData.add("S5"); } - @Override - public MaybeSource process(Maybe pRequest) { - return Maybe.just(new ResponseEvent() - .setBody(getHelloData().toString().getBytes()) - .setMediaType(MediaType.JSON_UTF_8)); + public MaybeSource process(Maybe pEvent) { + return pEvent.doOnSuccess(e -> e + .getResponse() + .setBody(getHelloData().toString().getBytes()) + .setMediaType(MediaType.JSON_UTF_8)); } - + public JsonArray getHelloData() { return mHelloData; }