ibessonov commented on a change in pull request #336: URL: https://github.com/apache/ignite-3/pull/336#discussion_r716487851
########## File path: modules/configuration/src/main/java/org/apache/ignite/internal/configuration/util/ConfigurationNotificationsUtil.java ########## @@ -30,66 +32,115 @@ import org.apache.ignite.configuration.notifications.ConfigurationListener; import org.apache.ignite.configuration.notifications.ConfigurationNamedListListener; import org.apache.ignite.configuration.notifications.ConfigurationNotificationEvent; -import org.apache.ignite.internal.configuration.ConfigurationNode; import org.apache.ignite.internal.configuration.DynamicConfiguration; import org.apache.ignite.internal.configuration.DynamicProperty; import org.apache.ignite.internal.configuration.NamedListConfiguration; import org.apache.ignite.internal.configuration.tree.ConfigurationVisitor; import org.apache.ignite.internal.configuration.tree.InnerNode; import org.apache.ignite.internal.configuration.tree.NamedListNode; +import org.jetbrains.annotations.Nullable; import static org.apache.ignite.internal.configuration.util.ConfigurationUtil.innerNodeVisitor; import static org.apache.ignite.internal.configuration.util.ConfigurationUtil.leafNodeVisitor; import static org.apache.ignite.internal.configuration.util.ConfigurationUtil.namedListNodeVisitor; +import static org.apache.ignite.internal.util.CollectionUtils.viewReadOnly; /** */ public class ConfigurationNotificationsUtil { /** * Recursively notifies all public configuration listeners, accumulating resulting futures in {@code futures} list. + * * @param oldInnerNode Old configuration values root. * @param newInnerNode New configuration values root. * @param cfgNode Public configuration tree node corresponding to the current inner nodes. * @param storageRevision Storage revision. * @param futures Write-only list of futures to accumulate results. */ public static void notifyListeners( - InnerNode oldInnerNode, + @Nullable InnerNode oldInnerNode, InnerNode newInnerNode, DynamicConfiguration<InnerNode, ?> cfgNode, long storageRevision, List<CompletableFuture<?>> futures + ) { + notifyListeners(oldInnerNode, newInnerNode, cfgNode, storageRevision, futures, List.of(), new HashMap<>()); + } + + /** + * Recursively notifies all public configuration listeners, accumulating resulting futures in {@code futures} list. + * + * @param oldInnerNode Old configuration values root. + * @param newInnerNode New configuration values root. + * @param cfgNode Public configuration tree node corresponding to the current inner nodes. + * @param storageRevision Storage revision. + * @param futures Write-only list of futures to accumulate results. + * @param anyConfigs Current {@link NamedListConfiguration#any "any"} configurations. + * @param eventConfigs Configuration containers for {@link ConfigurationNotificationEvent}. + */ + private static void notifyListeners( Review comment: Ok, we can refactor it later -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@ignite.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org