- @Reference final DOMActionService actionService, @Reference final DOMDataBroker dataBroker,
- @Reference final DOMMountPointService mountPointService,
- @Reference final DOMNotificationService notificationService, @Reference final DOMRpcService rpcService,
- @Reference final DOMSchemaService schemaService, @Reference final DatabindProvider databindProvider,
- @Reference final MdsalRestconfServer server, final Configuration configuration) throws ServletException {
- this(webServer, webContextSecurer, servletSupport, filterAdapterConfiguration, actionService, dataBroker,
- mountPointService, notificationService, rpcService, schemaService, databindProvider, server,
- configuration.ping$_$executor$_$name$_$prefix(), configuration.max$_$thread$_$count(),
- new StreamsConfiguration(configuration.maximum$_$fragment$_$length(),
- configuration.idle$_$timeout(), configuration.heartbeat$_$interval(), configuration.use$_$sse()));
- }
-
- public JaxRsNorthbound(final WebServer webServer, final WebContextSecurer webContextSecurer,
- final ServletSupport servletSupport, final CustomFilterAdapterConfiguration filterAdapterConfiguration,
- final DOMActionService actionService, final DOMDataBroker dataBroker,
- final DOMMountPointService mountPointService, final DOMNotificationService notificationService,
- final DOMRpcService rpcService, final DOMSchemaService schemaService,
- final DatabindProvider databindProvider, final MdsalRestconfServer server, final String pingNamePrefix,
- final int pingMaxThreadCount, final StreamsConfiguration streamsConfiguration) throws ServletException {
- final var scheduledThreadPool = new ScheduledThreadPoolWrapper(pingMaxThreadCount,
- new NamingThreadPoolFactory(pingNamePrefix));
-
- final ListenersBroker listenersBroker;
- final ServletDetails streamServlet;
- if (streamsConfiguration.useSSE()) {
- listenersBroker = new ListenersBroker.ServerSentEvents();
- streamServlet = ServletDetails.builder()
- .addUrlPattern("/" + URLConstants.SSE_SUBPATH + "/*")
- .servlet(servletSupport.createHttpServletBuilder(
- new DataStreamApplication(databindProvider,
- new RestconfDataStreamServiceImpl(scheduledThreadPool, listenersBroker, streamsConfiguration)))
- .build())
- .name("notificationServlet")
- .asyncSupported(true)
- .build();
- } else {
- listenersBroker = new ListenersBroker.WebSockets();
- streamServlet = ServletDetails.builder()
- .addUrlPattern("/" + RestconfStreamsConstants.DATA_SUBSCRIPTION + "/*")
- .addUrlPattern("/" + RestconfStreamsConstants.NOTIFICATION_STREAM + "/*")
- .addUrlPattern("/" + RestconfStreamsConstants.DEVICE_NOTIFICATION_STREAM + "/*")
- .servlet(new WebSocketInitializer(scheduledThreadPool, listenersBroker, streamsConfiguration))
- .build();
- }
-