* A ListenersBroker working with Server-Sent Events.
*/
public static final class ServerSentEvents extends ListenersBroker {
+ public ServerSentEvents(final DOMDataBroker dataBroker) {
+ super(dataBroker);
+ }
+
@Override
public URI prepareUriByStreamName(final UriInfo uriInfo, final String streamName) {
return uriInfo.getBaseUriBuilder()
* A ListenersBroker working with WebSockets.
*/
public static final class WebSockets extends ListenersBroker {
+ public WebSockets(final DOMDataBroker dataBroker) {
+ super(dataBroker);
+ }
+
@Override
public URI prepareUriByStreamName(final UriInfo uriInfo, final String streamName) {
final var scheme = switch (uriInfo.getAbsolutePath().getScheme()) {
NodeIdentifier.create(QName.create(CreateDataChangeEventSubscriptionOutput.QNAME, "stream-name").intern());
private final ConcurrentMap<String, AbstractStream<?>> streams = new ConcurrentHashMap<>();
+ private final DOMDataBroker dataBroker;
- private ListenersBroker() {
- // Hidden on purpose
+ private ListenersBroker(final DOMDataBroker dataBroker) {
+ this.dataBroker = requireNonNull(dataBroker);
}
/**
*
* @param stream Stream to remove
*/
- final void removeStream(final DOMDataBroker dataBroker, final AbstractStream<?> stream) {
+ final void removeStream(final AbstractStream<?> stream) {
// Defensive check to see if we are still tracking the stream
final var streamName = stream.getStreamName();
if (streams.get(streamName) != stream) {
//
// final var dataBroker = handlersHolder.dataBroker();
// final var schemaHandler = handlersHolder.databindProvider();
-// listener.setCloseVars(dataBroker, schemaHandler);
+// listener.setCloseVars(schemaHandler);
// listener.listen(dataBroker);
//
// final var uri = prepareUriByStreamName(uriInfo, streamName);
// notificationListenerAdapter.setQueryParams(notificationQueryParams);
// notificationListenerAdapter.listen(handlersHolder.notificationService());
// final DOMDataBroker dataBroker = handlersHolder.dataBroker();
-// notificationListenerAdapter.setCloseVars(dataBroker, handlersHolder.databindProvider());
+// notificationListenerAdapter.setCloseVars(handlersHolder.databindProvider());
// final MapEntryNode mapToStreams = RestconfStateStreams.notificationStreamEntry(streamName,
// notificationListenerAdapter.qnames(), notificationListenerAdapter.getOutputType(), uri);
//
private static EffectiveModelContext SCHEMA_CONTEXT;
- private final ListenersBroker listenersBroker = new ListenersBroker.ServerSentEvents();
private DataBroker dataBroker;
private DOMDataBroker domDataBroker;
private DatabindProvider databindProvider;
+ private ListenersBroker listenersBroker;
@BeforeClass
public static void beforeClass() {
dataBroker = getDataBroker();
domDataBroker = getDomBroker();
databindProvider = () -> DatabindContext.ofModel(SCHEMA_CONTEXT);
+ listenersBroker = new ListenersBroker.ServerSentEvents(domDataBroker);
}
class ListenerAdapterTester extends ListenerAdapter {
@Test
public void testJsonNotifsLeaves() throws Exception {
- ListenerAdapterTester adapter = new ListenerAdapterTester(PATCH_CONT_YIID, "Casey", NotificationOutputType.JSON,
+ var adapter = new ListenerAdapterTester(PATCH_CONT_YIID, "Casey", NotificationOutputType.JSON,
true, false, false, false, listenersBroker);
- adapter.setCloseVars(domDataBroker, databindProvider);
+ adapter.setCloseVars(databindProvider);
final var changeService = domDataBroker.getExtensions().getInstance(DOMDataTreeChangeService.class);
final var root = new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, PATCH_CONT_YIID);
changeService.registerDataTreeChangeListener(root, adapter);
- WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
+ var writeTransaction = dataBroker.newWriteOnlyTransaction();
final var iid = InstanceIdentifier.create(PatchCont.class);
writeTransaction.put(LogicalDatastoreType.CONFIGURATION, iid, new PatchContBuilder()
.addAugmentation(new PatchCont1Builder()
@Test
public void testJsonNotifsChangedLeaves() throws Exception {
- ListenerAdapterTester adapter = new ListenerAdapterTester(PATCH_CONT_YIID, "Casey", NotificationOutputType.JSON,
+ var adapter = new ListenerAdapterTester(PATCH_CONT_YIID, "Casey", NotificationOutputType.JSON,
false, false, true, false, listenersBroker);
- adapter.setCloseVars(domDataBroker, databindProvider);
+ adapter.setCloseVars(databindProvider);
final var changeService = domDataBroker.getExtensions().getInstance(DOMDataTreeChangeService.class);
final var root = new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, PATCH_CONT_YIID);
changeService.registerDataTreeChangeListener(root, adapter);
- WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
+ var writeTransaction = dataBroker.newWriteOnlyTransaction();
final var iid = InstanceIdentifier.create(PatchCont.class);
writeTransaction.put(LogicalDatastoreType.CONFIGURATION, iid, new PatchContBuilder()
.addAugmentation(new PatchCont1Builder()
public void testJsonChildNodesOnly() throws Exception {
final var adapter = new ListenerAdapterTester(PATCH_CONT_YIID, "Casey",
NotificationOutputType.JSON, false, false, false, true, listenersBroker);
- adapter.setCloseVars(domDataBroker, databindProvider);
+ adapter.setCloseVars(databindProvider);
final var changeService = domDataBroker.getExtensions().getInstance(DOMDataTreeChangeService.class);
final var root = new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, PATCH_CONT_YIID);
@Test
public void testXmlLeavesOnly() throws Exception {
- ListenerAdapterTester adapter = new ListenerAdapterTester(PATCH_CONT_YIID, "Casey", NotificationOutputType.XML,
+ var adapter = new ListenerAdapterTester(PATCH_CONT_YIID, "Casey", NotificationOutputType.XML,
true, false, false, false, listenersBroker);
- adapter.setCloseVars(domDataBroker, databindProvider);
+ adapter.setCloseVars(databindProvider);
final var changeService = domDataBroker.getExtensions().getInstance(DOMDataTreeChangeService.class);
final var root = new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, PATCH_CONT_YIID);
changeService.registerDataTreeChangeListener(root, adapter);
- WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
+ var writeTransaction = dataBroker.newWriteOnlyTransaction();
final var iid = InstanceIdentifier.create(PatchCont.class);
writeTransaction.put(LogicalDatastoreType.CONFIGURATION, iid, new PatchContBuilder()
.addAugmentation(new PatchCont1Builder()
@Test
public void testXmlChangedLeavesOnly() throws Exception {
- ListenerAdapterTester adapter = new ListenerAdapterTester(PATCH_CONT_YIID, "Casey", NotificationOutputType.XML,
+ var adapter = new ListenerAdapterTester(PATCH_CONT_YIID, "Casey", NotificationOutputType.XML,
false, false, true, false, listenersBroker);
- adapter.setCloseVars(domDataBroker, databindProvider);
+ adapter.setCloseVars(databindProvider);
final var changeService = domDataBroker.getExtensions().getInstance(DOMDataTreeChangeService.class);
final var root = new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, PATCH_CONT_YIID);
public void testXmlChildNodesOnly() throws Exception {
final var adapter = new ListenerAdapterTester(PATCH_CONT_YIID, "Casey",
NotificationOutputType.XML, false, false, false, true, listenersBroker);
- adapter.setCloseVars(domDataBroker, databindProvider);
+ adapter.setCloseVars(databindProvider);
final var changeService = domDataBroker.getExtensions().getInstance(DOMDataTreeChangeService.class);
final var root = new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, PATCH_CONT_YIID);
final String jsonNotifCreate, final String jsonNotifUpdate, final String jsonNotifDelete) throws Exception {
final var adapter = new ListenerAdapterTester(pathYiid, "Casey",
NotificationOutputType.JSON, false, skipData, false, false, listenersBroker);
- adapter.setCloseVars(domDataBroker, databindProvider);
+ adapter.setCloseVars(databindProvider);
final var changeService = domDataBroker.getExtensions().getInstance(DOMDataTreeChangeService.class);
final var root = new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, pathYiid);
changeService.registerDataTreeChangeListener(root, adapter);
- WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
- MyList1Builder builder = new MyList1Builder().setMyLeaf11("Jed").setName("Althea");
+ var writeTransaction = dataBroker.newWriteOnlyTransaction();
+ var builder = new MyList1Builder().setMyLeaf11("Jed").setName("Althea");
final var iid = InstanceIdentifier.create(PatchCont.class)
.child(MyList1.class, new MyList1Key("Althea"));
writeTransaction.put(LogicalDatastoreType.CONFIGURATION, iid, builder.build());
final String xmlNotifCreate, final String xmlNotifUpdate, final String xmlNotifDelete) throws Exception {
final var adapter = new ListenerAdapterTester(pathYiid, "Casey", NotificationOutputType.XML,
false, skipData, false, false, listenersBroker);
- adapter.setCloseVars(domDataBroker, databindProvider);
+ adapter.setCloseVars(databindProvider);
final var changeService = domDataBroker.getExtensions().getInstance(DOMDataTreeChangeService.class);
final var root = new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, pathYiid);
changeService.registerDataTreeChangeListener(root, adapter);
- WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
- MyList1Builder builder = new MyList1Builder().setMyLeaf11("Jed").setName("Althea");
+ var writeTransaction = dataBroker.newWriteOnlyTransaction();
+ var builder = new MyList1Builder().setMyLeaf11("Jed").setName("Althea");
final var iid = InstanceIdentifier.create(PatchCont.class)
.child(MyList1.class, new MyList1Key("Althea"));
writeTransaction.put(LogicalDatastoreType.CONFIGURATION, iid, builder.build());