update to current version
all initial features implemented tbd: etrack front
This commit is contained in:
13
.idea/libraries/Maven__com_cwbase_logback_redis_appender_1_1_6.xml
generated
Normal file
13
.idea/libraries/Maven__com_cwbase_logback_redis_appender_1_1_6.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: com.cwbase:logback-redis-appender:1.1.6">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/cwbase/logback-redis-appender/1.1.6/logback-redis-appender-1.1.6.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/cwbase/logback-redis-appender/1.1.6/logback-redis-appender-1.1.6-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/cwbase/logback-redis-appender/1.1.6/logback-redis-appender-1.1.6-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml
generated
Normal file
13
.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: com.fasterxml:classmate:1.5.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.5.1/classmate-1.5.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/classmate/1.5.1/classmate-1.5.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml
generated
Normal file
13
.idea/libraries/Maven__jakarta_persistence_jakarta_persistence_api_2_2_3.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: jakarta.persistence:jakarta.persistence-api:2.2.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/jakarta/persistence/jakarta.persistence-api/2.2.3/jakarta.persistence-api-2.2.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/jakarta/persistence/jakarta.persistence-api/2.2.3/jakarta.persistence-api-2.2.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/jakarta/persistence/jakarta.persistence-api/2.2.3/jakarta.persistence-api-2.2.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml
generated
Normal file
13
.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: jakarta.validation:jakarta.validation-api:2.0.2">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_5_Final.xml
generated
Normal file
13
.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_5_Final.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: org.hibernate.validator:hibernate-validator:6.1.5.Final">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/validator/hibernate-validator/6.1.5.Final/hibernate-validator-6.1.5.Final.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/validator/hibernate-validator/6.1.5.Final/hibernate-validator-6.1.5.Final-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/hibernate/validator/hibernate-validator/6.1.5.Final/hibernate-validator-6.1.5.Final-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml
generated
Normal file
13
.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_3_1_RELEASE.xml
generated
Normal file
13
.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_3_1_RELEASE.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: org.springframework.boot:spring-boot-starter-validation:2.3.1.RELEASE">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-validation/2.3.1.RELEASE/spring-boot-starter-validation-2.3.1.RELEASE.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-validation/2.3.1.RELEASE/spring-boot-starter-validation-2.3.1.RELEASE-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot-starter-validation/2.3.1.RELEASE/spring-boot-starter-validation-2.3.1.RELEASE-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_2_6_RELEASE.xml
generated
Normal file
13
.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_2_6_RELEASE.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: org.springframework.data:spring-data-redis:2.2.6.RELEASE">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-redis/2.2.6.RELEASE/spring-data-redis-2.2.6.RELEASE.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-redis/2.2.6.RELEASE/spring-data-redis-2.2.6.RELEASE-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-redis/2.2.6.RELEASE/spring-data-redis-2.2.6.RELEASE-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
@@ -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<? extends Payload>[] payload() default { };
|
||||||
|
}
|
||||||
@@ -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<HttpCode, Integer> {
|
||||||
|
private Set<Integer> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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<BusinessKey> businessKeys, ZonedDateTime zonedDateTime);
|
||||||
|
}
|
||||||
16
src/main/java/com/release11/klaus/utilis/BusinessKey.java
Normal file
16
src/main/java/com/release11/klaus/utilis/BusinessKey.java
Normal file
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
18
src/main/java/com/release11/klaus/utilis/TrackingClient.java
Normal file
18
src/main/java/com/release11/klaus/utilis/TrackingClient.java
Normal file
@@ -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<BusinessKey, String> businessKeysMap){
|
||||||
|
for (Map.Entry<BusinessKey, String> entry : businessKeysMap.entrySet()) {
|
||||||
|
MDC.put(entry.getKey().getReasonPhrase(), entry.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
26
src/main/resources/logback.xml
Normal file
26
src/main/resources/logback.xml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configuration>
|
||||||
|
<include resource="org/springframework/boot/logging/logback/base.xml"/>
|
||||||
|
<!--https://github.com/kmtong/logback-redis-appender-->
|
||||||
|
<appender name="LOGSTASH" class="com.cwbase.logback.RedisAppender">
|
||||||
|
<host>localhost</host>
|
||||||
|
<port>6379</port>
|
||||||
|
<key>logstash</key>
|
||||||
|
<layout class="ch.qos.logback.classic.PatternLayout">
|
||||||
|
<!--https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html-->
|
||||||
|
<Pattern>
|
||||||
|
{"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
|
||||||
|
</Pattern>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
|
||||||
|
<appender-ref ref="LOGSTASH" />
|
||||||
|
</appender>
|
||||||
|
<root level="DEBUG">
|
||||||
|
<appender-ref ref="ASYNC" />
|
||||||
|
<appender-ref ref="CONSOLE" />
|
||||||
|
<appender-ref ref="FILE" />
|
||||||
|
</root>
|
||||||
|
</configuration>
|
||||||
|
|
||||||
|
|
||||||
38
src/main/resources/static/js/main.js
Normal file
38
src/main/resources/static/js/main.js
Normal file
@@ -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);
|
||||||
|
}
|
||||||
BIN
target/classes/META-INF/Klaus.kotlin_module
Normal file
BIN
target/classes/META-INF/Klaus.kotlin_module
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
target/classes/com/release11/klaus/utilis/BusinessKey.class
Normal file
BIN
target/classes/com/release11/klaus/utilis/BusinessKey.class
Normal file
Binary file not shown.
BIN
target/classes/com/release11/klaus/utilis/TrackingClient.class
Normal file
BIN
target/classes/com/release11/klaus/utilis/TrackingClient.class
Normal file
Binary file not shown.
26
target/classes/logback.xml
Normal file
26
target/classes/logback.xml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configuration>
|
||||||
|
<include resource="org/springframework/boot/logging/logback/base.xml"/>
|
||||||
|
<!--https://github.com/kmtong/logback-redis-appender-->
|
||||||
|
<appender name="LOGSTASH" class="com.cwbase.logback.RedisAppender">
|
||||||
|
<host>localhost</host>
|
||||||
|
<port>6379</port>
|
||||||
|
<key>logstash</key>
|
||||||
|
<layout class="ch.qos.logback.classic.PatternLayout">
|
||||||
|
<!--https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html-->
|
||||||
|
<Pattern>
|
||||||
|
{"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
|
||||||
|
</Pattern>
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
|
||||||
|
<appender-ref ref="LOGSTASH" />
|
||||||
|
</appender>
|
||||||
|
<root level="DEBUG">
|
||||||
|
<appender-ref ref="ASYNC" />
|
||||||
|
<appender-ref ref="CONSOLE" />
|
||||||
|
<appender-ref ref="FILE" />
|
||||||
|
</root>
|
||||||
|
</configuration>
|
||||||
|
|
||||||
|
|
||||||
38
target/classes/static/js/main.js
Normal file
38
target/classes/static/js/main.js
Normal file
@@ -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);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user