package camelinaction.server; import java.util.HashSet; import java.util.Set; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; import camelinaction.RestOrderService; import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import org.apache.cxf.feature.LoggingFeature; import org.apache.cxf.jaxrs.swagger.Swagger2Feature; /** * JAX-RS application that setup the JAX-RS resources: * - RestOrderService * - Swagger * - Jackson for JSOn * - Optional logging */ @ApplicationPath("/") public class RestOrderApplication extends Application { private final RestOrderService orderService; public RestOrderApplication(RestOrderService orderService) { this.orderService = orderService; } @Override public Set<Object> getSingletons() { Swagger2Feature swagger = new Swagger2Feature(); swagger.setBasePath("/"); swagger.setHost("localhost:9000"); swagger.setTitle("Order Service"); swagger.setDescription("Rider Auto Parts Order Service"); swagger.setVersion("2.0.0"); swagger.setContact("rider@autoparts.com"); swagger.setPrettyPrint(true); Set<Object> answer = new HashSet<>(); answer.add(orderService); answer.add(new JacksonJsonProvider()); answer.add(swagger); // to turn on verbose logging answer.add(new LoggingFeature()); return answer; } }