Add WebContext names
[netconf.git] / restconf / sal-rest-docgen / src / main / java / org / opendaylight / netconf / sal / rest / doc / jaxrs / WebInitializer.java
index d33524f87dbabad5ae17add34988aeed2e109906..dcf80277a7eeda099e4768533b16132788ebfeb1 100644 (file)
@@ -12,33 +12,38 @@ import javax.ws.rs.core.Application;
 import org.opendaylight.aaa.web.ResourceDetails;
 import org.opendaylight.aaa.web.ServletDetails;
 import org.opendaylight.aaa.web.WebContext;
-import org.opendaylight.aaa.web.WebContextBuilder;
-import org.opendaylight.aaa.web.WebContextRegistration;
 import org.opendaylight.aaa.web.WebContextSecurer;
 import org.opendaylight.aaa.web.WebServer;
+import org.opendaylight.aaa.web.servlet.ServletSupport;
+import org.opendaylight.yangtools.concepts.Registration;
 
 /**
  * Initializes the wep app.
  *
  * @author Thomas Pantelis
  */
-public class WebInitializer {
-    private final WebContextRegistration registration;
+public final class WebInitializer implements AutoCloseable {
+    private final Registration registration;
 
-    public WebInitializer(WebServer webServer,  WebContextSecurer webContextSecurer, Application webApp)
-            throws ServletException {
-        WebContextBuilder webContextBuilder = WebContext.builder().contextPath("apidoc").supportsSessions(true)
-            .addServlet(ServletDetails.builder().servlet(
-                new com.sun.jersey.spi.container.servlet.ServletContainer(webApp))
-                    .addUrlPattern("/apis/*").addUrlPattern("/18/apis/*").build())
-            .addResource(ResourceDetails.builder().name("/explorer").build())
-            .addResource(ResourceDetails.builder().name("/18/explorer").build());
+    public WebInitializer(final WebServer webServer, final WebContextSecurer webContextSecurer,
+            final ServletSupport servletSupport, final Application webApp) throws ServletException {
+        var webContextBuilder = WebContext.builder()
+            .name("OpenAPI")
+            .contextPath("/apidoc")
+            .supportsSessions(true)
+            .addServlet(ServletDetails.builder()
+                .servlet(servletSupport.createHttpServletBuilder(webApp).build())
+                .addUrlPattern("/swagger2/apis/*")
+                .addUrlPattern("/openapi3/apis/*")
+                .build())
+            .addResource(ResourceDetails.builder().name("/explorer").build());
 
-        webContextSecurer.requireAuthentication(webContextBuilder, "/apis/*", "/18/apis/*");
+        webContextSecurer.requireAuthentication(webContextBuilder, "/swagger2/*", "/openapi3/*");
 
         registration = webServer.registerWebContext(webContextBuilder.build());
     }
 
+    @Override
     public void close() {
         registration.close();
     }