Introduce HttpStatusCode
[netconf.git] / restconf / restconf-nb / src / main / java / org / opendaylight / restconf / nb / rfc8040 / streams / DefaultRestconfStreamServletFactory.java
index 5c02131a36ed73746f90d7fdc5ffc29b5a2d3ee9..9b9a15ea079eaa6ec8ef2b75a955554b125511e9 100644 (file)
@@ -16,6 +16,7 @@ import javax.ws.rs.core.Application;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.aaa.web.servlet.ServletSupport;
 import org.opendaylight.restconf.api.query.PrettyPrintParam;
+import org.opendaylight.restconf.nb.rfc8040.ErrorTagMapping;
 import org.opendaylight.restconf.server.spi.RestconfStream;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
@@ -45,8 +46,10 @@ public final class DefaultRestconfStreamServletFactory implements RestconfStream
     private static final String PROP_STREAMS_CONFIGURATION = ".streamsConfiguration";
     private static final String PROP_RESTCONF = ".restconf";
     private static final String PROP_PRETTY_PRINT = ".prettyPrint";
+    private static final String PROP_ERROR_TAG_MAPPING = ".errorTagMapping";
 
     private final @NonNull String restconf;
+    private final @NonNull ErrorTagMapping errorTagMapping;
     private final @NonNull PrettyPrintParam prettyPrint;
     private final RestconfStream.Registry streamRegistry;
     private final ServletSupport servletSupport;
@@ -57,8 +60,8 @@ public final class DefaultRestconfStreamServletFactory implements RestconfStream
 
     public DefaultRestconfStreamServletFactory(final ServletSupport servletSupport, final String restconf,
             final RestconfStream.Registry streamRegistry, final StreamsConfiguration streamsConfiguration,
-            final PrettyPrintParam prettyPrint, final String namePrefix, final int corePoolSize,
-            final boolean useWebsockets) {
+            final ErrorTagMapping errorTagMapping, final PrettyPrintParam prettyPrint, final String namePrefix,
+            final int corePoolSize, final boolean useWebsockets) {
         this.servletSupport = requireNonNull(servletSupport);
         this.restconf = requireNonNull(restconf);
         if (restconf.endsWith("/")) {
@@ -66,6 +69,7 @@ public final class DefaultRestconfStreamServletFactory implements RestconfStream
         }
         this.streamRegistry = requireNonNull(streamRegistry);
         this.streamsConfiguration = requireNonNull(streamsConfiguration);
+        this.errorTagMapping = requireNonNull(errorTagMapping);
         this.prettyPrint = requireNonNull(prettyPrint);
         pingExecutor = new DefaultPingExecutor(namePrefix, corePoolSize);
         this.useWebsockets = useWebsockets;
@@ -82,6 +86,7 @@ public final class DefaultRestconfStreamServletFactory implements RestconfStream
         this(servletSupport, (String) props.get(PROP_RESTCONF),
             (RestconfStream.Registry) props.get(PROP_STREAM_REGISTRY),
             (StreamsConfiguration) props.get(PROP_STREAMS_CONFIGURATION),
+            (ErrorTagMapping) props.get(PROP_ERROR_TAG_MAPPING),
             (PrettyPrintParam) props.get(PROP_PRETTY_PRINT),
             (String) props.get(PROP_NAME_PREFIX), (int) requireNonNull(props.get(PROP_CORE_POOL_SIZE)),
             (boolean) requireNonNull(props.get(PROP_USE_WEBSOCKETS)));
@@ -109,6 +114,11 @@ public final class DefaultRestconfStreamServletFactory implements RestconfStream
         return prettyPrint;
     }
 
+    @Override
+    public ErrorTagMapping errorTagMapping() {
+        return errorTagMapping;
+    }
+
     @Override
     @Deactivate
     public void close() {
@@ -116,11 +126,12 @@ public final class DefaultRestconfStreamServletFactory implements RestconfStream
     }
 
     public static Map<String, ?> props(final String restconf, final RestconfStream.Registry streamRegistry,
-            final PrettyPrintParam prettyPrint, final boolean useSSE, final StreamsConfiguration streamsConfiguration,
-            final String namePrefix, final int corePoolSize) {
+            final ErrorTagMapping errorTagMapping, final PrettyPrintParam prettyPrint, final boolean useSSE,
+            final StreamsConfiguration streamsConfiguration, final String namePrefix, final int corePoolSize) {
         return Map.of(
             PROP_RESTCONF, restconf,
             PROP_STREAM_REGISTRY, streamRegistry,
+            PROP_ERROR_TAG_MAPPING, errorTagMapping,
             PROP_PRETTY_PRINT, prettyPrint,
             PROP_USE_WEBSOCKETS, !useSSE,
             PROP_STREAMS_CONFIGURATION, streamsConfiguration,