From 0258442c39183fdd7e4812054d095cafdcab420d Mon Sep 17 00:00:00 2001 From: vempo Date: Wed, 25 Apr 2018 15:28:48 +0300 Subject: Expose tracing context via log context service Tracing context must be available to application code when the application makes outbound calls. Change-Id: Ica8e1f9d8e0bd6d37688a01a64c1fbedc126801c Issue-ID: SDC-1264 Signed-off-by: vempo --- .../org/openecomp/sdc/logging/api/ContextData.java | 25 +++++++++++++++++++++- .../openecomp/sdc/logging/api/LoggingContext.java | 14 ++++++++++-- .../sdc/logging/spi/LoggingContextService.java | 5 +++++ 3 files changed, 41 insertions(+), 3 deletions(-) (limited to 'openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api') diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/ContextData.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/ContextData.java index 43f0143774..6eb747f9d9 100644 --- a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/ContextData.java +++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/ContextData.java @@ -16,6 +16,8 @@ package org.openecomp.sdc.logging.api; +import java.util.Objects; + /** * Builder to populate logging context data, i.e. data that should be available to any log writing event * throughout an application. This includes only data known at some point to the application (e.g. at an API call), @@ -63,10 +65,31 @@ public class ContextData { return partnerName; } + @Override + public boolean equals(Object o) { + + if (this == o) { + return true; + } + + if (o == null || getClass() != o.getClass()) { + return false; + } + + ContextData that = (ContextData) o; + return Objects.equals(requestId, that.requestId) && Objects.equals(serviceName, that.serviceName) + && Objects.equals(partnerName, that.partnerName); + } + + @Override + public int hashCode() { + return Objects.hash(requestId, serviceName, partnerName); + } + @Override public String toString() { return "ContextData{responseCode=" + requestId + ", responseDescription=" + serviceName - + ", clientIpAddress=" + partnerName + '}'; + + ", clientIpAddress=" + partnerName + '}'; } public static ContextDataBuilder builder() { diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/LoggingContext.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/LoggingContext.java index 2dc4afdf58..c17149e98e 100644 --- a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/LoggingContext.java +++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/LoggingContext.java @@ -36,8 +36,7 @@ import org.openecomp.sdc.logging.spi.LoggingContextService; public class LoggingContext { private static final LoggingContextService SERVICE = - ServiceBinder.getContextServiceBinding().orElse( - new NoOpLoggingContextService()); + ServiceBinder.getContextServiceBinding().orElse(new NoOpLoggingContextService()); private LoggingContext() { // prevent instantiation @@ -47,6 +46,10 @@ public class LoggingContext { SERVICE.put(contextData); } + public static ContextData get() { + return SERVICE.get(); + } + public static void clear() { SERVICE.clear(); } @@ -61,11 +64,18 @@ public class LoggingContext { private static class NoOpLoggingContextService implements LoggingContextService { + private static final ContextData EMPTY_CONTEXT = ContextData.builder().build(); + @Override public void put(ContextData contextData) { Objects.requireNonNull(contextData, "Context data cannot be null"); } + @Override + public ContextData get() { + return EMPTY_CONTEXT; + } + @Override public void clear() { // no-op diff --git a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/spi/LoggingContextService.java b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/spi/LoggingContextService.java index b90ce63982..37e212ac54 100644 --- a/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/spi/LoggingContextService.java +++ b/openecomp-be/lib/openecomp-sdc-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/spi/LoggingContextService.java @@ -39,6 +39,11 @@ public interface LoggingContextService { */ void put(ContextData contextData); + /** + * Return logging context's data. + */ + ContextData get(); + /** * Clear logging thread context. */ -- cgit 1.2.3-korg