From d800e9cca6acc0484888f770915100fd4d073098 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 9 Feb 2023 16:11:57 +0100 Subject: [PATCH] Clean up mdsal-netconf-notification Remove impl.ops package and modernize classes a bit. Change-Id: I4a5f549c2d05cefac544ce1a426815cbc2bc17d8 Signed-off-by: Robert Varga --- .../impl/{ops => }/CreateSubscription.java | 3 +-- .../impl/NetconfNotificationManager.java | 1 - .../NetconfNotificationOperationService.java | 27 +++++-------------- .../{ops => }/NotificationsTransformUtil.java | 2 +- .../impl/OperationalDatastoreListener.java | 5 ++-- .../{ops => }/CreateSubscriptionTest.java | 2 +- .../NotificationsTransformUtilTest.java | 2 +- .../OperationalDatastoreListenerTest.java | 10 +++---- 8 files changed, 19 insertions(+), 33 deletions(-) rename netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/{ops => }/CreateSubscription.java (97%) rename netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/{ops => }/NotificationsTransformUtil.java (98%) rename netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/{ops => }/CreateSubscriptionTest.java (97%) rename netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/{ops => }/NotificationsTransformUtilTest.java (98%) diff --git a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/ops/CreateSubscription.java b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/CreateSubscription.java similarity index 97% rename from netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/ops/CreateSubscription.java rename to netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/CreateSubscription.java index 685ba76188..729ef97b6e 100644 --- a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/ops/CreateSubscription.java +++ b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/CreateSubscription.java @@ -5,7 +5,7 @@ * 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.netconf.mdsal.notification.impl.ops; +package org.opendaylight.netconf.mdsal.notification.impl; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; @@ -19,7 +19,6 @@ import org.opendaylight.netconf.api.NetconfSession; import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.netconf.mapping.api.SessionAwareNetconfOperation; -import org.opendaylight.netconf.mdsal.notification.impl.NetconfNotificationManager; import org.opendaylight.netconf.notifications.NetconfNotification; import org.opendaylight.netconf.notifications.NetconfNotificationListener; import org.opendaylight.netconf.notifications.NetconfNotificationRegistry; diff --git a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationManager.java b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationManager.java index 0a1bac8a2a..0960aaa372 100644 --- a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationManager.java +++ b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationManager.java @@ -27,7 +27,6 @@ import javax.inject.Singleton; import org.checkerframework.checker.lock.qual.GuardedBy; import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecFactory; import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeGenerator; -import org.opendaylight.netconf.mdsal.notification.impl.ops.NotificationsTransformUtil; import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration; import org.opendaylight.netconf.notifications.NetconfNotification; import org.opendaylight.netconf.notifications.NetconfNotificationCollector; diff --git a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationOperationService.java b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationOperationService.java index 3bfa7baaf7..b36cc8029b 100644 --- a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationOperationService.java +++ b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationOperationService.java @@ -5,42 +5,29 @@ * 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.netconf.mdsal.notification.impl; -import java.util.Collections; import java.util.Set; import org.opendaylight.netconf.mapping.api.NetconfOperation; import org.opendaylight.netconf.mapping.api.NetconfOperationService; -import org.opendaylight.netconf.mdsal.notification.impl.ops.CreateSubscription; import org.opendaylight.netconf.notifications.NetconfNotificationRegistry; -public class NetconfNotificationOperationService implements NetconfOperationService { - private final Set netconfOperations; +public final class NetconfNotificationOperationService implements NetconfOperationService { + private final CreateSubscription createSubscription; - public NetconfNotificationOperationService(String netconfSessionIdForReporting, NetconfNotificationRegistry - netconfNotificationRegistry) { - this.netconfOperations = Collections.singleton(new CreateSubscription(netconfSessionIdForReporting, - netconfNotificationRegistry)); + public NetconfNotificationOperationService(final String netconfSessionIdForReporting, + final NetconfNotificationRegistry netconfNotificationRegistry) { + createSubscription = new CreateSubscription(netconfSessionIdForReporting, netconfNotificationRegistry); } - @Override public Set getNetconfOperations() { - return netconfOperations; + return Set.of(createSubscription); } @SuppressWarnings("checkstyle:IllegalCatch") @Override public void close() { - for (NetconfOperation netconfOperation : netconfOperations) { - if (netconfOperation instanceof AutoCloseable) { - try { - ((AutoCloseable) netconfOperation).close(); - } catch (Exception e) { - throw new IllegalStateException("Exception while closing " + netconfOperation, e); - } - } - } + createSubscription.close(); } } diff --git a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtil.java b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NotificationsTransformUtil.java similarity index 98% rename from netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtil.java rename to netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NotificationsTransformUtil.java index 28f04fdee7..69f493fc12 100644 --- a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtil.java +++ b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/NotificationsTransformUtil.java @@ -5,7 +5,7 @@ * 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.netconf.mdsal.notification.impl.ops; +package org.opendaylight.netconf.mdsal.notification.impl; import static com.google.common.base.Verify.verify; diff --git a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/OperationalDatastoreListener.java b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/OperationalDatastoreListener.java index 5154b83874..406e564025 100644 --- a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/OperationalDatastoreListener.java +++ b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/impl/OperationalDatastoreListener.java @@ -7,6 +7,8 @@ */ package org.opendaylight.netconf.mdsal.notification.impl; +import static java.util.Objects.requireNonNull; + import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; @@ -21,7 +23,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; * @param data object class */ abstract class OperationalDatastoreListener implements DataTreeChangeListener { - private final InstanceIdentifier instanceIdentifier; /** @@ -30,7 +31,7 @@ abstract class OperationalDatastoreListener implements Dat * @param instanceIdentifier instance identifier of subtree, on which this instance should listen on changes. */ OperationalDatastoreListener(final InstanceIdentifier instanceIdentifier) { - this.instanceIdentifier = instanceIdentifier; + this.instanceIdentifier = requireNonNull(instanceIdentifier); } /** diff --git a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/CreateSubscriptionTest.java b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/CreateSubscriptionTest.java similarity index 97% rename from netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/CreateSubscriptionTest.java rename to netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/CreateSubscriptionTest.java index 329c274fa7..3d79f86446 100644 --- a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/CreateSubscriptionTest.java +++ b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/CreateSubscriptionTest.java @@ -5,7 +5,7 @@ * 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.netconf.mdsal.notification.impl.ops; +package org.opendaylight.netconf.mdsal.notification.impl; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; diff --git a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtilTest.java b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/NotificationsTransformUtilTest.java similarity index 98% rename from netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtilTest.java rename to netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/NotificationsTransformUtilTest.java index 1b00fbd3da..2357e1913d 100644 --- a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtilTest.java +++ b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/NotificationsTransformUtilTest.java @@ -5,7 +5,7 @@ * 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.netconf.mdsal.notification.impl.ops; +package org.opendaylight.netconf.mdsal.notification.impl; import static org.junit.Assert.assertTrue; diff --git a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/OperationalDatastoreListenerTest.java b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/OperationalDatastoreListenerTest.java index c8b9faceae..254489d4bb 100644 --- a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/OperationalDatastoreListenerTest.java +++ b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/OperationalDatastoreListenerTest.java @@ -16,6 +16,7 @@ import java.util.Collection; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; +import org.mockito.Captor; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.binding.api.DataBroker; @@ -30,12 +31,12 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class OperationalDatastoreListenerTest { @Mock private DataBroker dataBroker; + @Captor + private ArgumentCaptor> argumentId; @Test public void testDataStoreListener() { final InstanceIdentifier instanceIdentifier = InstanceIdentifier.create(TestInterface.class); - final DataTreeIdentifier testId = - DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, instanceIdentifier); final var op = new OperationalDatastoreListener<>(instanceIdentifier) { @Override @@ -45,12 +46,11 @@ public class OperationalDatastoreListenerTest { }; doReturn(null).when(dataBroker).registerDataTreeChangeListener(any(), any()); - ArgumentCaptor argumentId = ArgumentCaptor.forClass(DataTreeIdentifier.class); op.registerOnChanges(dataBroker); verify(dataBroker).registerDataTreeChangeListener(argumentId.capture(), any()); - assertEquals(testId, argumentId.getValue()); - + assertEquals(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, instanceIdentifier), + argumentId.getValue()); } interface TestInterface extends ChildOf { -- 2.36.6