import org.opendaylight.aaa.web.WebContextSecurer;
import org.opendaylight.aaa.web.WebServer;
import org.opendaylight.aaa.web.servlet.ServletSupport;
-import org.opendaylight.mdsal.dom.api.DOMMountPointService;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
+import org.opendaylight.restconf.nb.jaxrs.JaxRsRestconf;
import org.opendaylight.restconf.nb.jaxrs.JaxRsWebHostMetadata;
+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;
import org.opendaylight.restconf.server.spi.DatabindProvider;
public JaxRsNorthbound(@Reference final WebServer webServer, @Reference final WebContextSecurer webContextSecurer,
@Reference final ServletSupport servletSupport,
@Reference final CustomFilterAdapterConfiguration filterAdapterConfiguration,
- @Reference final DOMMountPointService mountPointService, @Reference final DOMSchemaService schemaService,
@Reference final DatabindProvider databindProvider, @Reference final RestconfServer server,
@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 RestconfApplication(databindProvider, server, mountPointService, schemaService))
- .build())
+ new Application() {
+ @Override
+ public Set<Object> getSingletons() {
+ final var errorTagMapping = servletFactory.errorTagMapping();
+
+ return Set.of(
+ new JsonJaxRsFormattableBodyWriter(), new XmlJaxRsFormattableBodyWriter(),
+ new RestconfDocumentedExceptionMapper(databindProvider, errorTagMapping),
+ new JaxRsRestconf(server, errorTagMapping, servletFactory.prettyPrint()));
+ }
+ }).build())
.asyncSupported(true)
.build())
.addServlet(ServletDetails.builder()
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")