Warn on deprecated blueprint elements 18/109818/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 17 Jan 2024 10:02:20 +0000 (11:02 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 17 Jan 2024 10:02:48 +0000 (11:02 +0100)
A number of elements are going away, issue a warning when each is
encountered.

JIRA: CONTROLLER-2090
Change-Id: I91cd29f4824e617572e3f17a593df431d0c72efe
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/OpendaylightNamespaceHandler.java
opendaylight/blueprint/src/test/java/org/opendaylight/controller/blueprint/tests/DataStoreAppConfigDefaultXMLReaderTest.java

index af26acae0a16e1d7fd1a40d67181b8f2f682a51b..c8056faca81d11f930cee1f3d9e18895a1df7f58 100644 (file)
@@ -98,26 +98,37 @@ public final class OpendaylightNamespaceHandler implements NamespaceHandler {
         LOG.debug("In parse for {}", element);
 
         if (nodeNameEquals(element, RpcImplementationBean.RPC_IMPLEMENTATION)) {
+            warnDeprecatedElement(RpcImplementationBean.RPC_IMPLEMENTATION);
             return parseRpcImplementation(element, context);
         } else if (nodeNameEquals(element, RPC_SERVICE)) {
+            warnDeprecatedElement(RPC_SERVICE);
             return parseRpcService(element, context);
         } else if (nodeNameEquals(element, NotificationListenerBean.NOTIFICATION_LISTENER)) {
+            warnDeprecatedElement(NotificationListenerBean.NOTIFICATION_LISTENER);
             return parseNotificationListener(element, context);
         } else if (nodeNameEquals(element, CLUSTERED_APP_CONFIG)) {
             return parseClusteredAppConfig(element, context);
         } else if (nodeNameEquals(element, SPECIFIC_SERVICE_REF_LIST)) {
+            warnDeprecatedElement(SPECIFIC_SERVICE_REF_LIST);
             return parseSpecificReferenceList(element, context);
         } else if (nodeNameEquals(element, STATIC_REFERENCE)) {
+            warnDeprecatedElement(SPECIFIC_SERVICE_REF_LIST);
             return parseStaticReference(element, context);
         } else if (nodeNameEquals(element, ACTION_SERVICE)) {
+            warnDeprecatedElement(ACTION_SERVICE);
             return parseActionService(element, context);
         } else if (nodeNameEquals(element, ActionProviderBean.ACTION_PROVIDER)) {
+            warnDeprecatedElement(ActionProviderBean.ACTION_PROVIDER);
             return parseActionProvider(element, context);
         }
 
         throw new ComponentDefinitionException("Unsupported standalone element: " + element.getNodeName());
     }
 
+    private static void warnDeprecatedElement(final String element) {
+        LOG.warn("Encountered element {}, support for this element will be removed in the next major release", element);
+    }
+
     @Override
     public ComponentMetadata decorate(final Node node, final ComponentMetadata component, final ParserContext context) {
         if (node instanceof Attr) {
@@ -144,12 +155,10 @@ public final class OpendaylightNamespaceHandler implements NamespaceHandler {
 
     private static ComponentMetadata decorateServiceType(final Attr attr, final ComponentMetadata component,
             final ParserContext context) {
-        if (!(component instanceof MutableServiceMetadata)) {
+        if (!(component instanceof MutableServiceMetadata service)) {
             throw new ComponentDefinitionException("Expected an instanceof MutableServiceMetadata");
         }
 
-        MutableServiceMetadata service = (MutableServiceMetadata)component;
-
         LOG.debug("decorateServiceType for {} - adding type property {}", service.getId(), attr.getValue());
 
         service.addServiceProperty(createValue(context, TYPE_ATTR), createValue(context, attr.getValue()));
index 79f454d619c2f5def67a4190570890acd730bec2..dedf8e1c59b2a3aaadd1eb7daa0971d461a7c396 100644 (file)
@@ -29,7 +29,7 @@ public class DataStoreAppConfigDefaultXMLReaderTest extends AbstractConcurrentDa
             getDataBrokerTestCustomizer().getAdapterContext().currentSerializer(), Lists.class)
             .createDefaultInstance();
 
-        UnorderedList element = lists.getUnorderedContainer().getUnorderedList().values().iterator().next();
+        UnorderedList element = lists.nonnullUnorderedContainer().nonnullUnorderedList().values().iterator().next();
         assertEquals("someName", element.getName());
         assertEquals("someValue", element.getValue());
     }