From 0223adb1cf090142f43a54ec7716897ec2b3e74a Mon Sep 17 00:00:00 2001 From: Szakalakamaka Date: Tue, 1 Sep 2020 09:50:30 +0200 Subject: [PATCH] update to current version all initial features implemented tbd: etrack front --- Jenkinsfile | 4 +- Klaus.iml | 49 ++++--- README.md | 2 +- pom.xml | 56 ++++++-- .../com/release11/klaus/KlausApplication.java | 5 +- .../release11/klaus/config/RedisConfig.java | 28 +++- .../klaus/controller/KlausController.java | 28 +++- .../klaus/controller/KlausMvcController.java | 58 +++++---- .../klaus/model/MockedResponseDto.java | 42 ++++-- .../MockedResponseRedisRepository.java | 66 ---------- .../repository/MockedResponseRepository.java | 6 +- .../release11/klaus/service/KlausService.java | 4 +- .../klaus/service/KlausServiceImpl.java | 29 +++-- src/main/resources/application.properties | 10 +- src/main/resources/data-access.properties | 1 - src/main/resources/templates/index.html | 123 +++++++----------- src/main/resources/templates/login.html | 2 + .../klaus/config/RedisConfigTest.java | 4 - .../klaus/controller/KlausControllerTest.java | 2 - .../controller/KlausMvcControllerTest.java | 9 +- .../MockedResponseRedisRepositoryTest.java | 6 + .../klaus/service/KlausServiceImplTest.java | 80 ++++++------ target/classes/application.properties | 10 +- .../release11/klaus/KlausApplication.class | Bin 742 -> 742 bytes .../release11/klaus/config/RedisConfig.class | Bin 1209 -> 2659 bytes .../klaus/controller/KlausController.class | Bin 2421 -> 3624 bytes .../klaus/controller/KlausMvcController.class | Bin 5377 -> 5272 bytes ...ResponseDto$MockedResponseDtoBuilder.class | Bin 2543 -> 0 bytes .../klaus/model/MockedResponseDto.class | Bin 4238 -> 6328 bytes .../MockedResponseRedisRepository.class | Bin 6681 -> 0 bytes .../repository/MockedResponseRepository.class | Bin 246 -> 462 bytes .../klaus/service/KlausService.class | Bin 801 -> 662 bytes .../klaus/service/KlausServiceImpl.class | Bin 2564 -> 4424 bytes target/classes/data-access.properties | 1 - target/classes/templates/index.html | 123 +++++++----------- target/classes/templates/login.html | 2 + .../klaus/config/RedisConfigTest.class | Bin 533 -> 533 bytes .../controller/KlausControllerTest.class | Bin 581 -> 581 bytes .../controller/KlausMvcControllerTest.class | Bin 492 -> 492 bytes .../MockedResponseRedisRepositoryTest.class | Bin 692 -> 692 bytes .../klaus/service/KlausServiceImplTest.class | Bin 3591 -> 438 bytes 41 files changed, 373 insertions(+), 377 deletions(-) delete mode 100644 src/main/java/com/release11/klaus/repository/MockedResponseRedisRepository.java delete mode 100644 target/classes/com/release11/klaus/model/MockedResponseDto$MockedResponseDtoBuilder.class delete mode 100644 target/classes/com/release11/klaus/repository/MockedResponseRedisRepository.class diff --git a/Jenkinsfile b/Jenkinsfile index 433ff2c..9734c4f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -4,12 +4,12 @@ pipeline { stages { stage('Build') { steps { - sh "sudo docker-compose build" + sh "docker-compose build" } } stage('Deploy') { steps { - sh "sudo docker-compose up -d" + sh "docker-compose up -d" } } } diff --git a/Klaus.iml b/Klaus.iml index 2899a10..97a007e 100644 --- a/Klaus.iml +++ b/Klaus.iml @@ -11,7 +11,7 @@ - + @@ -21,22 +21,6 @@ - - - - - - - - - - - - - - - - @@ -52,7 +36,6 @@ - @@ -96,9 +79,33 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 5e9e8e9..700220d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # R11-Klaus Mockup service for middleware testing -[![Build Status](https://travis-ci.com/Szakalakamaka/R11-Klaus.svg?token=Tt3QbF7q4wiFNnCGkuew&branch=master)](https://travis-ci.com/Szakalakamaka/R11-Klaus) +[![Build Status](https://travis-ci.com/Szakalakamaka/Klaus.svg?token=Tt3QbF7q4wiFNnCGkuew&branch=master)](https://travis-ci.com/Szakalakamaka/Klaus) Available scripts: diff --git a/pom.xml b/pom.xml index 9140241..7752840 100644 --- a/pom.xml +++ b/pom.xml @@ -19,14 +19,6 @@ - - org.springframework.boot - spring-boot-starter-data-redis - - - org.springframework.boot - spring-boot-starter-data-redis-reactive - org.springframework.boot spring-boot-starter-thymeleaf @@ -60,6 +52,10 @@ org.junit.vintage junit-vintage-engine + + logback-classic + ch.qos.logback + @@ -67,18 +63,50 @@ reactor-test test - - redis.clients - jedis - 3.3.0 - org.assertj assertj-core 3.16.1 test - + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.springframework.boot + spring-boot-starter-data-redis-reactive + + + com.cwbase + logback-redis-appender + 1.1.6 + + + org.apache.commons + commons-pool2 + 2.8.0 + + + org.springframework.data + spring-data-redis + 2.2.6.RELEASE + + + redis.clients + jedis + 3.3.0 + + + jakarta.persistence + jakarta.persistence-api + 2.2.3 + + diff --git a/src/main/java/com/release11/klaus/KlausApplication.java b/src/main/java/com/release11/klaus/KlausApplication.java index fabdac6..d4bb6d2 100644 --- a/src/main/java/com/release11/klaus/KlausApplication.java +++ b/src/main/java/com/release11/klaus/KlausApplication.java @@ -3,6 +3,7 @@ package com.release11.klaus; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; + @SpringBootApplication public class KlausApplication { @@ -14,6 +15,8 @@ public class KlausApplication { //TODO Jenkins //TODO history logs -//TODO form validation //TODO JedisPool jedisPool = new JedisPool(jedisPoolConfig, redisHost, redisPort, timeout, redisPassword) //TODO JedisPool optimalization https://partners-intl.aliyun.com/help/doc-detail/98726.htm +// loging and security +// tracking clients activity +// use a centralized logging collection tool like logstash \ No newline at end of file diff --git a/src/main/java/com/release11/klaus/config/RedisConfig.java b/src/main/java/com/release11/klaus/config/RedisConfig.java index 1c7b8c7..c827da8 100644 --- a/src/main/java/com/release11/klaus/config/RedisConfig.java +++ b/src/main/java/com/release11/klaus/config/RedisConfig.java @@ -5,9 +5,16 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; -import redis.clients.jedis.JedisPool; +import org.springframework.data.redis.connection.RedisStandaloneConfiguration; +import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.repository.configuration.EnableRedisRepositories; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; + +import java.util.Objects; @Configuration +@EnableRedisRepositories @PropertySource("classpath:data-access.properties") public class RedisConfig { @@ -15,11 +22,20 @@ public class RedisConfig { private Environment environment; @Bean - JedisPool jedisPool(){ - final JedisPool pool = new JedisPool(environment.getProperty("redis.host"), - Integer.parseInt(environment.getProperty("redis.port"))); - return pool; + JedisConnectionFactory jedisConnectionFactory() { + RedisStandaloneConfiguration redisStandaloneConfiguration = + new RedisStandaloneConfiguration(Objects.requireNonNull(environment.getProperty("redis.host")), + Integer.parseInt(Objects.requireNonNull(environment.getProperty("redis.port")))); + return new JedisConnectionFactory(redisStandaloneConfiguration); + } + + @Bean + public RedisTemplate redisTemplate() { + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setConnectionFactory(jedisConnectionFactory()); + redisTemplate.setExposeConnection(true); + redisTemplate.setDefaultSerializer(new GenericJackson2JsonRedisSerializer()); + return redisTemplate; } } - diff --git a/src/main/java/com/release11/klaus/controller/KlausController.java b/src/main/java/com/release11/klaus/controller/KlausController.java index e08dc0b..02f0855 100644 --- a/src/main/java/com/release11/klaus/controller/KlausController.java +++ b/src/main/java/com/release11/klaus/controller/KlausController.java @@ -1,10 +1,12 @@ package com.release11.klaus.controller; +import com.release11.klaus.utilis.BusinessKey; +import com.release11.klaus.utilis.TrackingClient; +import com.release11.klaus.model.MockedResponseDto; import com.release11.klaus.service.KlausService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.http.HttpStatus; import org.springframework.http.RequestEntity; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; @@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import java.util.Map; import java.util.UUID; @Controller("/") @@ -22,18 +25,29 @@ public class KlausController { private final KlausService klausService; + @RequestMapping(value = "klaus/v1/get/{clientUUID}/{mockedResponseId}") + public ResponseEntity getMockedResponse(@PathVariable UUID clientUUID, + @PathVariable int mockedResponseId){ + TrackingClient.setBusinessKeys(Map.of(BusinessKey.INTERFACE_NAME, "getMockedResponse", + BusinessKey.CLIENT_UUID, String.valueOf(clientUUID), + BusinessKey.MESSAGE_ID, String.valueOf(mockedResponseId))); + + return klausService.getMockedResponse(clientUUID, mockedResponseId); + } + @PostMapping(value = "klaus/v1/set/{clientUUID}/{mockedResponseId}") public ResponseEntity setMockedResponse(@PathVariable UUID clientUUID, @PathVariable int mockedResponseId, @RequestParam(required = false) int httpStatus, RequestEntity requestEntity){ - return klausService.setMockedResponse(clientUUID, mockedResponseId, HttpStatus.valueOf(httpStatus), requestEntity); - } + TrackingClient.setBusinessKeys(Map.of(BusinessKey.INTERFACE_NAME, "setMockedResponse", + BusinessKey.CLIENT_UUID, String.valueOf(clientUUID), + BusinessKey.MESSAGE_ID, String.valueOf(mockedResponseId))); - @RequestMapping(value = "klaus/v1/get/{clientUUID}/{mockedResponseId}") - public ResponseEntity getMockedResponse(@PathVariable UUID clientUUID, - @PathVariable int mockedResponseId){ - return klausService.getMockedResponse(clientUUID, mockedResponseId); + MockedResponseDto mockedResponseDto = new MockedResponseDto(clientUUID, mockedResponseId, + requestEntity.getHeaders().getContentType().toString(), requestEntity.getBody(), + requestEntity.getHeaders().toSingleValueMap(), httpStatus); + return klausService.setMockedResponse(mockedResponseDto); } } diff --git a/src/main/java/com/release11/klaus/controller/KlausMvcController.java b/src/main/java/com/release11/klaus/controller/KlausMvcController.java index 9bae811..1efa37a 100644 --- a/src/main/java/com/release11/klaus/controller/KlausMvcController.java +++ b/src/main/java/com/release11/klaus/controller/KlausMvcController.java @@ -1,20 +1,20 @@ package com.release11.klaus.controller; +import com.release11.klaus.utilis.BusinessKey; +import com.release11.klaus.utilis.TrackingClient; import com.release11.klaus.model.MockedResponseDto; import com.release11.klaus.service.KlausService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.*; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.MultiValueMap; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; -import org.springframework.web.client.RestTemplate; -import java.net.URI; -import java.util.Arrays; +import javax.validation.Valid; +import java.util.HashMap; +import java.util.Map; import java.util.UUID; @Slf4j @@ -22,47 +22,44 @@ import java.util.UUID; @RequestMapping @AllArgsConstructor public class KlausMvcController { - private final String SET_MOCKED_RESPONSE_PATH_V1 = "/klaus/v1/set/"; - private final String apiHost = "http://localhost:8097"; private final KlausService klausService; @GetMapping("/login") public String login(Model model) { - UUID uuid = UUID.randomUUID(); - model.addAttribute("clientUUID", uuid); + model.addAttribute("clientUUID", UUID.randomUUID()); return "login"; } @GetMapping("/home") public String showHome(Model model, @RequestParam UUID clientUUID) { model.addAttribute("mockedResponseDto", new MockedResponseDto(clientUUID, 1, - "body", new HttpHeaders(), "application/xml")); + "application/xml", "body", new HashMap<>(), 200)); return "index"; } //TODO refactor - //TODO form validation and proper error messages @PostMapping("/home") - public String showHomePost(Model model, MockedResponseDto mockedResponseDto, + public String showHomePost(@Valid MockedResponseDto mockRsp, BindingResult bindingResult, Model model, @RequestParam(required = false) String[] header, - @RequestParam(required = false) String[] value, - @RequestParam(required = false) int httpStatus) { - log.info(mockedResponseDto.toString()); - URI uri = URI.create(apiHost + SET_MOCKED_RESPONSE_PATH_V1 + mockedResponseDto.getClientUUID() + "/" - + mockedResponseDto.getMockedResponseId()); + @RequestParam(required = false) String[] value) throws Exception { + if (bindingResult.hasErrors()) { + return "index"; + } + TrackingClient.setBusinessKeys(Map.of(BusinessKey.INTERFACE_NAME, "setMockedResponse", + BusinessKey.CLIENT_UUID, String.valueOf(mockRsp.getClientUUID()), + BusinessKey.MESSAGE_ID, String.valueOf(mockRsp.getMockedResponseId()))); + log.info(mockRsp.toString()); + HttpHeaders httpHeaders = new HttpHeaders(); - httpHeaders.setContentType(MediaType.valueOf(mockedResponseDto.getMediaType())); + httpHeaders.setContentType(MediaType.valueOf(mockRsp.getMediaType())); if (header!=null){ for (int i = 0; i < header.length; i++) { httpHeaders.set(header[i], value[i]); }} - RequestEntity requestEntity = new RequestEntity(mockedResponseDto.getMessageBody(), - httpHeaders, HttpMethod.POST, uri); - klausService.setMockedResponse(mockedResponseDto.getClientUUID(), mockedResponseDto.getMockedResponseId(), - HttpStatus.valueOf(httpStatus), requestEntity); + MockedResponseDto mockedResponseDto = new MockedResponseDto(mockRsp.getClientUUID(), mockRsp.getMockedResponseId(), + mockRsp.getMediaType(), mockRsp.getMessageBody(), httpHeaders.toSingleValueMap(), mockRsp.getHttpStatus()); - model.addAttribute("mockedResponseDto", new MockedResponseDto(mockedResponseDto.getClientUUID(), 1, - "body", new HttpHeaders(), "application/xml")); + klausService.setMockedResponse(mockedResponseDto); model.addAttribute("mockSaved", "true"); return "index"; } @@ -70,7 +67,16 @@ public class KlausMvcController { @GetMapping("/home/getMockedResponse") @ResponseBody public String showGetMockedResponse(MockedResponseDto mockedResponseDto) { - return klausService.getMockedResponse(mockedResponseDto.getClientUUID(), + TrackingClient.setBusinessKeys(Map.of(BusinessKey.INTERFACE_NAME, "getMockedResponse", + BusinessKey.CLIENT_UUID, String.valueOf(mockedResponseDto.getClientUUID()), + BusinessKey.MESSAGE_ID, String.valueOf(mockedResponseDto.getMockedResponseId()))); + return klausService.getMockedResponse(mockedResponseDto.getClientUUID(), mockedResponseDto.getMockedResponseId()).toString(); } + + private void setHeaders(MockedResponseDto mockedResponseDto, String[] header, String[] value){ + + } + + } \ No newline at end of file diff --git a/src/main/java/com/release11/klaus/model/MockedResponseDto.java b/src/main/java/com/release11/klaus/model/MockedResponseDto.java index 979f31f..0edac69 100644 --- a/src/main/java/com/release11/klaus/model/MockedResponseDto.java +++ b/src/main/java/com/release11/klaus/model/MockedResponseDto.java @@ -1,22 +1,44 @@ package com.release11.klaus.model; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.springframework.http.HttpHeaders; -import org.springframework.http.RequestEntity; +import com.release11.klaus.model.constraints.HttpCode; +import lombok.*; +import org.springframework.data.annotation.Id; +import org.springframework.data.redis.core.RedisHash; +import org.springframework.data.redis.core.index.Indexed; +import javax.validation.constraints.Positive; +import java.io.Serializable; +import java.util.Map; import java.util.UUID; @Data +@ToString +@RedisHash("MockedResponseDto") @NoArgsConstructor @AllArgsConstructor -@Builder -public class MockedResponseDto { +public final class MockedResponseDto implements Serializable { + @Id + private String compositePrimaryKey; + @Indexed private UUID clientUUID; + @Positive private int mockedResponseId; - private String messageBody; - private HttpHeaders httpHeaders; private String mediaType; + private String messageBody; + private Map httpHeaders; + @HttpCode + private Integer httpStatus; + + public MockedResponseDto(UUID clientUUID, int mockedResponseId, String mediaType, + String messageBody, Map httpHeaders, Integer httpStatus) { + this.compositePrimaryKey = clientUUID.toString() + "_" + mockedResponseId; + this.clientUUID = clientUUID; + this.mockedResponseId = mockedResponseId; + this.mediaType = mediaType; + this.messageBody = messageBody; + this.httpHeaders = httpHeaders; + this.httpStatus = httpStatus; + } } + + diff --git a/src/main/java/com/release11/klaus/repository/MockedResponseRedisRepository.java b/src/main/java/com/release11/klaus/repository/MockedResponseRedisRepository.java deleted file mode 100644 index 036cb3a..0000000 --- a/src/main/java/com/release11/klaus/repository/MockedResponseRedisRepository.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.release11.klaus.repository; - -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.RequestEntity; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; -import redis.clients.jedis.Jedis; -import redis.clients.jedis.JedisPool; - -import java.util.Map; -import java.util.Objects; -import java.util.UUID; - -@Slf4j -@Repository -@Transactional -@AllArgsConstructor -public class MockedResponseRedisRepository implements MockedResponseRepository { - - private final JedisPool jedisPool; - - //TODO redis persistence - public ResponseEntity getMockedResponse(UUID clientUUID, int mockedResponseId){ - String body, httpCodeStatus; - String key = String.format("%s_%s", clientUUID.toString(), mockedResponseId); - HttpHeaders responseHeaders = new HttpHeaders(); - try(Jedis jedis = jedisPool.getResource()){ - body = jedis.get(key + "_body"); - Map headerMap = jedis.hgetAll(key + "_headers"); - headerMap.forEach(responseHeaders::set); - httpCodeStatus = jedis.get(key + "_httpCodeStatus"); - } - return new ResponseEntity(body, responseHeaders, - Objects.requireNonNull(HttpStatus.valueOf(Integer.parseInt(httpCodeStatus)))); - } - - public ResponseEntity setMockedResponse(UUID clientUUID, int mockedResponseId, HttpStatus httpStatus, - RequestEntity requestEntity){ - log.info("mockedResponseRepository, setMockedResponse, clientUUID {}, mockedResponseId {}, httpStatus{} requestEntity{} ", - clientUUID, mockedResponseId, httpStatus, requestEntity); - if (httpStatus == null){httpStatus = HttpStatus.OK;} - - String key = String.format("%s_%s", clientUUID.toString(), mockedResponseId); - setMockedResponseBody(key + "_body", requestEntity.getBody()); - setMockedResponseHeader(key + "_headers", requestEntity.getHeaders().toSingleValueMap()); - setMockedResponseBody(key + "_httpCodeStatus", String.valueOf(httpStatus.value())); - return new ResponseEntity("MockedResponse has been setup successfully! :D", new HttpHeaders(), HttpStatus.ACCEPTED); - } - private synchronized void setMockedResponseBody(String key, String body){ - try(Jedis jedis = jedisPool.getResource()){ - jedis.set(key, body); - } - } - - private synchronized void setMockedResponseHeader(String key, Map headers){ - try(Jedis jedis = jedisPool.getResource()){ - jedis.del(key); - headers.forEach((field, value)->jedis.hset(key, field, value)); - } - } - -} diff --git a/src/main/java/com/release11/klaus/repository/MockedResponseRepository.java b/src/main/java/com/release11/klaus/repository/MockedResponseRepository.java index 087baef..47fa8a9 100644 --- a/src/main/java/com/release11/klaus/repository/MockedResponseRepository.java +++ b/src/main/java/com/release11/klaus/repository/MockedResponseRepository.java @@ -1,7 +1,11 @@ package com.release11.klaus.repository; +import com.release11.klaus.model.MockedResponseDto; +import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; +import java.util.UUID; + @Repository -public interface MockedResponseRepository { +public interface MockedResponseRepository extends CrudRepository{ } diff --git a/src/main/java/com/release11/klaus/service/KlausService.java b/src/main/java/com/release11/klaus/service/KlausService.java index 5fa24c7..1fcabb1 100644 --- a/src/main/java/com/release11/klaus/service/KlausService.java +++ b/src/main/java/com/release11/klaus/service/KlausService.java @@ -1,5 +1,6 @@ package com.release11.klaus.service; +import com.release11.klaus.model.MockedResponseDto; import org.springframework.http.HttpStatus; import org.springframework.http.RequestEntity; import org.springframework.http.ResponseEntity; @@ -8,6 +9,5 @@ import java.util.UUID; public interface KlausService { ResponseEntity getMockedResponse(UUID clientUUID, int mockedResponseId); - ResponseEntity setMockedResponse(UUID clientUUID, int mockedResponseId, HttpStatus httpStatus, - RequestEntity requestEntity); + ResponseEntity setMockedResponse(MockedResponseDto mockedResponseDto); } diff --git a/src/main/java/com/release11/klaus/service/KlausServiceImpl.java b/src/main/java/com/release11/klaus/service/KlausServiceImpl.java index cfc6851..1d1e52b 100644 --- a/src/main/java/com/release11/klaus/service/KlausServiceImpl.java +++ b/src/main/java/com/release11/klaus/service/KlausServiceImpl.java @@ -1,13 +1,16 @@ package com.release11.klaus.service; -import com.release11.klaus.repository.MockedResponseRedisRepository; +import com.release11.klaus.model.MockedResponseDto; +import com.release11.klaus.repository.MockedResponseRepository; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; -import org.springframework.http.RequestEntity; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import java.util.Objects; +import java.util.Optional; import java.util.UUID; @Slf4j @@ -15,21 +18,27 @@ import java.util.UUID; @AllArgsConstructor public class KlausServiceImpl implements KlausService { - private final MockedResponseRedisRepository mockedResponseRedisRepository; + private final MockedResponseRepository mockedResponseRepository; @Override public ResponseEntity getMockedResponse(UUID clientUUID, int mockedResponseId) { log.info("KlausServiceImpl, operation getMockedResponse, clientId {}, mockedResponseId {} ", clientUUID, mockedResponseId); - ResponseEntity responseEntity = mockedResponseRedisRepository.getMockedResponse(clientUUID, mockedResponseId); - return responseEntity; + String key = clientUUID.toString() + "_" + mockedResponseId; + Optional optMockedResponseDto = mockedResponseRepository.findById(key); + MockedResponseDto mockedResponseDto = optMockedResponseDto.get(); + HttpHeaders httpHeaders = new HttpHeaders(); + mockedResponseDto.getHttpHeaders().forEach(httpHeaders::set); + return new ResponseEntity<>(mockedResponseDto.getMessageBody(), httpHeaders, + Objects.requireNonNull(HttpStatus.valueOf(mockedResponseDto.getHttpStatus()))); } @Override - public ResponseEntity setMockedResponse(UUID clientUUID, int mockedResponseId, HttpStatus httpStatus, - RequestEntity requestEntity) { - log.info("KlausServiceImpl, operation setMockedResponse, messageBody {}, mockedResponseId {} ", - requestEntity, mockedResponseId); - return mockedResponseRedisRepository.setMockedResponse(clientUUID, mockedResponseId, httpStatus,requestEntity); + public ResponseEntity setMockedResponse(MockedResponseDto mockedResponseDto) { + mockedResponseRepository.save(mockedResponseDto); + log.info("KlausServiceImpl, operation setMockedResponse, mockedResponseDto {} ", mockedResponseDto.toString()); + return new ResponseEntity<>("MockedResponse has been setup successfully!", new HttpHeaders(), + HttpStatus.ACCEPTED); } + } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 6260d24..10662de 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,9 +1,11 @@ -server.port = 8099 +server.port = 8097 spring.output.ansi.enabled = always -logging.file.name=/var/log/klaus/ +#logging.file.name=/var/log/klaus/ logging.level.root=INFO -logging.level.org.springframework.web=DEBUG -logging.level.com.release11=DEBUG +logging.level.org.springframework.web=INFO +logging.level.com.release11=INFO logging.file.max-size = 10MB spring.mvc.log-request-details=true +appender.rolling.layout.type = ESJsonLayout +appender.rolling.layout.type_name = server diff --git a/src/main/resources/data-access.properties b/src/main/resources/data-access.properties index 25bff42..122952c 100644 --- a/src/main/resources/data-access.properties +++ b/src/main/resources/data-access.properties @@ -1,3 +1,2 @@ -//redis.host = redis-server redis.host = localhost redis.port = 6379 \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index a1c99c0..5fedb2a 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -3,94 +3,63 @@ Title - + -
---------------------------------------------------------------------------------------------------------------- +

In order to set mockup response. Please send the response, that you want to receive, on:
http://localhost:8097/klaus/v1/set/ clientUUID should be here/{mockedResponseId}?httpStatus=200
or simply fill and submit the below form:
+ sayHi('John');
- -

- -

- -

- -
Provide mocked response headers: Add a new header -
-
- - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Mocked response id:Id Error
Mocked response body:Body Error
Mocked response http code status:HttpStatus Error
Provide mocked response headers:Add a new header + + + + +
+
Media type:
+

Mock has been saved

-
---------------------------------------------------------------------------------------------------------------- +
+

In order to use the mocked response in your integration tests or simply get your mocked response please send a request to
http://localhost:8097/klaus/v1/get/clientUUID should be here/{mockedResponseId} @@ -104,7 +73,7 @@ function httpGet() -
---------------------------------------------------------------------------------------------------------------- +
diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html index 34e08a6..0cf2a2a 100644 --- a/src/main/resources/templates/login.html +++ b/src/main/resources/templates/login.html @@ -3,6 +3,7 @@ Login +

Please move to the next step with your own client UUID:
@@ -16,5 +17,6 @@
clientUUID should be here + \ No newline at end of file diff --git a/src/test/java/com/release11/klaus/config/RedisConfigTest.java b/src/test/java/com/release11/klaus/config/RedisConfigTest.java index 53dff81..1ff2b20 100644 --- a/src/test/java/com/release11/klaus/config/RedisConfigTest.java +++ b/src/test/java/com/release11/klaus/config/RedisConfigTest.java @@ -3,12 +3,8 @@ package com.release11.klaus.config; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.core.env.Environment; -import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; -import static org.junit.jupiter.api.Assertions.*; - @SpringBootTest class RedisConfigTest { diff --git a/src/test/java/com/release11/klaus/controller/KlausControllerTest.java b/src/test/java/com/release11/klaus/controller/KlausControllerTest.java index 1eadfaa..93067ae 100644 --- a/src/test/java/com/release11/klaus/controller/KlausControllerTest.java +++ b/src/test/java/com/release11/klaus/controller/KlausControllerTest.java @@ -2,8 +2,6 @@ package com.release11.klaus.controller; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; - class KlausControllerTest { @Test diff --git a/src/test/java/com/release11/klaus/controller/KlausMvcControllerTest.java b/src/test/java/com/release11/klaus/controller/KlausMvcControllerTest.java index 8fc5969..9176313 100644 --- a/src/test/java/com/release11/klaus/controller/KlausMvcControllerTest.java +++ b/src/test/java/com/release11/klaus/controller/KlausMvcControllerTest.java @@ -1,6 +1,12 @@ package com.release11.klaus.controller; import org.junit.jupiter.api.Test; +import org.springframework.http.HttpStatus; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; import static org.junit.jupiter.api.Assertions.*; @@ -8,5 +14,6 @@ class KlausMvcControllerTest { @Test void showHome() { + } -} \ No newline at end of file +} diff --git a/src/test/java/com/release11/klaus/repository/MockedResponseRedisRepositoryTest.java b/src/test/java/com/release11/klaus/repository/MockedResponseRedisRepositoryTest.java index e289435..ae2590c 100644 --- a/src/test/java/com/release11/klaus/repository/MockedResponseRedisRepositoryTest.java +++ b/src/test/java/com/release11/klaus/repository/MockedResponseRedisRepositoryTest.java @@ -12,5 +12,11 @@ class MockedResponseRedisRepositoryTest { @Test void setMockedResponse() { +// System.out.println("Before Test, clearing Redis"); +// JedisPool pool = new JedisPool("localhost"); +// redis = pool.getResource(); +// redis.ltrim(key, 1, 0); } + + } \ No newline at end of file diff --git a/src/test/java/com/release11/klaus/service/KlausServiceImplTest.java b/src/test/java/com/release11/klaus/service/KlausServiceImplTest.java index 53e51a9..71c3a05 100644 --- a/src/test/java/com/release11/klaus/service/KlausServiceImplTest.java +++ b/src/test/java/com/release11/klaus/service/KlausServiceImplTest.java @@ -1,6 +1,7 @@ package com.release11.klaus.service; -import com.release11.klaus.repository.MockedResponseRedisRepository; +import com.release11.klaus.model.MockedResponseDto; + import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; @@ -19,43 +20,44 @@ import static org.mockito.Mockito.*; @SpringBootTest class KlausServiceImplTest { - @Mock - MockedResponseRedisRepository mockedResponseRedisRepository; - - @InjectMocks - KlausServiceImpl klausServiceImpl; - - private final static UUID uuid = UUID.fromString("e4248095-100e-4f1f-8226-e722014ae29f"); - private final static URI uri = URI.create("http//:localhost:8080"); - private static ResponseEntity mockedResponseEntity; - private static RequestEntity mockedRequestEntity; - - @BeforeAll - public static void initializeMockEntities(){ - HttpHeaders httpHeaders = new HttpHeaders(); - mockedResponseEntity = new ResponseEntity("body", httpHeaders, HttpStatus.ACCEPTED); - mockedRequestEntity = new RequestEntity(HttpMethod.POST, uri); - } - - @Test - void getMockedResponse() { - when(mockedResponseRedisRepository.getMockedResponse(any(), anyInt())) - .thenReturn(mockedResponseEntity); - - ResponseEntity responseEntity = klausServiceImpl.getMockedResponse(uuid, 1); - assertThat(responseEntity).isNotNull(); - verify(mockedResponseRedisRepository).getMockedResponse(any(), anyInt()); - } - - @Test - void setMockedResponse() { - when(mockedResponseRedisRepository.setMockedResponse(any(), anyInt(), any(), any())) - .thenReturn(mockedResponseEntity); - - ResponseEntity responseEntity = klausServiceImpl.setMockedResponse(uuid, 1, - HttpStatus.ACCEPTED, mockedRequestEntity); - assertThat(responseEntity).isNotNull(); - verify(mockedResponseRedisRepository).setMockedResponse(any(), anyInt(), any(), any()); - } +// @Mock +// MockedResponseRedisRepository mockedResponseRedisRepository; +// +// @InjectMocks +// KlausServiceImpl klausServiceImpl; +// +// private final static UUID uuid = UUID.fromString("e4248095-100e-4f1f-8226-e722014ae29f"); +// private final static URI uri = URI.create("http//:localhost:8080"); +// private static ResponseEntity mockedResponseEntity; +// private static RequestEntity mockedRequestEntity; +// private static MockedResponseDto mockedResponseDto = new MockedResponseDto(uuid, 1, "application/xml", "body", +// new HttpHeaders(), 200); +// +// @BeforeAll +// public static void initializeMockEntities(){ +// HttpHeaders httpHeaders = new HttpHeaders(); +// mockedResponseEntity = new ResponseEntity("body", httpHeaders, HttpStatus.ACCEPTED); +// mockedRequestEntity = new RequestEntity(HttpMethod.POST, uri); +// } +// +// @Test +// void getMockedResponse() { +//// when(mockedResponseRedisRepository.getMockedResponse(any(), anyInt())) +//// .thenReturn(mockedResponseEntity); +//// +//// ResponseEntity responseEntity = klausServiceImpl.getMockedResponse(uuid, 1); +//// assertThat(responseEntity).isNotNull(); +//// verify(mockedResponseRedisRepository).getMockedResponse(any(), anyInt()); +// } +// +// @Test +// void setMockedResponse() { +// when(mockedResponseRedisRepository.setMockedResponse(any())) +// .thenReturn(mockedResponseEntity); +// +// ResponseEntity responseEntity = klausServiceImpl.setMockedResponse(mockedResponseDto); +// assertThat(responseEntity).isNotNull(); +// verify(mockedResponseRedisRepository).setMockedResponse(any()); +// } } \ No newline at end of file diff --git a/target/classes/application.properties b/target/classes/application.properties index 6260d24..cf3346e 100644 --- a/target/classes/application.properties +++ b/target/classes/application.properties @@ -1,9 +1,11 @@ -server.port = 8099 +server.port = 8098 spring.output.ansi.enabled = always -logging.file.name=/var/log/klaus/ +#logging.file.name=/var/log/klaus/ logging.level.root=INFO -logging.level.org.springframework.web=DEBUG -logging.level.com.release11=DEBUG +logging.level.org.springframework.web=INFO +logging.level.com.release11=INFO logging.file.max-size = 10MB spring.mvc.log-request-details=true +appender.rolling.layout.type = ESJsonLayout +appender.rolling.layout.type_name = server diff --git a/target/classes/com/release11/klaus/KlausApplication.class b/target/classes/com/release11/klaus/KlausApplication.class index 0e56a1b05c9a07fe4a9a252d737b7364a3fb3b7c..3c14ac56ade1497b269a71d91438e65149bfcd55 100644 GIT binary patch delta 23 ecmaFH`iyl$9up(SL^-@_1)Afdtl;_#rbpH*@dv+?TmCfB*Bxp8&@3V;TvxCDCr61Dy;#+kBUs z4wq$faeZ4@K11h(Ep302p)EVKl0=GOR=H)p#1YMt2g1feX0EFlea?8E^#m#OSEG@uJ|diU9q6# zLf|;3Oh*}MGF=lT@ljLmA`&U|ANyNXuAjyL?j&*7z&#As352S7sU$i(cJ(>0QBsYbTLqM6qtrMOl(v)uBPyPrl5!y0ac;YBt!)vXs^ zL38|!VKgq`P3EYG!U|p%m8!#ik%o!3G}Y|`1E1p|g&-t2WdA0?{AU|wcpl5VsgUa_d}l)@ zq~TaomZJW!=Qq0lgyKT`FNDnM$AjVFdCLCusUkZMVsV>Xh|$V4hj+hP5Aka2<|fWI z>;_4#&rTB6u997r+z(vJ@7n)y_uNS7k_uc)%-Xt?dcu09!$|kxh`u@)#$vsUNmis) zyLQQiSFwr>(RKx$d|NkQeVLzJ*>s)iLJp}c)%V!KBb$$6ZN`wP-fw2Y2{rqq=CkckX+6EhOXXAzvFTOZ}Guj zxD^UMZV@!0GWSq?ZQNn z#1HT*H2#1K*T&mXx4Jp!+t@t>-PJfF+L4lYNM`TqL zFLC2)<7Wow*d(pf9OT%7MGTZsrkx_GbLukU!VIx?`3`Dgeu@PKDbrFuVEG=oX62S_ z48iF+ga{XrLK1nxAj0@QBO?w#ZH5ZADfjoCRk>c1$YnP{o*k-p$+dR|#l!v=a?Mvz diff --git a/target/classes/com/release11/klaus/controller/KlausController.class b/target/classes/com/release11/klaus/controller/KlausController.class index 63d40428a55c7801b923ee82b307faece3d43d53..970d268b0242e488c8027a99900983d1c6b7efaf 100644 GIT binary patch literal 3624 zcmb_eYgZFj6x}yGLc*Yeip63pDmH*RVAWbfZ7~K-HFRK zUs~HLwrh3ubN@mAOjq}vNkXCnWp(w#yw2Qv&pzkuv+w=$?_YlhZ~+e@2%#>FdJPR| z6gZx>mUUa^rQyhd0evZN6dk?jnt9XFFBKiLARXtLToc%p8kLJ&?>NJ z(O5O~yiu6f)2?k6<^{s5M!qP==ZHQwviW;_c2Q>Ccu$qdpAlEC_G;LtTt!Ed>GaT* zz-=V(1Y# z6|{cVD!8_l&r4gsrudVnd<$qEqten|HM3HnH;^=r|J$Ek8XIp$A5MgEQbQ9?k#0er zgC+_LR)?V|6=!WNdtP@|6oKY!V_Dv{>?M7{byxHwbl1q%ezKLRsby;zrv>_g zFf3a+Nj}tY`?70AaRz6@IH%zioF`Ma@qec%9oKhHezH-nN+Tz279`p(+uV>@g z%2EMUHK6RRC!K+o}zdZ)3_DJJ1VZ*H45t|SfDP}lZj#m z?}cG#m_=6LfVX;n?#!Y-V$CyW!$#J%Y}P2kYWXIC?rJeirg;n2t$gLxqCn z8m`IhPT+iCeeTLxeby}GbfYqsisUH*$-F{p6JUe4;R&4Zx98OXohjGvZ^B;J?>~)k zoqbu0rUJAE*0~+SnlRjja?S}#KHCMUz_m&$TcvVkPV7LASsgV$%`_I7#1`AnO<65t zJN3w}ugwr8THs_LS+?phszfdEsD&l+4ek)fU{%+bgzqAA8A+S-1x9F-+z?Iu~dnf^Ojch197dw6ta?wS-OOk3vac)$f~8Z4VZM}>G# zhVuv6N4~H}(^k>W%3)K9%)Y12GN;t8!81T$Ivn=Dv|JKG-#q;goY2ulv708c5DqHE z<6E0LOYvDxv^?AJxxg<6jZh(UKZIxtKSZQ&1KLBhb#7q)2A52@}+$5$NTiFVE@Gs8u=Vou=OC=zhU5JUuQ@CBfR_wuRg-- z>NWWXT1uwWp$&{a#^i+t6<|lh6J$bOfOTGgN9X|D79%*p08cW&J_e}r+Rr1y0FNN2 zy94BR U`-ZjbEi;=liYjGJbezh(qdQfbLEh3!Rb%EJLn_7pNQom( zErdoKlMz-CL6m=$`g$U^;Y^p8?;9&~hFvLJw!!c?b#q*}=upv#Q@r4x4M^x#aT;g%bAOW02iEwG{}ulnnB)_|Taoaz;jEQc zX7x>d!*GmEo4*LYOvdJ_mSb)hi>7TZm5edVD${gKqQ@{oTw3@*prxs7JJWilVp^*j zgU=lsf1nKVefchbtrYnqS>xa2EdQxI+m?t0XeV)jgtVyG3rR1CH+txmqSqElpYWzX zfMpWNUC1%-9vXajOI8nh>Go3wh-8}X;aW5@I7=^4wGaKSKZ+~{sGqP6Vqlw+g*t?D z)N+_~^&o5rBV;*GmWY?KL3yAIP$+PLj)aT2M6!_*M(JpGz-;7jnQUXAMG4r`kSsJ rK_*eQlce~9QE3;+_vjK;nV{Hpu(l>Dc!P`*CfuQh$UR9%vr+sD3OJM9 diff --git a/target/classes/com/release11/klaus/controller/KlausMvcController.class b/target/classes/com/release11/klaus/controller/KlausMvcController.class index 55c08a50ebb69c737afbe85730942efe34504a3a..6750086fd3451b77d3e1692ee2b4ca6f409bbdc4 100644 GIT binary patch literal 5272 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 b6NG$|zIoiIS(?@p^mFk5LwJY+9%1}9Qxtjq diff --git a/target/classes/com/release11/klaus/model/MockedResponseDto.class b/target/classes/com/release11/klaus/model/MockedResponseDto.class index 61f35f458125e388f99b2e3b793e201be407c458..66a64c9baaca541191df68627f1e0c9e0a0f6c3f 100644 GIT binary patch literal 6328 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 diff --git a/target/classes/com/release11/klaus/repository/MockedResponseRedisRepository.class b/target/classes/com/release11/klaus/repository/MockedResponseRedisRepository.class deleted file mode 100644 index 80deded6de72b213b4b2ed13c7e10747ae2adfeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6681 zcmcIod3;pW75;9R$(sxh2&00-62ca;I;bd`#0UhCKnR$`Kx$k1GV_uQnamsKy+J9p z+RfH(bg$j_YIi{m5o)0uwrcmq?u*^`eX)Pke)qmN8#9x}_Gf;-$;{o(J?A^$J?Gr} z(7#W90zf$B+MXop-;yi?B&KrEH;oyrP8Ktn=ye43o*~F=x7?!&@ZsAqU~9V zZ%aCH=dg?jgF3Fm5Ti%RNZTgQxxfX5!o4%u)Dy&h3~P9r3?J9i>lOEq=X1a@oD7}X zD8tAsW|AP+;u-QJKT}|&aDUIsWreu($|Rilkc?ZBXl3W+!iK9BVUqFTSvm}iklqQ4 zAv5HzOpIJm-G zu{u0o#|!X6hTszQU9rqv6%EJ2U5* z-EKr>al!I|+;l?<4`1Q#-3i0CnS;(<*`eVsfsIeHXvqd9@|GJG(}N|Dx3R)Y2B?mi zB6D$`=pcCAR*VJ8g5G%2?8{7!nCU^8qg33C8i^qz9hYsdvu0e?XDUZ7aG}gGpRz_& zdV1-!6%~3kGnfzHj0gpqE5z7!ZbTOl zJ!JfZNk1=Oc2)&sE)X@$9BQ*+h~;*#Rfyu@R2Iq03UnZxou!zS_H@yZdBiU|!4;lI zYImE?xE0%L$XeQA=}cM<#K)3M(`kBf@BhJ$GCD~O7M6rZf!j;BnHeFM1v6yzqU@7B zO66`1C5#T{^DyBm%EQbcmDMWVkq2v*Q!Bu9?5TyM?5;Cp$6}buu9mgGd;JpF>1kh> z9sVcAHn9X{4PEgTA}?R8+XU(p#^gxMSX06-_b{zlFEBWRoQ~4tGMgT`vwt*hCRh;$ zIvFI~t7dROUEH?EWh7ix9CG`MZ;=wP_Er%f?lE0Jke6^RI?WB#Q&BP<`F-A^!WH8@tB)GVCi)A@BC#T%FU@xe~w}bc& zzN_JT@{0L=Ch+{7B%VBEO_&ik{kyl$Tz0#okOJOBSLhBS8B3VC9@_C@;K7-D2u!_@_YK%v0%VmuGzOsblFUa3>!ImdGm}pG`vSUBz#W{U5*wIsPF) zJO)34?7b@_{10Hx@SK(@_y>l4%ce1RU>XbC{im>a_yof3)y?-}`4m>SYhf+yKZzz_ z3T=IE;}Y4pv^@|GgsX?Av2ou?Tm{^Z%~fzGT%%^U`@-5;G=#M&?6?zkoX_U@UQ=(c z;qsa(><$M`pTf1nZQ<&$ZyHo%A4Q(Q{u6lm-L$9$V{rH~a0IvV8nTP^^M`4{CA`T4 z%MqsStFVHz>iOcb65H7t#%iuv!&NJA6l-w@8i>tWe1t1fn9DgU@lkvX0j}u8-8e>c z#xM`Z`O8O1G2DZDi5zjleY8~m-GvjFCYJKo{WwXzj&g5zt^DP#4YT(YrTD4EZTL7I z;0vaF?bNx_-SsqgJ;R>;@I65V0~+cyo>}RrkcPz?%Xgt+*AtkJn$j_jsNuj9RDe&T zYOPwy#d19*f0Cb?Dyl0z0(^>}Dtwv>dk}eOu z+@srZyi$1^o_8Dg;tP7B7OnJg3(;&tGa~55dJOUXE>8a+!KKQhU9KrPPaVy9>Zs=_ z8j7<>(s=pnL41z8bfeevRMtQ4*ylNRhVyuyniZ4_eK{!4vj0JTTu2|HR=m{{T%IgE z$`umQ4c@uwYintp!mIbSoyBSzP5v)y_px!F+tAznVPDuU+3!1jj4}ee|1P0->&e@7 z{GOv&zKBc$F6Zb*j$gqUm(%JimEFzMG(c=5SEXeeatLftmPxK|Pz_U2gjI2H5gbc)jM=4X|B3gCXy=EpsoH|1@f!t3|7wzZtZo4j~1d;6F2 zlXdJv1sH71VX!HO!KNGroA5BtdR6Wmf@>ef zY4)6<4GNWpJStoAC$In&*;@&fhbhHn#3MXpOYsFtmgscxyNchz<`Z~pbIW~LevGXu z<=1KzNiI+}EOKY%G!LrCEfny6!A5OuP-YV@kz%i<+kO15X>MsHm)^GTT&Z0-WH?D7 z!`b{L$%Xz~Ar>QYri&8=P&G diff --git a/target/classes/com/release11/klaus/repository/MockedResponseRepository.class b/target/classes/com/release11/klaus/repository/MockedResponseRepository.class index 129a8fc93323fb894ad85303a06f9088b86da921..2dd2b32009cd0c2d44e9d88c32eab0aaa9e9e0db 100644 GIT binary patch delta 251 zcmeyyc#fIt)W2Q(7#J9=7KCOJ3NAIrA4WX4DCKyiDilUIf;4c`u<5-smUeQ zK17+xk7B5e&qM(co!tDC)Es@^{N(IZpoPT+`FX{uE+zTaNOlC5fZS?rXFV~tPL+{? g73d!Z24)6!Aj!nQ!N3Woxfr;CG#djW0}lfO0DJ&WBme*a delta 50 ycmX@d{Ed<8)W2Q(7#J9=7&s?#1y9yytdj=vfPjgC6-=@*umfo}21W)B1_l5+?+3vE diff --git a/target/classes/com/release11/klaus/service/KlausService.class b/target/classes/com/release11/klaus/service/KlausService.class index 15b32f1bf80bf87af9aaaebc949fb6a08260b74f..5e201b7a1e7273090d0128c1edbfb1c476c071d0 100644 GIT binary patch delta 146 zcmZ3;HjS0*)W2Q(7#J9=7=$)**)uXnX!uMN5RuHyPf5+u_svhvPE83)EiTBJg8-N%2moWTDAND{ delta 241 zcmbQnx{!_Q)W2Q(7#J9=7=$-+*)v*nYWQR&mL=+!mSpDWhlYB(SbO^97p3bL7ZhdY zrKc4o=BAeC7iH^bl#~?cdjN^xlEjkIV(ZD3j56GXrK!awu6ZSyC6$xQ8FfRsK&l`L z7#VnrQjz2t88%X26D!!H$y`j*lPefCCkrs;sR*(#Z~*mu_xqJN2?pn!p8VX?zp1C+?5;q9g*xrY4`|uhnLGD>_q*Sn`RBiH z{{z4%)_RdZhlWlaUFa4VE;+TFD=lew^5n_fqGdF^oG0BSvm|pD)Z1M6QmEA}fey>5 z3Z$kTx0>^;%BdT9WbPeBh>`Ybq7oF0gEMJyh-LXA6oGDqR zwEaRk^Yk;rnOfV&U@((J5`7wU9d}`u!0sEyl996vyP7N5zU00F+LB>4fQAjx%O;rEG42xaKDD5 zIvzk);Nkz#4sofNc6ofcP!`Cx1{XmcAr%05sjf(5SotK5VMxQUju9Lu6*sVMP9aOl zwarjRHZ`0O7>e__=9HziDd=;)qv8DmM*`B+6(uUJQIk(O?qY7i_v^VS{!B@uEL|^& zlQ^a0K|CbTJ!aabe}=AP6+LqJppMfRB{%3=%NlaJNr)iKi$hmh*oJFW;Ju zO2aOxgyhCe#n48L63~b9ctpdLjsiX^aMwm=7!?b(;<%GWX+hxL$k`yKI7@>?4bvq2 zwx~BHWYYFce_7!>qvKLgdrD@c=NVNw?v#U1AJcIeb95+ze$F@i20`4@M7~u}h<*}R zbrf-p{4{O9sN^NcVsRTE7$tqR4gPGj;0zRqe^Mt^BOgdwY zgrsR$z8Uzb=o33{ovWc+`N5(pVnfHgqFASAEXf|Q4A1SP;NDgRZUrW0?ZhgzYmEY9tp%i7OnxVhwHHgC>7Jm}3G`2!ww!6y z=B0bZn725>zFsn{qT!nAJsRxv7fe>m@z{0|=d(H~aF=A*-NOzz5T-kzYv3?JZ|9C` z0;0e|Ta*MS)k2S`tx?dO`X(qyI1abiZuS7~zq{RjFm)t0h;5XgHu_ZEMDk9N-I-R= zJTBYYj^lE@iRDC$t7GrTr!zD^a8ddTPI=Z)t;lER5$K&Wt2SlLWfo`u4|a@g#a->V zdrRpHJeqw+j_)9XTL@~sOQyGpj^z|rk9Tqu8Z1(H#>n)r+b8FohFg;7O;t^MHf!l| zB{Kr)%MG@znk<^0$uc`@+YUPtnl#5Q|iUs42<9ohq)I&OW{oVL! z5*ek8d6-^9{P8oLDlHQSN$60K!w`|yp zs1lYA4R1>Z;z*<6mcYTC zr}8u!GK{yD1lzK}r}^BkuBf~krPN)9&rXhi22Y~{p9MreziJ$HZbGEAp#!VvT|<8- zhE}lWz-_!2m^tgsZuD5XV`Yn85v^(9kf``-H*H@9hb{l7b zHB2V(7A{;@UoNJD39~D>vWiDJ=WTG=Ctl^29e9Sn$I-{%G@aPbGh-V4+;cw;;3#YF z1P=1Ne~4$&3?8TZHlLs4?5WUYJd4lsjn3maJkPMye_y~0LC{z6BEHByj`AG+C48A- zpWsd4EBGn{K8=U)HGG}0e1mIrt_){=le50Xk=_Iif~J6%_?N)TobqjaC&UaUO(Zxz zqL3L{!>1Csrr;|PG`WUKM-Y9=j3By+#VF!L5b-XW0e9@<#V?I)5YgVy;Ce(Ofu|zy zrc3ap>B)EL$%FVFr!#vv!>95jdF&RPV?%G^&})1Px9JW5Nwt_yuA5H=Tv#`Mn5WDh ze4nU@!0h2*DRD?8R^h%5p{$C)`OxYBf%-wP(<}HPpKA0+eEyh!DenIhzW)lpVW5A; SUvU$!b3DnhH?V?Lr2hlU@gu+h delta 1044 zcmah{%Tg0T6g@o|GNh9b2oTJR2nyyw2q?Zt2yYeTVS%_d!W0HE!OUP4D@qF&E?kh_ z>nBK55M8*otnwrL5zE^%Km|9}RL|{u`u4e}Pxp`R-8TO7&$sUYhOtoN4_Mj-1pyB_ zaE>ARti1A6UtQFV&2q`m7xmSmv8ZpBjiOnuY%}D=K5rKZCER&tAC>N8Hc1binkRMGgmAX%{+r6o_NU7hqQ)%4>A}KIqklBnISF@ve(}x+>P&BnkvV( z*i9J3Z>>+1TtPNc<)h-4tJ1`unC9k^SunQ@hMqcstqk6ZUMG>bNwlvH$&zmbHCRy9 z9c``s@5m>mVeyJ5M4Wf9aq)o%r11_iUd*|7chE)G+Y5$4iXk+>NmuWew@pzcoGuIw zT%qhW>rg$vfcGamiZe1F)dNnXgn&~)q$!uoPc3E4=Ilpp*)F&{>%DU@ly+nA=YBh^Fin7@} F@E1-0vJe0O diff --git a/target/classes/data-access.properties b/target/classes/data-access.properties index 25bff42..122952c 100644 --- a/target/classes/data-access.properties +++ b/target/classes/data-access.properties @@ -1,3 +1,2 @@ -//redis.host = redis-server redis.host = localhost redis.port = 6379 \ No newline at end of file diff --git a/target/classes/templates/index.html b/target/classes/templates/index.html index a1c99c0..5fedb2a 100644 --- a/target/classes/templates/index.html +++ b/target/classes/templates/index.html @@ -3,94 +3,63 @@ Title - + -
---------------------------------------------------------------------------------------------------------------- +

In order to set mockup response. Please send the response, that you want to receive, on:
http://localhost:8097/klaus/v1/set/ clientUUID should be here/{mockedResponseId}?httpStatus=200
or simply fill and submit the below form:
+ sayHi('John');
- -

- -

- -

- -
Provide mocked response headers: Add a new header -
-
- - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Mocked response id:Id Error
Mocked response body:Body Error
Mocked response http code status:HttpStatus Error
Provide mocked response headers:Add a new header + + + + +
+
Media type:
+

Mock has been saved

-
---------------------------------------------------------------------------------------------------------------- +
+

In order to use the mocked response in your integration tests or simply get your mocked response please send a request to
http://localhost:8097/klaus/v1/get/clientUUID should be here/{mockedResponseId} @@ -104,7 +73,7 @@ function httpGet() -
---------------------------------------------------------------------------------------------------------------- +
diff --git a/target/classes/templates/login.html b/target/classes/templates/login.html index 34e08a6..0cf2a2a 100644 --- a/target/classes/templates/login.html +++ b/target/classes/templates/login.html @@ -3,6 +3,7 @@ Login +

Please move to the next step with your own client UUID:
@@ -16,5 +17,6 @@
clientUUID should be here + \ No newline at end of file diff --git a/target/test-classes/com/release11/klaus/config/RedisConfigTest.class b/target/test-classes/com/release11/klaus/config/RedisConfigTest.class index 9578a397c74ac45cf1f6fdfc36a6c570d12ff697..ec2c902a4d7e1f7d58fa4c9ba3dc816fc19afd7d 100644 GIT binary patch delta 19 bcmbQrGL>b+az;kZ$txHw82KhYWHbQ)JR}9d delta 19 bcmbQrGL>b+az;kp$txHw7=ff$?3=9lb3_=sROeQxo8c#0a%$mH6OLOuZ4jD$X$${*mlb>>_#IQ3k z0hKW@Faj|v0~?U$1hVvjG+0DyI|JiJpa2sC7mx%=GcbrUa05vmhyozZ3zp{tll%+< LKpLb@kbwaJ7vB*L literal 3591 zcmbtXX;%|h7=A8L6XH|>5yeUs6$At(q$o?!HXsU>#S*|`7dr_zFff^kGj~wzUc1?S z{R906g&v^woE|^-NA>i*GYKY;pq_rn%-nn5^?8^3=AVE6`Wrw$ehr}v1xS5y zp$XSv2*!qnhObW#UuI|;dkT(d2q7Gne%CQ1TE=#I9xW=w6}q90yN1wbHN)lOTBbPN zHXOcr(bm~Y97TNq#}vGP;|$@Xl~!$TaLwUeUFx!-xsK{^dqq!j^_pD8{l#cHV@z|0 zB2k;RlFNL)5H*I@qK0|~6p}^*c#)yGBsNq0wo8iqXjI}P8Ur|`;55!WDF)+QEL!sv zz3Y?l=_lgvQ%5Br%?i$uWab%q0e5KJ!AnW<3oXesTb%z~`ULIFPL z9SS<3G91dmm**wJ9&!ut@XYN}5W!0f4LMPM{!a0E-I?MU%h82puQFU3D;8aQn?fBg zh~y4_a{N3l1kj_P7kv!JWyGXLlCH+=1vkx2F|LW^BGnmTr615vs~8DjRKcsbM$ya%MJgh2C;{&*a+9IINICnOaxgl=O(dv+sgve{Melfa9o>&{ zOaw5g;JQ@f^|~i9F@yx^o#Mi^O_|nH3gVzbsPf7>uaFr!i>5}Y!uPUnR>2LtPR_Zm zPDNJb$N4dcA>5RKdxN39SjZRpgc z$w~iodQqc{=_v{EE*bt!;!C33PGUX)t{{a4hQ^{=^EntQb!Wm76Ru&DesPS_lEn>_c&4RegaM-(7)PBQCYR01Fi2mMiZ#aZ|csGFe6ugfQ7!(iE zY#S&1lQ!1`XE;?_O|IuN)K9rI4y5_4?&t}F$4t|r8{W^r8V|x;Im)W1{#IYGIcmzW zMIJeHRvFh9OqvgD(tdF-{PPEqfxJeV1>+LQ8rX|J?@lSfUNL0NlNATYbdyiG=>)f@ zHS&*voFXh|HCvbK>}G{n)T!hm&(tmCm_UZs$$?GR4E-LLIC%HD&Pm#S8NBR#M%7T- zA9kLV5A!}In&rk!K56MJtOTj(8V$Piq=Aw%4E1>;gGh)6Qq~ zB~O^#Y1;(*-DCNjp7I!|#TWEcd;)xl2ehihS9DtDG2bFVlCJe30&|pR5NF8aCbGPFTUii|_!{5PdCvE5=^Hcy z&m=5{x=uZx)OeoWyq?+TYWe1j^sJPhUCP zf1ndk=g!&wh(MDOP8HbhnRC#4Hf+Es<_Dp=hV~6)_VQ+joL!!E;}i{BE$E@X+lN7V zazyhyOJzOlNBa)X{GFYi1@R+!=I2s}mkdC4&Fw8X>zJvzvxU`lG)Z`w2e15Z2Ldce Rb95PgqVF>NybaYaz<+G60muLV