From 67f673e6c64cd8ff079945b75c705e638e9022c8 Mon Sep 17 00:00:00 2001 From: Andreas Fankhauser <23085769+hiddenalpha@users.noreply.github.com> Date: Wed, 28 Jun 2023 17:22:52 +0200 Subject: [PATCH 01/14] Cleanup random findings - Add error handling. - Prevent millions of nonsense string comparions where a simple int compare is enough. - Shorten useless complicated messages. Cache result of toString(). - Replace ugly imports. References (www): - https://m.youtube.com/watch?v=x2EOOJg8FkA - https://m.youtube.com/watch?v=EpYr3T5VP6w - https://medium.com/swlh/yagni-and-dry-the-kiss-of-death-for-your-software-project-cfd44b0654b6#fc82 References (I'm not allowed to make those publicly available): - https://wikit.post.ch/x/_Bv6Rw - https://wikit.post.ch/x/iRepPQ - https://jira.post.ch/browse/SDCISA-10871 (wip @ 284d263027f32af8980e83eaf01042aa4ebb483e) --- .../gateleen/expansion/ExpansionHandler.java | 32 ++++++-- .../swisspush/gateleen/hook/HookHandler.java | 77 +++++-------------- 2 files changed, 45 insertions(+), 64 deletions(-) diff --git a/gateleen-expansion/src/main/java/org/swisspush/gateleen/expansion/ExpansionHandler.java b/gateleen-expansion/src/main/java/org/swisspush/gateleen/expansion/ExpansionHandler.java index a75f5c39..53546d9f 100755 --- a/gateleen-expansion/src/main/java/org/swisspush/gateleen/expansion/ExpansionHandler.java +++ b/gateleen-expansion/src/main/java/org/swisspush/gateleen/expansion/ExpansionHandler.java @@ -5,16 +5,24 @@ import io.vertx.core.MultiMap; import io.vertx.core.Vertx; import io.vertx.core.buffer.Buffer; -import io.vertx.core.http.*; +import io.vertx.core.http.HttpClient; +import io.vertx.core.http.HttpClientRequest; +import io.vertx.core.http.HttpClientResponse; +import io.vertx.core.http.HttpMethod; +import io.vertx.core.http.HttpServerRequest; import io.vertx.core.json.JsonArray; import io.vertx.core.json.JsonObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.swisspush.gateleen.core.http.RequestLoggerFactory; import org.swisspush.gateleen.core.storage.ResourceStorage; -import org.swisspush.gateleen.core.util.*; +import org.swisspush.gateleen.core.util.ExpansionDeltaUtil; import org.swisspush.gateleen.core.util.ExpansionDeltaUtil.CollectionResourceContainer; import org.swisspush.gateleen.core.util.ExpansionDeltaUtil.SlashHandling; +import org.swisspush.gateleen.core.util.HttpServerRequestUtil; +import org.swisspush.gateleen.core.util.ResourceCollectionException; +import org.swisspush.gateleen.core.util.ResponseStatusCodeLogUtil; +import org.swisspush.gateleen.core.util.StatusCode; import org.swisspush.gateleen.routing.Rule; import org.swisspush.gateleen.routing.RuleFeaturesProvider; import org.swisspush.gateleen.routing.RuleProvider; @@ -25,6 +33,7 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; +import static org.swisspush.gateleen.core.util.StatusCode.INTERNAL_SERVER_ERROR; import static org.swisspush.gateleen.routing.RuleFeatures.Feature.EXPAND_ON_BACKEND; import static org.swisspush.gateleen.routing.RuleFeatures.Feature.STORAGE_EXPAND; import static org.swisspush.gateleen.routing.RuleProvider.RuleChangesObserver; @@ -491,7 +500,9 @@ private void removeZipParameter(final HttpServerRequest request) { private void makeStorageExpandRequest(final String targetUri, final List subResourceNames, final HttpServerRequest req, final DeltaHandler handler) { Logger log = RequestLoggerFactory.getLogger(ExpansionHandler.class, req); - httpClient.request(HttpMethod.POST, targetUri + "?storageExpand=true").onComplete(asyncResult -> { + HttpMethod reqMethod = HttpMethod.POST; + String reqUri = targetUri + "?storageExpand=true"; + httpClient.request(reqMethod, reqUri, asyncResult -> { if (asyncResult.failed()) { log.warn("Failed request to {}: {}", targetUri + "?storageExpand=true", asyncResult.cause()); return; @@ -512,16 +523,23 @@ private void makeStorageExpandRequest(final String targetUri, final List subReso cReq.write(payload); cReq.send(event -> { + if (event.failed()) { + Throwable ex = event.cause(); + log.debug("{} {}", reqMethod, reqUri, ex); + var exWrappr = new ResourceCollectionException(ex.getMessage(), INTERNAL_SERVER_ERROR); + handler.handle(new ResourceNode(SERIOUS_EXCEPTION, exWrappr)); + } HttpClientResponse cRes = event.result(); cRes.bodyHandler(data -> { if (StatusCode.NOT_FOUND.getStatusCode() == cRes.statusCode()) { - log.debug("requested resource could not be found: {}", targetUri); + log.debug("NotFound: {}", targetUri); handler.handle(new ResourceNode(SERIOUS_EXCEPTION, new ResourceCollectionException(cRes.statusMessage(), StatusCode.NOT_FOUND))); } else if (StatusCode.INTERNAL_SERVER_ERROR.getStatusCode() == cRes.statusCode()) { - log.error("error in request resource : {} message : {}", targetUri, data.toString()); - handler.handle(new ResourceNode(SERIOUS_EXCEPTION, new ResourceCollectionException(data.toString(), StatusCode.INTERNAL_SERVER_ERROR))); + String fullResponseBody = data.toString(); + log.error("{}: {}: {}", INTERNAL_SERVER_ERROR, targetUri, fullResponseBody); + handler.handle(new ResourceNode(SERIOUS_EXCEPTION, new ResourceCollectionException(fullResponseBody, StatusCode.INTERNAL_SERVER_ERROR))); } else if (StatusCode.METHOD_NOT_ALLOWED.getStatusCode() == cRes.statusCode()) { - log.error("POST requests (storageExpand) not allowed for uri: {}", targetUri); + log.error("storageExpand not allowed for: {}", targetUri); handler.handle(new ResourceNode(SERIOUS_EXCEPTION, new ResourceCollectionException(cRes.statusMessage(), StatusCode.METHOD_NOT_ALLOWED))); } else { String eTag = geteTag(cRes.headers()); diff --git a/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java b/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java index d38c1c9a..464be82f 100755 --- a/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java +++ b/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java @@ -47,6 +47,8 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; +import static io.vertx.core.http.HttpMethod.DELETE; +import static io.vertx.core.http.HttpMethod.PUT; import static org.swisspush.gateleen.core.util.HttpRequestHeader.CONTENT_LENGTH; /** @@ -502,24 +504,25 @@ public boolean handle(final RoutingContext ctx) { /* * 1) Un- / Register Listener / Routes */ - if (isHookListenerRegistration(request)) { - handleListenerRegistration(request); - return true; - } - - if (isHookListenerUnregistration(request)) { - handleListenerUnregistration(request); - return true; - } - - if (isHookRouteRegistration(request)) { - handleRouteRegistration(request); - return true; + if (request.method() == PUT) { + if (request.uri().contains(HOOKS_LISTENERS_URI_PART)) { + handleListenerRegistration(request); + return true; + } + if (request.uri().contains(HOOKS_ROUTE_URI_PART)) { + handleRouteRegistration(request); + return true; + } } - - if (isHookRouteUnregistration(request)) { - handleRouteUnregistration(request); - return true; + if (request.method() == DELETE) { + if (request.uri().contains(HOOKS_LISTENERS_URI_PART)) { + handleListenerUnregistration(request); + return true; + } + if (request.uri().contains(HOOKS_ROUTE_URI_PART)) { + handleRouteUnregistration(request); + return true; + } } /* @@ -1654,46 +1657,6 @@ private String getListenerUrlSegment(String requestUrl) { return requestUrl.substring(pos + HOOKS_LISTENERS_URI_PART.length()); } - /** - * Checks if the given request is a listener unregistration instruction. - * - * @param request request - * @return boolean - */ - private boolean isHookListenerUnregistration(HttpServerRequest request) { - return request.uri().contains(HOOKS_LISTENERS_URI_PART) && HttpMethod.DELETE == request.method(); - } - - /** - * Checks if the given request is a listener registration instruction. - * - * @param request request - * @return boolean - */ - private boolean isHookListenerRegistration(HttpServerRequest request) { - return request.uri().contains(HOOKS_LISTENERS_URI_PART) && HttpMethod.PUT == request.method(); - } - - /** - * Checks if the given request is a route registration instruction. - * - * @param request request - * @return boolean - */ - private boolean isHookRouteRegistration(HttpServerRequest request) { - return request.uri().contains(HOOKS_ROUTE_URI_PART) && HttpMethod.PUT == request.method(); - } - - /** - * Checks if the given request is a route registration instruction. - * - * @param request request - * @return boolean - */ - private boolean isHookRouteUnregistration(HttpServerRequest request) { - return request.uri().contains(HOOKS_ROUTE_URI_PART) && HttpMethod.DELETE == request.method(); - } - /** * @param request Request to extract the value from. This instance gets manipulated * internally during call. From d036b62edad0c4a3df2dc65adf2ca13212fc9c5f Mon Sep 17 00:00:00 2001 From: Andreas Fankhauser <23085769+hiddenalpha@users.noreply.github.com> Date: Fri, 30 Jun 2023 16:22:25 +0200 Subject: [PATCH 02/14] Fix build. No idea why this other overlaod is broken. (wip @ 96a7efc077737e969bba73afdcdf6cced4b6ef07) --- .github/workflows/maven.yml | 1 + .../gateleen/expansion/ExpansionHandler.java | 2 +- .../org/swisspush/gateleen/hook/HookHandler.java | 15 +++++++++------ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index adad66b4..3d3fe94e 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -12,6 +12,7 @@ on: jobs: build_maven: runs-on: ubuntu-latest + timeout-minutes: 30 steps: - uses: actions/checkout@v3 diff --git a/gateleen-expansion/src/main/java/org/swisspush/gateleen/expansion/ExpansionHandler.java b/gateleen-expansion/src/main/java/org/swisspush/gateleen/expansion/ExpansionHandler.java index 53546d9f..d0dd971b 100755 --- a/gateleen-expansion/src/main/java/org/swisspush/gateleen/expansion/ExpansionHandler.java +++ b/gateleen-expansion/src/main/java/org/swisspush/gateleen/expansion/ExpansionHandler.java @@ -502,7 +502,7 @@ private void makeStorageExpandRequest(final String targetUri, final List subReso Logger log = RequestLoggerFactory.getLogger(ExpansionHandler.class, req); HttpMethod reqMethod = HttpMethod.POST; String reqUri = targetUri + "?storageExpand=true"; - httpClient.request(reqMethod, reqUri, asyncResult -> { + httpClient.request(reqMethod, reqUri).onComplete(asyncResult -> { if (asyncResult.failed()) { log.warn("Failed request to {}: {}", targetUri + "?storageExpand=true", asyncResult.cause()); return; diff --git a/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java b/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java index 464be82f..10a44d8e 100755 --- a/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java +++ b/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java @@ -504,22 +504,25 @@ public boolean handle(final RoutingContext ctx) { /* * 1) Un- / Register Listener / Routes */ - if (request.method() == PUT) { - if (request.uri().contains(HOOKS_LISTENERS_URI_PART)) { + var requestMethod = request.method(); + if (requestMethod == PUT) { + var requestUri = request.uri(); + if (requestUri.contains(HOOKS_LISTENERS_URI_PART)) { handleListenerRegistration(request); return true; } - if (request.uri().contains(HOOKS_ROUTE_URI_PART)) { + if (requestUri.contains(HOOKS_ROUTE_URI_PART)) { handleRouteRegistration(request); return true; } } - if (request.method() == DELETE) { - if (request.uri().contains(HOOKS_LISTENERS_URI_PART)) { + if (requestMethod == DELETE) { + var requestUri = request.uri(); + if (requestUri.contains(HOOKS_LISTENERS_URI_PART)) { handleListenerUnregistration(request); return true; } - if (request.uri().contains(HOOKS_ROUTE_URI_PART)) { + if (requestUri.contains(HOOKS_ROUTE_URI_PART)) { handleRouteUnregistration(request); return true; } From 5f796ac372eda429ef98b7b44ceb2fe6ecba21e9 Mon Sep 17 00:00:00 2001 From: Andreas Fankhauser <23085769+hiddenalpha@users.noreply.github.com> Date: Thu, 27 Jul 2023 12:00:26 +0200 Subject: [PATCH 03/14] [SDCISA-12877] Implement another HttpClient method. --- .../core/event/SucceededAsyncResult.java | 32 +++++++++++++++++++ .../core/http/AbstractHttpClient.java | 10 +++++- .../gateleen/core/http/LocalHttpClient.java | 1 + 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 gateleen-core/src/main/java/org/swisspush/gateleen/core/event/SucceededAsyncResult.java diff --git a/gateleen-core/src/main/java/org/swisspush/gateleen/core/event/SucceededAsyncResult.java b/gateleen-core/src/main/java/org/swisspush/gateleen/core/event/SucceededAsyncResult.java new file mode 100644 index 00000000..d334d8ba --- /dev/null +++ b/gateleen-core/src/main/java/org/swisspush/gateleen/core/event/SucceededAsyncResult.java @@ -0,0 +1,32 @@ +package org.swisspush.gateleen.core.event; + +import io.vertx.core.AsyncResult; + +/** Exists because I was not able to find such an implementation in vertx.jar */ +public class SucceededAsyncResult implements AsyncResult { + private final E result; + + public SucceededAsyncResult(E result) { + this.result = result; + } + + @Override + public E result() { + return result; + } + + @Override + public Throwable cause() { + return null; + } + + @Override + public boolean succeeded() { + return true; + } + + @Override + public boolean failed() { + return false; + } +} diff --git a/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java b/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java index 05a1f613..f77a57e0 100644 --- a/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java +++ b/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java @@ -4,7 +4,9 @@ import io.vertx.core.Future; import io.vertx.core.Handler; import io.vertx.core.MultiMap; +import io.vertx.core.Vertx; import io.vertx.core.http.*; +import org.swisspush.gateleen.core.event.SucceededAsyncResult; import java.util.List; import java.util.function.Function; @@ -16,6 +18,12 @@ */ public abstract class AbstractHttpClient implements HttpClient { + private final Vertx vertx; + + public AbstractHttpClient(Vertx vertx) { + this.vertx = vertx; + } + protected abstract HttpClientRequest doRequest(HttpMethod method, String uri); public HttpClientRequest options(String uri) { @@ -90,7 +98,7 @@ public Future request(HttpMethod httpMethod, String s, String @Override public void request(HttpMethod method, String requestURI, Handler> handler) { - throw new UnsupportedOperationException(); + vertx.runOnContext(v -> handler.handle(new SucceededAsyncResult<>(doRequest(method, requestURI)))); } @Override diff --git a/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/LocalHttpClient.java b/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/LocalHttpClient.java index 1750f7d6..07848ea7 100644 --- a/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/LocalHttpClient.java +++ b/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/LocalHttpClient.java @@ -15,6 +15,7 @@ public class LocalHttpClient extends AbstractHttpClient { private Vertx vertx; public LocalHttpClient(Vertx vertx) { + super(vertx); this.vertx = vertx; } From 15d4b9f2cdce1a152293657b72edcda04c33c782 Mon Sep 17 00:00:00 2001 From: Andreas Fankhauser <23085769+hiddenalpha@users.noreply.github.com> Date: Thu, 27 Jul 2023 15:24:50 +0200 Subject: [PATCH 04/14] [SDCISA-12877] Use Future to replace custom SucceededAsyncResult impl as requested in review --- .../core/event/SucceededAsyncResult.java | 32 ------------------- .../core/http/AbstractHttpClient.java | 5 +-- 2 files changed, 3 insertions(+), 34 deletions(-) delete mode 100644 gateleen-core/src/main/java/org/swisspush/gateleen/core/event/SucceededAsyncResult.java diff --git a/gateleen-core/src/main/java/org/swisspush/gateleen/core/event/SucceededAsyncResult.java b/gateleen-core/src/main/java/org/swisspush/gateleen/core/event/SucceededAsyncResult.java deleted file mode 100644 index d334d8ba..00000000 --- a/gateleen-core/src/main/java/org/swisspush/gateleen/core/event/SucceededAsyncResult.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.swisspush.gateleen.core.event; - -import io.vertx.core.AsyncResult; - -/** Exists because I was not able to find such an implementation in vertx.jar */ -public class SucceededAsyncResult implements AsyncResult { - private final E result; - - public SucceededAsyncResult(E result) { - this.result = result; - } - - @Override - public E result() { - return result; - } - - @Override - public Throwable cause() { - return null; - } - - @Override - public boolean succeeded() { - return true; - } - - @Override - public boolean failed() { - return false; - } -} diff --git a/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java b/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java index f77a57e0..537f588e 100644 --- a/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java +++ b/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java @@ -6,11 +6,12 @@ import io.vertx.core.MultiMap; import io.vertx.core.Vertx; import io.vertx.core.http.*; -import org.swisspush.gateleen.core.event.SucceededAsyncResult; import java.util.List; import java.util.function.Function; +import static io.vertx.core.Future.succeededFuture; + /** * Base class with empty method implementations. * @@ -98,7 +99,7 @@ public Future request(HttpMethod httpMethod, String s, String @Override public void request(HttpMethod method, String requestURI, Handler> handler) { - vertx.runOnContext(v -> handler.handle(new SucceededAsyncResult<>(doRequest(method, requestURI)))); + vertx.runOnContext(v -> succeededFuture(doRequest(method, requestURI)).onComplete(handler)); } @Override From 99366986bad8d4448beb841d8045239c19298037 Mon Sep 17 00:00:00 2001 From: Andreas Fankhauser <23085769+hiddenalpha@users.noreply.github.com> Date: Thu, 27 Jul 2023 15:40:00 +0200 Subject: [PATCH 05/14] [SDCISA-12877] Fix Another (unrelated) occurence in regard to https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/ --- .../org/swisspush/gateleen/core/http/AbstractHttpClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java b/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java index 537f588e..45a7cdb0 100644 --- a/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java +++ b/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java @@ -80,7 +80,7 @@ public Future request(RequestOptions requestOptions) { @Override public void request(HttpMethod httpMethod, int i, String s, String s1, Handler> handler) { - Future.succeededFuture(doRequest(httpMethod, s1)).onComplete(handler); + vertx.runOnContext(v -> succeededFuture(doRequest(httpMethod, s1)).onComplete(handler)); } @Override From aa68100a630a5370db3b7b58a8638a9651d834fb Mon Sep 17 00:00:00 2001 From: Andreas Fankhauser <23085769+hiddenalpha@users.noreply.github.com> Date: Thu, 27 Jul 2023 16:34:10 +0200 Subject: [PATCH 06/14] Fix unlucky 'close' impl and bad no-op in AbstractHttpClient (wip @ 13692e9ddaf62ca0639a8e22078bbf57a8583cae) --- .../gateleen/core/http/AbstractHttpClient.java | 15 +++++++++++++-- .../gateleen/core/http/LocalHttpClient.java | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java b/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java index 05a1f613..0084c18b 100644 --- a/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java +++ b/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/AbstractHttpClient.java @@ -4,6 +4,8 @@ import io.vertx.core.Future; import io.vertx.core.Handler; import io.vertx.core.MultiMap; +import io.vertx.core.Promise; +import io.vertx.core.Vertx; import io.vertx.core.http.*; import java.util.List; @@ -16,6 +18,12 @@ */ public abstract class AbstractHttpClient implements HttpClient { + private final Vertx vertx; + + public AbstractHttpClient(Vertx vertx) { + this.vertx = vertx; + } + protected abstract HttpClientRequest doRequest(HttpMethod method, String uri); public HttpClientRequest options(String uri) { @@ -51,12 +59,14 @@ public Function> redirectHandler() { @Override public void close(Handler> handler) { - throw new UnsupportedOperationException(); + close().onComplete(handler); } @Override public Future close() { - throw new UnsupportedOperationException(); + Promise promise = Promise.promise(); + vertx.runOnContext(v -> promise.complete()); + return promise.future(); } @Override @@ -81,6 +91,7 @@ public Future request(HttpMethod httpMethod, int i, String s, @Override public void request(HttpMethod httpMethod, String s, String s1, Handler> handler) { + throw new UnsupportedOperationException(); } @Override diff --git a/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/LocalHttpClient.java b/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/LocalHttpClient.java index 1750f7d6..07848ea7 100644 --- a/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/LocalHttpClient.java +++ b/gateleen-core/src/main/java/org/swisspush/gateleen/core/http/LocalHttpClient.java @@ -15,6 +15,7 @@ public class LocalHttpClient extends AbstractHttpClient { private Vertx vertx; public LocalHttpClient(Vertx vertx) { + super(vertx); this.vertx = vertx; } From 0e0da83233eb48adfba55db482335a086fd1d114 Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 27 Sep 2023 09:25:47 +0000 Subject: [PATCH 07/14] updating poms for 2.0.2 branch with snapshot versions From ac592a44f15f180b784598c99ab026081aae0064 Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 27 Sep 2023 09:25:49 +0000 Subject: [PATCH 08/14] updating poms for 2.0.3-SNAPSHOT development --- gateleen-cache/pom.xml | 2 +- gateleen-core/pom.xml | 2 +- gateleen-delegate/pom.xml | 2 +- gateleen-delta/pom.xml | 2 +- gateleen-expansion/pom.xml | 2 +- gateleen-hook-js/pom.xml | 2 +- gateleen-hook/pom.xml | 2 +- gateleen-kafka/pom.xml | 2 +- gateleen-logging/pom.xml | 2 +- gateleen-merge/pom.xml | 2 +- gateleen-monitoring/pom.xml | 2 +- gateleen-packing/pom.xml | 2 +- gateleen-player/pom.xml | 2 +- gateleen-playground/pom.xml | 2 +- gateleen-qos/pom.xml | 2 +- gateleen-queue/pom.xml | 2 +- gateleen-routing/pom.xml | 2 +- gateleen-runconfig/pom.xml | 2 +- gateleen-scheduler/pom.xml | 2 +- gateleen-security/pom.xml | 2 +- gateleen-test/pom.xml | 2 +- gateleen-testhelper/pom.xml | 2 +- gateleen-user/pom.xml | 2 +- gateleen-validation/pom.xml | 2 +- pom.xml | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/gateleen-cache/pom.xml b/gateleen-cache/pom.xml index 5bd3b3ef..4d60b14f 100644 --- a/gateleen-cache/pom.xml +++ b/gateleen-cache/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-cache diff --git a/gateleen-core/pom.xml b/gateleen-core/pom.xml index 7d588256..957753ae 100644 --- a/gateleen-core/pom.xml +++ b/gateleen-core/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-core diff --git a/gateleen-delegate/pom.xml b/gateleen-delegate/pom.xml index 95b90af4..bd39abc0 100644 --- a/gateleen-delegate/pom.xml +++ b/gateleen-delegate/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-delegate diff --git a/gateleen-delta/pom.xml b/gateleen-delta/pom.xml index bdfc0d56..16dfa340 100644 --- a/gateleen-delta/pom.xml +++ b/gateleen-delta/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-delta diff --git a/gateleen-expansion/pom.xml b/gateleen-expansion/pom.xml index 28428cac..1398fb03 100644 --- a/gateleen-expansion/pom.xml +++ b/gateleen-expansion/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-expansion diff --git a/gateleen-hook-js/pom.xml b/gateleen-hook-js/pom.xml index 82d59c13..317dcfc3 100644 --- a/gateleen-hook-js/pom.xml +++ b/gateleen-hook-js/pom.xml @@ -4,7 +4,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-hook-js jar diff --git a/gateleen-hook/pom.xml b/gateleen-hook/pom.xml index 9b988422..993117b3 100644 --- a/gateleen-hook/pom.xml +++ b/gateleen-hook/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-hook diff --git a/gateleen-kafka/pom.xml b/gateleen-kafka/pom.xml index b3a75eaf..b87f1541 100644 --- a/gateleen-kafka/pom.xml +++ b/gateleen-kafka/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-kafka diff --git a/gateleen-logging/pom.xml b/gateleen-logging/pom.xml index f437c9b7..90bb6650 100644 --- a/gateleen-logging/pom.xml +++ b/gateleen-logging/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-logging diff --git a/gateleen-merge/pom.xml b/gateleen-merge/pom.xml index fbe96f85..fc1c9677 100644 --- a/gateleen-merge/pom.xml +++ b/gateleen-merge/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-merge diff --git a/gateleen-monitoring/pom.xml b/gateleen-monitoring/pom.xml index d0b88323..9ee9242f 100644 --- a/gateleen-monitoring/pom.xml +++ b/gateleen-monitoring/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-monitoring diff --git a/gateleen-packing/pom.xml b/gateleen-packing/pom.xml index 4c8d8ce2..748fbbbb 100644 --- a/gateleen-packing/pom.xml +++ b/gateleen-packing/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-packing diff --git a/gateleen-player/pom.xml b/gateleen-player/pom.xml index b5f313b4..08199f54 100644 --- a/gateleen-player/pom.xml +++ b/gateleen-player/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-player diff --git a/gateleen-playground/pom.xml b/gateleen-playground/pom.xml index e2b0667e..da797a45 100644 --- a/gateleen-playground/pom.xml +++ b/gateleen-playground/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-playground diff --git a/gateleen-qos/pom.xml b/gateleen-qos/pom.xml index dbed480a..2f722e5c 100644 --- a/gateleen-qos/pom.xml +++ b/gateleen-qos/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-qos diff --git a/gateleen-queue/pom.xml b/gateleen-queue/pom.xml index e1175cc4..d4ee1b6e 100644 --- a/gateleen-queue/pom.xml +++ b/gateleen-queue/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-queue diff --git a/gateleen-routing/pom.xml b/gateleen-routing/pom.xml index f6829aea..631a3bba 100644 --- a/gateleen-routing/pom.xml +++ b/gateleen-routing/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-routing diff --git a/gateleen-runconfig/pom.xml b/gateleen-runconfig/pom.xml index a50672a7..ea2e2b94 100644 --- a/gateleen-runconfig/pom.xml +++ b/gateleen-runconfig/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-runconfig diff --git a/gateleen-scheduler/pom.xml b/gateleen-scheduler/pom.xml index 0a97209d..fca23c16 100644 --- a/gateleen-scheduler/pom.xml +++ b/gateleen-scheduler/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-scheduler diff --git a/gateleen-security/pom.xml b/gateleen-security/pom.xml index 7489d13f..2c588e33 100644 --- a/gateleen-security/pom.xml +++ b/gateleen-security/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-security diff --git a/gateleen-test/pom.xml b/gateleen-test/pom.xml index e85e73d6..a3ae749a 100644 --- a/gateleen-test/pom.xml +++ b/gateleen-test/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-test jar diff --git a/gateleen-testhelper/pom.xml b/gateleen-testhelper/pom.xml index 7d14dae2..20c8ab7d 100644 --- a/gateleen-testhelper/pom.xml +++ b/gateleen-testhelper/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-testhelper diff --git a/gateleen-user/pom.xml b/gateleen-user/pom.xml index 61183eb0..3b080a70 100644 --- a/gateleen-user/pom.xml +++ b/gateleen-user/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-user diff --git a/gateleen-validation/pom.xml b/gateleen-validation/pom.xml index 3d104804..787aff88 100644 --- a/gateleen-validation/pom.xml +++ b/gateleen-validation/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT gateleen-validation diff --git a/pom.xml b/pom.xml index c42c9890..a79221d3 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT pom gateleen Middleware library based on Vert.x to build advanced JSON/REST communication servers From c0c742504cd6b09626501e25dcd69bb92b16916d Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 27 Sep 2023 09:25:51 +0000 Subject: [PATCH 09/14] updating poms for branch'release-2.0.2' with non-snapshot versions --- gateleen-cache/pom.xml | 2 +- gateleen-core/pom.xml | 2 +- gateleen-delegate/pom.xml | 2 +- gateleen-delta/pom.xml | 2 +- gateleen-expansion/pom.xml | 2 +- gateleen-hook-js/pom.xml | 2 +- gateleen-hook/pom.xml | 2 +- gateleen-kafka/pom.xml | 2 +- gateleen-logging/pom.xml | 2 +- gateleen-merge/pom.xml | 2 +- gateleen-monitoring/pom.xml | 2 +- gateleen-packing/pom.xml | 2 +- gateleen-player/pom.xml | 2 +- gateleen-playground/pom.xml | 2 +- gateleen-qos/pom.xml | 2 +- gateleen-queue/pom.xml | 2 +- gateleen-routing/pom.xml | 2 +- gateleen-runconfig/pom.xml | 2 +- gateleen-scheduler/pom.xml | 2 +- gateleen-security/pom.xml | 2 +- gateleen-test/pom.xml | 2 +- gateleen-testhelper/pom.xml | 2 +- gateleen-user/pom.xml | 2 +- gateleen-validation/pom.xml | 2 +- pom.xml | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/gateleen-cache/pom.xml b/gateleen-cache/pom.xml index 5bd3b3ef..cc4c3fa7 100644 --- a/gateleen-cache/pom.xml +++ b/gateleen-cache/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-cache diff --git a/gateleen-core/pom.xml b/gateleen-core/pom.xml index 7d588256..2c88bafb 100644 --- a/gateleen-core/pom.xml +++ b/gateleen-core/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-core diff --git a/gateleen-delegate/pom.xml b/gateleen-delegate/pom.xml index 95b90af4..cede9ce7 100644 --- a/gateleen-delegate/pom.xml +++ b/gateleen-delegate/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-delegate diff --git a/gateleen-delta/pom.xml b/gateleen-delta/pom.xml index bdfc0d56..7727bd27 100644 --- a/gateleen-delta/pom.xml +++ b/gateleen-delta/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-delta diff --git a/gateleen-expansion/pom.xml b/gateleen-expansion/pom.xml index 28428cac..e72430f5 100644 --- a/gateleen-expansion/pom.xml +++ b/gateleen-expansion/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-expansion diff --git a/gateleen-hook-js/pom.xml b/gateleen-hook-js/pom.xml index 82d59c13..e9a63338 100644 --- a/gateleen-hook-js/pom.xml +++ b/gateleen-hook-js/pom.xml @@ -4,7 +4,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-hook-js jar diff --git a/gateleen-hook/pom.xml b/gateleen-hook/pom.xml index 9b988422..6a34f7b8 100644 --- a/gateleen-hook/pom.xml +++ b/gateleen-hook/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-hook diff --git a/gateleen-kafka/pom.xml b/gateleen-kafka/pom.xml index b3a75eaf..a10a9bf5 100644 --- a/gateleen-kafka/pom.xml +++ b/gateleen-kafka/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-kafka diff --git a/gateleen-logging/pom.xml b/gateleen-logging/pom.xml index f437c9b7..f3f01e89 100644 --- a/gateleen-logging/pom.xml +++ b/gateleen-logging/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-logging diff --git a/gateleen-merge/pom.xml b/gateleen-merge/pom.xml index fbe96f85..f503b6b9 100644 --- a/gateleen-merge/pom.xml +++ b/gateleen-merge/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-merge diff --git a/gateleen-monitoring/pom.xml b/gateleen-monitoring/pom.xml index d0b88323..87ff1936 100644 --- a/gateleen-monitoring/pom.xml +++ b/gateleen-monitoring/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-monitoring diff --git a/gateleen-packing/pom.xml b/gateleen-packing/pom.xml index 4c8d8ce2..f89d2b7e 100644 --- a/gateleen-packing/pom.xml +++ b/gateleen-packing/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-packing diff --git a/gateleen-player/pom.xml b/gateleen-player/pom.xml index b5f313b4..c66e48e3 100644 --- a/gateleen-player/pom.xml +++ b/gateleen-player/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-player diff --git a/gateleen-playground/pom.xml b/gateleen-playground/pom.xml index e2b0667e..e970dad3 100644 --- a/gateleen-playground/pom.xml +++ b/gateleen-playground/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-playground diff --git a/gateleen-qos/pom.xml b/gateleen-qos/pom.xml index dbed480a..2869b7b0 100644 --- a/gateleen-qos/pom.xml +++ b/gateleen-qos/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-qos diff --git a/gateleen-queue/pom.xml b/gateleen-queue/pom.xml index e1175cc4..ad27e913 100644 --- a/gateleen-queue/pom.xml +++ b/gateleen-queue/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-queue diff --git a/gateleen-routing/pom.xml b/gateleen-routing/pom.xml index f6829aea..4eb38cfe 100644 --- a/gateleen-routing/pom.xml +++ b/gateleen-routing/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-routing diff --git a/gateleen-runconfig/pom.xml b/gateleen-runconfig/pom.xml index a50672a7..2f0300be 100644 --- a/gateleen-runconfig/pom.xml +++ b/gateleen-runconfig/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-runconfig diff --git a/gateleen-scheduler/pom.xml b/gateleen-scheduler/pom.xml index 0a97209d..2a480430 100644 --- a/gateleen-scheduler/pom.xml +++ b/gateleen-scheduler/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-scheduler diff --git a/gateleen-security/pom.xml b/gateleen-security/pom.xml index 7489d13f..a08404a2 100644 --- a/gateleen-security/pom.xml +++ b/gateleen-security/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-security diff --git a/gateleen-test/pom.xml b/gateleen-test/pom.xml index e85e73d6..4535bc1d 100644 --- a/gateleen-test/pom.xml +++ b/gateleen-test/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-test jar diff --git a/gateleen-testhelper/pom.xml b/gateleen-testhelper/pom.xml index 7d14dae2..a3d0b602 100644 --- a/gateleen-testhelper/pom.xml +++ b/gateleen-testhelper/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-testhelper diff --git a/gateleen-user/pom.xml b/gateleen-user/pom.xml index 61183eb0..a7c0ecf4 100644 --- a/gateleen-user/pom.xml +++ b/gateleen-user/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-user diff --git a/gateleen-validation/pom.xml b/gateleen-validation/pom.xml index 3d104804..0b1b0199 100644 --- a/gateleen-validation/pom.xml +++ b/gateleen-validation/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 gateleen-validation diff --git a/pom.xml b/pom.xml index c42c9890..86957de0 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2-SNAPSHOT + 2.0.2 pom gateleen Middleware library based on Vert.x to build advanced JSON/REST communication servers From a3e9f605062b99be1b31c38fb57f2487f1b371e8 Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 27 Sep 2023 09:30:40 +0000 Subject: [PATCH 10/14] updating develop poms to master versions to avoid merge conflicts --- gateleen-cache/pom.xml | 2 +- gateleen-core/pom.xml | 2 +- gateleen-delegate/pom.xml | 2 +- gateleen-delta/pom.xml | 2 +- gateleen-expansion/pom.xml | 2 +- gateleen-hook-js/pom.xml | 2 +- gateleen-hook/pom.xml | 2 +- gateleen-kafka/pom.xml | 2 +- gateleen-logging/pom.xml | 2 +- gateleen-merge/pom.xml | 2 +- gateleen-monitoring/pom.xml | 2 +- gateleen-packing/pom.xml | 2 +- gateleen-player/pom.xml | 2 +- gateleen-playground/pom.xml | 2 +- gateleen-qos/pom.xml | 2 +- gateleen-queue/pom.xml | 2 +- gateleen-routing/pom.xml | 2 +- gateleen-runconfig/pom.xml | 2 +- gateleen-scheduler/pom.xml | 2 +- gateleen-security/pom.xml | 2 +- gateleen-test/pom.xml | 2 +- gateleen-testhelper/pom.xml | 2 +- gateleen-user/pom.xml | 2 +- gateleen-validation/pom.xml | 2 +- pom.xml | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/gateleen-cache/pom.xml b/gateleen-cache/pom.xml index 4d60b14f..cc4c3fa7 100644 --- a/gateleen-cache/pom.xml +++ b/gateleen-cache/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-cache diff --git a/gateleen-core/pom.xml b/gateleen-core/pom.xml index 957753ae..2c88bafb 100644 --- a/gateleen-core/pom.xml +++ b/gateleen-core/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-core diff --git a/gateleen-delegate/pom.xml b/gateleen-delegate/pom.xml index bd39abc0..cede9ce7 100644 --- a/gateleen-delegate/pom.xml +++ b/gateleen-delegate/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-delegate diff --git a/gateleen-delta/pom.xml b/gateleen-delta/pom.xml index 16dfa340..7727bd27 100644 --- a/gateleen-delta/pom.xml +++ b/gateleen-delta/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-delta diff --git a/gateleen-expansion/pom.xml b/gateleen-expansion/pom.xml index 1398fb03..e72430f5 100644 --- a/gateleen-expansion/pom.xml +++ b/gateleen-expansion/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-expansion diff --git a/gateleen-hook-js/pom.xml b/gateleen-hook-js/pom.xml index 317dcfc3..e9a63338 100644 --- a/gateleen-hook-js/pom.xml +++ b/gateleen-hook-js/pom.xml @@ -4,7 +4,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-hook-js jar diff --git a/gateleen-hook/pom.xml b/gateleen-hook/pom.xml index 993117b3..6a34f7b8 100644 --- a/gateleen-hook/pom.xml +++ b/gateleen-hook/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-hook diff --git a/gateleen-kafka/pom.xml b/gateleen-kafka/pom.xml index b87f1541..a10a9bf5 100644 --- a/gateleen-kafka/pom.xml +++ b/gateleen-kafka/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-kafka diff --git a/gateleen-logging/pom.xml b/gateleen-logging/pom.xml index 90bb6650..f3f01e89 100644 --- a/gateleen-logging/pom.xml +++ b/gateleen-logging/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-logging diff --git a/gateleen-merge/pom.xml b/gateleen-merge/pom.xml index fc1c9677..f503b6b9 100644 --- a/gateleen-merge/pom.xml +++ b/gateleen-merge/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-merge diff --git a/gateleen-monitoring/pom.xml b/gateleen-monitoring/pom.xml index 9ee9242f..87ff1936 100644 --- a/gateleen-monitoring/pom.xml +++ b/gateleen-monitoring/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-monitoring diff --git a/gateleen-packing/pom.xml b/gateleen-packing/pom.xml index 748fbbbb..f89d2b7e 100644 --- a/gateleen-packing/pom.xml +++ b/gateleen-packing/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-packing diff --git a/gateleen-player/pom.xml b/gateleen-player/pom.xml index 08199f54..c66e48e3 100644 --- a/gateleen-player/pom.xml +++ b/gateleen-player/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-player diff --git a/gateleen-playground/pom.xml b/gateleen-playground/pom.xml index da797a45..e970dad3 100644 --- a/gateleen-playground/pom.xml +++ b/gateleen-playground/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-playground diff --git a/gateleen-qos/pom.xml b/gateleen-qos/pom.xml index 2f722e5c..2869b7b0 100644 --- a/gateleen-qos/pom.xml +++ b/gateleen-qos/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-qos diff --git a/gateleen-queue/pom.xml b/gateleen-queue/pom.xml index d4ee1b6e..ad27e913 100644 --- a/gateleen-queue/pom.xml +++ b/gateleen-queue/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-queue diff --git a/gateleen-routing/pom.xml b/gateleen-routing/pom.xml index 631a3bba..4eb38cfe 100644 --- a/gateleen-routing/pom.xml +++ b/gateleen-routing/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-routing diff --git a/gateleen-runconfig/pom.xml b/gateleen-runconfig/pom.xml index ea2e2b94..2f0300be 100644 --- a/gateleen-runconfig/pom.xml +++ b/gateleen-runconfig/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-runconfig diff --git a/gateleen-scheduler/pom.xml b/gateleen-scheduler/pom.xml index fca23c16..2a480430 100644 --- a/gateleen-scheduler/pom.xml +++ b/gateleen-scheduler/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-scheduler diff --git a/gateleen-security/pom.xml b/gateleen-security/pom.xml index 2c588e33..a08404a2 100644 --- a/gateleen-security/pom.xml +++ b/gateleen-security/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-security diff --git a/gateleen-test/pom.xml b/gateleen-test/pom.xml index a3ae749a..4535bc1d 100644 --- a/gateleen-test/pom.xml +++ b/gateleen-test/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-test jar diff --git a/gateleen-testhelper/pom.xml b/gateleen-testhelper/pom.xml index 20c8ab7d..a3d0b602 100644 --- a/gateleen-testhelper/pom.xml +++ b/gateleen-testhelper/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-testhelper diff --git a/gateleen-user/pom.xml b/gateleen-user/pom.xml index 3b080a70..a7c0ecf4 100644 --- a/gateleen-user/pom.xml +++ b/gateleen-user/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-user diff --git a/gateleen-validation/pom.xml b/gateleen-validation/pom.xml index 787aff88..0b1b0199 100644 --- a/gateleen-validation/pom.xml +++ b/gateleen-validation/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 gateleen-validation diff --git a/pom.xml b/pom.xml index a79221d3..86957de0 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.3-SNAPSHOT + 2.0.2 pom gateleen Middleware library based on Vert.x to build advanced JSON/REST communication servers From dd397520ab574a9efc8f46746eecf2a5724a5106 Mon Sep 17 00:00:00 2001 From: runner Date: Wed, 27 Sep 2023 09:30:42 +0000 Subject: [PATCH 11/14] Updating develop poms back to pre merge state --- gateleen-cache/pom.xml | 2 +- gateleen-core/pom.xml | 2 +- gateleen-delegate/pom.xml | 2 +- gateleen-delta/pom.xml | 2 +- gateleen-expansion/pom.xml | 2 +- gateleen-hook-js/pom.xml | 2 +- gateleen-hook/pom.xml | 2 +- gateleen-kafka/pom.xml | 2 +- gateleen-logging/pom.xml | 2 +- gateleen-merge/pom.xml | 2 +- gateleen-monitoring/pom.xml | 2 +- gateleen-packing/pom.xml | 2 +- gateleen-player/pom.xml | 2 +- gateleen-playground/pom.xml | 2 +- gateleen-qos/pom.xml | 2 +- gateleen-queue/pom.xml | 2 +- gateleen-routing/pom.xml | 2 +- gateleen-runconfig/pom.xml | 2 +- gateleen-scheduler/pom.xml | 2 +- gateleen-security/pom.xml | 2 +- gateleen-test/pom.xml | 2 +- gateleen-testhelper/pom.xml | 2 +- gateleen-user/pom.xml | 2 +- gateleen-validation/pom.xml | 2 +- pom.xml | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/gateleen-cache/pom.xml b/gateleen-cache/pom.xml index cc4c3fa7..4d60b14f 100644 --- a/gateleen-cache/pom.xml +++ b/gateleen-cache/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-cache diff --git a/gateleen-core/pom.xml b/gateleen-core/pom.xml index 2c88bafb..957753ae 100644 --- a/gateleen-core/pom.xml +++ b/gateleen-core/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-core diff --git a/gateleen-delegate/pom.xml b/gateleen-delegate/pom.xml index cede9ce7..bd39abc0 100644 --- a/gateleen-delegate/pom.xml +++ b/gateleen-delegate/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-delegate diff --git a/gateleen-delta/pom.xml b/gateleen-delta/pom.xml index 7727bd27..16dfa340 100644 --- a/gateleen-delta/pom.xml +++ b/gateleen-delta/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-delta diff --git a/gateleen-expansion/pom.xml b/gateleen-expansion/pom.xml index e72430f5..1398fb03 100644 --- a/gateleen-expansion/pom.xml +++ b/gateleen-expansion/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-expansion diff --git a/gateleen-hook-js/pom.xml b/gateleen-hook-js/pom.xml index e9a63338..317dcfc3 100644 --- a/gateleen-hook-js/pom.xml +++ b/gateleen-hook-js/pom.xml @@ -4,7 +4,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-hook-js jar diff --git a/gateleen-hook/pom.xml b/gateleen-hook/pom.xml index 6a34f7b8..993117b3 100644 --- a/gateleen-hook/pom.xml +++ b/gateleen-hook/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-hook diff --git a/gateleen-kafka/pom.xml b/gateleen-kafka/pom.xml index a10a9bf5..b87f1541 100644 --- a/gateleen-kafka/pom.xml +++ b/gateleen-kafka/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-kafka diff --git a/gateleen-logging/pom.xml b/gateleen-logging/pom.xml index f3f01e89..90bb6650 100644 --- a/gateleen-logging/pom.xml +++ b/gateleen-logging/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-logging diff --git a/gateleen-merge/pom.xml b/gateleen-merge/pom.xml index f503b6b9..fc1c9677 100644 --- a/gateleen-merge/pom.xml +++ b/gateleen-merge/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-merge diff --git a/gateleen-monitoring/pom.xml b/gateleen-monitoring/pom.xml index 87ff1936..9ee9242f 100644 --- a/gateleen-monitoring/pom.xml +++ b/gateleen-monitoring/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-monitoring diff --git a/gateleen-packing/pom.xml b/gateleen-packing/pom.xml index f89d2b7e..748fbbbb 100644 --- a/gateleen-packing/pom.xml +++ b/gateleen-packing/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-packing diff --git a/gateleen-player/pom.xml b/gateleen-player/pom.xml index c66e48e3..08199f54 100644 --- a/gateleen-player/pom.xml +++ b/gateleen-player/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-player diff --git a/gateleen-playground/pom.xml b/gateleen-playground/pom.xml index e970dad3..da797a45 100644 --- a/gateleen-playground/pom.xml +++ b/gateleen-playground/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-playground diff --git a/gateleen-qos/pom.xml b/gateleen-qos/pom.xml index 2869b7b0..2f722e5c 100644 --- a/gateleen-qos/pom.xml +++ b/gateleen-qos/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-qos diff --git a/gateleen-queue/pom.xml b/gateleen-queue/pom.xml index ad27e913..d4ee1b6e 100644 --- a/gateleen-queue/pom.xml +++ b/gateleen-queue/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-queue diff --git a/gateleen-routing/pom.xml b/gateleen-routing/pom.xml index 4eb38cfe..631a3bba 100644 --- a/gateleen-routing/pom.xml +++ b/gateleen-routing/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-routing diff --git a/gateleen-runconfig/pom.xml b/gateleen-runconfig/pom.xml index 2f0300be..ea2e2b94 100644 --- a/gateleen-runconfig/pom.xml +++ b/gateleen-runconfig/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-runconfig diff --git a/gateleen-scheduler/pom.xml b/gateleen-scheduler/pom.xml index 2a480430..fca23c16 100644 --- a/gateleen-scheduler/pom.xml +++ b/gateleen-scheduler/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-scheduler diff --git a/gateleen-security/pom.xml b/gateleen-security/pom.xml index a08404a2..2c588e33 100644 --- a/gateleen-security/pom.xml +++ b/gateleen-security/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-security diff --git a/gateleen-test/pom.xml b/gateleen-test/pom.xml index 4535bc1d..a3ae749a 100644 --- a/gateleen-test/pom.xml +++ b/gateleen-test/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-test jar diff --git a/gateleen-testhelper/pom.xml b/gateleen-testhelper/pom.xml index a3d0b602..20c8ab7d 100644 --- a/gateleen-testhelper/pom.xml +++ b/gateleen-testhelper/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-testhelper diff --git a/gateleen-user/pom.xml b/gateleen-user/pom.xml index a7c0ecf4..3b080a70 100644 --- a/gateleen-user/pom.xml +++ b/gateleen-user/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-user diff --git a/gateleen-validation/pom.xml b/gateleen-validation/pom.xml index 0b1b0199..787aff88 100644 --- a/gateleen-validation/pom.xml +++ b/gateleen-validation/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT gateleen-validation diff --git a/pom.xml b/pom.xml index 86957de0..a79221d3 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.swisspush.gateleen gateleen - 2.0.2 + 2.0.3-SNAPSHOT pom gateleen Middleware library based on Vert.x to build advanced JSON/REST communication servers From 08706034c4c5d1e5571ed85b071ac339e6a60fca Mon Sep 17 00:00:00 2001 From: "Andreas Fankhauser hiddenalpha.ch" <23085769+hiddenalpha@users.noreply.github.com> Date: Wed, 4 Oct 2023 23:24:43 +0200 Subject: [PATCH 12/14] An empty commit without any changes just because I found no other way how to trigger another build. From d6f2e56d73b288f17db8b03cc3fe32e3a01bc61c Mon Sep 17 00:00:00 2001 From: "Andreas Fankhauser hiddenalpha.ch" <23085769+hiddenalpha@users.noreply.github.com> Date: Wed, 4 Oct 2023 23:32:24 +0200 Subject: [PATCH 13/14] Empty commit, just to trigger build again. From 68ad87bc387c8c4322740484a68734dc052f6549 Mon Sep 17 00:00:00 2001 From: Marc-Andre Weber Date: Tue, 21 Nov 2023 13:34:20 +0100 Subject: [PATCH 14/14] #529 EventBusAppender instance pollution in Java Heap Space --- .../swisspush/gateleen/hook/HookHandler.java | 28 ++++---- .../org/swisspush/gateleen/hook/Route.java | 9 ++- .../gateleen/hook/HookHandlerTest.java | 7 +- .../logging/DefaultLogAppenderRepository.java | 45 ++++++++++++ .../logging/LogAppenderRepository.java | 20 ++++++ .../gateleen/logging/LoggingHandler.java | 17 ++--- .../logging/LoggingResourceManager.java | 2 +- .../logging/RequestLoggingConsumer.java | 6 +- .../DefaultLogAppenderRepositoryTest.java | 72 +++++++++++++++++++ .../gateleen/logging/LoggingHandlerTest.java | 26 +++++-- .../logging/LoggingResourceManagerTest.java | 3 +- ...urce_with_destination_logging_handler_test | 25 +++++++ .../swisspush/gateleen/playground/Server.java | 12 +++- .../gateleen/routing/AbstractForwarder.java | 5 +- .../swisspush/gateleen/routing/Forwarder.java | 9 ++- .../gateleen/routing/NullForwarder.java | 7 +- .../swisspush/gateleen/routing/Router.java | 16 +++-- .../gateleen/routing/RouterBuilder.java | 9 +++ .../gateleen/routing/StorageForwarder.java | 7 +- .../gateleen/routing/ForwarderTest.java | 13 ++-- .../org/swisspush/gateleen/AbstractTest.java | 37 ++++++---- 21 files changed, 308 insertions(+), 67 deletions(-) create mode 100644 gateleen-logging/src/main/java/org/swisspush/gateleen/logging/DefaultLogAppenderRepository.java create mode 100644 gateleen-logging/src/main/java/org/swisspush/gateleen/logging/LogAppenderRepository.java create mode 100644 gateleen-logging/src/test/java/org/swisspush/gateleen/logging/DefaultLogAppenderRepositoryTest.java create mode 100644 gateleen-logging/src/test/resources/testresource_with_destination_logging_handler_test diff --git a/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java b/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java index 10a44d8e..f0ec0542 100755 --- a/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java +++ b/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/HookHandler.java @@ -29,6 +29,7 @@ import org.swisspush.gateleen.core.util.*; import org.swisspush.gateleen.hook.queueingstrategy.*; import org.swisspush.gateleen.hook.reducedpropagation.ReducedPropagationManager; +import org.swisspush.gateleen.logging.LogAppenderRepository; import org.swisspush.gateleen.logging.LoggingResourceManager; import org.swisspush.gateleen.monitoring.MonitoringHandler; import org.swisspush.gateleen.queue.expiry.ExpiryCheckHandler; @@ -107,6 +108,7 @@ public class HookHandler implements LoggableResource { private final ResourceStorage hookStorage; private final MonitoringHandler monitoringHandler; private final LoggingResourceManager loggingResourceManager; + private final LogAppenderRepository logAppenderRepository; private final HttpClient selfClient; private final String userProfilePath; private final String hookRootUri; @@ -137,9 +139,9 @@ public class HookHandler implements LoggableResource { * @param hookRootUri hookRootUri */ public HookHandler(Vertx vertx, HttpClient selfClient, final ResourceStorage storage, - LoggingResourceManager loggingResourceManager, MonitoringHandler monitoringHandler, + LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository, MonitoringHandler monitoringHandler, String userProfilePath, String hookRootUri) { - this(vertx, selfClient, storage, loggingResourceManager, monitoringHandler, userProfilePath, hookRootUri, + this(vertx, selfClient, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, userProfilePath, hookRootUri, new QueueClient(vertx, monitoringHandler)); } @@ -157,16 +159,16 @@ public HookHandler(Vertx vertx, HttpClient selfClient, final ResourceStorage sto * @param requestQueue requestQueue */ public HookHandler(Vertx vertx, HttpClient selfClient, final ResourceStorage storage, - LoggingResourceManager loggingResourceManager, MonitoringHandler monitoringHandler, + LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository, MonitoringHandler monitoringHandler, String userProfilePath, String hookRootUri, RequestQueue requestQueue) { - this(vertx, selfClient, storage, loggingResourceManager, monitoringHandler, userProfilePath, hookRootUri, + this(vertx, selfClient, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, userProfilePath, hookRootUri, requestQueue, false); } public HookHandler(Vertx vertx, HttpClient selfClient, final ResourceStorage storage, - LoggingResourceManager loggingResourceManager, MonitoringHandler monitoringHandler, + LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository, MonitoringHandler monitoringHandler, String userProfilePath, String hookRootUri, RequestQueue requestQueue, boolean listableRoutes) { - this(vertx, selfClient, storage, loggingResourceManager, monitoringHandler, userProfilePath, hookRootUri, + this(vertx, selfClient, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, userProfilePath, hookRootUri, requestQueue, false, null); } @@ -185,18 +187,18 @@ public HookHandler(Vertx vertx, HttpClient selfClient, final ResourceStorage sto * @param reducedPropagationManager reducedPropagationManager */ public HookHandler(Vertx vertx, HttpClient selfClient, final ResourceStorage storage, - LoggingResourceManager loggingResourceManager, MonitoringHandler monitoringHandler, + LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository, MonitoringHandler monitoringHandler, String userProfilePath, String hookRootUri, RequestQueue requestQueue, boolean listableRoutes, ReducedPropagationManager reducedPropagationManager) { - this(vertx, selfClient, storage, loggingResourceManager, monitoringHandler, userProfilePath, hookRootUri, + this(vertx, selfClient, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, userProfilePath, hookRootUri, requestQueue, listableRoutes, reducedPropagationManager, null, storage); } public HookHandler(Vertx vertx, HttpClient selfClient, final ResourceStorage storage, - LoggingResourceManager loggingResourceManager, MonitoringHandler monitoringHandler, + LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository, MonitoringHandler monitoringHandler, String userProfilePath, String hookRootUri, RequestQueue requestQueue, boolean listableRoutes, ReducedPropagationManager reducedPropagationManager, Handler doneHandler, ResourceStorage hookStorage) { - this(vertx, selfClient, storage, loggingResourceManager, monitoringHandler, userProfilePath, hookRootUri, + this(vertx, selfClient, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, userProfilePath, hookRootUri, requestQueue, listableRoutes, reducedPropagationManager, doneHandler, hookStorage, Router.DEFAULT_ROUTER_MULTIPLIER); } @@ -220,7 +222,7 @@ public HookHandler(Vertx vertx, HttpClient selfClient, final ResourceStorage sto * the number of {@link Router} instances within a cluster */ public HookHandler(Vertx vertx, HttpClient selfClient, final ResourceStorage userProfileStorage, - LoggingResourceManager loggingResourceManager, MonitoringHandler monitoringHandler, + LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository, MonitoringHandler monitoringHandler, String userProfilePath, String hookRootUri, RequestQueue requestQueue, boolean listableRoutes, ReducedPropagationManager reducedPropagationManager, Handler doneHandler, ResourceStorage hookStorage, int routeMultiplier) { @@ -229,6 +231,7 @@ public HookHandler(Vertx vertx, HttpClient selfClient, final ResourceStorage use this.selfClient = selfClient; this.userProfileStorage = userProfileStorage; this.loggingResourceManager = loggingResourceManager; + this.logAppenderRepository = logAppenderRepository; this.monitoringHandler = monitoringHandler; this.userProfilePath = userProfilePath; this.hookRootUri = hookRootUri; @@ -1618,7 +1621,8 @@ private boolean headersFilterPatternEquals(Pattern headersFilterPatternLeft, Pat * @return Route */ private Route createRoute(String urlPattern, HttpHook hook) { - return new Route(vertx, userProfileStorage, loggingResourceManager, monitoringHandler, userProfilePath, hook, urlPattern, selfClient); + return new Route(vertx, userProfileStorage, loggingResourceManager, logAppenderRepository, monitoringHandler, + userProfilePath, hook, urlPattern, selfClient); } /** diff --git a/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/Route.java b/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/Route.java index fdc320eb..85080e44 100755 --- a/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/Route.java +++ b/gateleen-hook/src/main/java/org/swisspush/gateleen/hook/Route.java @@ -10,6 +10,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.swisspush.gateleen.core.storage.ResourceStorage; +import org.swisspush.gateleen.logging.LogAppenderRepository; import org.swisspush.gateleen.logging.LoggingResourceManager; import org.swisspush.gateleen.monitoring.MonitoringHandler; import org.swisspush.gateleen.routing.Forwarder; @@ -44,6 +45,7 @@ public class Route { private Vertx vertx; private LoggingResourceManager loggingResourceManager; + private LogAppenderRepository logAppenderRepository; private MonitoringHandler monitoringHandler; private String userProfilePath; private ResourceStorage storage; @@ -76,10 +78,12 @@ public class Route { * @param httpHook httpHook * @param urlPattern - this can be a listener or a normal urlPattern (eg. for a route) */ - public Route(Vertx vertx, ResourceStorage storage, LoggingResourceManager loggingResourceManager, MonitoringHandler monitoringHandler, String userProfilePath, HttpHook httpHook, String urlPattern, HttpClient selfClient) { + public Route(Vertx vertx, ResourceStorage storage, LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository, + MonitoringHandler monitoringHandler, String userProfilePath, HttpHook httpHook, String urlPattern, HttpClient selfClient) { this.vertx = vertx; this.storage = storage; this.loggingResourceManager = loggingResourceManager; + this.logAppenderRepository = logAppenderRepository; this.monitoringHandler = monitoringHandler; this.userProfilePath = userProfilePath; this.httpHook = httpHook; @@ -97,7 +101,8 @@ public Route(Vertx vertx, ResourceStorage storage, LoggingResourceManager loggin * Creates the forwarder for this hook. */ private void createForwarder() { - forwarder = new Forwarder(vertx, client, rule, storage, loggingResourceManager, monitoringHandler, userProfilePath, null); + forwarder = new Forwarder(vertx, client, rule, storage, loggingResourceManager, logAppenderRepository, + monitoringHandler, userProfilePath, null); } /** diff --git a/gateleen-hook/src/test/java/org/swisspush/gateleen/hook/HookHandlerTest.java b/gateleen-hook/src/test/java/org/swisspush/gateleen/hook/HookHandlerTest.java index f49eaf75..30bcf706 100644 --- a/gateleen-hook/src/test/java/org/swisspush/gateleen/hook/HookHandlerTest.java +++ b/gateleen-hook/src/test/java/org/swisspush/gateleen/hook/HookHandlerTest.java @@ -21,6 +21,7 @@ import org.swisspush.gateleen.core.http.*; import org.swisspush.gateleen.core.storage.MockResourceStorage; import org.swisspush.gateleen.hook.reducedpropagation.ReducedPropagationManager; +import org.swisspush.gateleen.logging.LogAppenderRepository; import org.swisspush.gateleen.logging.LoggingResourceManager; import org.swisspush.gateleen.monitoring.MonitoringHandler; import org.swisspush.gateleen.queue.expiry.ExpiryCheckHandler; @@ -49,6 +50,7 @@ public class HookHandlerTest { private HttpClient httpClient; private MockResourceStorage storage; private LoggingResourceManager loggingResourceManager; + private LogAppenderRepository logAppenderRepository; private MonitoringHandler monitoringHandler; private RequestQueue requestQueue; private ReducedPropagationManager reducedPropagationManager; @@ -66,12 +68,13 @@ public void setUp() { Mockito.when(httpClient.request(any(HttpMethod.class), anyString())).thenReturn(Mockito.mock(Future.class)); storage = new MockResourceStorage(); loggingResourceManager = Mockito.mock(LoggingResourceManager.class); + logAppenderRepository = Mockito.mock(LogAppenderRepository.class); monitoringHandler = Mockito.mock(MonitoringHandler.class); requestQueue = Mockito.mock(RequestQueue.class); reducedPropagationManager = Mockito.mock(ReducedPropagationManager.class); - hookHandler = new HookHandler(vertx, httpClient, storage, loggingResourceManager, monitoringHandler, + hookHandler = new HookHandler(vertx, httpClient, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, "userProfilePath", HOOK_ROOT_URI, requestQueue, false, reducedPropagationManager); hookHandler.init(); } @@ -218,7 +221,7 @@ public boolean matches(Object argument) { @Test public void testListenerEnqueueWithReducedPropagationQueueingStrategyButNoManager(TestContext context) throws InterruptedException { - hookHandler = new HookHandler(vertx, httpClient, storage, loggingResourceManager, monitoringHandler, + hookHandler = new HookHandler(vertx, httpClient, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, "userProfilePath", HOOK_ROOT_URI, requestQueue, false, null); hookHandler.init(); diff --git a/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/DefaultLogAppenderRepository.java b/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/DefaultLogAppenderRepository.java new file mode 100644 index 00000000..870edef9 --- /dev/null +++ b/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/DefaultLogAppenderRepository.java @@ -0,0 +1,45 @@ +package org.swisspush.gateleen.logging; + +import io.vertx.core.Handler; +import io.vertx.core.Vertx; +import io.vertx.core.eventbus.Message; +import org.apache.logging.log4j.core.Appender; + +import java.util.HashMap; +import java.util.Map; + +import static org.swisspush.gateleen.logging.LoggingResourceManager.UPDATE_ADDRESS; + +/** + * Default implementation of the {@link LogAppenderRepository} caching the {@link Appender} instances in a {@link Map} + * + * @author https://github.com/mcweba [Marc-Andre Weber] + */ +public class DefaultLogAppenderRepository implements LogAppenderRepository { + + private Map appenderMap = new HashMap<>(); + + public DefaultLogAppenderRepository(Vertx vertx) { + vertx.eventBus().consumer(UPDATE_ADDRESS, (Handler>) event -> clearRepository()); + } + + @Override + public boolean hasAppender(String name) { + return appenderMap.containsKey(name); + } + + @Override + public void addAppender(String name, Appender appender) { + appenderMap.put(name, appender); + } + + @Override + public Appender getAppender(String name) { + return appenderMap.get(name); + } + + @Override + public void clearRepository() { + appenderMap.clear(); + } +} diff --git a/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/LogAppenderRepository.java b/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/LogAppenderRepository.java new file mode 100644 index 00000000..74ba1eb3 --- /dev/null +++ b/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/LogAppenderRepository.java @@ -0,0 +1,20 @@ +package org.swisspush.gateleen.logging; + +import org.apache.logging.log4j.core.Appender; + +/** + * A repository holding {@link Appender} instances. The repository allows to reuse an appender + * instead of creating a new one for every log statement + * + * @author https://github.com/mcweba [Marc-Andre Weber] + */ +public interface LogAppenderRepository { + + boolean hasAppender(String name); + + void addAppender(String name, Appender appender); + + Appender getAppender(String name); + + void clearRepository(); +} diff --git a/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/LoggingHandler.java b/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/LoggingHandler.java index 372eff7d..9b7ca5c9 100755 --- a/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/LoggingHandler.java +++ b/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/LoggingHandler.java @@ -38,6 +38,7 @@ public class LoggingHandler { private Buffer responsePayload; private LoggingResource loggingResource; private EventBus eventBus; + private LogAppenderRepository logAppenderRepository; private String currentDestination; @@ -64,11 +65,11 @@ public class LoggingHandler { private static final String DEFAULT = "default"; private Map loggers = new HashMap<>(); - private Map appenders = new HashMap<>(); private Logger log; - public LoggingHandler(LoggingResourceManager loggingResourceManager, HttpServerRequest request, EventBus eventBus) { + public LoggingHandler(LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository, HttpServerRequest request, EventBus eventBus) { + this.logAppenderRepository = logAppenderRepository; this.request = request; this.eventBus = eventBus; this.loggingResource = loggingResourceManager.getLoggingResource(); @@ -187,7 +188,7 @@ private String createLoggerAndGetDestination(Map payloadFilter) * @return */ private Appender getEventBusAppender(String filterDestination, Map destinationOptions) { - if (!appenders.containsKey(filterDestination)) { + if (!logAppenderRepository.hasAppender(filterDestination)) { /* * @@ -204,9 +205,9 @@ private Appender getEventBusAppender(String filterDestination, Map @@ -242,10 +243,10 @@ private Appender getFileAppender(String filterDestination, String fileName) { builder.withAppend(true); PatternLayout layout = PatternLayout.createDefaultLayout(); builder.setLayout(layout); - appenders.put(filterDestination, builder.build()); + logAppenderRepository.addAppender(filterDestination, builder.build()); } - return appenders.get(filterDestination); + return logAppenderRepository.getAppender(filterDestination); } public void setResponse(HttpClientResponse response) { diff --git a/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/LoggingResourceManager.java b/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/LoggingResourceManager.java index 15fd99ce..452b8424 100755 --- a/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/LoggingResourceManager.java +++ b/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/LoggingResourceManager.java @@ -32,7 +32,7 @@ */ public class LoggingResourceManager implements LoggableResource { - private static final String UPDATE_ADDRESS = "gateleen.logging-updated"; + static final String UPDATE_ADDRESS = "gateleen.logging-updated"; private final String loggingUri; private final ResourceStorage storage; diff --git a/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/RequestLoggingConsumer.java b/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/RequestLoggingConsumer.java index d0966fa3..a1bb6dfb 100644 --- a/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/RequestLoggingConsumer.java +++ b/gateleen-logging/src/main/java/org/swisspush/gateleen/logging/RequestLoggingConsumer.java @@ -24,10 +24,12 @@ public class RequestLoggingConsumer { private final Vertx vertx; private final LoggingResourceManager loggingResourceManager; + private final LogAppenderRepository logAppenderRepository; - public RequestLoggingConsumer(Vertx vertx, LoggingResourceManager loggingResourceManager) { + public RequestLoggingConsumer(Vertx vertx, LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository) { this.vertx = vertx; this.loggingResourceManager = loggingResourceManager; + this.logAppenderRepository = logAppenderRepository; vertx.eventBus().localConsumer(Address.requestLoggingConsumerAddress(), (Handler>) event -> { try { @@ -66,7 +68,7 @@ public RequestLoggingConsumer(Vertx vertx, LoggingResourceManager loggingResourc * @param responseHeaders the response headers */ private void logRequest(final HttpServerRequest request, final int status, Buffer data, final MultiMap responseHeaders) { - final LoggingHandler loggingHandler = new LoggingHandler(loggingResourceManager, request, vertx.eventBus()); + final LoggingHandler loggingHandler = new LoggingHandler(loggingResourceManager, logAppenderRepository, request, vertx.eventBus()); if (HttpMethod.PUT == request.method() || HttpMethod.POST == request.method()) { loggingHandler.appendRequestPayload(data); } else if (HttpMethod.GET == request.method()) { diff --git a/gateleen-logging/src/test/java/org/swisspush/gateleen/logging/DefaultLogAppenderRepositoryTest.java b/gateleen-logging/src/test/java/org/swisspush/gateleen/logging/DefaultLogAppenderRepositoryTest.java new file mode 100644 index 00000000..a6c30c0e --- /dev/null +++ b/gateleen-logging/src/test/java/org/swisspush/gateleen/logging/DefaultLogAppenderRepositoryTest.java @@ -0,0 +1,72 @@ +package org.swisspush.gateleen.logging; + +import io.vertx.core.Vertx; +import io.vertx.ext.unit.TestContext; +import io.vertx.ext.unit.junit.VertxUnitRunner; +import org.apache.logging.log4j.core.Appender; +import org.apache.logging.log4j.core.appender.ConsoleAppender; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +import static com.jayway.awaitility.Awaitility.await; +import static com.jayway.awaitility.Duration.TWO_SECONDS; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.swisspush.gateleen.logging.LoggingResourceManager.UPDATE_ADDRESS; + +/** + * Tests for the {@link DefaultLogAppenderRepository} class + * + * @author https://github.com/mcweba [Marc-Andre Weber] + */ +@RunWith(VertxUnitRunner.class) +public class DefaultLogAppenderRepositoryTest { + + private Vertx vertx; + private DefaultLogAppenderRepository repository; + + @Before + public void setUp() { + vertx = Vertx.vertx(); + repository = new DefaultLogAppenderRepository(vertx); + } + + @Test + public void testAppenderNotInRepository(TestContext context) { + context.assertFalse(repository.hasAppender("my-appender")); + context.assertNull(repository.getAppender("my-appender")); + } + + @Test + public void testAddAppender(TestContext context) { + context.assertFalse(repository.hasAppender("my-appender")); + + Appender appender = new ConsoleAppender.Builder<>().setName("my-appender").build(); + repository.addAppender("my-appender", appender); + + context.assertTrue(repository.hasAppender("my-appender")); + context.assertNotNull(repository.getAppender("my-appender")); + } + + @Test + public void testClearRepository(TestContext context) { + context.assertFalse(repository.hasAppender("my-appender")); + Appender appender = new ConsoleAppender.Builder<>().setName("my-appender").build(); + repository.addAppender("my-appender", appender); + context.assertTrue(repository.hasAppender("my-appender")); + repository.clearRepository(); + context.assertFalse(repository.hasAppender("my-appender")); + } + + @Test + public void testClearRepositoryTriggeredByEventbus(TestContext context) { + context.assertFalse(repository.hasAppender("my-appender")); + Appender appender = new ConsoleAppender.Builder<>().setName("my-appender").build(); + repository.addAppender("my-appender", appender); + context.assertTrue(repository.hasAppender("my-appender")); + + vertx.eventBus().publish(UPDATE_ADDRESS, true); + + await().atMost(TWO_SECONDS).until(() -> repository.hasAppender("my-appender"), equalTo(false)); + } +} diff --git a/gateleen-logging/src/test/java/org/swisspush/gateleen/logging/LoggingHandlerTest.java b/gateleen-logging/src/test/java/org/swisspush/gateleen/logging/LoggingHandlerTest.java index 9db672dc..d5e8b860 100644 --- a/gateleen-logging/src/test/java/org/swisspush/gateleen/logging/LoggingHandlerTest.java +++ b/gateleen-logging/src/test/java/org/swisspush/gateleen/logging/LoggingHandlerTest.java @@ -20,6 +20,9 @@ import java.util.List; import java.util.Map; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; + /** * Tests for the {@link LoggingHandler} class * @@ -30,21 +33,36 @@ public class LoggingHandlerTest { private Vertx vertx; private ResourceStorage storage; - + private LogAppenderRepository logAppenderRepository; private final String LOGGING_URI = "/playground/server/admin/v1/logging"; private final String GET_REQUEST_URI = "/playground/server/users/v1/test"; - private final String TEST_LOGGING_RESOURCE = ResourcesUtils.loadResource("testresource_logging_handler_test", true); + private final String TEST_LOGGING_RESOURCE = ResourcesUtils + .loadResource("testresource_logging_handler_test", true); + private final String TEST_LOGGING_RESOURCE_WITH_DESTINATION = ResourcesUtils + .loadResource("testresource_with_destination_logging_handler_test", true); @Before public void setUp() { vertx = Mockito.mock(Vertx.class); Mockito.when(vertx.eventBus()).thenReturn(Mockito.mock(EventBus.class)); - storage = new MockResourceStorage(ImmutableMap.of(LOGGING_URI, TEST_LOGGING_RESOURCE)); + logAppenderRepository = Mockito.spy(new DefaultLogAppenderRepository(vertx)); + } + + @Test + public void testLoggingWithDestination(TestContext context) { + storage = new MockResourceStorage(ImmutableMap.of(LOGGING_URI, TEST_LOGGING_RESOURCE_WITH_DESTINATION)); + LoggingResourceManager manager = new LoggingResourceManager(vertx, storage, LOGGING_URI); + GETRequest request = new GETRequest(); + LoggingHandler loggingHandler = new LoggingHandler(manager, logAppenderRepository, request, vertx.eventBus()); + + context.assertTrue(loggingHandler.isActive()); + Mockito.verify(logAppenderRepository, Mockito.times(1)).addAppender(eq("eventBusLog"), any(EventBusAppender.class)); } @Test public void testCustomSorting(TestContext context) { + storage = new MockResourceStorage(ImmutableMap.of(LOGGING_URI, TEST_LOGGING_RESOURCE)); LoggingResourceManager manager = new LoggingResourceManager(vertx, storage, LOGGING_URI); LoggingResource loggingResource = manager.getLoggingResource(); @@ -58,7 +76,7 @@ public void testCustomSorting(TestContext context) { GETRequest request = new GETRequest(); - LoggingHandler loggingHandler = new LoggingHandler(manager, request, vertx.eventBus()); + LoggingHandler loggingHandler = new LoggingHandler(manager, logAppenderRepository, request, vertx.eventBus()); // Check whether "active" is set to TRUE, which means the Logging for the GET Request // is happening and is not aborted (which was the case before the fix (NEMO-5551)) diff --git a/gateleen-logging/src/test/java/org/swisspush/gateleen/logging/LoggingResourceManagerTest.java b/gateleen-logging/src/test/java/org/swisspush/gateleen/logging/LoggingResourceManagerTest.java index ae0248b6..a50b9e3f 100755 --- a/gateleen-logging/src/test/java/org/swisspush/gateleen/logging/LoggingResourceManagerTest.java +++ b/gateleen-logging/src/test/java/org/swisspush/gateleen/logging/LoggingResourceManagerTest.java @@ -48,7 +48,6 @@ public class LoggingResourceManagerTest { private static final Logger logger = LoggerFactory.getLogger( LoggingResourceManagerTest.class ); private Vertx vertx; private ResourceStorage storage; - private final String LOGGING_URI = "/playground/server/admin/v1/logging"; private final String INITIAL_LOGGING_RESOURCE = ResourcesUtils.loadResource("testresource_inital_logging_resource", true); @@ -152,7 +151,7 @@ public HttpServerResponse response() { public void invalidRegexGetsRejected( TestContext testContext ) { // Wire up victim instance final String loggingUrl = "/houston/server/admin/v1/logging"; - final LoggingResourceManager loggingResourceManager = new LoggingResourceManager( vertx , storage , loggingUrl ); + final LoggingResourceManager loggingResourceManager = new LoggingResourceManager(vertx, storage, loggingUrl); // Mock a request final Integer[] responseStatusCode = new Integer[]{ null }; diff --git a/gateleen-logging/src/test/resources/testresource_with_destination_logging_handler_test b/gateleen-logging/src/test/resources/testresource_with_destination_logging_handler_test new file mode 100644 index 00000000..41b36449 --- /dev/null +++ b/gateleen-logging/src/test/resources/testresource_with_destination_logging_handler_test @@ -0,0 +1,25 @@ +{ + "headers": [], + "payload": { + "destinations": [ + { + "name" : "eventBusLog", + "type" : "eventBus", + "address" : "some_eventbus_address", + "metadata" : "meta 1", + "transmission": "send" + } + ], + "filters": [ + { + "url": "/playground/nsa/v1/acknowledgment/.*", + "method": "GET", + "reject": "true" + }, + { + "url": "/playground/server/users/v1/.*", + "destination": "eventBusLog" + } + ] + } +} \ No newline at end of file diff --git a/gateleen-playground/src/main/java/org/swisspush/gateleen/playground/Server.java b/gateleen-playground/src/main/java/org/swisspush/gateleen/playground/Server.java index 426357ec..70dad222 100755 --- a/gateleen-playground/src/main/java/org/swisspush/gateleen/playground/Server.java +++ b/gateleen-playground/src/main/java/org/swisspush/gateleen/playground/Server.java @@ -46,6 +46,8 @@ import org.swisspush.gateleen.kafka.KafkaMessageSender; import org.swisspush.gateleen.kafka.KafkaMessageValidator; import org.swisspush.gateleen.kafka.KafkaProducerRepository; +import org.swisspush.gateleen.logging.DefaultLogAppenderRepository; +import org.swisspush.gateleen.logging.LogAppenderRepository; import org.swisspush.gateleen.logging.LogController; import org.swisspush.gateleen.logging.LoggingResourceManager; import org.swisspush.gateleen.monitoring.CustomRedisMonitor; @@ -119,6 +121,7 @@ public class Server extends AbstractVerticle { * Managers */ private LoggingResourceManager loggingResourceManager; + private LogAppenderRepository logAppenderRepository; private ConfigurationResourceManager configurationResourceManager; private ValidationResourceManager validationResourceManager; private ValidationSchemaProvider validationSchemaProvider; @@ -221,9 +224,11 @@ public void start() { "channels/([^/]+).*", configurationResourceManager, SERVER_ROOT + "/admin/v1/hookconfig"); eventBusHandler.setEventbusBridgePingInterval(RunConfig.EVENTBUS_BRIDGE_PING_INTERVAL); + logAppenderRepository = new DefaultLogAppenderRepository(vertx); loggingResourceManager = new LoggingResourceManager(vertx, storage, SERVER_ROOT + "/admin/v1/logging"); loggingResourceManager.enableResourceLogging(true); + ContentTypeConstraintRepository repository = new ContentTypeConstraintRepository(); contentTypeConstraintHandler = new ContentTypeConstraintHandler(configurationResourceManager, repository, SERVER_ROOT + "/admin/v1/contentTypeConstraints", @@ -244,9 +249,9 @@ public void start() { queueClient, lock); reducedPropagationManager.startExpiredQueueProcessing(5000); - hookHandler = new HookHandler(vertx, selfClient, storage, loggingResourceManager, monitoringHandler, - SERVER_ROOT + "/users/v1/%s/profile", SERVER_ROOT + "/hooks/v1/", queueClient, - false, reducedPropagationManager); + hookHandler = new HookHandler(vertx, selfClient, storage, loggingResourceManager, logAppenderRepository, + monitoringHandler,SERVER_ROOT + "/users/v1/%s/profile", + SERVER_ROOT + "/hooks/v1/", queueClient,false, reducedPropagationManager); hookHandler.enableResourceLogging(true); authorizer = new Authorizer(vertx, storage, SERVER_ROOT + "/security/v1/", ROLE_PATTERN, ROLE_PREFIX, props); @@ -287,6 +292,7 @@ public void start() { .withInfo(info) .withMonitoringHandler(monitoringHandler) .withLoggingResourceManager(loggingResourceManager) + .withLogAppenderRepository(logAppenderRepository) .withResourceLogging(true) .withRoutingConfiguration(configurationResourceManager, SERVER_ROOT + "/admin/v1/routing/config") .withHttpClientFactory(this::createHttpClientForRouter) diff --git a/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/AbstractForwarder.java b/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/AbstractForwarder.java index 036a8c91..b1992787 100644 --- a/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/AbstractForwarder.java +++ b/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/AbstractForwarder.java @@ -8,6 +8,7 @@ import org.swisspush.gateleen.core.util.HttpHeaderUtil; import org.swisspush.gateleen.core.util.ResponseStatusCodeLogUtil; import org.swisspush.gateleen.core.util.StatusCode; +import org.swisspush.gateleen.logging.LogAppenderRepository; import org.swisspush.gateleen.logging.LoggingResourceManager; import org.swisspush.gateleen.monitoring.MonitoringHandler; @@ -15,11 +16,13 @@ public abstract class AbstractForwarder implements Handler { protected final Rule rule; protected final LoggingResourceManager loggingResourceManager; + protected final LogAppenderRepository logAppenderRepository; protected final MonitoringHandler monitoringHandler; - public AbstractForwarder(Rule rule, LoggingResourceManager loggingResourceManager, MonitoringHandler monitoringHandler) { + public AbstractForwarder(Rule rule, LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository, MonitoringHandler monitoringHandler) { this.rule = rule; this.loggingResourceManager = loggingResourceManager; + this.logAppenderRepository = logAppenderRepository; this.monitoringHandler = monitoringHandler; } diff --git a/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/Forwarder.java b/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/Forwarder.java index 9d8469d1..ad38f4a4 100755 --- a/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/Forwarder.java +++ b/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/Forwarder.java @@ -18,6 +18,7 @@ import org.swisspush.gateleen.core.util.ResponseStatusCodeLogUtil; import org.swisspush.gateleen.core.util.StatusCode; import org.swisspush.gateleen.core.util.StringUtils; +import org.swisspush.gateleen.logging.LogAppenderRepository; import org.swisspush.gateleen.logging.LoggingHandler; import org.swisspush.gateleen.logging.LoggingResourceManager; import org.swisspush.gateleen.logging.LoggingWriteStream; @@ -46,6 +47,7 @@ public class Forwarder extends AbstractForwarder { private int port; private Rule rule; private LoggingResourceManager loggingResourceManager; + private LogAppenderRepository logAppenderRepository; private MonitoringHandler monitoringHandler; private ResourceStorage storage; @Nullable @@ -64,13 +66,14 @@ public class Forwarder extends AbstractForwarder { private static final Logger LOG = LoggerFactory.getLogger(Forwarder.class); public Forwarder(Vertx vertx, HttpClient client, Rule rule, final ResourceStorage storage, - LoggingResourceManager loggingResourceManager, MonitoringHandler monitoringHandler, + LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository, MonitoringHandler monitoringHandler, String userProfilePath, @Nullable AuthStrategy authStrategy) { - super(rule, loggingResourceManager, monitoringHandler); + super(rule, loggingResourceManager, logAppenderRepository, monitoringHandler); this.vertx = vertx; this.client = client; this.rule = rule; this.loggingResourceManager = loggingResourceManager; + this.logAppenderRepository = logAppenderRepository; this.monitoringHandler = monitoringHandler; this.storage = storage; this.urlPattern = Pattern.compile(rule.getUrlPattern()); @@ -233,7 +236,7 @@ String applyHeaderFunctions(final Logger log, MultiMap headers) { private void handleRequest(final HttpServerRequest req, final Buffer bodyData, final String targetUri, final Logger log, final Map profileHeaderMap, Optional authHeader, @Nullable final Handler afterHandler) { - final LoggingHandler loggingHandler = new LoggingHandler(loggingResourceManager, req, vertx.eventBus()); + final LoggingHandler loggingHandler = new LoggingHandler(loggingResourceManager, logAppenderRepository, req, vertx.eventBus()); final String uniqueId = req.headers().get("x-rp-unique_id"); final String timeout = req.headers().get("x-timeout"); diff --git a/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/NullForwarder.java b/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/NullForwarder.java index 1d9cc3f1..8d1b8fb4 100755 --- a/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/NullForwarder.java +++ b/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/NullForwarder.java @@ -12,6 +12,7 @@ import org.swisspush.gateleen.core.http.HttpRequest; import org.swisspush.gateleen.core.http.RequestLoggerFactory; import org.swisspush.gateleen.core.util.StatusCode; +import org.swisspush.gateleen.logging.LogAppenderRepository; import org.swisspush.gateleen.logging.LoggingHandler; import org.swisspush.gateleen.logging.LoggingResourceManager; import org.swisspush.gateleen.monitoring.MonitoringHandler; @@ -25,8 +26,8 @@ public class NullForwarder extends AbstractForwarder { private EventBus eventBus; - public NullForwarder(Rule rule, LoggingResourceManager loggingResourceManager, MonitoringHandler monitoringHandler, EventBus eventBus) { - super(rule, loggingResourceManager, monitoringHandler); + public NullForwarder(Rule rule, LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository, MonitoringHandler monitoringHandler, EventBus eventBus) { + super(rule, loggingResourceManager, logAppenderRepository, monitoringHandler); this.eventBus = eventBus; } @@ -40,7 +41,7 @@ public void handle(final RoutingContext ctx) { } monitoringHandler.updateRequestPerRuleMonitoring(ctx.request(), rule.getMetricName()); - final LoggingHandler loggingHandler = new LoggingHandler(loggingResourceManager, ctx.request(), eventBus); + final LoggingHandler loggingHandler = new LoggingHandler(loggingResourceManager, logAppenderRepository, ctx.request(), eventBus); log.debug("Not forwarding request: {} with rule {}", ctx.request().uri(), rule.getRuleIdentifier()); final HeadersMultiMap requestHeaders = new HeadersMultiMap(); requestHeaders.addAll(ctx.request().headers()); diff --git a/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/Router.java b/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/Router.java index 116e5ce9..2ff24a33 100755 --- a/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/Router.java +++ b/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/Router.java @@ -22,6 +22,7 @@ import org.swisspush.gateleen.core.refresh.Refreshable; import org.swisspush.gateleen.core.storage.ResourceStorage; import org.swisspush.gateleen.core.util.*; +import org.swisspush.gateleen.logging.LogAppenderRepository; import org.swisspush.gateleen.logging.LoggingResourceManager; import org.swisspush.gateleen.monitoring.MonitoringHandler; import org.swisspush.gateleen.routing.auth.AuthStrategy; @@ -57,6 +58,7 @@ public class Router implements Refreshable, LoggableResource, ConfigurationResou private final String serverUri; private io.vertx.ext.web.Router router; private final LoggingResourceManager loggingResourceManager; + private final LogAppenderRepository logAppenderRepository; private final MonitoringHandler monitoringHandler; private final Logger log = LoggerFactory.getLogger(Router.class); private final Logger cleanupLogger = LoggerFactory.getLogger(Router.class.getName() + "Cleanup"); @@ -103,6 +105,7 @@ public static RouterBuilder builder() { final ResourceStorage storage, final Map properties, LoggingResourceManager loggingResourceManager, + LogAppenderRepository logAppenderRepository, MonitoringHandler monitoringHandler, HttpClient selfClient, String serverPath, @@ -118,6 +121,7 @@ public static RouterBuilder builder() { this.storage = storage; this.properties = properties; this.loggingResourceManager = loggingResourceManager; + this.logAppenderRepository = logAppenderRepository; this.monitoringHandler = monitoringHandler; this.selfClient = selfClient; this.vertx = vertx; @@ -316,14 +320,18 @@ private void createForwarders(List rules, io.vertx.ext.web.Router newRoute AuthStrategy authStrategy = selectAuthStrategy(rule); Handler forwarder; if (rule.getPath() == null) { - forwarder = new NullForwarder(rule, loggingResourceManager, monitoringHandler, vertx.eventBus()); + forwarder = new NullForwarder(rule, loggingResourceManager, logAppenderRepository, monitoringHandler, + vertx.eventBus()); } else if (rule.getStorage() != null) { - forwarder = new StorageForwarder(vertx.eventBus(), rule, loggingResourceManager, monitoringHandler); + forwarder = new StorageForwarder(vertx.eventBus(), rule, loggingResourceManager, logAppenderRepository, + monitoringHandler); } else if (rule.getScheme().equals("local")) { - forwarder = new Forwarder(vertx, selfClient, rule, this.storage, loggingResourceManager, monitoringHandler, userProfileUri, authStrategy); + forwarder = new Forwarder(vertx, selfClient, rule, this.storage, loggingResourceManager, logAppenderRepository, + monitoringHandler, userProfileUri, authStrategy); } else { HttpClient client = httpClientFactory.createHttpClient(rule.buildHttpClientOptions()); - forwarder = new Forwarder(vertx, client, rule, this.storage, loggingResourceManager, monitoringHandler, userProfileUri, authStrategy); + forwarder = new Forwarder(vertx, client, rule, this.storage, loggingResourceManager, logAppenderRepository, + monitoringHandler, userProfileUri, authStrategy); newClients.add(client); } diff --git a/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/RouterBuilder.java b/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/RouterBuilder.java index 30ee39bc..6db535ed 100644 --- a/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/RouterBuilder.java +++ b/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/RouterBuilder.java @@ -9,6 +9,7 @@ import org.swisspush.gateleen.core.configuration.ConfigurationResourceManager; import org.swisspush.gateleen.core.http.HttpClientFactory; import org.swisspush.gateleen.core.storage.ResourceStorage; +import org.swisspush.gateleen.logging.LogAppenderRepository; import org.swisspush.gateleen.logging.LoggingResourceManager; import org.swisspush.gateleen.monitoring.MonitoringHandler; import org.swisspush.gateleen.routing.auth.OAuthProvider; @@ -33,6 +34,7 @@ public class RouterBuilder { private ResourceStorage storage; private Map properties; private LoggingResourceManager loggingResourceManager; + private LogAppenderRepository logAppenderRepository; private MonitoringHandler monitoringHandler; private HttpClient selfClient; private String serverPath; @@ -88,6 +90,7 @@ public Router build() { storage, properties, loggingResourceManager, + logAppenderRepository, monitoringHandler, selfClient, serverPath, @@ -161,6 +164,12 @@ public RouterBuilder withLoggingResourceManager(LoggingResourceManager loggingRe return this; } + public RouterBuilder withLogAppenderRepository(LogAppenderRepository logAppenderRepository) { + ensureNotBuilt(); + this.logAppenderRepository = logAppenderRepository; + return this; + } + public RouterBuilder withMonitoringHandler(MonitoringHandler monitoringHandler) { ensureNotBuilt(); this.monitoringHandler = monitoringHandler; diff --git a/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/StorageForwarder.java b/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/StorageForwarder.java index 2d3497f7..a53a6a0f 100755 --- a/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/StorageForwarder.java +++ b/gateleen-routing/src/main/java/org/swisspush/gateleen/routing/StorageForwarder.java @@ -22,6 +22,7 @@ import org.swisspush.gateleen.core.util.Address; import org.swisspush.gateleen.core.util.ResponseStatusCodeLogUtil; import org.swisspush.gateleen.core.util.StatusCode; +import org.swisspush.gateleen.logging.LogAppenderRepository; import org.swisspush.gateleen.logging.LoggingHandler; import org.swisspush.gateleen.logging.LoggingResourceManager; import org.swisspush.gateleen.monitoring.MonitoringHandler; @@ -40,8 +41,8 @@ public class StorageForwarder extends AbstractForwarder { private String address; private CORSHandler corsHandler; - public StorageForwarder(EventBus eventBus, Rule rule, LoggingResourceManager loggingResourceManager, MonitoringHandler monitoringHandler) { - super(rule, loggingResourceManager, monitoringHandler); + public StorageForwarder(EventBus eventBus, Rule rule, LoggingResourceManager loggingResourceManager, LogAppenderRepository logAppenderRepository, MonitoringHandler monitoringHandler) { + super(rule, loggingResourceManager, logAppenderRepository, monitoringHandler); this.eventBus = eventBus; this.address = Address.storageAddress() + "-" + rule.getStorage(); urlPattern = Pattern.compile(rule.getUrlPattern()); @@ -50,7 +51,7 @@ public StorageForwarder(EventBus eventBus, Rule rule, LoggingResourceManager log @Override public void handle(final RoutingContext ctx) { - final LoggingHandler loggingHandler = new LoggingHandler(loggingResourceManager, ctx.request(), this.eventBus); + final LoggingHandler loggingHandler = new LoggingHandler(loggingResourceManager, logAppenderRepository, ctx.request(), this.eventBus); final String targetUri = urlPattern.matcher(ctx.request().uri()).replaceAll(rule.getPath()).replaceAll("\\/\\/", "/"); final Logger log = RequestLoggerFactory.getLogger(StorageForwarder.class, ctx.request()); diff --git a/gateleen-routing/src/test/java/org/swisspush/gateleen/routing/ForwarderTest.java b/gateleen-routing/src/test/java/org/swisspush/gateleen/routing/ForwarderTest.java index 2ae71428..42222e58 100644 --- a/gateleen-routing/src/test/java/org/swisspush/gateleen/routing/ForwarderTest.java +++ b/gateleen-routing/src/test/java/org/swisspush/gateleen/routing/ForwarderTest.java @@ -20,6 +20,7 @@ import org.swisspush.gateleen.core.http.HeaderFunctions; import org.swisspush.gateleen.core.storage.MockResourceStorage; import org.swisspush.gateleen.core.storage.ResourceStorage; +import org.swisspush.gateleen.logging.LogAppenderRepository; import org.swisspush.gateleen.logging.LoggingResourceManager; import org.swisspush.gateleen.monitoring.MonitoringHandler; @@ -31,6 +32,7 @@ public class ForwarderTest { private Vertx vertx; private LoggingResourceManager loggingResourceManager; + private LogAppenderRepository logAppenderRepository; private MonitoringHandler monitoringHandler; private HttpClient httpClient; private ResourceStorage storage; @@ -77,6 +79,7 @@ private static Rule extractRule(String rulePattern) { public void setUp() { vertx = Mockito.mock(Vertx.class); loggingResourceManager = Mockito.mock(LoggingResourceManager.class); + logAppenderRepository = Mockito.mock(LogAppenderRepository.class); monitoringHandler = Mockito.mock(MonitoringHandler.class); httpClient = Mockito.mock(HttpClient.class); storage = new MockResourceStorage(ImmutableMap.of(RULES_PATH, RULES)); @@ -86,7 +89,7 @@ public void setUp() { @Test public void testHeaderFunctionsGivenHostUpdatedByConfiguredRuleHostHeader() { Rule rule = extractRule("/ruleWithHostHeader"); - Forwarder forwarder = new Forwarder(vertx, httpClient, rule, storage, loggingResourceManager, + Forwarder forwarder = new Forwarder(vertx, httpClient, rule, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, USER_PROFILE_PATH, null); MultiMap reqHeaders = new HeadersMultiMap(); reqHeaders.add(HOST_HEADER, HOST_OLD); @@ -98,7 +101,7 @@ public void testHeaderFunctionsGivenHostUpdatedByConfiguredRuleHostHeader() { @Test public void testHeaderFunctionsDefaultHostHeaderUpdatedByConfiguredRuleHostHeader() { Rule rule = extractRule("/ruleWithHostHeader"); - Forwarder forwarder = new Forwarder(vertx, httpClient, rule, storage, loggingResourceManager, + Forwarder forwarder = new Forwarder(vertx, httpClient, rule, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, USER_PROFILE_PATH, null); MultiMap reqHeaders = new HeadersMultiMap(); reqHeaders.add(HOST_HEADER, HOST_DEFAULT); @@ -119,7 +122,7 @@ public void testHeaderFunctionsDefaultHostHeaderUpdatedByConfiguredRuleHostHeade @Test public void testHeaderFunctionsGivenHostHeaderUpdatedToDefaultHostHeaderWhenEqualToConfiguredRuleHostHeader() { Rule rule = extractRule("/ruleWithHostHeader"); - Forwarder forwarder = new Forwarder(vertx, httpClient, rule, storage, loggingResourceManager, + Forwarder forwarder = new Forwarder(vertx, httpClient, rule, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, USER_PROFILE_PATH, null); MultiMap reqHeaders = new HeadersMultiMap(); reqHeaders.add(HOST_HEADER, HOST_NEW); @@ -131,7 +134,7 @@ public void testHeaderFunctionsGivenHostHeaderUpdatedToDefaultHostHeaderWhenEqua @Test public void testHeaderFunctionsGivenHostHeaderUpdatedByDefaultHostHeaderWhenNoConfiguredRuleHostHeader() { Rule rule = extractRule("/ruleWithoutHeader"); - Forwarder forwarder = new Forwarder(vertx, httpClient, rule, storage, loggingResourceManager, + Forwarder forwarder = new Forwarder(vertx, httpClient, rule, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, USER_PROFILE_PATH, null); MultiMap reqHeaders = new HeadersMultiMap(); reqHeaders.add(HOST_HEADER, HOST_OLD); @@ -143,7 +146,7 @@ public void testHeaderFunctionsGivenHostHeaderUpdatedByDefaultHostHeaderWhenNoCo @Test public void testHeaderFunctionsGivenDefaultHostHeaderRemainsWhenNoConfiguredRuleHostHeader() { Rule rule = extractRule("/ruleWithoutHeader"); - Forwarder forwarder = new Forwarder(vertx, httpClient, rule, storage, loggingResourceManager, + Forwarder forwarder = new Forwarder(vertx, httpClient, rule, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, USER_PROFILE_PATH, null); MultiMap reqHeaders = new HeadersMultiMap(); reqHeaders.add(HOST_HEADER, HOST_DEFAULT); diff --git a/gateleen-test/src/test/java/org/swisspush/gateleen/AbstractTest.java b/gateleen-test/src/test/java/org/swisspush/gateleen/AbstractTest.java index 93a3562f..334549df 100755 --- a/gateleen-test/src/test/java/org/swisspush/gateleen/AbstractTest.java +++ b/gateleen-test/src/test/java/org/swisspush/gateleen/AbstractTest.java @@ -44,6 +44,8 @@ import org.swisspush.gateleen.hook.HookHandler; import org.swisspush.gateleen.hook.reducedpropagation.ReducedPropagationManager; import org.swisspush.gateleen.hook.reducedpropagation.impl.RedisReducedPropagationStorage; +import org.swisspush.gateleen.logging.DefaultLogAppenderRepository; +import org.swisspush.gateleen.logging.LogAppenderRepository; import org.swisspush.gateleen.logging.LogController; import org.swisspush.gateleen.logging.LoggingResourceManager; import org.swisspush.gateleen.merge.MergeHandler; @@ -152,11 +154,15 @@ public static void setupBeforeClass(TestContext context) { ConfigurationResourceManager configurationResourceManager = new ConfigurationResourceManager(vertx, storage); String eventBusConfigurationResource = SERVER_ROOT + "/admin/v1/hookconfig"; - EventBusHandler eventBusHandler = new EventBusHandler(vertx, SERVER_ROOT + "/event/v1/", SERVER_ROOT + "/event/v1/sock/", "event-", "channels/([^/]+).*", configurationResourceManager, eventBusConfigurationResource); + EventBusHandler eventBusHandler = new EventBusHandler(vertx, SERVER_ROOT + "/event/v1/", + SERVER_ROOT + "/event/v1/sock/", "event-", + "channels/([^/]+).*", configurationResourceManager, eventBusConfigurationResource); eventBusHandler.setEventbusBridgePingInterval(RunConfig.EVENTBUS_BRIDGE_PING_INTERVAL); - LoggingResourceManager loggingResourceManager = new LoggingResourceManager(vertx, storage, SERVER_ROOT + "/admin/v1/logging"); + LogAppenderRepository logAppenderRepository = new DefaultLogAppenderRepository(vertx); + LoggingResourceManager loggingResourceManager = new LoggingResourceManager(vertx, storage, + SERVER_ROOT + "/admin/v1/logging"); UserProfileHandler userProfileHandler = new UserProfileHandler(vertx, storage, RunConfig.buildUserProfileConfiguration()); RoleProfileHandler roleProfileHandler = new RoleProfileHandler(vertx, storage, SERVER_ROOT + "/roles/v1/([^/]+)/profile"); qosHandler = new QoSHandler(vertx, storage, SERVER_ROOT + "/admin/v1/qos", props, PREFIX); @@ -164,18 +170,22 @@ public static void setupBeforeClass(TestContext context) { Lock lock = new RedisBasedLock(redisProvider); QueueClient queueClient = new QueueClient(vertx, monitoringHandler); - ReducedPropagationManager reducedPropagationManager = new ReducedPropagationManager(vertx, new RedisReducedPropagationStorage(redisProvider), queueClient, lock); + ReducedPropagationManager reducedPropagationManager = new ReducedPropagationManager(vertx, + new RedisReducedPropagationStorage(redisProvider), queueClient, lock); reducedPropagationManager.startExpiredQueueProcessing(1000); - hookHandler = new HookHandler(vertx, selfClient, storage, loggingResourceManager, monitoringHandler, - SERVER_ROOT + "/users/v1/%s/profile", ROOT + "/server/hooks/v1/", queueClient, false, reducedPropagationManager); + hookHandler = new HookHandler(vertx, selfClient, storage, loggingResourceManager, logAppenderRepository, monitoringHandler, + SERVER_ROOT + "/users/v1/%s/profile", ROOT + "/server/hooks/v1/", + queueClient, false, reducedPropagationManager); propertyHandler = new PropertyHandler(ROOT, props); - schedulerResourceManager = new SchedulerResourceManager(vertx, redisProvider, storage, monitoringHandler, SERVER_ROOT + "/admin/v1/schedulers"); + schedulerResourceManager = new SchedulerResourceManager(vertx, redisProvider, storage, monitoringHandler, + SERVER_ROOT + "/admin/v1/schedulers"); ResetMetricsController resetMetricsController = new ResetMetricsController(vertx); resetMetricsController.registerResetMetricsControlMBean(JMX_DOMAIN, PREFIX); LogController logController = new LogController(); logController.registerLogConfiguratorMBean(JMX_DOMAIN); ZipExtractHandler zipExtractHandler = new ZipExtractHandler(selfClient); - DelegateHandler delegateHandler = new DelegateHandler(vertx, selfClient, storage, monitoringHandler, DELEGATE_ROOT, props, null); + DelegateHandler delegateHandler = new DelegateHandler(vertx, selfClient, storage, monitoringHandler, + DELEGATE_ROOT, props, null); MergeHandler mergeHandler = new MergeHandler(selfClient); cacheHandler = new CacheHandler( @@ -187,19 +197,22 @@ public static void setupBeforeClass(TestContext context) { // ------ RuleProvider ruleProvider = new RuleProvider(vertx, RULES_ROOT, storage, props); - QueueCircuitBreakerRulePatternToCircuitMapping rulePatternToCircuitMapping = new QueueCircuitBreakerRulePatternToCircuitMapping(); + QueueCircuitBreakerRulePatternToCircuitMapping rulePatternToCircuitMapping = + new QueueCircuitBreakerRulePatternToCircuitMapping(); - QueueCircuitBreakerConfigurationResourceManager queueCircuitBreakerConfigurationResourceManager = new QueueCircuitBreakerConfigurationResourceManager(vertx, storage, SERVER_ROOT + "/admin/v1/circuitbreaker"); + QueueCircuitBreakerConfigurationResourceManager queueCircuitBreakerConfigurationResourceManager = + new QueueCircuitBreakerConfigurationResourceManager(vertx, storage, SERVER_ROOT + "/admin/v1/circuitbreaker"); QueueCircuitBreakerStorage queueCircuitBreakerStorage = new RedisQueueCircuitBreakerStorage(redisProvider); - QueueCircuitBreakerHttpRequestHandler requestHandler = new QueueCircuitBreakerHttpRequestHandler(vertx, queueCircuitBreakerStorage, - SERVER_ROOT + "/queuecircuitbreaker/circuit"); + QueueCircuitBreakerHttpRequestHandler requestHandler = new QueueCircuitBreakerHttpRequestHandler(vertx, + queueCircuitBreakerStorage,SERVER_ROOT + "/queuecircuitbreaker/circuit"); QueueCircuitBreaker queueCircuitBreaker = new QueueCircuitBreakerImpl(vertx, lock, Address.redisquesAddress(), queueCircuitBreakerStorage, ruleProvider, rulePatternToCircuitMapping, queueCircuitBreakerConfigurationResourceManager, requestHandler, CIRCUIT_BREAKER_REST_API_PORT); new QueueProcessor(vertx, selfClient, monitoringHandler, queueCircuitBreaker); - final QueueBrowser queueBrowser = new QueueBrowser(vertx, SERVER_ROOT + "/queuing", Address.redisquesAddress(), monitoringHandler); + final QueueBrowser queueBrowser = new QueueBrowser(vertx, SERVER_ROOT + "/queuing", + Address.redisquesAddress(), monitoringHandler); new CustomRedisMonitor(vertx, redisProvider, "main", "rest-storage", 10).start(); Router router = Router.builder()