import org.opendaylight.mdsal.dom.api.DOMDataBroker;
import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
-import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction;
import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteOperations;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
import org.opendaylight.mdsal.dom.api.DOMNotificationListener;
import org.opendaylight.mdsal.dom.api.DOMNotificationService;
-import org.opendaylight.mdsal.dom.api.DOMTransactionChain;
import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
import org.opendaylight.restconf.common.errors.RestconfError.ErrorTag;
import org.opendaylight.restconf.common.errors.RestconfError.ErrorType;
String.format("Stream with name %s was not found.", streamName),
ErrorType.PROTOCOL, ErrorTag.UNKNOWN_ELEMENT));
- final DOMTransactionChain transactionChain = handlersHolder.getTransactionChainHandler().get();
- final DOMDataTreeReadWriteTransaction writeTransaction = transactionChain.newReadWriteTransaction();
final EffectiveModelContext schemaContext = handlersHolder.getSchemaHandler().get();
-
final URI uri = prepareUriByStreamName(uriInfo, streamName);
registerToListenNotification(notificationListenerAdapter, handlersHolder.getNotificationServiceHandler());
notificationListenerAdapter.setQueryParams(
notificationListenerAdapter.getSchemaPath().lastNodeIdentifier(),
schemaContext.getNotifications(), notificationQueryParams.getStart(),
notificationListenerAdapter.getOutputType(), uri);
+
+ final DOMDataTreeWriteTransaction writeTransaction = handlersHolder.getDataBroker().newWriteOnlyTransaction();
writeDataToDS(writeTransaction, mapToStreams);
submitData(writeTransaction);
- transactionChain.close();
return uri;
}
listener.setCloseVars(handlersHolder.getTransactionChainHandler(), handlersHolder.getSchemaHandler());
final LogicalDatastoreType datastoreType = LogicalDatastoreType.valueOf(datastoreParam);
- registration(datastoreType, listener, handlersHolder.getDataBroker());
+ final DOMDataBroker dataBroker = handlersHolder.getDataBroker();
+ registration(datastoreType, listener, dataBroker);
final URI uri = prepareUriByStreamName(uriInfo, streamName);
- final DOMTransactionChain transactionChain = handlersHolder.getTransactionChainHandler().get();
- final DOMDataTreeReadWriteTransaction writeTransaction = transactionChain.newReadWriteTransaction();
final EffectiveModelContext schemaContext = handlersHolder.getSchemaHandler().get();
final String serializedPath = IdentifierCodec.serialize(listener.getPath(), schemaContext);
final MapEntryNode mapToStreams =
RestconfMappingNodeUtil.mapDataChangeNotificationStreamByIetfRestconfMonitoring(listener.getPath(),
notificationQueryParams.getStart(), listener.getOutputType(), uri, schemaContext, serializedPath);
+ final DOMDataTreeWriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
writeDataToDS(writeTransaction, mapToStreams);
submitData(writeTransaction);
- transactionChain.close();
return uri;
}
mapToStreams);
}
- private static void submitData(final DOMDataTreeReadWriteTransaction readWriteTransaction) {
+ private static void submitData(final DOMDataTreeWriteTransaction readWriteTransaction) {
try {
readWriteTransaction.commit().get();
} catch (final InterruptedException | ExecutionException e) {
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
import com.google.common.collect.ImmutableClassToInstanceMap;
import java.io.FileNotFoundException;
import java.net.URISyntaxException;
import java.util.Collections;
import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.UriBuilder;
import javax.ws.rs.core.UriInfo;
import org.junit.AfterClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.dom.api.DOMDataBroker;
import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService;
-import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction;
import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
import org.opendaylight.mdsal.dom.api.DOMNotificationService;
import org.opendaylight.mdsal.dom.api.DOMSchemaService;
private TransactionChainHandler transactionHandler;
private SchemaContextHandler schemaHandler;
- @SuppressWarnings("unchecked")
@Before
public void setUp() throws FileNotFoundException, URISyntaxException {
final DOMTransactionChain domTx = mock(DOMTransactionChain.class);
final DOMDataTreeWriteTransaction wTx = mock(DOMDataTreeWriteTransaction.class);
- when(domTx.newWriteOnlyTransaction()).thenReturn(wTx);
- final DOMDataTreeReadWriteTransaction rwTx = mock(DOMDataTreeReadWriteTransaction.class);
- doReturn(CommitInfo.emptyFluentFuture()).when(rwTx).commit();
- when(domTx.newReadWriteTransaction()).thenReturn(rwTx);
+ doReturn(wTx).when(domTx).newWriteOnlyTransaction();
+ doReturn(wTx).when(dataBroker).newWriteOnlyTransaction();
doReturn(CommitInfo.emptyFluentFuture()).when(wTx).commit();
doReturn(domTx).when(dataBroker).createTransactionChain(any());
doReturn(ImmutableClassToInstanceMap.of(DOMDataTreeChangeService.class, dataTreeChangeService))
.when(dataBroker).getExtensions();
- final MultivaluedMap<String, String> map = mock(MultivaluedMap.class);
- final Set<Entry<String, List<String>>> set = new HashSet<>();
- when(map.entrySet()).thenReturn(set);
- when(this.uriInfo.getQueryParameters()).thenReturn(map);
- final UriBuilder baseUriBuilder = new LocalUriInfo().getBaseUriBuilder();
- when(uriInfo.getBaseUriBuilder()).thenReturn(baseUriBuilder);
- final URI uri = new URI("http://127.0.0.1/" + URI);
- when(uriInfo.getAbsolutePath()).thenReturn(uri);
- this.schemaHandler.onModelContextUpdated(
- YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles("/notifications")));
+ doReturn(new MultivaluedHashMap<>()).when(uriInfo).getQueryParameters();
+ doReturn(new LocalUriInfo().getBaseUriBuilder()).when(uriInfo).getBaseUriBuilder();
+ doReturn(new URI("http://127.0.0.1/" + URI)).when(uriInfo).getAbsolutePath();
+ schemaHandler.onModelContextUpdated(
+ YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles("/notifications")));
configurationWs = new Configuration(0, 100, 10, false);
configurationSse = new Configuration(0, 100, 10, true);
}
final Map<String, ListenerAdapter> listenersByStreamNameSetter = new HashMap<>();
final ListenerAdapter adapter = mock(ListenerAdapter.class);
final YangInstanceIdentifier yiid = mock(YangInstanceIdentifier.class);
- Mockito.when(adapter.getPath()).thenReturn(yiid);
- Mockito.when(adapter.getOutputType()).thenReturn("JSON");
+ doReturn(yiid).when(adapter).getPath();
+ doReturn("JSON").when(adapter).getOutputType();
listenersByStreamNameSetter.put(
"data-change-event-subscription/toaster:toaster/toasterStatus/datastore=OPERATIONAL/scope=ONE",
adapter);