We want to decompose our services as much as possible, and RESTCONF
legally needs to know the version we are implementing. Expose that
version.
JIRA: MDSAL-595
Change-Id: Ic8dc27adf2c85658e364712af616db7ac558b595
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
74f4dd77a96fb84645892ee268a54f07491d84d2)
(cherry picked from commit
bb8aa291f4edf81557c2a80a28c4bde9520234e0)
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.opendaylight.yangtools.rfc8528.data.api.MountPointContextFactory;
import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier;
+import org.opendaylight.yangtools.yang.common.Revision;
/**
* Main entrypoint into YANG (Module) Library support instance.
*/
MountPointContextFactory createMountPointContextFactory(MountPointIdentifier mountId,
SchemaContextResolver resolver);
+
+ /**
+ * Return the revision date of the model this support implements. The value returned from this method is suitable
+ * for reporting in <a href="https://tools.ietf.org/html/rfc8040#section-3.3.3">RFC8040 section 3.3.3</a>.
+ *
+ * @return A revision.
+ */
+ Revision implementedRevision();
}
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
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.parser.api.YangParserException;
import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
@NonNullByDefault
@Singleton
public final class YangModuleLibrarySupport implements YangLibSupport {
+ private static final Revision REVISION = ModulesState.QNAME.getRevision().orElseThrow();
+
private final BindingDataObjectCodecTreeNode<ModulesState> codec;
private final EffectiveModelContext context;
return new MountPointContextFactoryImpl(mountId, resolver, context, codec);
}
+ @Override
+ public Revision implementedRevision() {
+ return REVISION;
+ }
+
private static YangTextSchemaSource createSource(final YangModuleInfo info) {
final QName name = info.getName();
return YangTextSchemaSource.delegateForByteSource(
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
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.parser.api.YangParserException;
import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
@NonNullByDefault
@Singleton
public final class YangLibrarySupport implements YangLibSupport {
+ private static final Revision REVISION = YangLibrary.QNAME.getRevision().orElseThrow();
+
private final BindingDataObjectCodecTreeNode<YangLibrary> codec;
@SuppressWarnings("deprecation")
private final BindingDataObjectCodecTreeNode<ModulesState> legacyCodec;
return new MountPointContextFactoryImpl(mountId, resolver, context, identityCodec, codec, legacyCodec);
}
+ @Override
+ public Revision implementedRevision() {
+ return REVISION;
+ }
+
private static YangTextSchemaSource createSource(final YangModuleInfo info) {
final QName name = info.getName();
return YangTextSchemaSource.delegateForByteSource(