import org.opendaylight.aaa.web.servlet.ServletSupport;
import org.opendaylight.restconf.nb.jaxrs.JaxRsRestconf;
import org.opendaylight.restconf.nb.jaxrs.JaxRsWebHostMetadata;
-import org.opendaylight.restconf.nb.rfc8040.jersey.providers.JsonNormalizedNodeBodyWriter;
-import org.opendaylight.restconf.nb.rfc8040.jersey.providers.JsonPatchStatusBodyWriter;
-import org.opendaylight.restconf.nb.rfc8040.jersey.providers.XmlNormalizedNodeBodyWriter;
-import org.opendaylight.restconf.nb.rfc8040.jersey.providers.XmlPatchStatusBodyWriter;
+import org.opendaylight.restconf.nb.jaxrs.JsonJaxRsFormattableBodyWriter;
+import org.opendaylight.restconf.nb.jaxrs.XmlJaxRsFormattableBodyWriter;
import org.opendaylight.restconf.nb.rfc8040.jersey.providers.errors.RestconfDocumentedExceptionMapper;
import org.opendaylight.restconf.nb.rfc8040.streams.RestconfStreamServletFactory;
import org.opendaylight.restconf.server.api.RestconfServer;
@Reference final RestconfStreamServletFactory servletFactory) throws ServletException {
final var restconfBuilder = WebContext.builder()
.name("RFC8040 RESTCONF")
- .contextPath("/" + URLConstants.BASE_PATH)
+ .contextPath("/" + servletFactory.restconf())
.supportsSessions(false)
.addServlet(ServletDetails.builder()
.addUrlPattern("/*")
.servlet(servletSupport.createHttpServletBuilder(
new Application() {
- @Override
- public Set<Class<?>> getClasses() {
- return Set.of(
- JsonNormalizedNodeBodyWriter.class, XmlNormalizedNodeBodyWriter.class,
- JsonPatchStatusBodyWriter.class, XmlPatchStatusBodyWriter.class);
- }
-
@Override
public Set<Object> getSingletons() {
+ final var errorTagMapping = servletFactory.errorTagMapping();
+
return Set.of(
- new RestconfDocumentedExceptionMapper(databindProvider),
- new JaxRsRestconf(server));
+ new JsonJaxRsFormattableBodyWriter(), new XmlJaxRsFormattableBodyWriter(),
+ new RestconfDocumentedExceptionMapper(databindProvider, errorTagMapping),
+ new JaxRsRestconf(server, errorTagMapping, servletFactory.prettyPrint()));
}
}).build())
.asyncSupported(true)
new Application() {
@Override
public Set<Object> getSingletons() {
- return Set.of(new JaxRsWebHostMetadata(URLConstants.BASE_PATH));
+ return Set.of(new JaxRsWebHostMetadata(servletFactory.restconf()));
}
}).build())
.name("Rootfound")