From: Robert Varga Date: Wed, 17 Jan 2024 10:02:20 +0000 (+0100) Subject: Warn on deprecated blueprint elements X-Git-Tag: v9.0.0~10 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=38a901672a5bc7c5658a7627f8f5aa14dfedd80d Warn on deprecated blueprint elements 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 --- diff --git a/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/OpendaylightNamespaceHandler.java b/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/OpendaylightNamespaceHandler.java index af26acae0a..c8056faca8 100644 --- a/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/OpendaylightNamespaceHandler.java +++ b/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/OpendaylightNamespaceHandler.java @@ -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())); diff --git a/opendaylight/blueprint/src/test/java/org/opendaylight/controller/blueprint/tests/DataStoreAppConfigDefaultXMLReaderTest.java b/opendaylight/blueprint/src/test/java/org/opendaylight/controller/blueprint/tests/DataStoreAppConfigDefaultXMLReaderTest.java index 79f454d619..dedf8e1c59 100644 --- a/opendaylight/blueprint/src/test/java/org/opendaylight/controller/blueprint/tests/DataStoreAppConfigDefaultXMLReaderTest.java +++ b/opendaylight/blueprint/src/test/java/org/opendaylight/controller/blueprint/tests/DataStoreAppConfigDefaultXMLReaderTest.java @@ -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()); }