Upgrade sonar plugin
[vid.git] / vid-app-common / src / main / java / org / openecomp / aai / util / CustomJacksonJaxBJsonProvider.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * VID\r
4  * ================================================================================\r
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END=========================================================\r
19  */\r
20 \r
21 package org.openecomp.aai.util;\r
22 \r
23 \r
24 import javax.ws.rs.ext.Provider;\r
25 \r
26 import com.fasterxml.jackson.annotation.JsonInclude;\r
27 import com.fasterxml.jackson.databind.DeserializationFeature;\r
28 import com.fasterxml.jackson.databind.ObjectMapper;\r
29 import com.fasterxml.jackson.databind.SerializationFeature;\r
30 import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;\r
31 import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;\r
32 \r
33 /**\r
34  * The Class CustomJacksonJaxBJsonProvider.\r
35  */\r
36 @Provider\r
37 public class CustomJacksonJaxBJsonProvider extends JacksonJaxbJsonProvider {\r
38 \r
39             /** The common mapper. */\r
40         private static ObjectMapper commonMapper = null;\r
41 \r
42             /**\r
43          * Instantiates a new custom jackson jax B json provider.\r
44          */\r
45         public CustomJacksonJaxBJsonProvider() {\r
46                 if (commonMapper == null) {\r
47                     ObjectMapper mapper = new ObjectMapper();\r
48 \r
49                     mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);\r
50                     \r
51                     mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);\r
52                     mapper.configure(SerializationFeature.INDENT_OUTPUT, false);\r
53                     mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);\r
54 \r
55                     mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);\r
56                     mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, false);\r
57 \r
58                     mapper.registerModule(new JaxbAnnotationModule());\r
59 \r
60                     commonMapper = mapper;\r
61                 }\r
62                 super.setMapper(commonMapper);\r
63             }\r
64             \r
65             /**\r
66          * Gets the mapper.\r
67          *\r
68          * @return the mapper\r
69          */\r
70         public ObjectMapper getMapper() {\r
71                 return commonMapper;\r
72             }\r
73 }\r