Implement RESTCONF Extensibility (discovery)
[netconf.git] / restconf / restconf-nb-rfc8040 / src / main / java / org / opendaylight / restconf / nb / rfc8040 / web / WebInitializer.java
index c8cfb1c613aa27a1d4d2eef670a4c7f2f784411d..ca6aa983f9ef5bc993f1f685a9e4ac11e5bee50a 100644 (file)
@@ -25,6 +25,7 @@ import org.opendaylight.aaa.web.WebServer;
 import org.opendaylight.aaa.web.servlet.ServletSupport;
 import org.opendaylight.restconf.nb.rfc8040.RestconfApplication;
 import org.opendaylight.restconf.nb.rfc8040.RestconfNotifApplication;
+import org.opendaylight.restconf.nb.rfc8040.RootFoundApplication;
 import org.opendaylight.restconf.nb.rfc8040.rests.utils.RestconfStreamsConstants;
 import org.opendaylight.restconf.nb.rfc8040.streams.websockets.WebSocketInitializer;
 import org.opendaylight.restconf.nb.rfc8040.utils.RestconfConstants;
@@ -44,15 +45,22 @@ public class WebInitializer {
             @Reference ServletSupport servletSupport, RestconfApplication webApp,RestconfNotifApplication webAppNotif,
             @Reference CustomFilterAdapterConfiguration customFilterAdapterConfig,
             WebSocketInitializer webSocketServlet) throws ServletException {
-        WebContextBuilder webContextBuilder = WebContext.builder().contextPath(RestconfConstants.BASE_URI_PATTERN)
+        WebContextBuilder webContextBuilder = WebContext.builder().contextPath("/")
                 .supportsSessions(false)
                 .addServlet(ServletDetails.builder().servlet(servletSupport.createHttpServletBuilder(webApp).build())
-                        .addUrlPattern("/*").build())
+                        .addUrlPattern(RestconfConstants.BASE_URI_PATTERN + "/*").build())
                 .addServlet(ServletDetails.builder().servlet(servletSupport.createHttpServletBuilder(webAppNotif)
-                        .build()).asyncSupported(true).addUrlPattern("/notif/*").name("notificationServlet").build())
+                        .build()).asyncSupported(true).addUrlPattern(RestconfConstants.BASE_URI_PATTERN + "/notif/*")
+                        .name("notificationServlet").build())
                 .addServlet(ServletDetails.builder().servlet(webSocketServlet).addAllUrlPatterns(Lists.newArrayList(
-                        RestconfStreamsConstants.DATA_CHANGE_EVENT_STREAM_PATTERN,
-                        RestconfStreamsConstants.YANG_NOTIFICATION_STREAM_PATTERN)).build())
+                        RestconfConstants.BASE_URI_PATTERN + RestconfStreamsConstants.DATA_CHANGE_EVENT_STREAM_PATTERN,
+                        RestconfConstants.BASE_URI_PATTERN + RestconfStreamsConstants.YANG_NOTIFICATION_STREAM_PATTERN))
+                        .build())
+
+                .addServlet(ServletDetails.builder().servlet(servletSupport.createHttpServletBuilder(
+                            new RootFoundApplication()).build())
+                        .addUrlPattern(".well-known/*").name("Rootfound").build())
+
                 // Allows user to add javax.servlet.Filter(s) in front of REST services
                 .addFilter(FilterDetails.builder().filter(new CustomFilterAdapter(customFilterAdapterConfig))
                     .addUrlPattern("/*").asyncSupported(true).build());