Skip to content

Commit 3529441

Browse files
committed
Refactored
1 parent ca95e6c commit 3529441

File tree

9 files changed

+67
-46
lines changed

9 files changed

+67
-46
lines changed

config-layers/common/io/vertx/core/VertxOptions.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ $class=io.vertx.core.VertxOptions
44
clustered=true
55
clusterManager=/io/vertx/spi/cluster/ClusterManager
66
metricsOptions=/io/vertx/ext/dropwizard/DropwizardMetricsOptions
7-
preferNativeTransport=true
7+
preferNativeTransport=false

src/main/java/in/erail/model/ReqestEvent.java renamed to src/main/java/in/erail/model/RequestEvent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* @author vinay
1212
*/
1313
@JsonInclude(Include.NON_NULL)
14-
public class ReqestEvent {
14+
public class RequestEvent {
1515

1616
private String mResource;
1717
private String mPath;

src/main/java/in/erail/model/ResponseEvent.java

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,39 +30,43 @@ public boolean isIsBase64Encoded() {
3030
return mIsBase64Encoded;
3131
}
3232

33-
public void setIsBase64Encoded(boolean pIsBase64Encoded) {
33+
public ResponseEvent setIsBase64Encoded(boolean pIsBase64Encoded) {
3434
this.mIsBase64Encoded = pIsBase64Encoded;
35+
return this;
3536
}
3637

3738
public int getStatusCode() {
3839
return mStatusCode;
3940
}
4041

41-
public void setStatusCode(int pStatusCode) {
42+
public ResponseEvent setStatusCode(int pStatusCode) {
4243
this.mStatusCode = pStatusCode;
44+
return this;
4345
}
4446

4547
public byte[] getBody() {
4648
return mBody;
4749
}
4850

49-
public void setBody(byte[] pBody) {
51+
public ResponseEvent setBody(byte[] pBody) {
5052
this.mBody = pBody;
53+
return this;
5154
}
5255

5356
public Map<String, String>[] getCookies() {
5457
return mCookies;
5558
}
5659

57-
public void setCookies(Map<String, String>[] pCookies) {
60+
public ResponseEvent setCookies(Map<String, String>[] pCookies) {
5861
this.mCookies = pCookies;
62+
return this;
5963
}
6064

61-
public void setMultiValueHeaders(Map<String, String[]> pValue) {
65+
public ResponseEvent setMultiValueHeaders(Map<String, String[]> pValue) {
6266
Preconditions.checkNotNull(pValue);
6367

6468
if (pValue.isEmpty()) {
65-
return;
69+
return this;
6670
}
6771

6872
mMultiValueHeaders
@@ -80,6 +84,8 @@ public void setMultiValueHeaders(Map<String, String[]> pValue) {
8084
a.addAll(b);
8185
return a;
8286
});
87+
88+
return this;
8389
}
8490

8591
/**
@@ -103,11 +109,11 @@ public Map<String, String[]> getMultiValueHeaders() {
103109
return Collections.unmodifiableMap(result);
104110
}
105111

106-
public void setHeaders(Map<String, String> pValue) {
112+
public ResponseEvent setHeaders(Map<String, String> pValue) {
107113
Preconditions.checkNotNull(pValue);
108114

109115
if (pValue.isEmpty()) {
110-
return;
116+
return this;
111117
}
112118

113119
mMultiValueHeaders
@@ -123,6 +129,7 @@ public void setHeaders(Map<String, String> pValue) {
123129
a.addAll(b);
124130
return a;
125131
});
132+
return this;
126133
}
127134

128135
/**
@@ -146,23 +153,27 @@ public Map<String, String> getHeaders() {
146153
return Collections.unmodifiableMap(result);
147154
}
148155

149-
public void setContentType(String pContentType) {
156+
public ResponseEvent setContentType(String pContentType) {
150157
if (mMultiValueHeaders.contains(HttpHeaders.CONTENT_TYPE)) {
151158
mMultiValueHeaders.remove(HttpHeaders.CONTENT_TYPE);
152159
}
153160
mMultiValueHeaders.add(HttpHeaders.CONTENT_TYPE, pContentType);
161+
return this;
154162
}
155163

156-
public void setContentType(MediaType pMediaType) {
164+
public ResponseEvent setContentType(MediaType pMediaType) {
157165
setContentType(pMediaType.toString());
166+
return this;
158167
}
159168

160-
public void addHeader(String pHeaderName, String pMediaType) {
169+
public ResponseEvent addHeader(String pHeaderName, String pMediaType) {
161170
mMultiValueHeaders.add(HttpHeaders.CONTENT_TYPE, pMediaType);
171+
return this;
162172
}
163173

164-
public void addHeader(String pHeaderName, MediaType pMediaType) {
174+
public ResponseEvent addHeader(String pHeaderName, MediaType pMediaType) {
165175
addHeader(HttpHeaders.CONTENT_TYPE, pMediaType.toString());
176+
return this;
166177
}
167178

168179
public String headerValue(String pHeaderName) {

src/main/java/in/erail/route/OpenAPI3RouteBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import static in.erail.common.FrameworkConstants.RoutingContext.Json;
1515
import in.erail.glue.annotation.StartService;
16-
import in.erail.model.ReqestEvent;
16+
import in.erail.model.RequestEvent;
1717
import in.erail.model.ResponseEvent;
1818
import io.netty.handler.codec.http.HttpHeaderNames;
1919
import io.vertx.core.eventbus.DeliveryOptions;
@@ -113,7 +113,7 @@ public void process(RoutingContext pRequestContext, String pServiceUniqueId) {
113113
*/
114114
public JsonObject serialiseRoutingContext(RoutingContext pContext) {
115115

116-
ReqestEvent request = new ReqestEvent();
116+
RequestEvent request = new RequestEvent();
117117
request.setHttpMethod(pContext.request().method());
118118

119119
if (request.getHttpMethod() == HttpMethod.POST
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package in.erail.service;
22

33

4-
import io.vertx.core.json.JsonObject;
5-
import io.vertx.reactivex.core.eventbus.Message;
4+
import in.erail.model.RequestEvent;
5+
import in.erail.model.ResponseEvent;
66

77
/**
88
*
@@ -11,5 +11,5 @@
1111
public interface RESTService {
1212
String getOperationId();
1313
String getServiceUniqueId();
14-
void process(Message<JsonObject> pMessage);
14+
ResponseEvent process(RequestEvent pRequest);
1515
}

src/main/java/in/erail/service/RESTServiceImpl.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
import io.vertx.reactivex.core.Vertx;
66
import org.apache.logging.log4j.Logger;
77
import in.erail.glue.annotation.StartService;
8+
import in.erail.model.RequestEvent;
89
import io.reactivex.Scheduler;
10+
import io.reactivex.Single;
11+
import io.vertx.reactivex.core.eventbus.Message;
912

1013
/**
1114
*
@@ -30,10 +33,20 @@ public void start() {
3033
.subscribeOn(getScheduler())
3134
.doOnSubscribe((s) -> getLog().info(() -> String.format("%s[%s] service started", getServiceUniqueId(), Thread.currentThread().getName())))
3235
.doOnTerminate(() -> getLog().info(() -> String.format("%s[%s] service stopped", getServiceUniqueId(), Thread.currentThread().getName())))
33-
.subscribe(this::process, err -> getLog().error(() -> String.format("Process exception:[%s],Error:[%s]", getServiceUniqueId(), err)));
36+
.flatMapSingle(this::handleRequest)
37+
.subscribe((resp) -> getLog().trace(() -> resp.toString()), err -> getLog().error(() -> String.format("Process exception:[%s],Error:[%s]", getServiceUniqueId(), err)));
3438
}
3539
}
3640

41+
public Single<JsonObject> handleRequest(Message<JsonObject> pMessage) {
42+
return Single
43+
.just(pMessage)
44+
.map(m -> pMessage.body().mapTo(RequestEvent.class))
45+
.map(req -> process(req))
46+
.map(resp -> JsonObject.mapFrom(resp))
47+
.doOnSuccess(resp -> pMessage.reply(resp));
48+
}
49+
3750
@Override
3851
public String getOperationId() {
3952
return mOperationId;

src/test/java/in/erail/model/ReqestEventTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public class ReqestEventTest {
145145

146146
@Test
147147
public void tesMapping() {
148-
ReqestEvent request = Json.decodeValue(stringJson, ReqestEvent.class);
148+
RequestEvent request = Json.decodeValue(stringJson, RequestEvent.class);
149149
JsonObject json = JsonObject.mapFrom(request);
150150
JsonObject result = new JsonObject(stringJson);
151151
assertEquals(json, result);

src/test/java/in/erail/service/BinaryBodyService.java

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
import com.google.common.net.HttpHeaders;
55
import com.google.common.net.MediaType;
66

7-
import in.erail.model.ReqestEvent;
7+
import in.erail.model.RequestEvent;
88
import in.erail.model.ResponseEvent;
99
import in.erail.test.TestConstants;
10+
import io.netty.handler.codec.http.HttpResponseStatus;
1011
import io.vertx.core.buffer.Buffer;
1112
import io.vertx.core.json.JsonObject;
1213
import io.vertx.reactivex.core.eventbus.Message;
@@ -15,28 +16,25 @@
1516
*
1617
* @author vinay
1718
*/
18-
public class BinaryBodyService extends RESTServiceImpl{
19+
public class BinaryBodyService extends RESTServiceImpl {
1920

2021
@Override
21-
public void process(Message<JsonObject> pMessage) {
22-
23-
ReqestEvent request = pMessage.body().mapTo(ReqestEvent.class);
24-
25-
String topicName = request.getPathParameters().get(TestConstants.Service.Broadcast.APIMessage.PARAM_TOPIC_NAME);
26-
27-
if(Strings.isNullOrEmpty(topicName)){
28-
pMessage.fail(0, "Empty Topic Name");
22+
public ResponseEvent process(RequestEvent pRequest) {
23+
String topicName = pRequest.getPathParameters().get(TestConstants.Service.Broadcast.APIMessage.PARAM_TOPIC_NAME);
24+
25+
if (Strings.isNullOrEmpty(topicName)) {
26+
return new ResponseEvent()
27+
.setStatusCode(HttpResponseStatus.BAD_REQUEST.code());
2928
}
3029

3130
ResponseEvent response = new ResponseEvent();
3231
response.addHeader(HttpHeaders.CONTENT_TYPE, MediaType.PLAIN_TEXT_UTF_8);
33-
34-
JsonObject jsonBody = new JsonObject(Buffer.buffer(request.getBody()));
35-
32+
33+
JsonObject jsonBody = new JsonObject(Buffer.buffer(pRequest.getBody()));
34+
3635
String bodyContent = jsonBody.getString("data");
3736
response.setBody(bodyContent.getBytes());
38-
39-
pMessage.reply(JsonObject.mapFrom(response));
37+
return response;
4038
}
41-
39+
4240
}

src/test/java/in/erail/service/BroadcastService.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
import in.erail.test.TestConstants;
77
import io.vertx.core.json.JsonObject;
88
import io.vertx.reactivex.core.eventbus.Message;
9-
import in.erail.model.ReqestEvent;
9+
import in.erail.model.RequestEvent;
1010
import in.erail.model.ResponseEvent;
11+
import io.netty.handler.codec.http.HttpResponseStatus;
1112

1213
/**
1314
*
@@ -16,17 +17,15 @@
1617
public class BroadcastService extends RESTServiceImpl {
1718

1819
@Override
19-
public void process(Message<JsonObject> pMessage) {
20+
public ResponseEvent process(RequestEvent pRequest) {
2021

21-
ReqestEvent request = pMessage.body().mapTo(ReqestEvent.class);
22-
23-
String topicName = request.getPathParameters().get(TestConstants.Service.Broadcast.APIMessage.PARAM_TOPIC_NAME);
22+
String topicName = pRequest.getPathParameters().get(TestConstants.Service.Broadcast.APIMessage.PARAM_TOPIC_NAME);
2423

2524
if (Strings.isNullOrEmpty(topicName)) {
26-
pMessage.fail(0, "Empty Topic Name");
25+
return new ResponseEvent().setStatusCode(HttpResponseStatus.BAD_REQUEST.code());
2726
}
2827

29-
JsonObject bodyJson = new JsonObject(request.bodyAsString());
28+
JsonObject bodyJson = new JsonObject(pRequest.bodyAsString());
3029

3130
getVertx()
3231
.eventBus()
@@ -38,7 +37,7 @@ public void process(Message<JsonObject> pMessage) {
3837
response.setBody(TestConstants.Service.Message.successMessage().toString().getBytes());
3938
response.addHeader(HttpHeaders.CONTENT_TYPE, MediaType.JSON_UTF_8);
4039

41-
pMessage.reply(JsonObject.mapFrom(response));
40+
return response;
4241
}
43-
42+
4443
}

0 commit comments

Comments
 (0)