Use OSGi DS instead of Activator/blueprint 16/87916/8
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 19 Feb 2020 17:18:52 +0000 (18:18 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 24 Feb 2020 09:07:18 +0000 (10:07 +0100)
This saves us some hassle, making the intent more obvious.

JIRA: MDSAL-392
Change-Id: I76a42e206857b1c59d0080c788b157ecf40ba829
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
18 files changed:
binding/mdsal-binding-generator-impl/pom.xml
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/Activator.java [deleted file]
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/DefaultBindingGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/DefaultBindingRuntimeGenerator.java
entityownership/mdsal-eos-dom-simple/pom.xml
entityownership/mdsal-eos-dom-simple/src/main/java/org/opendaylight/mdsal/eos/dom/simple/Activator.java [deleted file]
entityownership/mdsal-eos-dom-simple/src/main/java/org/opendaylight/mdsal/eos/dom/simple/SimpleDOMEntityOwnershipService.java
features/odl-mdsal-binding-runtime/src/main/feature/feature.xml
features/odl-mdsal-exp-yanglib-rfc7895/src/main/feature/feature.xml [new file with mode: 0644]
features/odl-mdsal-exp-yanglib-rfc8525/src/main/feature/feature.xml [new file with mode: 0644]
yanglib/mdsal-yanglib-rfc7895/pom.xml
yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/OSGiYangModuleLibrarySupport.java [new file with mode: 0644]
yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/YangModuleLibrarySupport.java
yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/YangModuleLibrarySupportFactory.java
yanglib/mdsal-yanglib-rfc8525/pom.xml
yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/OSGiYangLibrarySupport.java [new file with mode: 0644]
yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibrarySupport.java
yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibrarySupportFactory.java

index e4211ba5dc2df72f9d941659fd8d136b36d83ca1..a2f2a079c526dce92bb4271ef039c46dfc609bf7 100644 (file)
@@ -53,7 +53,7 @@
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>osgi.cmpn</artifactId>
         </dependency>
 
         <dependency>
@@ -75,7 +75,6 @@
                 <configuration>
                     <instructions>
                         <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
-                        <Bundle-Activator>org.opendaylight.mdsal.binding.generator.impl.Activator</Bundle-Activator>
                         <Export-Package>
                             {local-packages},
                             org.opendaylight.mdsal.binding.generator.impl,
diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/Activator.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/Activator.java
deleted file mode 100644 (file)
index 0726107..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2020 PANTHEON.tech, s.r.o. 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.mdsal.binding.generator.impl;
-
-import com.google.common.annotations.Beta;
-import org.opendaylight.binding.runtime.api.BindingRuntimeGenerator;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-@Beta
-public final class Activator implements BundleActivator {
-    @Override
-    public void start(final BundleContext context) {
-        context.registerService(BindingRuntimeGenerator.class, new DefaultBindingRuntimeGenerator(), null);
-    }
-
-    @Override
-    public void stop(final BundleContext context) {
-        // No-op, service is unregistered automatically
-    }
-}
index 53f5bcd16bd628e83e81ca7bdbd5bbfeb67965c0..84c4abc47d34b72be0b1bf6562e8b16e55ed0cc8 100644 (file)
@@ -31,6 +31,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 @Beta
 @MetaInfServices
 @Singleton
+// Note: not exposed in OSGi on purpose, as this should only be needed at compile-time
 public final class DefaultBindingGenerator implements BindingGenerator {
     @Override
     public List<Type> generateTypes(final SchemaContext context, final Collection<? extends Module> modules) {
index 768f29360f0ae16e37a4099ed9e47bbd1e5f6d04..30cca455ca9f97c14a103a99dfc630911a1fdf21 100644 (file)
@@ -17,6 +17,11 @@ import org.opendaylight.binding.runtime.api.BindingRuntimeTypes;
 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Default implementation of {@link BindingRuntimeGenerator}.
@@ -24,7 +29,10 @@ import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 @Beta
 @MetaInfServices
 @Singleton
+@Component(immediate = true)
 public final class DefaultBindingRuntimeGenerator implements BindingRuntimeGenerator {
+    private static final Logger LOG = LoggerFactory.getLogger(DefaultBindingRuntimeGenerator.class);
+
     @Override
     public BindingRuntimeTypes generateTypeMapping(final SchemaContext context) {
         GeneratorUtils.checkContext(context);
@@ -38,4 +46,16 @@ public final class DefaultBindingRuntimeGenerator implements BindingRuntimeGener
             }
         }
     }
+
+    @Activate
+    @SuppressWarnings("static-method")
+    void activate() {
+        LOG.info("Binding/YANG type support activated");
+    }
+
+    @Deactivate
+    @SuppressWarnings("static-method")
+    void deactivate() {
+        LOG.info("Binding/YANG type support deactivated");
+    }
 }
index b9a62a125c292920ac25f75c230dce7b3d318645..a65b4f6b31448df72ec90d4954a21bf88808f410 100644 (file)
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.opendaylight.mdsal</groupId>
             <artifactId>mdsal-eos-common-api</artifactId>
             <artifactId>metainf-services</artifactId>
             <optional>true</optional>
         </dependency>
+        <dependency>
+            <groupId>javax.inject</groupId>
+            <artifactId>javax.inject</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.cmpn</artifactId>
+        </dependency>
     </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions combine.children="append">
-                        <Bundle-Activator>org.opendaylight.mdsal.eos.dom.simple.Activator</Bundle-Activator>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
     <scm>
         <connection>scm:git:http://git.opendaylight.org/gerrit/controller.git</connection>
         <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
diff --git a/entityownership/mdsal-eos-dom-simple/src/main/java/org/opendaylight/mdsal/eos/dom/simple/Activator.java b/entityownership/mdsal-eos-dom-simple/src/main/java/org/opendaylight/mdsal/eos/dom/simple/Activator.java
deleted file mode 100644 (file)
index dad0a42..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2019 PANTHEON.tech, s.r.o. 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.mdsal.eos.dom.simple;
-
-import com.google.common.annotations.Beta;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
-
-@Beta
-public class Activator implements BundleActivator {
-    private ServiceRegistration<?> reg;
-
-    @Override
-    public void start(final BundleContext context) {
-        reg = context.registerService(DOMEntityOwnershipService.class, new SimpleDOMEntityOwnershipService(), null);
-    }
-
-    @Override
-    public void stop(final BundleContext context) {
-        if (reg != null) {
-            reg.unregister();
-            reg = null;
-        }
-    }
-}
index 0685e2c124899dddf27ca52612f0f30b4344ac92..f58b33136ade7172a29da05f8de713726611f278 100644 (file)
@@ -23,6 +23,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.Collection;
 import java.util.Optional;
 import java.util.UUID;
+import javax.inject.Singleton;
 import org.checkerframework.checker.lock.qual.GuardedBy;
 import org.kohsuke.MetaInfServices;
 import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
@@ -36,6 +37,7 @@ import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListenerRegistration
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService;
 import org.opendaylight.yangtools.concepts.AbstractObjectRegistration;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.osgi.service.component.annotations.Component;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -46,6 +48,8 @@ import org.slf4j.LoggerFactory;
  * @author Robert Varga
  */
 @MetaInfServices
+@Singleton
+@Component(immediate = true)
 public final class SimpleDOMEntityOwnershipService implements DOMEntityOwnershipService {
     private static final Logger LOG = LoggerFactory.getLogger(SimpleDOMEntityOwnershipService.class);
 
index 7ab803defbf3c5fc2322b7608600b8fdfdab82e9..edc2dfb8e1c0f6f08f8a0a5e8c2e35448a6c7e98 100644 (file)
@@ -3,5 +3,6 @@
     <feature name="odl-mdsal-binding-runtime">
         <feature version="[5,6)">odl-yangtools-data</feature>
         <feature version="[5,6)">odl-yangtools-parser</feature>
+        <feature>scr</feature>
     </feature>
 </features>
diff --git a/features/odl-mdsal-exp-yanglib-rfc7895/src/main/feature/feature.xml b/features/odl-mdsal-exp-yanglib-rfc7895/src/main/feature/feature.xml
new file mode 100644 (file)
index 0000000..ceb8fbd
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-mdsal-exp-yanglib-rfc7895">
+    <feature name="odl-mdsal-exp-yanglib-rfc7895">
+        <feature>scr</feature>
+    </feature>
+</features>
diff --git a/features/odl-mdsal-exp-yanglib-rfc8525/src/main/feature/feature.xml b/features/odl-mdsal-exp-yanglib-rfc8525/src/main/feature/feature.xml
new file mode 100644 (file)
index 0000000..681f83f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-mdsal-exp-yanglib-rfc8525">
+    <feature name="odl-mdsal-exp-yanglib-rfc8525">
+        <feature>scr</feature>
+    </feature>
+</features>
index d2e7fe0380faf8fd869351b26883700508fb1563..49deed392abc0440a79ed39e90ec082ba49e95dc 100644 (file)
@@ -48,9 +48,8 @@
             <optional>true</optional>
         </dependency>
         <dependency>
-            <groupId>org.apache.aries.blueprint</groupId>
-            <artifactId>blueprint-maven-plugin-annotation</artifactId>
-            <optional>true</optional>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.cmpn</artifactId>
         </dependency>
 
         <dependency>
                     </instructions>
                 </configuration>
             </plugin>
-            <plugin>
-                <groupId>org.apache.aries.blueprint</groupId>
-                <artifactId>blueprint-maven-plugin</artifactId>
-            </plugin>
         </plugins>
     </build>
     <scm>
diff --git a/yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/OSGiYangModuleLibrarySupport.java b/yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/OSGiYangModuleLibrarySupport.java
new file mode 100644 (file)
index 0000000..09b4d3b
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. 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.mdsal.yanglib.rfc7895;
+
+import com.google.common.annotations.Beta;
+import java.io.IOException;
+import org.opendaylight.binding.runtime.api.BindingRuntimeGenerator;
+import org.opendaylight.mdsal.yanglib.api.SchemaContextResolver;
+import org.opendaylight.mdsal.yanglib.api.YangLibSupport;
+import org.opendaylight.yangtools.rfc8528.data.api.MountPointContextFactory;
+import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier;
+import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
+import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Beta
+@Component(immediate = true)
+public final class OSGiYangModuleLibrarySupport implements YangLibSupport {
+    private static final Logger LOG = LoggerFactory.getLogger(OSGiYangModuleLibrarySupport.class);
+
+    @Reference
+    YangParserFactory parserFactory = null;
+    @Reference
+    BindingRuntimeGenerator generator = null;
+
+    private YangModuleLibrarySupport delegate;
+
+    @Override
+    public MountPointContextFactory createMountPointContextFactory(final MountPointIdentifier mountId,
+            final SchemaContextResolver resolver) {
+        return delegate.createMountPointContextFactory(mountId, resolver);
+    }
+
+    @Activate
+    void activate() throws YangParserException, IOException {
+        delegate = new YangModuleLibrarySupport(parserFactory, generator);
+        LOG.info("RFC7895 YANG Module Library support activated");
+    }
+
+    @Deactivate
+    void deactivate() {
+        delegate = null;
+        LOG.info("RFC7895 YANG Module Library support deactivated");
+    }
+}
index 1c9577603d39b0270ffedc2fcddd81e6de8e6741..ad803c8cfac292626ea546813dd0ee6ecbb1ba13 100644 (file)
@@ -14,7 +14,6 @@ import com.google.common.collect.Collections2;
 import java.io.IOException;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-import org.apache.aries.blueprint.annotation.service.Reference;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.binding.runtime.api.BindingRuntimeGenerator;
 import org.opendaylight.binding.runtime.api.DefaultBindingRuntimeContext;
@@ -44,8 +43,8 @@ public final class YangModuleLibrarySupport implements YangLibSupport {
     private final EffectiveModelContext context;
 
     @Inject
-    public YangModuleLibrarySupport(final @Reference YangParserFactory parserFactory,
-            final @Reference BindingRuntimeGenerator generator) throws YangParserException, IOException {
+    public YangModuleLibrarySupport(final YangParserFactory parserFactory, final BindingRuntimeGenerator generator)
+            throws YangParserException, IOException {
         final YangModuleInfo yangLibModule = $YangModuleInfoImpl.getInstance();
 
         context = parserFactory.createParser()
index 3d1592627ae2522f4b616d8fce0eb5786441eaf8..acb9567e6a10a42f69e7de056def96bdcc23a208 100644 (file)
@@ -9,6 +9,7 @@ package org.opendaylight.mdsal.yanglib.rfc7895;
 
 import static java.util.Objects.requireNonNull;
 
+import com.google.common.annotations.Beta;
 import java.io.IOException;
 import java.util.ServiceLoader;
 import org.eclipse.jdt.annotation.NonNullByDefault;
@@ -19,6 +20,7 @@ import org.opendaylight.mdsal.yanglib.api.YangLibSupportFactory;
 import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
 import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
 
+@Beta
 @MetaInfServices
 @NonNullByDefault
 public final class YangModuleLibrarySupportFactory implements YangLibSupportFactory {
index 2ef9040f1e78e7484257e23a01f9e86707f2fdd2..a48aa1da703aa0fb8d8be0e5d44981e4e68f3a19 100644 (file)
@@ -48,9 +48,8 @@
             <optional>true</optional>
         </dependency>
         <dependency>
-            <groupId>org.apache.aries.blueprint</groupId>
-            <artifactId>blueprint-maven-plugin-annotation</artifactId>
-            <optional>true</optional>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.cmpn</artifactId>
         </dependency>
 
         <dependency>
                     </instructions>
                 </configuration>
             </plugin>
-            <plugin>
-                <groupId>org.apache.aries.blueprint</groupId>
-                <artifactId>blueprint-maven-plugin</artifactId>
-            </plugin>
         </plugins>
     </build>
     <scm>
diff --git a/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/OSGiYangLibrarySupport.java b/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/OSGiYangLibrarySupport.java
new file mode 100644 (file)
index 0000000..2827d38
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. 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.mdsal.yanglib.rfc8525;
+
+import com.google.common.annotations.Beta;
+import java.io.IOException;
+import org.opendaylight.binding.runtime.api.BindingRuntimeGenerator;
+import org.opendaylight.mdsal.yanglib.api.SchemaContextResolver;
+import org.opendaylight.mdsal.yanglib.api.YangLibSupport;
+import org.opendaylight.yangtools.rfc8528.data.api.MountPointContextFactory;
+import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier;
+import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
+import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Beta
+@Component(immediate = true)
+public final class OSGiYangLibrarySupport implements YangLibSupport {
+    private static final Logger LOG = LoggerFactory.getLogger(OSGiYangLibrarySupport.class);
+
+    @Reference
+    YangParserFactory parserFactory = null;
+    @Reference
+    BindingRuntimeGenerator generator = null;
+
+    private YangLibrarySupport delegate;
+
+    @Override
+    public MountPointContextFactory createMountPointContextFactory(final MountPointIdentifier mountId,
+            final SchemaContextResolver resolver) {
+        return delegate.createMountPointContextFactory(mountId, resolver);
+    }
+
+    @Activate
+    void activate() throws YangParserException, IOException {
+        delegate = new YangLibrarySupport(parserFactory, generator);
+        LOG.info("RFC8525 YANG Library support activated");
+    }
+
+    @Deactivate
+    void deactivate() {
+        delegate = null;
+        LOG.info("RFC8525 YANG Library support deactivated");
+    }
+}
index 12dbc97b166cf155ab961fe0458e50d8d602eb47..5a4e78322896931424646324ca334e01c1fd83e5 100644 (file)
@@ -14,7 +14,6 @@ import com.google.common.collect.Collections2;
 import java.io.IOException;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-import org.apache.aries.blueprint.annotation.service.Reference;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.binding.runtime.api.BindingRuntimeGenerator;
 import org.opendaylight.binding.runtime.api.DefaultBindingRuntimeContext;
@@ -49,8 +48,8 @@ public final class YangLibrarySupport implements YangLibSupport {
     private final EffectiveModelContext context;
 
     @Inject
-    public YangLibrarySupport(final @Reference YangParserFactory parserFactory,
-            final @Reference BindingRuntimeGenerator generator) throws YangParserException, IOException {
+    public YangLibrarySupport(final YangParserFactory parserFactory, final BindingRuntimeGenerator generator)
+            throws YangParserException, IOException {
         final YangModuleInfo yangLibModule = $YangModuleInfoImpl.getInstance();
 
         context = parserFactory.createParser()
index b5aa7dd4e1f56fba8166c40a2c2982fb41dc1108..fcacf1148a711ed78154029b47e65cf1b375c9ab 100644 (file)
@@ -9,6 +9,7 @@ package org.opendaylight.mdsal.yanglib.rfc8525;
 
 import static java.util.Objects.requireNonNull;
 
+import com.google.common.annotations.Beta;
 import java.io.IOException;
 import java.util.ServiceLoader;
 import org.eclipse.jdt.annotation.NonNullByDefault;
@@ -19,6 +20,7 @@ import org.opendaylight.mdsal.yanglib.api.YangLibSupportFactory;
 import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
 import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
 
+@Beta
 @MetaInfServices
 @NonNullByDefault
 public final class YangLibrarySupportFactory implements YangLibSupportFactory {