From 45feabbc21f6481bd7bbe23f5c884859e7e94071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Thu, 6 Jul 2023 17:48:39 +0100 Subject: [PATCH 01/15] jvm endpoint --- .../gateway/service/HealthCheckService.java | 24 ++++++ .../service/impl/HealthCheckServiceImpl.java | 65 +++++++++++++++++ .../web/rest/gateway/HealthCheckResource.java | 73 +++++++++++++++++++ 3 files changed, 162 insertions(+) create mode 100644 src/main/java/org/assimbly/gateway/service/HealthCheckService.java create mode 100644 src/main/java/org/assimbly/gateway/service/impl/HealthCheckServiceImpl.java create mode 100644 src/main/java/org/assimbly/gateway/web/rest/gateway/HealthCheckResource.java diff --git a/src/main/java/org/assimbly/gateway/service/HealthCheckService.java b/src/main/java/org/assimbly/gateway/service/HealthCheckService.java new file mode 100644 index 00000000..c7424f73 --- /dev/null +++ b/src/main/java/org/assimbly/gateway/service/HealthCheckService.java @@ -0,0 +1,24 @@ +package org.assimbly.gateway.service; + +/** + * Service Interface for managing Integration. + */ +public interface HealthCheckService { + + /** + * Convert double size to long Kb + * + * @param var1 the value to convert + * @return Kb + */ + long convertSizeToKb(double var1); + + /** + * Invoke system method + * + * @param methodName to invoke + * @return object with method call response + */ + Object invokeMethod(String methodName); + +} diff --git a/src/main/java/org/assimbly/gateway/service/impl/HealthCheckServiceImpl.java b/src/main/java/org/assimbly/gateway/service/impl/HealthCheckServiceImpl.java new file mode 100644 index 00000000..76c86b38 --- /dev/null +++ b/src/main/java/org/assimbly/gateway/service/impl/HealthCheckServiceImpl.java @@ -0,0 +1,65 @@ +package org.assimbly.gateway.service.impl; + +import org.assimbly.gateway.domain.Integration; +import org.assimbly.gateway.repository.IntegrationRepository; +import org.assimbly.gateway.service.HealthCheckService; +import org.assimbly.gateway.service.IntegrationService; +import org.assimbly.gateway.service.dto.IntegrationDTO; +import org.assimbly.gateway.service.mapper.IntegrationMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.lang.management.ManagementFactory; +import java.lang.management.OperatingSystemMXBean; +import java.util.LinkedList; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +/** + * Service Implementation for managing Integration. + */ +@Service +@Transactional +public class HealthCheckServiceImpl implements HealthCheckService { + + private final Logger log = LoggerFactory.getLogger(getClass()); + + private final OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean(); + + public HealthCheckServiceImpl() { + // + } + + /** + * Convert double size to long Kb + * + * @param size the value to convert + * @return Kb + */ + @Override + public long convertSizeToKb(double size) { + return (long) (size / 1024); + } + + /** + * Invoke system method + * + * @param methodName to invoke + * @return object with method call response + */ + @Override + public Object invokeMethod(String methodName) { + try { + Class unixOS = Class.forName("com.sun.management.UnixOperatingSystemMXBean"); + + if (unixOS.isInstance(operatingSystemMXBean)) + return unixOS.getMethod(methodName).invoke(operatingSystemMXBean); + + } catch (Throwable ignored) { } + + return "Unknown"; + } +} diff --git a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthCheckResource.java b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthCheckResource.java new file mode 100644 index 00000000..4909e859 --- /dev/null +++ b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthCheckResource.java @@ -0,0 +1,73 @@ +package org.assimbly.gateway.web.rest.gateway; + +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Parameter; +import org.assimbly.dil.validation.stats.BackendResponse; +import org.assimbly.gateway.service.HealthCheckService; +import org.assimbly.util.rest.ResponseUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.actuate.audit.AuditEvent; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.io.ByteArrayOutputStream; +import java.lang.management.ManagementFactory; +import java.lang.management.MemoryUsage; +import java.lang.management.ThreadMXBean; +import java.nio.charset.StandardCharsets; + +/** + * REST controller for getting the {@link AuditEvent}s. + */ +@RestController +@RequestMapping("/health/check") +public class HealthCheckResource { + + protected Logger log = LoggerFactory.getLogger(getClass()); + + private final HealthCheckService healthCheckService; + + public HealthCheckResource(HealthCheckService healthCheckService) { + this.healthCheckService = healthCheckService; + } + + private boolean plainResponse; + + @GetMapping( + path = "/jvm", + produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE, MediaType.TEXT_PLAIN_VALUE} + ) + public ResponseEntity getJvmStats(@Parameter(hidden = true) @RequestHeader("Accept") String mediaType, @PathVariable Long integrationId) throws Exception { + + plainResponse = true; + + try { + final ByteArrayOutputStream out = new ByteArrayOutputStream(); + final ObjectMapper mapper = new ObjectMapper(); + final BackendResponse backendResponse = new BackendResponse(); + final ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean(); + + MemoryUsage mem = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); + + backendResponse.addMemory("current", healthCheckService.convertSizeToKb(mem.getUsed())); + backendResponse.addMemory("max", healthCheckService.convertSizeToKb(mem.getMax())); + backendResponse.addMemory("committed", healthCheckService.convertSizeToKb(mem.getCommitted())); + backendResponse.addMemory("cached", healthCheckService.convertSizeToKb(mem.getCommitted() - mem.getUsed())); + backendResponse.addMemory("currentUsedPercentage", (mem.getUsed() * 100 / mem.getMax())); + + backendResponse.addThread("threadCount", threadMXBean.getThreadCount()); + backendResponse.addThread("peakThreadCount", threadMXBean.getPeakThreadCount()); + + backendResponse.addJvm("openFileDescriptors", healthCheckService.invokeMethod("getOpenFileDescriptorCount")); + backendResponse.addJvm("maxFileDescriptors", healthCheckService.invokeMethod("getMaxFileDescriptorCount")); + + mapper.writeValue(out, backendResponse); + return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(integrationId, mediaType, "/health/check/jvm", out.toString(StandardCharsets.UTF_8), plainResponse); + } catch (Exception e) { + log.error("Get jvm failed",e); + return ResponseUtil.createFailureResponse(integrationId, mediaType,"/health/check/jvm",e.getMessage()); + } + } +} From f4228d32ba04119964262153a76d83cae13aa37c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Thu, 6 Jul 2023 18:06:34 +0100 Subject: [PATCH 02/15] remove integrationId from path --- .../assimbly/gateway/web/rest/gateway/HealthCheckResource.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthCheckResource.java b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthCheckResource.java index 4909e859..e0909039 100644 --- a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthCheckResource.java +++ b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthCheckResource.java @@ -39,9 +39,10 @@ public HealthCheckResource(HealthCheckService healthCheckService) { path = "/jvm", produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE, MediaType.TEXT_PLAIN_VALUE} ) - public ResponseEntity getJvmStats(@Parameter(hidden = true) @RequestHeader("Accept") String mediaType, @PathVariable Long integrationId) throws Exception { + public ResponseEntity getJvmStats(@Parameter(hidden = true) @RequestHeader("Accept") String mediaType) throws Exception { plainResponse = true; + long integrationId = 1; try { final ByteArrayOutputStream out = new ByteArrayOutputStream(); From babe5cc1a7deec3ed814c30e31ba024c596922b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Fri, 7 Jul 2023 11:34:31 +0100 Subject: [PATCH 03/15] renamed HealthCheck to Health --- ...thCheckService.java => HealthService.java} | 2 +- ...erviceImpl.java => HealthServiceImpl.java} | 15 ++-------- ...CheckResource.java => HealthResource.java} | 28 +++++++++---------- 3 files changed, 18 insertions(+), 27 deletions(-) rename src/main/java/org/assimbly/gateway/service/{HealthCheckService.java => HealthService.java} (91%) rename src/main/java/org/assimbly/gateway/service/impl/{HealthCheckServiceImpl.java => HealthServiceImpl.java} (70%) rename src/main/java/org/assimbly/gateway/web/rest/gateway/{HealthCheckResource.java => HealthResource.java} (67%) diff --git a/src/main/java/org/assimbly/gateway/service/HealthCheckService.java b/src/main/java/org/assimbly/gateway/service/HealthService.java similarity index 91% rename from src/main/java/org/assimbly/gateway/service/HealthCheckService.java rename to src/main/java/org/assimbly/gateway/service/HealthService.java index c7424f73..eb7b27f1 100644 --- a/src/main/java/org/assimbly/gateway/service/HealthCheckService.java +++ b/src/main/java/org/assimbly/gateway/service/HealthService.java @@ -3,7 +3,7 @@ /** * Service Interface for managing Integration. */ -public interface HealthCheckService { +public interface HealthService { /** * Convert double size to long Kb diff --git a/src/main/java/org/assimbly/gateway/service/impl/HealthCheckServiceImpl.java b/src/main/java/org/assimbly/gateway/service/impl/HealthServiceImpl.java similarity index 70% rename from src/main/java/org/assimbly/gateway/service/impl/HealthCheckServiceImpl.java rename to src/main/java/org/assimbly/gateway/service/impl/HealthServiceImpl.java index 76c86b38..a2ac1993 100644 --- a/src/main/java/org/assimbly/gateway/service/impl/HealthCheckServiceImpl.java +++ b/src/main/java/org/assimbly/gateway/service/impl/HealthServiceImpl.java @@ -1,11 +1,6 @@ package org.assimbly.gateway.service.impl; -import org.assimbly.gateway.domain.Integration; -import org.assimbly.gateway.repository.IntegrationRepository; -import org.assimbly.gateway.service.HealthCheckService; -import org.assimbly.gateway.service.IntegrationService; -import org.assimbly.gateway.service.dto.IntegrationDTO; -import org.assimbly.gateway.service.mapper.IntegrationMapper; +import org.assimbly.gateway.service.HealthService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -13,23 +8,19 @@ import java.lang.management.ManagementFactory; import java.lang.management.OperatingSystemMXBean; -import java.util.LinkedList; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; /** * Service Implementation for managing Integration. */ @Service @Transactional -public class HealthCheckServiceImpl implements HealthCheckService { +public class HealthServiceImpl implements HealthService { private final Logger log = LoggerFactory.getLogger(getClass()); private final OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean(); - public HealthCheckServiceImpl() { + public HealthServiceImpl() { // } diff --git a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthCheckResource.java b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java similarity index 67% rename from src/main/java/org/assimbly/gateway/web/rest/gateway/HealthCheckResource.java rename to src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java index e0909039..93423f78 100644 --- a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthCheckResource.java +++ b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.v3.oas.annotations.Parameter; import org.assimbly.dil.validation.stats.BackendResponse; -import org.assimbly.gateway.service.HealthCheckService; +import org.assimbly.gateway.service.HealthService; import org.assimbly.util.rest.ResponseUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,15 +22,15 @@ * REST controller for getting the {@link AuditEvent}s. */ @RestController -@RequestMapping("/health/check") -public class HealthCheckResource { +@RequestMapping("/health") +public class HealthResource { protected Logger log = LoggerFactory.getLogger(getClass()); - private final HealthCheckService healthCheckService; + private final HealthService healthService; - public HealthCheckResource(HealthCheckService healthCheckService) { - this.healthCheckService = healthCheckService; + public HealthResource(HealthService healthService) { + this.healthService = healthService; } private boolean plainResponse; @@ -52,23 +52,23 @@ public ResponseEntity getJvmStats(@Parameter(hidden = true) @RequestHead MemoryUsage mem = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); - backendResponse.addMemory("current", healthCheckService.convertSizeToKb(mem.getUsed())); - backendResponse.addMemory("max", healthCheckService.convertSizeToKb(mem.getMax())); - backendResponse.addMemory("committed", healthCheckService.convertSizeToKb(mem.getCommitted())); - backendResponse.addMemory("cached", healthCheckService.convertSizeToKb(mem.getCommitted() - mem.getUsed())); + backendResponse.addMemory("current", healthService.convertSizeToKb(mem.getUsed())); + backendResponse.addMemory("max", healthService.convertSizeToKb(mem.getMax())); + backendResponse.addMemory("committed", healthService.convertSizeToKb(mem.getCommitted())); + backendResponse.addMemory("cached", healthService.convertSizeToKb(mem.getCommitted() - mem.getUsed())); backendResponse.addMemory("currentUsedPercentage", (mem.getUsed() * 100 / mem.getMax())); backendResponse.addThread("threadCount", threadMXBean.getThreadCount()); backendResponse.addThread("peakThreadCount", threadMXBean.getPeakThreadCount()); - backendResponse.addJvm("openFileDescriptors", healthCheckService.invokeMethod("getOpenFileDescriptorCount")); - backendResponse.addJvm("maxFileDescriptors", healthCheckService.invokeMethod("getMaxFileDescriptorCount")); + backendResponse.addJvm("openFileDescriptors", healthService.invokeMethod("getOpenFileDescriptorCount")); + backendResponse.addJvm("maxFileDescriptors", healthService.invokeMethod("getMaxFileDescriptorCount")); mapper.writeValue(out, backendResponse); - return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(integrationId, mediaType, "/health/check/jvm", out.toString(StandardCharsets.UTF_8), plainResponse); + return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(integrationId, mediaType, "/health/jvm", out.toString(StandardCharsets.UTF_8), plainResponse); } catch (Exception e) { log.error("Get jvm failed",e); - return ResponseUtil.createFailureResponse(integrationId, mediaType,"/health/check/jvm",e.getMessage()); + return ResponseUtil.createFailureResponse(integrationId, mediaType,"/health/jvm",e.getMessage()); } } } From 26ada084440f63a8cdfdf63ba39e8e793d92798a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Fri, 7 Jul 2023 15:04:33 +0100 Subject: [PATCH 04/15] moved BackendResponse to this project --- .../assimbly/gateway/service/dto/JvmDTO.java | 57 +++++++++++++++++++ .../web/rest/gateway/HealthResource.java | 12 +++- 2 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/assimbly/gateway/service/dto/JvmDTO.java diff --git a/src/main/java/org/assimbly/gateway/service/dto/JvmDTO.java b/src/main/java/org/assimbly/gateway/service/dto/JvmDTO.java new file mode 100644 index 00000000..96fa6882 --- /dev/null +++ b/src/main/java/org/assimbly/gateway/service/dto/JvmDTO.java @@ -0,0 +1,57 @@ +package org.assimbly.gateway.service.dto; + +import org.codehaus.jackson.annotate.JsonIgnore; + +import java.lang.management.ManagementFactory; +import java.lang.management.OperatingSystemMXBean; +import java.lang.management.ThreadMXBean; +import java.util.HashMap; +import java.util.Map; + +public class JvmDTO { + + public enum StatusTag { + OK, TROUBLING, FAILING + } + + @JsonIgnore + private final OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean(); + private final ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean(); + + private Map jvm = new HashMap<>(); + private Map memory = new HashMap<>(); + private Map threads = new HashMap<>(); + + + public Map getMemory() { + return memory; + } + public void setMemory(Map memory) { + this.memory = memory; + } + public void addMemory(String key, Long value) { + this.memory.put(key, value); + } + + public Map getThreads() { + return threads; + } + public void setThreads(Map threads) { + this.threads = threads; + } + public void addThread(String key, Integer value) { + this.threads.put(key, value); + } + + public Map getJvm() { + return jvm; + } + public void setJvm(Map jvm) { + this.jvm = jvm; + } + public void addJvm(String key, Object value) { + this.jvm.put(key, value); + } + + +} diff --git a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java index 93423f78..87948579 100644 --- a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java +++ b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java @@ -2,11 +2,14 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.v3.oas.annotations.Parameter; -import org.assimbly.dil.validation.stats.BackendResponse; import org.assimbly.gateway.service.HealthService; +import org.assimbly.gateway.service.dto.JvmDTO; +import org.assimbly.integration.Integration; +import org.assimbly.integrationrest.IntegrationRuntime; import org.assimbly.util.rest.ResponseUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.actuate.audit.AuditEvent; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -33,6 +36,11 @@ public HealthResource(HealthService healthService) { this.healthService = healthService; } + @Autowired + private IntegrationRuntime integrationRuntime; + + private Integration integration; + private boolean plainResponse; @GetMapping( @@ -47,7 +55,7 @@ public ResponseEntity getJvmStats(@Parameter(hidden = true) @RequestHead try { final ByteArrayOutputStream out = new ByteArrayOutputStream(); final ObjectMapper mapper = new ObjectMapper(); - final BackendResponse backendResponse = new BackendResponse(); + final JvmDTO backendResponse = new JvmDTO(); final ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean(); MemoryUsage mem = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); From 58d86bd5f3776dd61974bb19cd8ee7496e42b480 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Fri, 7 Jul 2023 15:19:43 +0100 Subject: [PATCH 05/15] back to the old name BackendResponse --- .../BackendResponse.java} | 18 ++---------------- .../web/rest/gateway/HealthResource.java | 4 ++-- 2 files changed, 4 insertions(+), 18 deletions(-) rename src/main/java/org/assimbly/gateway/service/{dto/JvmDTO.java => response/BackendResponse.java} (65%) diff --git a/src/main/java/org/assimbly/gateway/service/dto/JvmDTO.java b/src/main/java/org/assimbly/gateway/service/response/BackendResponse.java similarity index 65% rename from src/main/java/org/assimbly/gateway/service/dto/JvmDTO.java rename to src/main/java/org/assimbly/gateway/service/response/BackendResponse.java index 96fa6882..c6a181ea 100644 --- a/src/main/java/org/assimbly/gateway/service/dto/JvmDTO.java +++ b/src/main/java/org/assimbly/gateway/service/response/BackendResponse.java @@ -1,28 +1,14 @@ -package org.assimbly.gateway.service.dto; +package org.assimbly.gateway.service.response; -import org.codehaus.jackson.annotate.JsonIgnore; - -import java.lang.management.ManagementFactory; -import java.lang.management.OperatingSystemMXBean; -import java.lang.management.ThreadMXBean; import java.util.HashMap; import java.util.Map; -public class JvmDTO { - - public enum StatusTag { - OK, TROUBLING, FAILING - } - - @JsonIgnore - private final OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean(); - private final ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean(); +public class BackendResponse { private Map jvm = new HashMap<>(); private Map memory = new HashMap<>(); private Map threads = new HashMap<>(); - public Map getMemory() { return memory; } diff --git a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java index 87948579..c0e8e5fb 100644 --- a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java +++ b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.v3.oas.annotations.Parameter; import org.assimbly.gateway.service.HealthService; -import org.assimbly.gateway.service.dto.JvmDTO; +import org.assimbly.gateway.service.response.BackendResponse; import org.assimbly.integration.Integration; import org.assimbly.integrationrest.IntegrationRuntime; import org.assimbly.util.rest.ResponseUtil; @@ -55,7 +55,7 @@ public ResponseEntity getJvmStats(@Parameter(hidden = true) @RequestHead try { final ByteArrayOutputStream out = new ByteArrayOutputStream(); final ObjectMapper mapper = new ObjectMapper(); - final JvmDTO backendResponse = new JvmDTO(); + final BackendResponse backendResponse = new BackendResponse(); final ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean(); MemoryUsage mem = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); From d3a417ae2b7500f35ddc783759dc8822bce9e467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Fri, 7 Jul 2023 15:21:10 +0100 Subject: [PATCH 06/15] flow endpoint --- .../web/rest/gateway/HealthResource.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java index c0e8e5fb..b19a025e 100644 --- a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java +++ b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java @@ -79,4 +79,26 @@ public ResponseEntity getJvmStats(@Parameter(hidden = true) @RequestHead return ResponseUtil.createFailureResponse(integrationId, mediaType,"/health/jvm",e.getMessage()); } } + + @GetMapping( + path = "/flow", + produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE, MediaType.TEXT_PLAIN_VALUE} + ) + public ResponseEntity getFlowStats(@Parameter(hidden = true) @RequestHeader("Accept") String mediaType) throws Exception { + + plainResponse = true; + long integrationId = 1; + integration = integrationRuntime.getIntegration(); + + try { + final org.assimbly.dil.validation.stats.BackendResponse backendResponse = new org.assimbly.dil.validation.stats.BackendResponse(); + + String stats = integration.getStats(mediaType); + if(stats.startsWith("Error")||stats.startsWith("Warning")) {plainResponse = false;} + return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(integrationId, mediaType, "/health/flow", stats, plainResponse); + } catch (Exception e) { + log.error("Get flow failed",e); + return ResponseUtil.createFailureResponse(integrationId, mediaType,"/health/flow",e.getMessage()); + } + } } From 576630420ac34f48315caf4a0becafbaa98d3cb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Fri, 7 Jul 2023 15:47:48 +0100 Subject: [PATCH 07/15] removed unused object --- .../org/assimbly/gateway/web/rest/gateway/HealthResource.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java index b19a025e..62cc8e3c 100644 --- a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java +++ b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java @@ -91,8 +91,6 @@ public ResponseEntity getFlowStats(@Parameter(hidden = true) @RequestHea integration = integrationRuntime.getIntegration(); try { - final org.assimbly.dil.validation.stats.BackendResponse backendResponse = new org.assimbly.dil.validation.stats.BackendResponse(); - String stats = integration.getStats(mediaType); if(stats.startsWith("Error")||stats.startsWith("Warning")) {plainResponse = false;} return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(integrationId, mediaType, "/health/flow", stats, plainResponse); From b049a004e308df9e52a9e497a89780717d188ced Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Mon, 10 Jul 2023 14:12:33 +0100 Subject: [PATCH 08/15] broker endpoint --- .../web/rest/gateway/HealthResource.java | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java index 62cc8e3c..968356b7 100644 --- a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java +++ b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java @@ -2,8 +2,10 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.v3.oas.annotations.Parameter; +import org.assimbly.brokerrest.ManagedBrokerRuntime; import org.assimbly.gateway.service.HealthService; import org.assimbly.gateway.service.response.BackendResponse; +import org.assimbly.gateway.service.response.BrokerResponse; import org.assimbly.integration.Integration; import org.assimbly.integrationrest.IntegrationRuntime; import org.assimbly.util.rest.ResponseUtil; @@ -38,6 +40,8 @@ public HealthResource(HealthService healthService) { @Autowired private IntegrationRuntime integrationRuntime; + @Autowired + private ManagedBrokerRuntime broker; private Integration integration; @@ -50,7 +54,7 @@ public HealthResource(HealthService healthService) { public ResponseEntity getJvmStats(@Parameter(hidden = true) @RequestHeader("Accept") String mediaType) throws Exception { plainResponse = true; - long integrationId = 1; + long connectorId = 1; try { final ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -73,10 +77,10 @@ public ResponseEntity getJvmStats(@Parameter(hidden = true) @RequestHead backendResponse.addJvm("maxFileDescriptors", healthService.invokeMethod("getMaxFileDescriptorCount")); mapper.writeValue(out, backendResponse); - return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(integrationId, mediaType, "/health/jvm", out.toString(StandardCharsets.UTF_8), plainResponse); + return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(connectorId, mediaType, "/health/jvm", out.toString(StandardCharsets.UTF_8), plainResponse); } catch (Exception e) { log.error("Get jvm failed",e); - return ResponseUtil.createFailureResponse(integrationId, mediaType,"/health/jvm",e.getMessage()); + return ResponseUtil.createFailureResponse(connectorId, mediaType,"/health/jvm",e.getMessage()); } } @@ -99,4 +103,29 @@ public ResponseEntity getFlowStats(@Parameter(hidden = true) @RequestHea return ResponseUtil.createFailureResponse(integrationId, mediaType,"/health/flow",e.getMessage()); } } + + + @GetMapping( + path = "/broker", + produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE, MediaType.TEXT_PLAIN_VALUE} + ) + public ResponseEntity getBrokerStats(@Parameter(hidden = true) @RequestHeader("Accept") String mediaType) throws Exception { + + plainResponse = true; + long integrationId = 1; + integration = integrationRuntime.getIntegration(); + + try { + final ByteArrayOutputStream out = new ByteArrayOutputStream(); + final ObjectMapper mapper = new ObjectMapper(); + final BrokerResponse brokerResponse = new BrokerResponse(); + + broker.getStatus(""); + + return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(integrationId, mediaType, "/health/jvm", out.toString(StandardCharsets.UTF_8), plainResponse); + } catch (Exception e) { + log.error("Get broker failed",e); + return ResponseUtil.createFailureResponse(integrationId, mediaType,"/health/broker",e.getMessage()); + } + } } From 9ceceffc82640997419ae0030a0ea6be98f6b499 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Mon, 10 Jul 2023 14:56:45 +0100 Subject: [PATCH 09/15] broker endpoint --- .../service/response/BrokerResponse.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 src/main/java/org/assimbly/gateway/service/response/BrokerResponse.java diff --git a/src/main/java/org/assimbly/gateway/service/response/BrokerResponse.java b/src/main/java/org/assimbly/gateway/service/response/BrokerResponse.java new file mode 100644 index 00000000..7586d6ed --- /dev/null +++ b/src/main/java/org/assimbly/gateway/service/response/BrokerResponse.java @@ -0,0 +1,80 @@ +package org.assimbly.gateway.service.response; + +public class BrokerResponse { + + private long averageMessageSize; + private int openConnections; + private int maxConnections; + private int tmpPercentUsage; + private int storePercentUsage; + private int memoryPercentUsage; + private int totalNumberOfQueues; + private int totalNumberOfTemporaryQueues; + + public BrokerResponse() { + } + + public long getAverageMessageSize() { + return averageMessageSize; + } + + public void setAverageMessageSize(long averageMessageSize) { + this.averageMessageSize = averageMessageSize; + } + + public int getOpenConnections() { + return openConnections; + } + + public void setOpenConnections(int openConnections) { + this.openConnections = openConnections; + } + + public int getMaxConnections() { + return maxConnections; + } + + public void setMaxConnections(int maxConnections) { + this.maxConnections = maxConnections; + } + + public int getTmpPercentUsage() { + return tmpPercentUsage; + } + + public void setTmpPercentUsage(int tmpPercentUsage) { + this.tmpPercentUsage = tmpPercentUsage; + } + + public int getStorePercentUsage() { + return storePercentUsage; + } + + public void setStorePercentUsage(int storePercentUsage) { + this.storePercentUsage = storePercentUsage; + } + + public int getMemoryPercentUsage() { + return memoryPercentUsage; + } + + public void setMemoryPercentUsage(int memoryPercentUsage) { + this.memoryPercentUsage = memoryPercentUsage; + } + + public int getTotalNumberOfQueues() { + return totalNumberOfQueues; + } + + public void setTotalNumberOfQueues(int totalNumberOfQueues) { + this.totalNumberOfQueues = totalNumberOfQueues; + } + + public int getTotalNumberOfTemporaryQueues() { + return totalNumberOfTemporaryQueues; + } + + public void setTotalNumberOfTemporaryQueues(int totalNumberOfTemporaryQueues) { + this.totalNumberOfTemporaryQueues = totalNumberOfTemporaryQueues; + } +} From 667c8a925712bc5a92b06873a1fadf35525dc2ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Mon, 10 Jul 2023 14:57:41 +0100 Subject: [PATCH 10/15] broker endpoint --- .../web/rest/gateway/HealthResource.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java index 968356b7..ea8c0e3d 100644 --- a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java +++ b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java @@ -22,6 +22,7 @@ import java.lang.management.MemoryUsage; import java.lang.management.ThreadMXBean; import java.nio.charset.StandardCharsets; +import java.util.Map; /** * REST controller for getting the {@link AuditEvent}s. @@ -91,16 +92,16 @@ public ResponseEntity getJvmStats(@Parameter(hidden = true) @RequestHead public ResponseEntity getFlowStats(@Parameter(hidden = true) @RequestHeader("Accept") String mediaType) throws Exception { plainResponse = true; - long integrationId = 1; + long connectorId = 1; integration = integrationRuntime.getIntegration(); try { String stats = integration.getStats(mediaType); if(stats.startsWith("Error")||stats.startsWith("Warning")) {plainResponse = false;} - return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(integrationId, mediaType, "/health/flow", stats, plainResponse); + return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(connectorId, mediaType, "/health/flow", stats, plainResponse); } catch (Exception e) { log.error("Get flow failed",e); - return ResponseUtil.createFailureResponse(integrationId, mediaType,"/health/flow",e.getMessage()); + return ResponseUtil.createFailureResponse(connectorId, mediaType,"/health/flow",e.getMessage()); } } @@ -112,7 +113,7 @@ public ResponseEntity getFlowStats(@Parameter(hidden = true) @RequestHea public ResponseEntity getBrokerStats(@Parameter(hidden = true) @RequestHeader("Accept") String mediaType) throws Exception { plainResponse = true; - long integrationId = 1; + long connectorId = 1; integration = integrationRuntime.getIntegration(); try { @@ -120,12 +121,14 @@ public ResponseEntity getBrokerStats(@Parameter(hidden = true) @RequestH final ObjectMapper mapper = new ObjectMapper(); final BrokerResponse brokerResponse = new BrokerResponse(); - broker.getStatus(""); + Map statsMap = broker.getStats("classic"); + + mapper.writeValue(out, statsMap); - return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(integrationId, mediaType, "/health/jvm", out.toString(StandardCharsets.UTF_8), plainResponse); + return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(connectorId, mediaType, "/health/broker", out.toString(StandardCharsets.UTF_8), plainResponse); } catch (Exception e) { log.error("Get broker failed",e); - return ResponseUtil.createFailureResponse(integrationId, mediaType,"/health/broker",e.getMessage()); + return ResponseUtil.createFailureResponse(connectorId, mediaType,"/health/broker",e.getMessage()); } } } From 294c7ab73dc42de7025fe87f9530c4512a69175f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Mon, 10 Jul 2023 14:59:51 +0100 Subject: [PATCH 11/15] deleted broker response object --- .../service/response/BrokerResponse.java | 80 ------------------- 1 file changed, 80 deletions(-) delete mode 100644 src/main/java/org/assimbly/gateway/service/response/BrokerResponse.java diff --git a/src/main/java/org/assimbly/gateway/service/response/BrokerResponse.java b/src/main/java/org/assimbly/gateway/service/response/BrokerResponse.java deleted file mode 100644 index 7586d6ed..00000000 --- a/src/main/java/org/assimbly/gateway/service/response/BrokerResponse.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.assimbly.gateway.service.response; - -public class BrokerResponse { - - private long averageMessageSize; - private int openConnections; - private int maxConnections; - private int tmpPercentUsage; - private int storePercentUsage; - private int memoryPercentUsage; - private int totalNumberOfQueues; - private int totalNumberOfTemporaryQueues; - - public BrokerResponse() { - } - - public long getAverageMessageSize() { - return averageMessageSize; - } - - public void setAverageMessageSize(long averageMessageSize) { - this.averageMessageSize = averageMessageSize; - } - - public int getOpenConnections() { - return openConnections; - } - - public void setOpenConnections(int openConnections) { - this.openConnections = openConnections; - } - - public int getMaxConnections() { - return maxConnections; - } - - public void setMaxConnections(int maxConnections) { - this.maxConnections = maxConnections; - } - - public int getTmpPercentUsage() { - return tmpPercentUsage; - } - - public void setTmpPercentUsage(int tmpPercentUsage) { - this.tmpPercentUsage = tmpPercentUsage; - } - - public int getStorePercentUsage() { - return storePercentUsage; - } - - public void setStorePercentUsage(int storePercentUsage) { - this.storePercentUsage = storePercentUsage; - } - - public int getMemoryPercentUsage() { - return memoryPercentUsage; - } - - public void setMemoryPercentUsage(int memoryPercentUsage) { - this.memoryPercentUsage = memoryPercentUsage; - } - - public int getTotalNumberOfQueues() { - return totalNumberOfQueues; - } - - public void setTotalNumberOfQueues(int totalNumberOfQueues) { - this.totalNumberOfQueues = totalNumberOfQueues; - } - - public int getTotalNumberOfTemporaryQueues() { - return totalNumberOfTemporaryQueues; - } - - public void setTotalNumberOfTemporaryQueues(int totalNumberOfTemporaryQueues) { - this.totalNumberOfTemporaryQueues = totalNumberOfTemporaryQueues; - } -} From 93d2f7269ba05ff455eb01606dedc80bbb095f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Mon, 10 Jul 2023 15:06:39 +0100 Subject: [PATCH 12/15] deleted unused import --- .../org/assimbly/gateway/web/rest/gateway/HealthResource.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java index ea8c0e3d..b1ccf0b4 100644 --- a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java +++ b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java @@ -5,7 +5,6 @@ import org.assimbly.brokerrest.ManagedBrokerRuntime; import org.assimbly.gateway.service.HealthService; import org.assimbly.gateway.service.response.BackendResponse; -import org.assimbly.gateway.service.response.BrokerResponse; import org.assimbly.integration.Integration; import org.assimbly.integrationrest.IntegrationRuntime; import org.assimbly.util.rest.ResponseUtil; @@ -119,7 +118,6 @@ public ResponseEntity getBrokerStats(@Parameter(hidden = true) @RequestH try { final ByteArrayOutputStream out = new ByteArrayOutputStream(); final ObjectMapper mapper = new ObjectMapper(); - final BrokerResponse brokerResponse = new BrokerResponse(); Map statsMap = broker.getStats("classic"); From 5895bd3408f8211474e079ffdd41c04c74c9ee4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Mon, 10 Jul 2023 17:09:50 +0100 Subject: [PATCH 13/15] change variable name broker to managedBroker --- .../assimbly/gateway/web/rest/gateway/HealthResource.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java index b1ccf0b4..f3efc2a2 100644 --- a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java +++ b/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java @@ -40,8 +40,9 @@ public HealthResource(HealthService healthService) { @Autowired private IntegrationRuntime integrationRuntime; + @Autowired - private ManagedBrokerRuntime broker; + private ManagedBrokerRuntime managedBroker; private Integration integration; @@ -113,13 +114,12 @@ public ResponseEntity getBrokerStats(@Parameter(hidden = true) @RequestH plainResponse = true; long connectorId = 1; - integration = integrationRuntime.getIntegration(); try { final ByteArrayOutputStream out = new ByteArrayOutputStream(); final ObjectMapper mapper = new ObjectMapper(); - Map statsMap = broker.getStats("classic"); + Map statsMap = managedBroker.getStats("classic"); mapper.writeValue(out, statsMap); From 9f08ca6b5a5c068212310559f3bbf50bd334b780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Mon, 10 Jul 2023 17:10:44 +0100 Subject: [PATCH 14/15] 4.0.3 version --- build.gradle | 2 +- package.json | 4 ++-- scripts/version/versioned_files.json | 6 +++--- src/main/resources/config/application.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 87f44ae0..63d18d9b 100644 --- a/build.gradle +++ b/build.gradle @@ -65,7 +65,7 @@ tasks.withType(JavaExec) { } group = "org.assimbly.gateway" -version = '4.0.2' +version = '4.0.3' description = "" diff --git a/package.json b/package.json index dc2ce232..e0f4f3b5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gateway", - "version": "4.0.2", + "version": "4.0.3", "private": true, "description": "A message gateway based on Apache camel", "license": "Apache License 2.0", @@ -132,7 +132,7 @@ "eslint": "8.9.0", "eslint-config-prettier": "8.4.0", "eslint-webpack-plugin": "3.1.1", - "folder-hash": "4.0.2", + "folder-hash": "4.0.3", "generator-jhipster": "7.7.0", "husky": "7.0.4", "jest": "27.5.1", diff --git a/scripts/version/versioned_files.json b/scripts/version/versioned_files.json index 3be29948..3cc0c8aa 100644 --- a/scripts/version/versioned_files.json +++ b/scripts/version/versioned_files.json @@ -1,7 +1,7 @@ { "applicationName": "gateway", - "oldVersion": "4.0.2", - "newVersion": "4.0.2", + "oldVersion": "4.0.3", + "newVersion": "4.0.3", "resources": [ { "path": "/package.json" @@ -13,4 +13,4 @@ "path": "/src/main/resources/config/application.yml" } ] -} \ No newline at end of file +} diff --git a/src/main/resources/config/application.yml b/src/main/resources/config/application.yml index 6b95204d..22c1628b 100644 --- a/src/main/resources/config/application.yml +++ b/src/main/resources/config/application.yml @@ -170,7 +170,7 @@ jhipster: application: info: - version: 4.0.2 + version: 4.0.3 documentation: url: https://github.com/assimbly/gateway/wiki camel-url: https://camel.apache.org/components/latest From 774c4d47cc522572ab0e6ae04a4a3795a7ced532 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Tue, 11 Jul 2023 15:23:19 +0100 Subject: [PATCH 15/15] separate Broker and Integration endpoints --- .../web/rest/broker/HealthBrokerResource.java | 62 +++++++++++++++++++ .../HealthIntegrationResource.java} | 36 +---------- 2 files changed, 65 insertions(+), 33 deletions(-) create mode 100644 src/main/java/org/assimbly/gateway/web/rest/broker/HealthBrokerResource.java rename src/main/java/org/assimbly/gateway/web/rest/{gateway/HealthResource.java => integration/HealthIntegrationResource.java} (77%) diff --git a/src/main/java/org/assimbly/gateway/web/rest/broker/HealthBrokerResource.java b/src/main/java/org/assimbly/gateway/web/rest/broker/HealthBrokerResource.java new file mode 100644 index 00000000..2cd65b7a --- /dev/null +++ b/src/main/java/org/assimbly/gateway/web/rest/broker/HealthBrokerResource.java @@ -0,0 +1,62 @@ +package org.assimbly.gateway.web.rest.broker; + +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Parameter; +import org.assimbly.brokerrest.ManagedBrokerRuntime; +import org.assimbly.gateway.service.HealthService; +import org.assimbly.util.rest.ResponseUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.actuate.audit.AuditEvent; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.io.ByteArrayOutputStream; +import java.nio.charset.StandardCharsets; +import java.util.Map; + +/** + * REST controller for getting the {@link AuditEvent}s. + */ +@RestController +@RequestMapping("/health") +public class HealthBrokerResource { + + protected Logger log = LoggerFactory.getLogger(getClass()); + + public HealthBrokerResource(HealthService healthService) { } + + @Autowired + private ManagedBrokerRuntime managedBroker; + + private boolean plainResponse; + + @GetMapping( + path = "/broker", + produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE, MediaType.TEXT_PLAIN_VALUE} + ) + public ResponseEntity getBrokerStats(@Parameter(hidden = true) @RequestHeader("Accept") String mediaType) throws Exception { + + plainResponse = true; + long connectorId = 1; + + try { + final ByteArrayOutputStream out = new ByteArrayOutputStream(); + final ObjectMapper mapper = new ObjectMapper(); + + Map statsMap = managedBroker.getStats("classic"); + + mapper.writeValue(out, statsMap); + + return ResponseUtil.createSuccessResponse(connectorId, mediaType, "/health/broker", out.toString(StandardCharsets.UTF_8), plainResponse); + } catch (Exception e) { + log.error("Get broker failed",e); + return ResponseUtil.createFailureResponse(connectorId, mediaType,"/health/broker",e.getMessage()); + } + } +} diff --git a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java b/src/main/java/org/assimbly/gateway/web/rest/integration/HealthIntegrationResource.java similarity index 77% rename from src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java rename to src/main/java/org/assimbly/gateway/web/rest/integration/HealthIntegrationResource.java index f3efc2a2..5578b2f4 100644 --- a/src/main/java/org/assimbly/gateway/web/rest/gateway/HealthResource.java +++ b/src/main/java/org/assimbly/gateway/web/rest/integration/HealthIntegrationResource.java @@ -1,8 +1,7 @@ -package org.assimbly.gateway.web.rest.gateway; +package org.assimbly.gateway.web.rest.integration; import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.v3.oas.annotations.Parameter; -import org.assimbly.brokerrest.ManagedBrokerRuntime; import org.assimbly.gateway.service.HealthService; import org.assimbly.gateway.service.response.BackendResponse; import org.assimbly.integration.Integration; @@ -21,29 +20,25 @@ import java.lang.management.MemoryUsage; import java.lang.management.ThreadMXBean; import java.nio.charset.StandardCharsets; -import java.util.Map; /** * REST controller for getting the {@link AuditEvent}s. */ @RestController @RequestMapping("/health") -public class HealthResource { +public class HealthIntegrationResource { protected Logger log = LoggerFactory.getLogger(getClass()); private final HealthService healthService; - public HealthResource(HealthService healthService) { + public HealthIntegrationResource(HealthService healthService) { this.healthService = healthService; } @Autowired private IntegrationRuntime integrationRuntime; - @Autowired - private ManagedBrokerRuntime managedBroker; - private Integration integration; private boolean plainResponse; @@ -104,29 +99,4 @@ public ResponseEntity getFlowStats(@Parameter(hidden = true) @RequestHea return ResponseUtil.createFailureResponse(connectorId, mediaType,"/health/flow",e.getMessage()); } } - - - @GetMapping( - path = "/broker", - produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE, MediaType.TEXT_PLAIN_VALUE} - ) - public ResponseEntity getBrokerStats(@Parameter(hidden = true) @RequestHeader("Accept") String mediaType) throws Exception { - - plainResponse = true; - long connectorId = 1; - - try { - final ByteArrayOutputStream out = new ByteArrayOutputStream(); - final ObjectMapper mapper = new ObjectMapper(); - - Map statsMap = managedBroker.getStats("classic"); - - mapper.writeValue(out, statsMap); - - return org.assimbly.util.rest.ResponseUtil.createSuccessResponse(connectorId, mediaType, "/health/broker", out.toString(StandardCharsets.UTF_8), plainResponse); - } catch (Exception e) { - log.error("Get broker failed",e); - return ResponseUtil.createFailureResponse(connectorId, mediaType,"/health/broker",e.getMessage()); - } - } }