diff options
author | Izabela Zawadzka <izabela.zawadzka@nokia.com> | 2019-06-07 07:39:21 +0200 |
---|---|---|
committer | Izabela Zawadzka <izabela.zawadzka@nokia.com> | 2019-06-10 13:58:51 +0200 |
commit | a3412d52a06d0dbd5dd2978ff5ea3c76234ebce9 (patch) | |
tree | 92ac90acce25793de22e0c7827114c5ade4e1a79 /rest-services/dmaap-client/src/main/java | |
parent | 13cc0bf2987cd12bccf131fd99019d8e16c6c07d (diff) |
Refactor MRSubscribeResponse interface to return list of parsed JsonElements
Also now MRSubscriber also uses io.vavr.collection.List for consistency
Change-Id: Id420f1c2627b305f871ab0bb566060884b1aa3f1
Issue-ID: DCAEGEN2-1607
Signed-off-by: Izabela Zawadzka <izabela.zawadzka@nokia.com>
Diffstat (limited to 'rest-services/dmaap-client/src/main/java')
2 files changed, 16 insertions, 5 deletions
diff --git a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/impl/MessageRouterSubscriberImpl.java b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/impl/MessageRouterSubscriberImpl.java index 2f2e4214..1edaf72f 100644 --- a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/impl/MessageRouterSubscriberImpl.java +++ b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/impl/MessageRouterSubscriberImpl.java @@ -24,6 +24,9 @@ import static org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.impl.Com import com.google.gson.Gson; import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import io.vavr.collection.List; import java.nio.charset.StandardCharsets; import org.jetbrains.annotations.NotNull; import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpMethod; @@ -72,10 +75,18 @@ public class MessageRouterSubscriberImpl implements MessageRouterSubscriber { final ImmutableMessageRouterSubscribeResponse.Builder builder = ImmutableMessageRouterSubscribeResponse.builder(); return httpResponse.successful() - ? builder.items(httpResponse.bodyAsJson(StandardCharsets.UTF_8, gson, JsonArray.class)).build() + ? builder.items(getAsJsonElements(httpResponse)).build() : builder.failReason(extractFailReason(httpResponse)).build(); } + private List<JsonElement> getAsJsonElements(HttpResponse httpResponse){ + JsonParser parser = new JsonParser(); + + JsonArray bodyAsJsonArray = httpResponse + .bodyAsJson(StandardCharsets.UTF_8, gson, JsonArray.class); + + return List.ofAll(bodyAsJsonArray).map(arrayElement -> parser.parse(arrayElement.getAsString())); + } private String buildSubscribeUrl(MessageRouterSubscribeRequest request) { return String.format("%s/%s/%s", request.sourceDefinition().topicUrl(), request.consumerGroup(), diff --git a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/MessageRouterSubscribeResponse.java b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/MessageRouterSubscribeResponse.java index 3680ca60..3dd49cb3 100644 --- a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/MessageRouterSubscribeResponse.java +++ b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/model/MessageRouterSubscribeResponse.java @@ -21,9 +21,9 @@ package org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model; -import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import io.vavr.collection.List; import org.immutables.value.Value; -import org.onap.dcaegen2.services.sdk.rest.services.annotations.ExperimentalApi; /** * @author <a href="mailto:piotr.jaszczyk@nokia.com">Piotr Jaszczyk</a> @@ -33,11 +33,11 @@ import org.onap.dcaegen2.services.sdk.rest.services.annotations.ExperimentalApi; public interface MessageRouterSubscribeResponse extends DmaapResponse { @Value.Default - default JsonArray items() { return new JsonArray(); } + default List<JsonElement> items() { return List.empty();} @Value.Derived default boolean hasElements() { - return items().size() > 0; + return !items().isEmpty(); } @Value.Derived |