2 * Copyright © 2017-2018 AT&T Intellectual Property.
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
17 package org.onap.ccsdk.apps.controllerblueprints;
\r
20 import com.fasterxml.jackson.annotation.JsonInclude;
\r
21 import com.fasterxml.jackson.databind.DeserializationFeature;
\r
22 import com.fasterxml.jackson.databind.MapperFeature;
\r
23 import com.fasterxml.jackson.databind.ObjectMapper;
\r
24 import com.fasterxml.jackson.databind.SerializationFeature;
\r
25 import io.swagger.jaxrs.config.BeanConfig;
\r
26 import io.swagger.jaxrs.listing.ApiListingResource;
\r
27 import io.swagger.jaxrs.listing.SwaggerSerializers;
\r
28 import org.glassfish.jersey.server.ResourceConfig;
\r
29 import org.glassfish.jersey.servlet.ServletProperties;
\r
30 import org.onap.ccsdk.apps.controllerblueprints.service.common.ServiceExceptionMapper;
\r
31 import org.onap.ccsdk.apps.controllerblueprints.service.rs.ConfigModelRestImpl;
\r
32 import org.onap.ccsdk.apps.controllerblueprints.service.rs.ModelTypeRestImpl;
\r
33 import org.onap.ccsdk.apps.controllerblueprints.service.rs.ResourceDictionaryRestImpl;
\r
34 import org.onap.ccsdk.apps.controllerblueprints.service.rs.ServiceTemplateRestImpl;
\r
35 import org.slf4j.Logger;
\r
36 import org.slf4j.LoggerFactory;
\r
37 import org.springframework.beans.factory.annotation.Autowired;
\r
38 import org.springframework.context.annotation.Bean;
\r
39 import org.springframework.context.annotation.Primary;
\r
40 import org.springframework.stereotype.Component;
\r
42 import javax.ws.rs.core.MediaType;
\r
47 * @author Brinda Santh
\r
50 public class JerseyConfiguration extends ResourceConfig {
\r
51 private static Logger log = LoggerFactory.getLogger(JerseyConfiguration.class);
\r
56 public JerseyConfiguration() {
\r
57 register(ConfigModelRestImpl.class);
\r
58 register(ModelTypeRestImpl.class);
\r
59 register(ResourceDictionaryRestImpl.class);
\r
60 register(ServiceTemplateRestImpl.class);
\r
61 register(ServiceExceptionMapper.class);
\r
62 property(ServletProperties.FILTER_FORWARD_ON_404, true);
\r
68 * @return ObjectMapper
\r
72 public ObjectMapper objectMapper() {
\r
73 ObjectMapper objectMapper = new ObjectMapper();
\r
74 objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
\r
75 objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
\r
76 objectMapper.enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES);
\r
77 objectMapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
\r
78 objectMapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
\r
79 return objectMapper;
\r
85 private void configureSwagger() {
\r
86 register(ApiListingResource.class);
\r
87 register(SwaggerSerializers.class);
\r
88 BeanConfig beanConfig = new BeanConfig();
\r
89 beanConfig.setVersion("1.0.0");
\r
90 beanConfig.setSchemes(new String[]{"http", "https"});
\r
91 beanConfig.setBasePath("/api/controller-blueprints/v1");
\r
92 beanConfig.setTitle("Controller Blueprints API");
\r
93 beanConfig.setDescription("Controller BluePrints API");
\r
94 beanConfig.getSwagger().addConsumes(MediaType.APPLICATION_JSON);
\r
95 beanConfig.getSwagger().addProduces(MediaType.APPLICATION_JSON);
\r
96 beanConfig.setResourcePackage("org.onap.ccsdk.apps.controllerblueprints");
\r
97 beanConfig.setPrettyPrint(true);
\r
98 beanConfig.setScan(true);
\r