Inline RestconfApplication 08/109108/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 28 Nov 2023 17:25:44 +0000 (18:25 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 28 Nov 2023 17:25:56 +0000 (18:25 +0100)
Use an anonymous Application subclass to initialize the servlet, which
makes it obvious JaxRsNorthbound has now mdsal.dom.api dependencies.

JIRA: NETCONF-773
Change-Id: I25aea4b6fdfc3d6d3561387956f2e92ff057c6e7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/JaxRsNorthbound.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/RestconfApplication.java [deleted file]

index 8722d6b66d62e58576e5fdbf309b1c5d91d8f108..ef6f63d85349be0a789bc5f2af73a6ed44583366 100644 (file)
@@ -19,9 +19,13 @@ import org.opendaylight.aaa.web.WebContext;
 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.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.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;
@@ -44,7 +48,6 @@ public final class JaxRsNorthbound implements AutoCloseable {
     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()
@@ -54,8 +57,21 @@ public final class JaxRsNorthbound implements AutoCloseable {
             .addServlet(ServletDetails.builder()
                 .addUrlPattern("/*")
                 .servlet(servletSupport.createHttpServletBuilder(
-                    new RestconfApplication(databindProvider, server, mountPointService, schemaService))
-                    .build())
+                    new Application() {
+                        @Override
+                        public Set<Class<?>> getClasses() {
+                            return Set.of(
+                                JsonNormalizedNodeBodyWriter.class, XmlNormalizedNodeBodyWriter.class,
+                                JsonPatchStatusBodyWriter.class, XmlPatchStatusBodyWriter.class);
+                        }
+
+                        @Override
+                        public Set<Object> getSingletons() {
+                            return Set.of(
+                                new RestconfDocumentedExceptionMapper(databindProvider),
+                                new JaxRsRestconf(server));
+                        }
+                    }).build())
                 .asyncSupported(true)
                 .build())
             .addServlet(ServletDetails.builder()
diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/RestconfApplication.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/RestconfApplication.java
deleted file mode 100644 (file)
index 1228abc..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.restconf.nb.rfc8040;
-
-import java.util.Set;
-import javax.ws.rs.core.Application;
-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.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.rfc8040.jersey.providers.errors.RestconfDocumentedExceptionMapper;
-import org.opendaylight.restconf.server.api.RestconfServer;
-import org.opendaylight.restconf.server.spi.DatabindProvider;
-
-final class RestconfApplication extends Application {
-    private final Set<Object> singletons;
-
-    RestconfApplication(final DatabindProvider databindProvider, final RestconfServer server,
-            final DOMMountPointService mountPointService, final DOMSchemaService domSchemaService) {
-        singletons = Set.of(
-            new RestconfDocumentedExceptionMapper(databindProvider),
-            new JaxRsRestconf(server));
-    }
-
-    @Override
-    public Set<Class<?>> getClasses() {
-        return Set.of(
-            JsonNormalizedNodeBodyWriter.class, XmlNormalizedNodeBodyWriter.class,
-            JsonPatchStatusBodyWriter.class, XmlPatchStatusBodyWriter.class);
-    }
-
-    @Override
-    public Set<Object> getSingletons() {
-        return singletons;
-    }
-}