diff --git a/rest/taskana-rest-spring-example/src/test/java/pro/taskana/doc/api/ClassificationControllerRestDocumentation.java b/rest/taskana-rest-spring-example/src/test/java/pro/taskana/doc/api/ClassificationControllerRestDocumentation.java index ff59becc2..c1f396bce 100644 --- a/rest/taskana-rest-spring-example/src/test/java/pro/taskana/doc/api/ClassificationControllerRestDocumentation.java +++ b/rest/taskana-rest-spring-example/src/test/java/pro/taskana/doc/api/ClassificationControllerRestDocumentation.java @@ -281,7 +281,8 @@ public class ClassificationControllerRestDocumentation { responseFields(classificationFieldDescriptors))) .andReturn(); - String newId = result.getResponse().getContentAsString().substring(21, 61); + String content = result.getResponse().getContentAsString(); + String newId = content.substring(content.indexOf("CLI:"), content.indexOf("CLI:") + 40); this.mockMvc.perform(RestDocumentationRequestBuilders .delete("http://127.0.0.1:" + port + "/v1/classifications/" + newId) diff --git a/rest/taskana-rest-spring-example/src/test/java/pro/taskana/doc/api/TaskControllerRestDocumentation.java b/rest/taskana-rest-spring-example/src/test/java/pro/taskana/doc/api/TaskControllerRestDocumentation.java index 72b9f8eb6..7ccdac33b 100644 --- a/rest/taskana-rest-spring-example/src/test/java/pro/taskana/doc/api/TaskControllerRestDocumentation.java +++ b/rest/taskana-rest-spring-example/src/test/java/pro/taskana/doc/api/TaskControllerRestDocumentation.java @@ -356,7 +356,8 @@ public class TaskControllerRestDocumentation { responseFields(taskFieldDescriptors))) .andReturn(); - String newId = result.getResponse().getContentAsString().substring(11, 51); + String content = result.getResponse().getContentAsString(); + String newId = content.substring(content.indexOf("TKI:"), content.indexOf("TKI:") + 40); this.mockMvc.perform(RestDocumentationRequestBuilders .delete("http://127.0.0.1:" + port + "/v1/tasks/" + newId) @@ -379,13 +380,14 @@ public class TaskControllerRestDocumentation { .andDo(MockMvcRestDocumentation.document("temp")) .andReturn(); - String newId = result.getResponse().getContentAsString().substring(11, 51); + String content = result.getResponse().getContentAsString(); + String newId = content.substring(content.indexOf("TKI:"), content.indexOf("TKI:") + 40); this.mockMvc.perform(RestDocumentationRequestBuilders .post("http://127.0.0.1:" + port + "/v1/tasks/" + newId + "/claim") - .accept("application/hal+json") .header("Authorization", "Basic dGVhbWxlYWRfMTp0ZWFtbGVhZF8x") - .content("{}")) + .contentType("application/json") + .content("\"userName\":\"teamlead_1\"")) .andExpect(MockMvcResultMatchers.status().isOk()) .andDo(MockMvcRestDocumentation.document("ClaimTaskDocTest", responseFields(taskFieldDescriptors))); @@ -410,7 +412,8 @@ public class TaskControllerRestDocumentation { .andDo(MockMvcRestDocumentation.document("temp")) .andReturn(); - String newId = result.getResponse().getContentAsString().substring(11, 51); + String content = result.getResponse().getContentAsString(); + String newId = content.substring(content.indexOf("TKI:"), content.indexOf("TKI:") + 40); this.mockMvc.perform(RestDocumentationRequestBuilders .post("http://127.0.0.1:" + port + "/v1/tasks/" + newId + "/complete") @@ -442,7 +445,8 @@ public class TaskControllerRestDocumentation { responseFields(taskFieldDescriptors))) .andReturn(); - String newId = result.getResponse().getContentAsString().substring(11, 51); + String content = result.getResponse().getContentAsString(); + String newId = content.substring(content.indexOf("TKI:"), content.indexOf("TKI:") + 40); this.mockMvc.perform(RestDocumentationRequestBuilders .post("http://127.0.0.1:" + port + "/v1/tasks/" + newId + "/transfer/WBI:100000000000000000000000000000000001") diff --git a/rest/taskana-rest-spring-example/src/test/java/pro/taskana/rest/TaskControllerIntTest.java b/rest/taskana-rest-spring-example/src/test/java/pro/taskana/rest/TaskControllerIntTest.java index 7d4549638..9d48ead7c 100644 --- a/rest/taskana-rest-spring-example/src/test/java/pro/taskana/rest/TaskControllerIntTest.java +++ b/rest/taskana-rest-spring-example/src/test/java/pro/taskana/rest/TaskControllerIntTest.java @@ -398,8 +398,9 @@ public class TaskControllerIntTest { } in.close(); con.disconnect(); - String createdTask = responsePayload.toString(); - String taskIdOfCreatedTask = createdTask.substring(11, 51); + String createdTask = responsePayload.toString(); + String taskIdOfCreatedTask = createdTask.substring(createdTask.indexOf("TKI:"), createdTask.indexOf("TKI:") + 40); + assertNotNull(taskIdOfCreatedTask); assertTrue(taskIdOfCreatedTask.startsWith("TKI:")); diff --git a/rest/taskana-rest-spring/src/main/java/pro/taskana/rest/RestConfiguration.java b/rest/taskana-rest-spring/src/main/java/pro/taskana/rest/RestConfiguration.java index 05131dd79..d68007a9b 100644 --- a/rest/taskana-rest-spring/src/main/java/pro/taskana/rest/RestConfiguration.java +++ b/rest/taskana-rest-spring/src/main/java/pro/taskana/rest/RestConfiguration.java @@ -1,6 +1,7 @@ package pro.taskana.rest; import java.sql.SQLException; +import java.util.List; import javax.sql.DataSource; @@ -11,9 +12,11 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; -import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.http.converter.json.SpringHandlerInstantiator; import org.springframework.transaction.annotation.EnableTransactionManagement; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import com.fasterxml.jackson.databind.cfg.HandlerInstantiator; @@ -32,7 +35,7 @@ import pro.taskana.ldap.LdapClient; @Configuration @ComponentScan @EnableTransactionManagement -public class RestConfiguration { +public class RestConfiguration extends WebMvcConfigurationSupport { @Value("${taskana.schemaName:TASKANA}") private String schemaName; @@ -74,18 +77,19 @@ public class RestConfiguration { return new LdapClient(); } - // Needed to override JSON De-/Serializer in Jackson. - @Bean - public Jackson2ObjectMapperBuilder jacksonBuilder(HandlerInstantiator handlerInstantiator) { - Jackson2ObjectMapperBuilder b = new Jackson2ObjectMapperBuilder(); - b.indentOutput(true); - b.handlerInstantiator(handlerInstantiator); - return b; - } - // Needed for injection into jackson deserializer. @Bean public HandlerInstantiator handlerInstantiator(ApplicationContext context) { return new SpringHandlerInstantiator(context.getAutowireCapableBeanFactory()); } + + @Override + protected void extendMessageConverters(List> converters) { + for (HttpMessageConverter converter : converters) { + if (converter instanceof MappingJackson2HttpMessageConverter) { + MappingJackson2HttpMessageConverter jacksonConverter = (MappingJackson2HttpMessageConverter) converter; + jacksonConverter.setPrettyPrint(true); + } + } + } }