From 72533c1a0c1ee26ee0c532d69bfa24374c09035b Mon Sep 17 00:00:00 2001 From: Szakalakamaka Date: Tue, 1 Sep 2020 10:14:10 +0200 Subject: [PATCH] update to current version all initial features implemented tbd: etrack front --- ...om_cwbase_logback_redis_appender_1_1_6.xml | 13 ++++++ .../Maven__com_fasterxml_classmate_1_5_1.xml | 13 ++++++ ...sistence_jakarta_persistence_api_2_2_3.xml | 13 ++++++ ...alidation_jakarta_validation_api_2_0_2.xml | 13 ++++++ ...idator_hibernate_validator_6_1_5_Final.xml | 13 ++++++ ...boss_logging_jboss_logging_3_4_1_Final.xml | 13 ++++++ ..._boot_starter_validation_2_3_1_RELEASE.xml | 13 ++++++ ...k_data_spring_data_redis_2_2_6_RELEASE.xml | 13 ++++++ .../klaus/model/constraints/HttpCode.java | 19 +++++++++ .../model/constraints/HttpCodeValidation.java | 28 +++++++++++++ .../klaus/repository/LogsRepository.java | 12 ++++++ .../release11/klaus/utilis/BusinessKey.java | 16 ++++++++ .../klaus/utilis/TrackingClient.java | 18 +++++++++ src/main/resources/logback.xml | 26 ++++++++++++ src/main/resources/static/js/main.js | 38 ++++++++++++++++++ target/classes/META-INF/Klaus.kotlin_module | Bin 0 -> 16 bytes .../klaus/model/constraints/HttpCode.class | Bin 0 -> 805 bytes .../constraints/HttpCodeValidation.class | Bin 0 -> 2658 bytes .../klaus/repository/LogsRepository.class | Bin 0 -> 513 bytes .../release11/klaus/utilis/BusinessKey.class | Bin 0 -> 1466 bytes .../klaus/utilis/TrackingClient.class | Bin 0 -> 1457 bytes target/classes/logback.xml | 26 ++++++++++++ target/classes/static/js/main.js | 38 ++++++++++++++++++ 23 files changed, 325 insertions(+) create mode 100644 .idea/libraries/Maven__com_cwbase_logback_redis_appender_1_1_6.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml create mode 100644 .idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml create mode 100644 .idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml create mode 100644 .idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_5_Final.xml create mode 100644 .idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml create mode 100644 .idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_3_1_RELEASE.xml create mode 100644 .idea/libraries/Maven__org_springframework_data_spring_data_redis_2_2_6_RELEASE.xml create mode 100644 src/main/java/com/release11/klaus/model/constraints/HttpCode.java create mode 100644 src/main/java/com/release11/klaus/model/constraints/HttpCodeValidation.java create mode 100644 src/main/java/com/release11/klaus/repository/LogsRepository.java create mode 100644 src/main/java/com/release11/klaus/utilis/BusinessKey.java create mode 100644 src/main/java/com/release11/klaus/utilis/TrackingClient.java create mode 100644 src/main/resources/logback.xml create mode 100644 src/main/resources/static/js/main.js create mode 100644 target/classes/META-INF/Klaus.kotlin_module create mode 100644 target/classes/com/release11/klaus/model/constraints/HttpCode.class create mode 100644 target/classes/com/release11/klaus/model/constraints/HttpCodeValidation.class create mode 100644 target/classes/com/release11/klaus/repository/LogsRepository.class create mode 100644 target/classes/com/release11/klaus/utilis/BusinessKey.class create mode 100644 target/classes/com/release11/klaus/utilis/TrackingClient.class create mode 100644 target/classes/logback.xml create mode 100644 target/classes/static/js/main.js diff --git a/.idea/libraries/Maven__com_cwbase_logback_redis_appender_1_1_6.xml b/.idea/libraries/Maven__com_cwbase_logback_redis_appender_1_1_6.xml new file mode 100644 index 0000000..53d5a43 --- /dev/null +++ b/.idea/libraries/Maven__com_cwbase_logback_redis_appender_1_1_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml b/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml new file mode 100644 index 0000000..bc7d7fd --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml b/.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml new file mode 100644 index 0000000..c11957d --- /dev/null +++ b/.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml b/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml new file mode 100644 index 0000000..e66afb9 --- /dev/null +++ b/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_5_Final.xml b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_5_Final.xml new file mode 100644 index 0000000..6d045ad --- /dev/null +++ b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_5_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml new file mode 100644 index 0000000..0b76247 --- /dev/null +++ b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_3_1_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_3_1_RELEASE.xml new file mode 100644 index 0000000..559d806 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_3_1_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_2_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_2_6_RELEASE.xml new file mode 100644 index 0000000..86ebc51 --- /dev/null +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_2_6_RELEASE.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/release11/klaus/model/constraints/HttpCode.java b/src/main/java/com/release11/klaus/model/constraints/HttpCode.java new file mode 100644 index 0000000..05c6a20 --- /dev/null +++ b/src/main/java/com/release11/klaus/model/constraints/HttpCode.java @@ -0,0 +1,19 @@ +package com.release11.klaus.model.constraints; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + + +@Target({ ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Constraint(validatedBy = HttpCodeValidation.class ) +public @interface HttpCode { + String message() default "must be a valid http code"; + + Class[] groups() default { }; + Class[] payload() default { }; +} diff --git a/src/main/java/com/release11/klaus/model/constraints/HttpCodeValidation.java b/src/main/java/com/release11/klaus/model/constraints/HttpCodeValidation.java new file mode 100644 index 0000000..57bbd62 --- /dev/null +++ b/src/main/java/com/release11/klaus/model/constraints/HttpCodeValidation.java @@ -0,0 +1,28 @@ +package com.release11.klaus.model.constraints; + +import com.release11.klaus.repository.MockedResponseRepository; +import org.springframework.http.HttpStatus; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.util.EnumSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class HttpCodeValidation implements ConstraintValidator { + private Set allowedValues; + + @Override + public void initialize(HttpCode targetEnum) { + allowedValues = Stream.of(HttpStatus.values()) + .map(HttpStatus::value) + .collect(Collectors.toSet()); + } + + @Override + public boolean isValid(Integer integer, ConstraintValidatorContext context) { + return allowedValues.contains(integer); + } +} diff --git a/src/main/java/com/release11/klaus/repository/LogsRepository.java b/src/main/java/com/release11/klaus/repository/LogsRepository.java new file mode 100644 index 0000000..bf803bc --- /dev/null +++ b/src/main/java/com/release11/klaus/repository/LogsRepository.java @@ -0,0 +1,12 @@ +package com.release11.klaus.repository; + +import com.release11.klaus.utilis.BusinessKey; +import org.springframework.stereotype.Repository; + +import java.time.ZonedDateTime; +import java.util.List; + +@Repository +public interface LogsRepository { + String getLogsByBusinessKeys(List businessKeys, ZonedDateTime zonedDateTime); +} diff --git a/src/main/java/com/release11/klaus/utilis/BusinessKey.java b/src/main/java/com/release11/klaus/utilis/BusinessKey.java new file mode 100644 index 0000000..d647c75 --- /dev/null +++ b/src/main/java/com/release11/klaus/utilis/BusinessKey.java @@ -0,0 +1,16 @@ +package com.release11.klaus.utilis; + +import lombok.AllArgsConstructor; + +@AllArgsConstructor +public enum BusinessKey { + INTERFACE_NAME("interfaceName"), + CLIENT_UUID("clientUUID"), + MESSAGE_ID("messageId"); + + private final String phrase; + + public String getReasonPhrase() { + return this.phrase; + } +} diff --git a/src/main/java/com/release11/klaus/utilis/TrackingClient.java b/src/main/java/com/release11/klaus/utilis/TrackingClient.java new file mode 100644 index 0000000..fecacef --- /dev/null +++ b/src/main/java/com/release11/klaus/utilis/TrackingClient.java @@ -0,0 +1,18 @@ +package com.release11.klaus.utilis; + +import org.slf4j.MDC; + +import java.util.Map; + +public final class TrackingClient { + + private TrackingClient(){}; + + public static void setBusinessKeys(Map businessKeysMap){ + for (Map.Entry entry : businessKeysMap.entrySet()) { + MDC.put(entry.getKey().getReasonPhrase(), entry.getValue()); + } + } + + +} diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml new file mode 100644 index 0000000..476fda0 --- /dev/null +++ b/src/main/resources/logback.xml @@ -0,0 +1,26 @@ + + + + + + localhost + 6379 + logstash + + + + {"date" : "%d{yyyy-MM-dd}", "timestamp":"%d{HH:mm:ss}", "businessKeys": ["interfaceName": "%X{interfaceName}", "clientUUID": "%X{clientUUID}", "messageId": "%X{messageId}"],"thread":"%t","level":"%-5level", "message":"%msg"}%n + + + + + + + + + + + + + + diff --git a/src/main/resources/static/js/main.js b/src/main/resources/static/js/main.js new file mode 100644 index 0000000..3e322d2 --- /dev/null +++ b/src/main/resources/static/js/main.js @@ -0,0 +1,38 @@ + +function httpGet() +{ + var clientUUID = document.getElementById("getClientUUID").value; + var mockedResponseId = document.getElementById("getMockedResponseId").value; + var url = "http://localhost:8097/klaus/v1/get/" + clientUUID + "/" + mockedResponseId; + var xmlHttp = new XMLHttpRequest(); + xmlHttp.open( "GET", url, false ); // false for synchronous request + xmlHttp.send( null ); + + var container = document.getElementById("getMockedResponse"); + var headers = xmlHttp.getAllResponseHeaders(); + container.appendChild(document.createTextNode(headers)); + container.appendChild(document.createTextNode("Your message: ")); + container.appendChild(document.createElement("br")); + container.appendChild(document.createTextNode((xmlHttp.responseText))); + return xmlHttp.responseText; + +} + + var numberOfHeaders = 0; + function addFields(){ + var container = document.getElementById("headers"); + + numberOfHeaders++; + container.appendChild(document.createElement("br")); + container.appendChild(document.createTextNode("Header " + (numberOfHeaders))); + var headerInput = document.createElement("input"); + headerInput.type = "text"; + headerInput.name = "header"; + container.appendChild(headerInput); + + container.appendChild(document.createTextNode("Value " + (numberOfHeaders))); + var valueInput = document.createElement("input"); + valueInput.type = "text"; + valueInput.name = "value"; + container.appendChild(valueInput); + } \ No newline at end of file diff --git a/target/classes/META-INF/Klaus.kotlin_module b/target/classes/META-INF/Klaus.kotlin_module new file mode 100644 index 0000000000000000000000000000000000000000..a49347afef10a9b5f95305e1058ba36adec7d6dd GIT binary patch literal 16 RcmZQzU|?ooU|@t|0RRA102TlM literal 0 HcmV?d00001 diff --git a/target/classes/com/release11/klaus/model/constraints/HttpCode.class b/target/classes/com/release11/klaus/model/constraints/HttpCode.class new file mode 100644 index 0000000000000000000000000000000000000000..c2cbb82ef9e725df7f9dd6881e461813cd04efdb GIT binary patch literal 805 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 + + + + + localhost + 6379 + logstash + + + + {"date" : "%d{yyyy-MM-dd}", "timestamp":"%d{HH:mm:ss}", "businessKeys": ["interfaceName": "%X{interfaceName}", "clientUUID": "%X{clientUUID}", "messageId": "%X{messageId}"],"thread":"%t","level":"%-5level", "message":"%msg"}%n + + + + + + + + + + + + + + diff --git a/target/classes/static/js/main.js b/target/classes/static/js/main.js new file mode 100644 index 0000000..3e322d2 --- /dev/null +++ b/target/classes/static/js/main.js @@ -0,0 +1,38 @@ + +function httpGet() +{ + var clientUUID = document.getElementById("getClientUUID").value; + var mockedResponseId = document.getElementById("getMockedResponseId").value; + var url = "http://localhost:8097/klaus/v1/get/" + clientUUID + "/" + mockedResponseId; + var xmlHttp = new XMLHttpRequest(); + xmlHttp.open( "GET", url, false ); // false for synchronous request + xmlHttp.send( null ); + + var container = document.getElementById("getMockedResponse"); + var headers = xmlHttp.getAllResponseHeaders(); + container.appendChild(document.createTextNode(headers)); + container.appendChild(document.createTextNode("Your message: ")); + container.appendChild(document.createElement("br")); + container.appendChild(document.createTextNode((xmlHttp.responseText))); + return xmlHttp.responseText; + +} + + var numberOfHeaders = 0; + function addFields(){ + var container = document.getElementById("headers"); + + numberOfHeaders++; + container.appendChild(document.createElement("br")); + container.appendChild(document.createTextNode("Header " + (numberOfHeaders))); + var headerInput = document.createElement("input"); + headerInput.type = "text"; + headerInput.name = "header"; + container.appendChild(headerInput); + + container.appendChild(document.createTextNode("Value " + (numberOfHeaders))); + var valueInput = document.createElement("input"); + valueInput.type = "text"; + valueInput.name = "value"; + container.appendChild(valueInput); + } \ No newline at end of file