* 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.utils.mapping;
+package org.opendaylight.restconf.nb.rfc8040.monitoring;
import static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.restconf.monitoring.rev170126.$YangModuleInfoImpl.qnameOf;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
/**
- * Util class for mapping nodes.
+ * Utilities for creating the content of {@code /ietf-restconf-monitoring:restconf-state/streams}.
*/
-public final class RestconfMappingNodeUtil {
+public final class RestconfStateStreams {
@VisibleForTesting
static final QName DESCRIPTION_QNAME = qnameOf("description");
@VisibleForTesting
@VisibleForTesting
static final QName REPLAY_LOG_CREATION_TIME = qnameOf("replay-log-creation-time");
- private RestconfMappingNodeUtil() {
+ private RestconfStateStreams() {
// Hidden on purpose
}
* @return mapped data of notification - map entry node if parent exists,
* container streams with list and map entry node if not
*/
- public static MapEntryNode mapYangNotificationStreamByIetfRestconfMonitoring(final QName notifiQName,
+ public static MapEntryNode notificationStreamEntry(final QName notifiQName,
final Collection<? extends NotificationDefinition> notifications, final Instant start,
final String outputType, final URI uri) {
for (final NotificationDefinition notificationDefinition : notifications) {
* @return mapped data of notification - map entry node if parent exists,
* container streams with list and map entry node if not
*/
- public static MapEntryNode mapDataChangeNotificationStreamByIetfRestconfMonitoring(
- final YangInstanceIdentifier path, final Instant start, final String outputType, final URI uri,
- final EffectiveModelContext schemaContext, final String streamName) {
+ public static MapEntryNode dataChangeStreamEntry(final YangInstanceIdentifier path, final Instant start,
+ final String outputType, final URI uri, final EffectiveModelContext schemaContext,
+ final String streamName) {
final SchemaNode schemaNode = ParserIdentifier.toInstanceIdentifier(
IdentifierCodec.serialize(path, schemaContext), schemaContext, Optional.empty()).getSchemaNode();
final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> streamEntry =
import org.opendaylight.restconf.nb.rfc8040.databind.jaxrs.QueryParams;
import org.opendaylight.restconf.nb.rfc8040.legacy.NormalizedNodePayload;
import org.opendaylight.restconf.nb.rfc8040.legacy.QueryParameters;
+import org.opendaylight.restconf.nb.rfc8040.monitoring.RestconfStateStreams;
import org.opendaylight.restconf.nb.rfc8040.rests.services.api.RestconfDataService;
import org.opendaylight.restconf.nb.rfc8040.rests.services.api.RestconfStreamsSubscriptionService;
import org.opendaylight.restconf.nb.rfc8040.rests.transactions.MdsalRestconfStrategy;
import org.opendaylight.restconf.nb.rfc8040.streams.StreamsConfiguration;
import org.opendaylight.restconf.nb.rfc8040.streams.listeners.ListenersBroker;
import org.opendaylight.restconf.nb.rfc8040.streams.listeners.NotificationListenerAdapter;
-import org.opendaylight.restconf.nb.rfc8040.utils.mapping.RestconfMappingNodeUtil;
import org.opendaylight.restconf.nb.rfc8040.utils.parser.ParserIdentifier;
import org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.NotificationOutputTypeGrouping.NotificationOutputType;
import org.opendaylight.yangtools.yang.common.ErrorTag;
private void writeNotificationStreamToDatastore(final EffectiveModelContext schemaContext,
final UriInfo uriInfo, final DOMDataTreeWriteOperations tx, final NotificationListenerAdapter listener) {
final URI uri = streamUtils.prepareUriByStreamName(uriInfo, listener.getStreamName());
- final MapEntryNode mapToStreams = RestconfMappingNodeUtil.mapYangNotificationStreamByIetfRestconfMonitoring(
+ final MapEntryNode mapToStreams = RestconfStateStreams.notificationStreamEntry(
listener.getSchemaPath().lastNodeIdentifier(), schemaContext.getNotifications(), null,
listener.getOutputType(), uri);
import org.opendaylight.restconf.nb.rfc8040.NotificationQueryParams;
import org.opendaylight.restconf.nb.rfc8040.Rfc8040;
import org.opendaylight.restconf.nb.rfc8040.databind.DatabindProvider;
+import org.opendaylight.restconf.nb.rfc8040.monitoring.RestconfStateStreams;
import org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfStreamsSubscriptionServiceImpl.HandlersHolder;
import org.opendaylight.restconf.nb.rfc8040.rests.utils.RestconfStreamsConstants;
import org.opendaylight.restconf.nb.rfc8040.streams.listeners.ListenerAdapter;
import org.opendaylight.restconf.nb.rfc8040.streams.listeners.ListenersBroker;
import org.opendaylight.restconf.nb.rfc8040.streams.listeners.NotificationListenerAdapter;
import org.opendaylight.restconf.nb.rfc8040.utils.RestconfConstants;
-import org.opendaylight.restconf.nb.rfc8040.utils.mapping.RestconfMappingNodeUtil;
import org.opendaylight.restconf.nb.rfc8040.utils.parser.IdentifierCodec;
import org.opendaylight.yangtools.yang.common.ErrorTag;
import org.opendaylight.yangtools.yang.common.ErrorType;
notificationListenerAdapter.listen(handlersHolder.getNotificationServiceHandler());
final DOMDataBroker dataBroker = handlersHolder.getDataBroker();
notificationListenerAdapter.setCloseVars(dataBroker, handlersHolder.getDatabindProvider());
- final MapEntryNode mapToStreams = RestconfMappingNodeUtil.mapYangNotificationStreamByIetfRestconfMonitoring(
+ final MapEntryNode mapToStreams = RestconfStateStreams.notificationStreamEntry(
notificationListenerAdapter.getSchemaPath().lastNodeIdentifier(),
schemaContext.getNotifications(), notificationListenerAdapter.getStart(),
notificationListenerAdapter.getOutputType(), uri);
final EffectiveModelContext schemaContext = schemaHandler.currentContext().modelContext();
final String serializedPath = IdentifierCodec.serialize(listener.getPath(), schemaContext);
- final MapEntryNode mapToStreams =
- RestconfMappingNodeUtil.mapDataChangeNotificationStreamByIetfRestconfMonitoring(listener.getPath(),
+ final MapEntryNode mapToStreams = RestconfStateStreams.dataChangeStreamEntry(listener.getPath(),
listener.getStart(), listener.getOutputType(), uri, schemaContext, serializedPath);
final DOMDataTreeWriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
writeDataToDS(writeTransaction, mapToStreams);
* 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.utils.mapping;
+package org.opendaylight.restconf.nb.rfc8040.monitoring;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.slf4j.LoggerFactory;
/**
- * Unit tests for {@link RestconfMappingNodeUtil}.
+ * Unit tests for {@link RestconfStateStreams}.
*/
-public class RestconfMappingNodeUtilTest {
- private static final Logger LOG = LoggerFactory.getLogger(RestconfMappingNodeUtilTest.class);
+public class RestconfStateStreamsTest {
+ private static final Logger LOG = LoggerFactory.getLogger(RestconfStateStreamsTest.class);
private static Collection<? extends Module> modules;
private static EffectiveModelContext schemaContext;
@Test
public void restconfMappingNodeTest() {
// write modules into list module in Restconf
- final ContainerNode mods = SchemaContextHandler.mapModulesByIetfYangLibraryYang(
- RestconfMappingNodeUtilTest.modules, schemaContext, "1");
+ final ContainerNode mods = SchemaContextHandler.mapModulesByIetfYangLibraryYang(modules, schemaContext, "1");
// verify loaded modules
verifyLoadedModules(mods);
final String streamName = "/nested-module:depth1-cont/depth2-leaf1";
final Map<QName, Object> map = prepareMap(streamName, uri, start, outputType);
- final MapEntryNode mappedData = RestconfMappingNodeUtil.mapDataChangeNotificationStreamByIetfRestconfMonitoring(
- path, start, outputType, uri, schemaContextMonitoring, streamName);
+ final MapEntryNode mappedData = RestconfStateStreams.dataChangeStreamEntry(path, start, outputType, uri,
+ schemaContextMonitoring, streamName);
assertMappedData(map, mappedData);
}
final URI uri = new URI("uri");
final Map<QName, Object> map = prepareMap("notifi", uri, start, outputType);
- map.put(RestconfMappingNodeUtil.DESCRIPTION_QNAME, "Notifi");
+ map.put(RestconfStateStreams.DESCRIPTION_QNAME, "Notifi");
final QName notifiQName = QName.create("urn:nested:module", "2014-06-03", "notifi");
- final MapEntryNode mappedData = RestconfMappingNodeUtil.mapYangNotificationStreamByIetfRestconfMonitoring(
- notifiQName, schemaContextMonitoring.getNotifications(), start, outputType, uri);
+ final MapEntryNode mappedData = RestconfStateStreams.notificationStreamEntry(notifiQName,
+ schemaContextMonitoring.getNotifications(), start, outputType, uri);
assertMappedData(map, mappedData);
}
private static Map<QName, Object> prepareMap(final String name, final URI uri, final Instant start,
final String outputType) {
final Map<QName, Object> map = new HashMap<>();
- map.put(RestconfMappingNodeUtil.NAME_QNAME, name);
- map.put(RestconfMappingNodeUtil.LOCATION_QNAME, uri.toString());
- map.put(RestconfMappingNodeUtil.REPLAY_SUPPORT_QNAME, Boolean.TRUE);
- map.put(RestconfMappingNodeUtil.REPLAY_LOG_CREATION_TIME, DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(
+ map.put(RestconfStateStreams.NAME_QNAME, name);
+ map.put(RestconfStateStreams.LOCATION_QNAME, uri.toString());
+ map.put(RestconfStateStreams.REPLAY_SUPPORT_QNAME, Boolean.TRUE);
+ map.put(RestconfStateStreams.REPLAY_LOG_CREATION_TIME, DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(
OffsetDateTime.ofInstant(start, ZoneId.systemDefault())));
- map.put(RestconfMappingNodeUtil.ENCODING_QNAME, outputType);
+ map.put(RestconfStateStreams.ENCODING_QNAME, outputType);
return map;
}
}
}
- verifyLoadedModules(RestconfMappingNodeUtilTest.modulesRest, loadedModules);
+ verifyLoadedModules(modulesRest, loadedModules);
}
/**