+++ /dev/null
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * 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.references;
-
-import java.lang.ref.SoftReference;
-import java.net.URI;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Optional;
-import org.opendaylight.mdsal.dom.api.DOMMountPoint;
-import org.opendaylight.restconf.nb.rfc8040.Rfc8040;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-
-/**
- * This class creates {@link SoftReference} of actual {@link EffectiveModelContext}
- * object and even if the {@link SchemaContext} changes, this will be sticks
- * reference to the old {@link SchemaContext} and provides work with the old
- * {@link EffectiveModelContext}.
- *
- */
-public final class SchemaContextRef {
-
- private final SoftReference<EffectiveModelContext> schemaContextRef;
-
- /**
- * Create {@link SoftReference} of actual {@link EffectiveModelContext}.
- *
- * @param schemaContext
- * actual {@link EffectiveModelContext}
- */
- public SchemaContextRef(final EffectiveModelContext schemaContext) {
- this.schemaContextRef = new SoftReference<>(schemaContext);
- }
-
- /**
- * Get {@link EffectiveModelContext} from reference.
- *
- * @return {@link EffectiveModelContext}
- */
- public EffectiveModelContext get() {
- return this.schemaContextRef.get();
- }
-
- /**
- * Get all modules like {@link Collection} of {@link Module} from {@link SchemaContext}.
- *
- * @return {@link Collection} of {@link Module}
- */
- public Collection<? extends Module> getModules() {
- return get().getModules();
- }
-
- /**
- * Get {@link Module} by ietf-restconf qname from
- * {@link Rfc8040.RestconfModule}.
- *
- * @return {@link Module}
- */
- public Module getRestconfModule() {
- return this.findModuleByNamespaceAndRevision(Rfc8040.RestconfModule.IETF_RESTCONF_QNAME.getNamespace(),
- Rfc8040.RestconfModule.IETF_RESTCONF_QNAME.getRevision());
- }
-
- /**
- * Find {@link Module} in {@link SchemaContext} by {@link URI} and
- * {@link Date}.
- *
- * @param namespace
- * namespace of module
- * @param revision
- * revision of module
- * @return {@link Module}
- */
- public Module findModuleByNamespaceAndRevision(final URI namespace, final Optional<Revision> revision) {
- return this.get().findModule(namespace, revision).orElse(null);
- }
-
- /**
- * Find {@link Module} in {@link SchemaContext} of {@link DOMMountPoint} by
- * {@link QName} of {@link Module}.
- *
- * @param mountPoint
- * mount point
- * @param moduleQname
- * {@link QName} of module
- * @return {@link Module}
- */
- public Module findModuleInMountPointByQName(final DOMMountPoint mountPoint, final QName moduleQname) {
- final SchemaContext schemaContext = mountPoint == null ? null : mountPoint.getSchemaContext();
- return schemaContext == null ? null
- : schemaContext.findModule(moduleQname.getLocalName(), moduleQname.getRevision()).orElse(null);
- }
-
- /**
- * Find {@link Module} in {@link SchemaContext} by {@link QName}.
- *
- * @param moduleQname
- * {@link QName} of module
- * @return {@link Module}
- */
- public Module findModuleByQName(final QName moduleQname) {
- return this.findModuleByNameAndRevision(moduleQname.getLocalName(), moduleQname.getRevision());
- }
-
- /**
- * Find {@link Module} in {@link SchemaContext} by {@link String} localName
- * and {@link Date} revision.
- *
- * @param localName
- * local name of module
- * @param revision
- * revision of module
- * @return {@link Module}
- */
- public Module findModuleByNameAndRevision(final String localName, final Optional<Revision> revision) {
- return this.get().findModule(localName, revision).orElse(null);
- }
-}
import org.opendaylight.restconf.nb.rfc8040.handlers.DOMMountPointServiceHandler;
import org.opendaylight.restconf.nb.rfc8040.handlers.SchemaContextHandler;
import org.opendaylight.restconf.nb.rfc8040.handlers.TransactionChainHandler;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
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.TransactionVarsWrapper;
@Override
public Response readData(final String identifier, final UriInfo uriInfo) {
- final SchemaContextRef schemaContextRef = new SchemaContextRef(this.schemaContextHandler.get());
+ final EffectiveModelContext schemaContextRef = this.schemaContextHandler.get();
final InstanceIdentifierContext<?> instanceIdentifier = ParserIdentifier.toInstanceIdentifier(
- identifier, schemaContextRef.get(), Optional.of(this.mountPointServiceHandler.get()));
+ identifier, schemaContextRef, Optional.of(this.mountPointServiceHandler.get()));
final WriterParameters parameters = ReadDataTransactionUtil.parseUriParameters(instanceIdentifier, uriInfo);
final DOMMountPoint mountPoint = instanceIdentifier.getMountPoint();
final DOMMountPoint mountPoint = payload.getInstanceIdentifierContext().getMountPoint();
final TransactionChainHandler localTransactionChainHandler;
- final SchemaContextRef ref;
+ final EffectiveModelContext ref;
if (mountPoint == null) {
localTransactionChainHandler = this.transactionChainHandler;
- ref = new SchemaContextRef(this.schemaContextHandler.get());
+ ref = this.schemaContextHandler.get();
} else {
localTransactionChainHandler = transactionChainOfMountPoint(mountPoint);
- ref = new SchemaContextRef(mountPoint.getEffectiveModelContext());
+ ref = mountPoint.getEffectiveModelContext();
}
final TransactionVarsWrapper transactionNode = new TransactionVarsWrapper(
final DOMMountPoint mountPoint = payload.getInstanceIdentifierContext().getMountPoint();
final TransactionChainHandler localTransactionChainHandler;
- final SchemaContextRef ref;
+ final EffectiveModelContext ref;
if (mountPoint == null) {
localTransactionChainHandler = this.transactionChainHandler;
- ref = new SchemaContextRef(this.schemaContextHandler.get());
+ ref = this.schemaContextHandler.get();
} else {
localTransactionChainHandler = transactionChainOfMountPoint(mountPoint);
- ref = new SchemaContextRef(mountPoint.getEffectiveModelContext());
+ ref = mountPoint.getEffectiveModelContext();
}
final TransactionVarsWrapper transactionNode = new TransactionVarsWrapper(
return mountPoint == null ? transactionChainHandler : transactionChainOfMountPoint(mountPoint);
}
- private SchemaContextRef getSchemaContext(final DOMMountPoint mountPoint) {
- return mountPoint == null ? new SchemaContextRef(schemaContextHandler.get())
- : new SchemaContextRef(mountPoint.getEffectiveModelContext());
+ private EffectiveModelContext getSchemaContext(final DOMMountPoint mountPoint) {
+ return mountPoint == null ? schemaContextHandler.get() : mountPoint.getEffectiveModelContext();
}
/**
import org.opendaylight.restconf.common.errors.RestconfError.ErrorType;
import org.opendaylight.restconf.nb.rfc8040.handlers.RpcServiceHandler;
import org.opendaylight.restconf.nb.rfc8040.handlers.SchemaContextHandler;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.restconf.nb.rfc8040.rests.services.api.RestconfInvokeOperationsService;
import org.opendaylight.restconf.nb.rfc8040.rests.utils.CreateStreamUtil;
import org.opendaylight.restconf.nb.rfc8040.rests.utils.RestconfInvokeOperationsUtil;
@Override
public NormalizedNodeContext invokeRpc(final String identifier, final NormalizedNodeContext payload,
final UriInfo uriInfo) {
- final SchemaContextRef refSchemaCtx = new SchemaContextRef(this.schemaContextHandler.get());
+ final EffectiveModelContext refSchemaCtx = this.schemaContextHandler.get();
final SchemaPath schemaPath = payload.getInstanceIdentifierContext().getSchemaNode().getPath();
final DOMMountPoint mountPoint = payload.getInstanceIdentifierContext().getMountPoint();
final URI namespace = payload.getInstanceIdentifierContext().getSchemaNode().getQName().getNamespace();
import org.opendaylight.restconf.common.errors.RestconfError.ErrorTag;
import org.opendaylight.restconf.common.errors.RestconfError.ErrorType;
import org.opendaylight.restconf.common.util.DataChangeScope;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
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.parser.ParserIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
* }
* }
* </pre>
- * @param refSchemaCtx Reference to {@link SchemaContext} - {@link SchemaContextRef}.
+ * @param refSchemaCtx Reference to {@link EffectiveModelContext}.
* @return {@link DOMRpcResult} - Output of RPC - example in JSON:
* <pre>
* {@code
* </pre>
*/
public static DOMRpcResult createDataChangeNotifiStream(final NormalizedNodeContext payload,
- final SchemaContextRef refSchemaCtx) {
+ final EffectiveModelContext refSchemaCtx) {
// parsing out of container with settings and path
final ContainerNode data = (ContainerNode) requireNonNull(payload).getData();
final QName qname = payload.getInstanceIdentifierContext().getSchemaNode().getQName();
// building of stream name
final StringBuilder streamNameBuilder = new StringBuilder(
- prepareDataChangeNotifiStreamName(path, requireNonNull(refSchemaCtx).get(), data));
+ prepareDataChangeNotifiStreamName(path, requireNonNull(refSchemaCtx), data));
final NotificationOutputType outputType = prepareOutputType(data);
if (outputType.equals(NotificationOutputType.JSON)) {
streamNameBuilder.append('/').append(outputType.getName());
* Create YANG notification stream using notification definition in YANG schema.
*
* @param notificationDefinition YANG notification definition.
- * @param refSchemaCtx Reference to {@link SchemaContext} - {@link SchemaContextRef}.
+ * @param refSchemaCtx Reference to {@link EffectiveModelContext}
* @param outputType Output type (XML or JSON).
* @return {@link NotificationListenerAdapter}
*/
public static NotificationListenerAdapter createYangNotifiStream(
- final NotificationDefinition notificationDefinition, final SchemaContextRef refSchemaCtx,
+ final NotificationDefinition notificationDefinition, final EffectiveModelContext refSchemaCtx,
final NotificationOutputType outputType) {
final String streamName = parseNotificationStreamName(requireNonNull(notificationDefinition),
requireNonNull(refSchemaCtx), requireNonNull(outputType.getName()));
}
private static String parseNotificationStreamName(final NotificationDefinition notificationDefinition,
- final SchemaContextRef refSchemaCtx, final String outputType) {
+ final EffectiveModelContext refSchemaCtx, final String outputType) {
final QName notificationDefinitionQName = notificationDefinition.getQName();
- final Module module = refSchemaCtx.findModuleByNamespaceAndRevision(
+ final Module module = refSchemaCtx.findModule(
notificationDefinitionQName.getModule().getNamespace(),
- notificationDefinitionQName.getModule().getRevision());
+ notificationDefinitionQName.getModule().getRevision()).orElse(null);
requireNonNull(module, String.format("Module for namespace %s does not exist.",
notificationDefinitionQName.getModule().getNamespace()));
import org.opendaylight.restconf.common.patch.PatchEntity;
import org.opendaylight.restconf.common.patch.PatchStatusContext;
import org.opendaylight.restconf.common.patch.PatchStatusEntity;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.restconf.nb.rfc8040.rests.transactions.TransactionVarsWrapper;
import org.opendaylight.restconf.nb.rfc8040.rests.utils.RestconfDataServiceConstant.PatchData;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
* {@link TransactionVarsWrapper} provided as a parameter.
* @param context Patch context to be processed
* @param transactionNode Wrapper for transaction
- * @param schemaContextRef Soft reference for global schema context
+ * @param schemaContext Global schema context
* @return {@link PatchStatusContext}
*/
public static PatchStatusContext patchData(final PatchContext context, final TransactionVarsWrapper transactionNode,
- final SchemaContextRef schemaContextRef) {
+ final EffectiveModelContext schemaContext) {
final List<PatchStatusEntity> editCollection = new ArrayList<>();
boolean noError = true;
final DOMTransactionChain transactionChain = transactionNode.getTransactionChain();
case CREATE:
try {
createDataWithinTransaction(LogicalDatastoreType.CONFIGURATION,
- patchEntity.getTargetNode(), patchEntity.getNode(), tx, schemaContextRef);
+ patchEntity.getTargetNode(), patchEntity.getNode(), tx, schemaContext);
editCollection.add(new PatchStatusEntity(patchEntity.getEditId(), true, null));
} catch (final RestconfDocumentedException e) {
editCollection.add(new PatchStatusEntity(patchEntity.getEditId(),
case MERGE:
try {
mergeDataWithinTransaction(LogicalDatastoreType.CONFIGURATION,
- patchEntity.getTargetNode(), patchEntity.getNode(), tx, schemaContextRef);
+ patchEntity.getTargetNode(), patchEntity.getNode(), tx, schemaContext);
editCollection.add(new PatchStatusEntity(patchEntity.getEditId(), true, null));
} catch (final RestconfDocumentedException e) {
editCollection.add(new PatchStatusEntity(patchEntity.getEditId(),
case REPLACE:
try {
replaceDataWithinTransaction(LogicalDatastoreType.CONFIGURATION,
- patchEntity.getTargetNode(), patchEntity.getNode(), schemaContextRef, tx);
+ patchEntity.getTargetNode(), patchEntity.getNode(), schemaContext, tx);
editCollection.add(new PatchStatusEntity(patchEntity.getEditId(), true, null));
} catch (final RestconfDocumentedException e) {
editCollection.add(new PatchStatusEntity(patchEntity.getEditId(),
* @param path Path for data to be created
* @param payload Data to be created
* @param rwTransaction Transaction
- * @param schemaContextRef Soft reference for global schema context
+ * @param schemaContext Global schema context
*/
private static void createDataWithinTransaction(final LogicalDatastoreType dataStore,
final YangInstanceIdentifier path,
final NormalizedNode<?, ?> payload,
final DOMDataTreeReadWriteTransaction rwTransaction,
- final SchemaContextRef schemaContextRef) {
+ final EffectiveModelContext schemaContext) {
LOG.trace("POST {} within Restconf Patch: {} with payload {}", dataStore.name(), path, payload);
- createData(payload, schemaContextRef.get(), path, rwTransaction, dataStore, true);
+ createData(payload, schemaContext, path, rwTransaction, dataStore, true);
}
/**
* @param path Path for data to be merged
* @param payload Data to be merged
* @param writeTransaction Transaction
- * @param schemaContextRef Soft reference for global schema context
+ * @param schemaContext Global schema context
*/
private static void mergeDataWithinTransaction(final LogicalDatastoreType dataStore,
final YangInstanceIdentifier path,
final NormalizedNode<?, ?> payload,
final DOMDataTreeWriteTransaction writeTransaction,
- final SchemaContextRef schemaContextRef) {
+ final EffectiveModelContext schemaContext) {
LOG.trace("Merge {} within Restconf Patch: {} with payload {}", dataStore.name(), path, payload);
- TransactionUtil.ensureParentsByMerge(path, schemaContextRef.get(), writeTransaction);
+ TransactionUtil.ensureParentsByMerge(path, schemaContext, writeTransaction);
writeTransaction.merge(dataStore, path, payload);
}
* @param dataStore Datastore to write data to
* @param path Path for data to be created
* @param payload Data to be created
- * @param schemaContextRef Soft reference for global schema context
+ * @param path Path for data to be created
* @param rwTransaction Transaction
*/
private static void replaceDataWithinTransaction(final LogicalDatastoreType dataStore,
final YangInstanceIdentifier path,
final NormalizedNode<?, ?> payload,
- final SchemaContextRef schemaContextRef,
+ final EffectiveModelContext schemaContext,
final DOMDataTreeReadWriteTransaction rwTransaction) {
LOG.trace("PUT {} within Restconf Patch: {} with payload {}", dataStore.name(), path, payload);
- createData(payload, schemaContextRef.get(), path, rwTransaction, dataStore, false);
+ createData(payload, schemaContext, path, rwTransaction, dataStore, false);
}
/**
* @param dataStore Datastore to write data to
* @param errorIfExists Enable checking for existence of data (throws error if already exists)
*/
- private static void createData(final NormalizedNode<?, ?> payload, final SchemaContext schemaContext,
+ private static void createData(final NormalizedNode<?, ?> payload, final EffectiveModelContext schemaContext,
final YangInstanceIdentifier path,
final DOMDataTreeReadWriteTransaction rwTransaction,
final LogicalDatastoreType dataStore, final boolean errorIfExists) {
import org.opendaylight.mdsal.dom.api.DOMTransactionChain;
import org.opendaylight.restconf.common.context.NormalizedNodeContext;
import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.restconf.nb.rfc8040.rests.transactions.TransactionVarsWrapper;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
*
* @param payload
* data to put
- * @param schemaContextRef
- * reference to {@link SchemaContext}
+ * @param schemaContext
+ * reference to {@link EffectiveModelContext}
* @param transactionNode
* wrapper of variables for transaction
* @return {@link Response}
*/
public static Response patchData(final NormalizedNodeContext payload,
final TransactionVarsWrapper transactionNode,
- final SchemaContextRef schemaContextRef) {
+ final EffectiveModelContext schemaContext) {
final DOMTransactionChain transactionChain = transactionNode.getTransactionChain();
final DOMDataTreeReadWriteTransaction tx = transactionChain.newReadWriteTransaction();
NormalizedNode<?, ?> data = payload.getData();
try {
- mergeDataWithinTransaction(LogicalDatastoreType.CONFIGURATION,
- path, data, tx, schemaContextRef);
+ mergeDataWithinTransaction(LogicalDatastoreType.CONFIGURATION, path, data, tx, schemaContext);
} catch (final RestconfDocumentedException e) {
tx.cancel();
transactionChain.close();
* @param path Path for data to be merged
* @param payload Data to be merged
* @param writeTransaction Transaction
- * @param schemaContextRef Soft reference for global schema context
+ * @param schemaContext global schema context
*/
private static void mergeDataWithinTransaction(final LogicalDatastoreType dataStore,
final YangInstanceIdentifier path,
final NormalizedNode<?, ?> payload,
final DOMDataTreeWriteTransaction writeTransaction,
- final SchemaContextRef schemaContextRef) {
+ final EffectiveModelContext schemaContext) {
LOG.trace("Merge {} within Restconf Patch: {} with payload {}", dataStore.name(), path, payload);
- TransactionUtil.ensureParentsByMerge(path, schemaContextRef.get(), writeTransaction);
+ TransactionUtil.ensureParentsByMerge(path, schemaContext, writeTransaction);
writeTransaction.merge(dataStore, path, payload);
}
}
import org.opendaylight.restconf.common.context.NormalizedNodeContext;
import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
import org.opendaylight.restconf.common.errors.RestconfError;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.restconf.nb.rfc8040.rests.transactions.TransactionVarsWrapper;
import org.opendaylight.restconf.nb.rfc8040.utils.parser.ParserIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
* data
* @param transactionNode
* wrapper for transaction data
- * @param schemaContextRef
- * reference to actual {@link SchemaContext}
+ * @param schemaContext
+ * reference to current {@link EffectiveModelContext}
* @param point
* point
* @param insert
* @return {@link Response}
*/
public static Response postData(final UriInfo uriInfo, final NormalizedNodeContext payload,
- final TransactionVarsWrapper transactionNode, final SchemaContextRef schemaContextRef, final String insert,
- final String point) {
+ final TransactionVarsWrapper transactionNode, final EffectiveModelContext schemaContext,
+ final String insert, final String point) {
final FluentFuture<? extends CommitInfo> future = submitData(
payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData(),
- transactionNode, schemaContextRef.get(), insert, point);
- final URI location = resolveLocation(uriInfo, transactionNode, schemaContextRef, payload.getData());
+ transactionNode, schemaContext, insert, point);
+ final URI location = resolveLocation(uriInfo, transactionNode, schemaContext, payload.getData());
final ResponseFactory dataFactory = new ResponseFactory(Status.CREATED).location(location);
//This method will close transactionChain
FutureCallbackTx.addCallback(future, RestconfDataServiceConstant.PostData.POST_TX_TYPE, dataFactory,
* uri info
* @param transactionNode
* wrapper for data of transaction
- * @param schemaContextRef
+ * @param schemaContext
* reference to {@link SchemaContext}
* @return {@link URI}
*/
private static URI resolveLocation(final UriInfo uriInfo, final TransactionVarsWrapper transactionNode,
- final SchemaContextRef schemaContextRef, final NormalizedNode<?, ?> data) {
+ final EffectiveModelContext schemaContext, final NormalizedNode<?, ?> data) {
if (uriInfo == null) {
return null;
}
return uriInfo.getBaseUriBuilder()
.path("data")
- .path(ParserIdentifier.stringFromYangInstanceIdentifier(path, schemaContextRef.get()))
+ .path(ParserIdentifier.stringFromYangInstanceIdentifier(path, schemaContext))
.build();
}
import org.opendaylight.restconf.common.errors.RestconfError.ErrorTag;
import org.opendaylight.restconf.common.errors.RestconfError.ErrorType;
import org.opendaylight.restconf.nb.rfc8040.handlers.TransactionChainHandler;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.restconf.nb.rfc8040.rests.transactions.TransactionVarsWrapper;
import org.opendaylight.restconf.nb.rfc8040.utils.parser.ParserIdentifier;
import org.opendaylight.yangtools.yang.common.QName;
*
* @param payload
* data to put
- * @param schemaCtxRef
- * reference to {@link SchemaContext}
+ * @param schemaContext
+ * reference to {@link EffectiveModelContext}
* @param transactionNode
* wrapper of variables for transaction
* @param point
* query parameter
* @return {@link Response}
*/
- public static Response putData(final NormalizedNodeContext payload, final SchemaContextRef schemaCtxRef,
+ public static Response putData(final NormalizedNodeContext payload, final EffectiveModelContext schemaContext,
final TransactionVarsWrapper transactionNode, final String insert, final String point) {
final YangInstanceIdentifier path = payload.getInstanceIdentifierContext().getInstanceIdentifier();
- final EffectiveModelContext schemaContext = schemaCtxRef.get();
final DOMDataTreeReadWriteTransaction readWriteTransaction =
transactionNode.getTransactionChain().newReadWriteTransaction();
import org.opendaylight.restconf.common.context.WriterParameters.WriterParametersBuilder;
import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
import org.opendaylight.restconf.common.errors.RestconfError;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.restconf.nb.rfc8040.rests.transactions.TransactionVarsWrapper;
import org.opendaylight.restconf.nb.rfc8040.streams.listeners.NotificationListenerAdapter;
import org.opendaylight.restconf.nb.rfc8040.utils.mapping.RestconfMappingNodeUtil;
import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
* @param transactionNode
* {@link TransactionVarsWrapper} - wrapper for variables
* @param withDefa
- * vaule of with-defaults parameter
+ * value of with-defaults parameter
* @param ctx
* schema context
* @return {@link NormalizedNode}
* {@link TransactionVarsWrapper} - wrapper for variables
* @param withDefa
* vaule of with-defaults parameter
- * @param schemaContextRef
+ * @param schemaContext
* schema context
* @param uriInfo
* uri info
*/
public static NormalizedNode<?, ?> readData(final String identifier, final String content,
final TransactionVarsWrapper transactionNode, final String withDefa,
- final SchemaContextRef schemaContextRef, final UriInfo uriInfo) {
- final SchemaContext schemaContext = schemaContextRef.get();
+ final EffectiveModelContext schemaContext, final UriInfo uriInfo) {
if (identifier != null && identifier.contains(STREAMS_PATH) && !identifier.contains(STREAM_PATH_PART)) {
- createAllYangNotificationStreams(transactionNode, schemaContextRef, uriInfo);
+ createAllYangNotificationStreams(transactionNode, schemaContext, uriInfo);
}
return readData(content, transactionNode, withDefa, schemaContext);
}
private static void createAllYangNotificationStreams(final TransactionVarsWrapper transactionNode,
- final SchemaContextRef schemaContextRef, final UriInfo uriInfo) {
+ final EffectiveModelContext schemaContext, final UriInfo uriInfo) {
final DOMDataTreeReadWriteTransaction wTx = transactionNode.getTransactionChain().newReadWriteTransaction();
- final boolean exist = SubscribeToStreamUtil.checkExist(schemaContextRef.get(), wTx);
+ final boolean exist = SubscribeToStreamUtil.checkExist(schemaContext, wTx);
- for (final NotificationDefinition notificationDefinition : schemaContextRef.get().getNotifications()) {
+ for (final NotificationDefinition notificationDefinition : schemaContext.getNotifications()) {
final NotificationListenerAdapter notifiStreamXML =
- CreateStreamUtil.createYangNotifiStream(notificationDefinition, schemaContextRef,
+ CreateStreamUtil.createYangNotifiStream(notificationDefinition, schemaContext,
NotificationOutputType.XML);
final NotificationListenerAdapter notifiStreamJSON =
- CreateStreamUtil.createYangNotifiStream(notificationDefinition, schemaContextRef,
+ CreateStreamUtil.createYangNotifiStream(notificationDefinition, schemaContext,
NotificationOutputType.JSON);
- writeNotificationStreamToDatastore(schemaContextRef, uriInfo, wTx, exist, notifiStreamXML);
- writeNotificationStreamToDatastore(schemaContextRef, uriInfo, wTx, exist, notifiStreamJSON);
+ writeNotificationStreamToDatastore(schemaContext, uriInfo, wTx, exist, notifiStreamXML);
+ writeNotificationStreamToDatastore(schemaContext, uriInfo, wTx, exist, notifiStreamJSON);
}
SubscribeToStreamUtil.submitData(wTx);
}
- private static void writeNotificationStreamToDatastore(final SchemaContextRef schemaContextRef,
+ private static void writeNotificationStreamToDatastore(final EffectiveModelContext schemaContext,
final UriInfo uriInfo, final DOMDataTreeReadWriteTransaction readWriteTransaction, final boolean exist,
final NotificationListenerAdapter listener) {
final URI uri = SubscribeToStreamUtil.prepareUriByStreamName(uriInfo, listener.getStreamName());
- final NormalizedNode mapToStreams = RestconfMappingNodeUtil.mapYangNotificationStreamByIetfRestconfMonitoring(
- listener.getSchemaPath().getLastComponent(), schemaContextRef.get().getNotifications(), null,
- listener.getOutputType(), uri,
- SubscribeToStreamUtil.getMonitoringModule(schemaContextRef.get()), exist);
- SubscribeToStreamUtil.writeDataToDS(schemaContextRef.get(),
+ final NormalizedNode<?, ?> mapToStreams =
+ RestconfMappingNodeUtil.mapYangNotificationStreamByIetfRestconfMonitoring(
+ listener.getSchemaPath().getLastComponent(), schemaContext.getNotifications(), null,
+ listener.getOutputType(), uri, SubscribeToStreamUtil.getMonitoringModule(schemaContext), exist);
+ SubscribeToStreamUtil.writeDataToDS(schemaContext,
listener.getSchemaPath().getLastComponent().getLocalName(), readWriteTransaction, exist, mapToStreams);
}
import org.opendaylight.restconf.nb.rfc8040.handlers.DOMMountPointServiceHandler;
import org.opendaylight.restconf.nb.rfc8040.handlers.SchemaContextHandler;
import org.opendaylight.restconf.nb.rfc8040.handlers.TransactionChainHandler;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.restconf.nb.rfc8040.rests.services.api.RestconfStreamsSubscriptionService;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
private ContainerNode buildBaseCont;
private ContainerNode buildBaseContConfig;
private ContainerNode buildBaseContOperational;
- private SchemaContextRef contextRef;
+ private EffectiveModelContext contextRef;
private YangInstanceIdentifier iidBase;
private DataSchemaNode schemaNode;
private RestconfDataServiceImpl dataService;
.node(this.baseQName)
.build();
- this.contextRef = new SchemaContextRef(
- YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT)));
- this.schemaNode = DataSchemaContextTree.from(this.contextRef.get()).getChild(this.iidBase).getDataSchemaNode();
+ this.contextRef =
+ YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT));
+ this.schemaNode = DataSchemaContextTree.from(this.contextRef).getChild(this.iidBase).getDataSchemaNode();
doReturn(CommitInfo.emptyFluentFuture()).when(this.write).commit();
doReturn(CommitInfo.emptyFluentFuture()).when(this.readWrite).commit();
final SchemaContextHandler schemaContextHandler = new SchemaContextHandler(transactionChainHandler,
Mockito.mock(DOMSchemaService.class));
- schemaContextHandler.onModelContextUpdated(this.contextRef.get());
+ schemaContextHandler.onModelContextUpdated(this.contextRef);
this.dataService = new RestconfDataServiceImpl(schemaContextHandler, this.transactionChainHandler,
new DOMMountPointServiceHandler(mountPointService), this.delegRestconfSubscrService,
this.actionServiceHandler);
doReturn(Optional.of(this.mountPoint)).when(this.mountPointService)
.getMountPoint(any(YangInstanceIdentifier.class));
doCallRealMethod().when(this.mountPoint).getSchemaContext();
- doReturn(this.contextRef.get()).when(this.mountPoint).getEffectiveModelContext();
+ doReturn(this.contextRef).when(this.mountPoint).getEffectiveModelContext();
doReturn(Optional.of(this.mountDataBroker)).when(this.mountPoint).getService(DOMDataBroker.class);
doReturn(this.mountTransactionChain).when(this.mountDataBroker)
.createTransactionChain(any(DOMTransactionChainListener.class));
@Test
public void testPutData() {
final InstanceIdentifierContext<DataSchemaNode> iidContext =
- new InstanceIdentifierContext<>(this.iidBase, this.schemaNode, null, this.contextRef.get());
+ new InstanceIdentifierContext<>(this.iidBase, this.schemaNode, null, this.contextRef);
final NormalizedNodeContext payload = new NormalizedNodeContext(iidContext, this.buildBaseCont);
doReturn(immediateTrueFluentFuture()).when(this.readWrite)
// doReturn(this.transactionChainHandler.get()).when(dataBroker)
// .createTransactionChain(RestConnectorProvider.TRANSACTION_CHAIN_LISTENER);
final InstanceIdentifierContext<DataSchemaNode> iidContext =
- new InstanceIdentifierContext<>(this.iidBase, this.schemaNode, mountPoint, this.contextRef.get());
+ new InstanceIdentifierContext<>(this.iidBase, this.schemaNode, mountPoint, this.contextRef);
final NormalizedNodeContext payload = new NormalizedNodeContext(iidContext, this.buildBaseCont);
doReturn(immediateTrueFluentFuture()).when(this.readWrite)
doReturn(new MultivaluedHashMap<String, String>()).when(this.uriInfo).getQueryParameters();
final InstanceIdentifierContext<? extends SchemaNode> iidContext =
- new InstanceIdentifierContext<>(this.iidBase, null, null, this.contextRef.get());
+ new InstanceIdentifierContext<>(this.iidBase, null, null, this.contextRef);
final NormalizedNodeContext payload = new NormalizedNodeContext(iidContext, buildList);
doReturn(immediateFluentFuture(Optional.empty()))
.when(this.read).read(LogicalDatastoreType.CONFIGURATION, this.iidBase);
@Test
public void testPatchData() throws Exception {
final InstanceIdentifierContext<? extends SchemaNode> iidContext =
- new InstanceIdentifierContext<>(this.iidBase, this.schemaNode, null, this.contextRef.get());
+ new InstanceIdentifierContext<>(this.iidBase, this.schemaNode, null, this.contextRef);
final List<PatchEntity> entity = new ArrayList<>();
final YangInstanceIdentifier iidleaf = YangInstanceIdentifier.builder(this.iidBase)
.node(this.containerPlayerQname)
@Test
public void testPatchDataMountPoint() throws Exception {
final InstanceIdentifierContext<? extends SchemaNode> iidContext = new InstanceIdentifierContext<>(
- this.iidBase, this.schemaNode, this.mountPoint, this.contextRef.get());
+ this.iidBase, this.schemaNode, this.mountPoint, this.contextRef);
final List<PatchEntity> entity = new ArrayList<>();
final YangInstanceIdentifier iidleaf = YangInstanceIdentifier.builder(this.iidBase)
.node(this.containerPlayerQname)
@Test
public void testPatchDataDeleteNotExist() throws Exception {
final InstanceIdentifierContext<? extends SchemaNode> iidContext =
- new InstanceIdentifierContext<>(this.iidBase, this.schemaNode, null, this.contextRef.get());
+ new InstanceIdentifierContext<>(this.iidBase, this.schemaNode, null, this.contextRef);
final List<PatchEntity> entity = new ArrayList<>();
final YangInstanceIdentifier iidleaf = YangInstanceIdentifier.builder(this.iidBase)
.node(this.containerPlayerQname)
import org.opendaylight.restconf.nb.rfc8040.handlers.RpcServiceHandler;
import org.opendaylight.restconf.nb.rfc8040.handlers.SchemaContextHandler;
import org.opendaylight.restconf.nb.rfc8040.handlers.TransactionChainHandler;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
@Before
public void setup() throws Exception {
MockitoAnnotations.initMocks(this);
- final SchemaContextRef contextRef = new SchemaContextRef(
- YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT)));
+ final EffectiveModelContext contextRef =
+ YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT));
final TransactionChainHandler txHandler = mock(TransactionChainHandler.class);
final DOMTransactionChain domTx = mock(DOMTransactionChain.class);
when(txHandler.get()).thenReturn(domTx);
doReturn(CommitInfo.emptyFluentFuture()).when(wTx).commit();
final SchemaContextHandler schemaContextHandler = new SchemaContextHandler(txHandler,
mock(DOMSchemaService.class));
- schemaContextHandler.onModelContextUpdated(contextRef.get());
+ schemaContextHandler.onModelContextUpdated(contextRef);
this.invokeOperationsService =
new RestconfInvokeOperationsServiceImpl(this.rpcServiceHandler, schemaContextHandler);
when(this.rpcServiceHandler.get()).thenReturn(this.rpcService);
import org.opendaylight.restconf.common.context.NormalizedNodeContext;
import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
import org.opendaylight.restconf.nb.rfc8040.TestRestconfUtils;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
private static final String PATH_FOR_NEW_SCHEMA_CONTEXT = "/streams";
private NormalizedNodeContext payload;
- private SchemaContextRef refSchemaCtx;
+ private EffectiveModelContext refSchemaCtx;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- this.refSchemaCtx = new SchemaContextRef(
- YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT)));
+ this.refSchemaCtx =
+ YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT));
}
@Test
private NormalizedNodeContext prepareDomPayload(final String rpcName, final String inputOutput,
final String toasterValue, final String inputOutputName) {
- final EffectiveModelContext schema = this.refSchemaCtx.get();
+ final EffectiveModelContext schema = this.refSchemaCtx;
final Module rpcModule = schema.findModules("sal-remote").iterator().next();
final QName rpcQName = QName.create(rpcModule.getQNameModule(), rpcName);
final QName rpcInputQName = QName.create(rpcModule.getQNameModule(), inputOutput);
import org.opendaylight.restconf.common.patch.PatchStatusEntity;
import org.opendaylight.restconf.nb.rfc8040.TestRestconfUtils;
import org.opendaylight.restconf.nb.rfc8040.handlers.TransactionChainHandler;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.restconf.nb.rfc8040.rests.transactions.TransactionVarsWrapper;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
private DOMDataBroker mockDataBroker;
private TransactionChainHandler transactionChainHandler;
- private SchemaContextRef refSchemaCtx;
+ private EffectiveModelContext refSchemaCtx;
private YangInstanceIdentifier instanceIdContainer;
private YangInstanceIdentifier instanceIdCreateAndDelete;
private YangInstanceIdentifier instanceIdMerge;
doReturn(transactionChain).when(mockDataBroker).createTransactionChain(any());
transactionChainHandler = new TransactionChainHandler(mockDataBroker);
- this.refSchemaCtx = new SchemaContextRef(
- YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT)));
+ this.refSchemaCtx = YangParserTestUtils.parseYangFiles(
+ TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT));
final QName baseQName = QName.create("http://example.com/ns/example-jukebox", "2015-04-04", "jukebox");
final QName containerPlayerQName = QName.create(baseQName, "player");
final QName leafGapQName = QName.create(baseQName, "gap");
entities.add(entityRemove);
final InstanceIdentifierContext<? extends SchemaNode> iidContext =
- new InstanceIdentifierContext<>(this.instanceIdMerge, null, null, this.refSchemaCtx.get());
+ new InstanceIdentifierContext<>(this.instanceIdMerge, null, null, this.refSchemaCtx);
final PatchContext patchContext = new PatchContext(iidContext, entities, "patchRMRm");
final TransactionVarsWrapper wrapper = new TransactionVarsWrapper(iidContext, null, transactionChainHandler);
final PatchStatusContext patchStatusContext =
entities.add(entityDelete);
final InstanceIdentifierContext<? extends SchemaNode> iidContext =
- new InstanceIdentifierContext<>(this.instanceIdCreateAndDelete, null, null, this.refSchemaCtx.get());
+ new InstanceIdentifierContext<>(this.instanceIdCreateAndDelete, null, null, this.refSchemaCtx);
final PatchContext patchContext = new PatchContext(iidContext, entities, "patchCD");
final TransactionVarsWrapper wrapper = new TransactionVarsWrapper(iidContext, null, transactionChainHandler);
final PatchStatusContext patchStatusContext =
entities.add(entityDelete);
final InstanceIdentifierContext<? extends SchemaNode> iidContext =
- new InstanceIdentifierContext<>(this.instanceIdCreateAndDelete, null, null, this.refSchemaCtx.get());
+ new InstanceIdentifierContext<>(this.instanceIdCreateAndDelete, null, null, this.refSchemaCtx);
final PatchContext patchContext = new PatchContext(iidContext, entities, "patchD");
final TransactionVarsWrapper wrapper = new TransactionVarsWrapper(iidContext, null, transactionChainHandler);
final PatchStatusContext patchStatusContext =
entities.add(entityMerge);
final InstanceIdentifierContext<? extends SchemaNode> iidContext =
- new InstanceIdentifierContext<>(this.instanceIdCreateAndDelete, null, null, this.refSchemaCtx.get());
+ new InstanceIdentifierContext<>(this.instanceIdCreateAndDelete, null, null, this.refSchemaCtx);
final PatchContext patchContext = new PatchContext(iidContext, entities, "patchM");
final TransactionVarsWrapper wrapper = new TransactionVarsWrapper(iidContext, null, transactionChainHandler);
final PatchStatusContext patchStatusContext =
import org.opendaylight.restconf.common.context.NormalizedNodeContext;
import org.opendaylight.restconf.nb.rfc8040.TestRestconfUtils;
import org.opendaylight.restconf.nb.rfc8040.handlers.TransactionChainHandler;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.restconf.nb.rfc8040.rests.transactions.TransactionVarsWrapper;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
private DOMDataBroker mockDataBroker;
private TransactionChainHandler transactionChainHandler;
- private SchemaContextRef refSchemaCtx;
private LeafNode leafGap;
private ContainerNode jukeboxContainerWithPlayer;
private ContainerNode jukeboxContainerWithPlaylist;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- this.refSchemaCtx = new SchemaContextRef(
- YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT)));
- this.schema = this.refSchemaCtx.get();
+ this.schema = YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT));
final QName qnJukebox = QName.create("http://example.com/ns/example-jukebox", "2015-04-04", "jukebox");
final QName qnPlayer = QName.create(qnJukebox, "player");
PlainPatchDataTransactionUtil.patchData(payload,
new TransactionVarsWrapper(payload.getInstanceIdentifierContext(), null, transactionChainHandler),
- this.refSchemaCtx);
+ this.schema);
verify(this.readWrite).merge(LogicalDatastoreType.CONFIGURATION,
payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData());
PlainPatchDataTransactionUtil.patchData(payload,
new TransactionVarsWrapper(payload.getInstanceIdentifierContext(), null, transactionChainHandler),
- this.refSchemaCtx);
+ this.schema);
verify(this.readWrite).merge(LogicalDatastoreType.CONFIGURATION,
payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData());
PlainPatchDataTransactionUtil.patchData(payload,
new TransactionVarsWrapper(payload.getInstanceIdentifierContext(), null, transactionChainHandler),
- this.refSchemaCtx);
+ this.schema);
verify(this.readWrite).merge(LogicalDatastoreType.CONFIGURATION, this.iidJukebox, payload.getData());
}
import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
import org.opendaylight.restconf.nb.rfc8040.TestRestconfUtils;
import org.opendaylight.restconf.nb.rfc8040.handlers.TransactionChainHandler;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.restconf.nb.rfc8040.rests.transactions.TransactionVarsWrapper;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
private DOMDataBroker mockDataBroker;
private TransactionChainHandler transactionChainHandler;
- private SchemaContextRef refSchemaCtx;
private ContainerNode buildBaseCont;
private EffectiveModelContext schema;
private YangInstanceIdentifier iid2;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- this.refSchemaCtx = new SchemaContextRef(
- YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT)));
- this.schema = this.refSchemaCtx.get();
+ this.schema =
+ YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT));
final QName baseQName = QName.create("http://example.com/ns/example-jukebox", "2015-04-04", "jukebox");
final QName containerQname = QName.create(baseQName, "player");
final TransactionVarsWrapper wrapper =
new TransactionVarsWrapper(payload.getInstanceIdentifierContext(), null, transactionChainHandler);
final Response response =
- PostDataTransactionUtil.postData(this.uriInfo, payload, wrapper, this.refSchemaCtx, null, null);
+ PostDataTransactionUtil.postData(this.uriInfo, payload, wrapper, this.schema, null, null);
assertEquals(201, response.getStatus());
verify(this.readWrite).exists(LogicalDatastoreType.CONFIGURATION, this.iid2);
verify(this.readWrite).put(LogicalDatastoreType.CONFIGURATION,
final TransactionVarsWrapper wrapper =
new TransactionVarsWrapper(payload.getInstanceIdentifierContext(), null, transactionChainHandler);
final Response response =
- PostDataTransactionUtil.postData(this.uriInfo, payload, wrapper, this.refSchemaCtx, null, null);
+ PostDataTransactionUtil.postData(this.uriInfo, payload, wrapper, this.schema, null, null);
assertEquals(201, response.getStatus());
assertThat(URLDecoder.decode(response.getLocation().toString(), "UTF-8"),
containsString(identifier.getValue(identifier.keySet().iterator().next()).toString()));
new TransactionVarsWrapper(payload.getInstanceIdentifierContext(), null, transactionChainHandler);
try {
- PostDataTransactionUtil.postData(this.uriInfo, payload, wrapper, this.refSchemaCtx, null, null);
+ PostDataTransactionUtil.postData(this.uriInfo, payload, wrapper, this.schema, null, null);
fail("Expected RestconfDocumentedException");
} catch (final RestconfDocumentedException e) {
assertEquals(1, e.getErrors().size());
import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
import org.opendaylight.restconf.nb.rfc8040.TestRestconfUtils;
import org.opendaylight.restconf.nb.rfc8040.handlers.TransactionChainHandler;
-import org.opendaylight.restconf.nb.rfc8040.references.SchemaContextRef;
import org.opendaylight.restconf.nb.rfc8040.rests.transactions.TransactionVarsWrapper;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
private DOMDataBroker mockDataBroker;
private TransactionChainHandler transactionChainHandler;
- private SchemaContextRef refSchemaCtx;
private LeafNode buildLeaf;
private ContainerNode buildBaseCont;
private ContainerNode buildBaseContWithList;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- this.refSchemaCtx = new SchemaContextRef(
- YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT)));
- this.schema = this.refSchemaCtx.get();
+ this.schema =
+ YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT));
final QName baseQName = QName.create("http://example.com/ns/example-jukebox", "2015-04-04", "jukebox");
final QName containerQname = QName.create(baseQName, "player");
payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData());
doReturn(CommitInfo.emptyFluentFuture()).when(this.readWrite).commit();
- PutDataTransactionUtil.putData(payload, this.refSchemaCtx,
+ PutDataTransactionUtil.putData(payload, this.schema,
new TransactionVarsWrapper(payload.getInstanceIdentifierContext(), null, transactionChainHandler), null,
null);
verify(this.readWrite).exists(LogicalDatastoreType.CONFIGURATION,
payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData());
doReturn(CommitInfo.emptyFluentFuture()).when(this.readWrite).commit();
- PutDataTransactionUtil.putData(payload, this.refSchemaCtx,
+ PutDataTransactionUtil.putData(payload, this.schema,
new TransactionVarsWrapper(payload.getInstanceIdentifierContext(), null, transactionChainHandler), null,
null);
verify(this.readWrite).exists(LogicalDatastoreType.CONFIGURATION,
doNothing().when(this.readWrite).put(LogicalDatastoreType.CONFIGURATION,
payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData());
doReturn(CommitInfo.emptyFluentFuture()).when(this.readWrite).commit();
- PutDataTransactionUtil.putData(payload, this.refSchemaCtx,
+ PutDataTransactionUtil.putData(payload, this.schema,
new TransactionVarsWrapper(payload.getInstanceIdentifierContext(), null, transactionChainHandler), null,
null);
verify(this.readWrite).exists(LogicalDatastoreType.CONFIGURATION, this.iid2);