From c49d3af1e3c3886521af28d7a53593e22220887a Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 25 May 2022 17:28:50 +0200 Subject: [PATCH] Activate YangLibrarySupport lazily SCR has the ability to instantiate service providers as needed. Use that facility to start YangLibrarySupport. Also express the dependency on SCR so that we guard loading. Change-Id: Ib0a305939899b27d34615d34c4d7190aec3b1601 Signed-off-by: Robert Varga --- .../mdsal/yanglib/rfc8525/YangLibrarySupport.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibrarySupport.java b/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibrarySupport.java index c389449958..f1b6b7127f 100644 --- a/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibrarySupport.java +++ b/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibrarySupport.java @@ -36,11 +36,13 @@ import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; +import org.osgi.service.component.annotations.RequireServiceComponentRuntime; @Beta @NonNullByDefault @Singleton -@Component(immediate = true) +@Component +@RequireServiceComponentRuntime public final class YangLibrarySupport implements YangLibSupport { private static final Revision REVISION = YangLibrary.QNAME.getRevision().orElseThrow(); @@ -64,9 +66,9 @@ public final class YangLibrarySupport implements YangLibSupport { codecTree = codecFactory.create(new DefaultBindingRuntimeContext( generator.generateTypeMapping(context), snapshot)); - this.identityCodec = codecTree.getIdentityCodec(); - this.codec = verifyNotNull(codecTree.getSubtreeCodec(InstanceIdentifier.create(YangLibrary.class))); - this.legacyCodec = verifyNotNull(codecTree.getSubtreeCodec(InstanceIdentifier.create(ModulesState.class))); + identityCodec = codecTree.getIdentityCodec(); + codec = verifyNotNull(codecTree.getSubtreeCodec(InstanceIdentifier.create(YangLibrary.class))); + legacyCodec = verifyNotNull(codecTree.getSubtreeCodec(InstanceIdentifier.create(ModulesState.class))); } @Override -- 2.36.6