summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2023-01-01 23:17:36 -0500
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2023-01-02 12:35:36 +0000
commita511ce2463b021ed829bd90f70da6234cc59605b (patch)
treea5693ee196468a669ca1eb417941dd7d0e5d68e6
parente4948805eddf16dbd8cdd169011dfa52019ac55d (diff)
downloadrabbitmq-server-git-mergify/bp/v3.10.x/pr-6783.tar.gz
(c) year bump: 2022 => 2023mergify/bp/v3.10.x/pr-6783
(cherry picked from commit ec4f1dba7d78a7e27a6dca6889f79bad23ea008d) # Conflicts: # deps/rabbit/include/amqqueue.hrl # deps/rabbit/src/rabbit_cuttlefish.erl # deps/rabbit/src/rabbit_db.erl # deps/rabbit/src/rabbit_db_rtparams.erl # deps/rabbit/src/rabbit_db_user.erl # deps/rabbit/src/rabbit_db_vhost.erl # deps/rabbit/src/rabbit_ff_controller.erl # deps/rabbit/src/rabbit_ff_registry_factory.erl # deps/rabbit/src/rabbit_networking_store.erl # deps/rabbit/src/rabbit_stream_sac_coordinator.erl # deps/rabbit/src/rabbit_time_travel_dbg.erl # deps/rabbit/src/rabbit_tracking_store.erl # deps/rabbit/test/feature_flags_v2_SUITE.erl # deps/rabbit/test/rabbit_cuttlefish_SUITE.erl # deps/rabbit/test/rabbit_stream_sac_coordinator_SUITE.erl # deps/rabbitmq_amqp1_0/test/config_schema_SUITE.erl # deps/rabbitmq_auth_backend_oauth2/README.md # deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/restart_stream_command.ex # deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumerGroupsCommand.erl # deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamGroupConsumersCommand.erl # deps/rabbitmq_stream/test/commands_SUITE.erl
-rw-r--r--README.md2
-rw-r--r--deps/amqp10_client/src/amqp10_client.erl2
-rw-r--r--deps/amqp10_client/src/amqp10_client.hrl2
-rw-r--r--deps/amqp10_client/src/amqp10_client_app.erl2
-rw-r--r--deps/amqp10_client/src/amqp10_client_connection.erl2
-rw-r--r--deps/amqp10_client/src/amqp10_client_connection_sup.erl2
-rw-r--r--deps/amqp10_client/src/amqp10_client_connections_sup.erl2
-rw-r--r--deps/amqp10_client/src/amqp10_client_frame_reader.erl2
-rw-r--r--deps/amqp10_client/src/amqp10_client_session.erl2
-rw-r--r--deps/amqp10_client/src/amqp10_client_sessions_sup.erl2
-rw-r--r--deps/amqp10_client/src/amqp10_client_sup.erl2
-rw-r--r--deps/amqp10_client/src/amqp10_client_types.erl2
-rw-r--r--deps/amqp10_client/src/amqp10_msg.erl2
-rw-r--r--deps/amqp10_client/test/activemq_ct_helpers.erl2
-rw-r--r--deps/amqp10_client/test/mock_server.erl2
-rw-r--r--deps/amqp10_client/test/msg_SUITE.erl2
-rw-r--r--deps/amqp10_client/test/system_SUITE.erl2
-rw-r--r--deps/amqp10_common/src/amqp10_binary_generator.erl2
-rw-r--r--deps/amqp10_common/src/amqp10_binary_parser.erl2
-rw-r--r--deps/amqp10_common/src/amqp10_framing.erl2
-rw-r--r--deps/amqp_client/include/amqp_client.hrl2
-rw-r--r--deps/amqp_client/include/amqp_client_internal.hrl2
-rw-r--r--deps/amqp_client/src/amqp_auth_mechanisms.erl2
-rw-r--r--deps/amqp_client/src/amqp_channel.erl2
-rw-r--r--deps/amqp_client/src/amqp_channel_sup.erl2
-rw-r--r--deps/amqp_client/src/amqp_channel_sup_sup.erl2
-rw-r--r--deps/amqp_client/src/amqp_channels_manager.erl2
-rw-r--r--deps/amqp_client/src/amqp_client.erl2
-rw-r--r--deps/amqp_client/src/amqp_connection.erl2
-rw-r--r--deps/amqp_client/src/amqp_connection_sup.erl2
-rw-r--r--deps/amqp_client/src/amqp_connection_type_sup.erl2
-rw-r--r--deps/amqp_client/src/amqp_direct_connection.erl2
-rw-r--r--deps/amqp_client/src/amqp_direct_consumer.erl2
-rw-r--r--deps/amqp_client/src/amqp_gen_connection.erl2
-rw-r--r--deps/amqp_client/src/amqp_gen_consumer.erl2
-rw-r--r--deps/amqp_client/src/amqp_main_reader.erl2
-rw-r--r--deps/amqp_client/src/amqp_network_connection.erl4
-rw-r--r--deps/amqp_client/src/amqp_rpc_client.erl2
-rw-r--r--deps/amqp_client/src/amqp_rpc_server.erl2
-rw-r--r--deps/amqp_client/src/amqp_selective_consumer.erl2
-rw-r--r--deps/amqp_client/src/amqp_sup.erl2
-rw-r--r--deps/amqp_client/src/amqp_uri.erl2
-rw-r--r--deps/amqp_client/src/rabbit_routing_util.erl2
-rw-r--r--deps/amqp_client/src/uri_parser.erl6
-rw-r--r--deps/amqp_client/test/system_SUITE.erl2
-rw-r--r--deps/amqp_client/test/unit_SUITE.erl2
-rw-r--r--deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state.erl2
-rw-r--r--deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state_sup.erl2
-rw-r--r--deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state_systemd.erl2
-rw-r--r--deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl2
-rw-r--r--deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_file.erl4
-rw-r--r--deps/rabbit/apps/rabbitmq_prelaunch/test/rabbit_prelaunch_file_SUITE.erl2
-rw-r--r--deps/rabbit/docs/rabbitmq-diagnostics.82
-rw-r--r--deps/rabbit/docs/rabbitmq-echopid.82
-rw-r--r--deps/rabbit/docs/rabbitmq-env.conf.52
-rw-r--r--deps/rabbit/docs/rabbitmq-plugins.82
-rw-r--r--deps/rabbit/docs/rabbitmq-queues.82
-rw-r--r--deps/rabbit/docs/rabbitmq-server.82
-rw-r--r--deps/rabbit/docs/rabbitmq-service.82
-rw-r--r--deps/rabbit/docs/rabbitmq-upgrade.82
-rw-r--r--deps/rabbit/docs/rabbitmqctl.82
-rw-r--r--deps/rabbit/include/amqqueue.hrl4
-rw-r--r--deps/rabbit/include/gm_specs.hrl2
-rwxr-xr-xdeps/rabbit/scripts/rabbitmq-streams2
-rw-r--r--deps/rabbit/scripts/rabbitmq-streams.bat2
-rwxr-xr-xdeps/rabbit/scripts/rabbitmq-tanzu2
-rw-r--r--deps/rabbit/scripts/rabbitmq-tanzu.bat2
-rw-r--r--deps/rabbit/src/amqqueue.erl2
-rw-r--r--deps/rabbit/src/background_gc.erl2
-rw-r--r--deps/rabbit/src/code_server_cache.erl2
-rw-r--r--deps/rabbit/src/gatherer.erl2
-rw-r--r--deps/rabbit/src/gm.erl2
-rw-r--r--deps/rabbit/src/internal_user.erl2
-rw-r--r--deps/rabbit/src/lqueue.erl2
-rw-r--r--deps/rabbit/src/mirrored_supervisor_sups.erl2
-rw-r--r--deps/rabbit/src/pg_local.erl2
-rw-r--r--deps/rabbit/src/pid_recomposition.erl2
-rw-r--r--deps/rabbit/src/rabbit.erl2
-rw-r--r--deps/rabbit/src/rabbit_access_control.erl2
-rw-r--r--deps/rabbit/src/rabbit_alarm.erl2
-rw-r--r--deps/rabbit/src/rabbit_amqqueue.erl2
-rw-r--r--deps/rabbit/src/rabbit_amqqueue_process.erl2
-rw-r--r--deps/rabbit/src/rabbit_amqqueue_sup.erl2
-rw-r--r--deps/rabbit/src/rabbit_amqqueue_sup_sup.erl2
-rw-r--r--deps/rabbit/src/rabbit_auth_backend_internal.erl2
-rw-r--r--deps/rabbit/src/rabbit_auth_mechanism_amqplain.erl2
-rw-r--r--deps/rabbit/src/rabbit_auth_mechanism_cr_demo.erl2
-rw-r--r--deps/rabbit/src/rabbit_auth_mechanism_plain.erl2
-rw-r--r--deps/rabbit/src/rabbit_autoheal.erl2
-rw-r--r--deps/rabbit/src/rabbit_backing_queue.erl2
-rw-r--r--deps/rabbit/src/rabbit_basic.erl2
-rw-r--r--deps/rabbit/src/rabbit_binding.erl2
-rw-r--r--deps/rabbit/src/rabbit_boot_steps.erl2
-rw-r--r--deps/rabbit/src/rabbit_channel.erl2
-rw-r--r--deps/rabbit/src/rabbit_channel_interceptor.erl2
-rw-r--r--deps/rabbit/src/rabbit_channel_sup.erl2
-rw-r--r--deps/rabbit/src/rabbit_channel_sup_sup.erl2
-rw-r--r--deps/rabbit/src/rabbit_channel_tracking.erl2
-rw-r--r--deps/rabbit/src/rabbit_channel_tracking_handler.erl2
-rw-r--r--deps/rabbit/src/rabbit_classic_queue_index_v2.erl2
-rw-r--r--deps/rabbit/src/rabbit_classic_queue_store_v2.erl2
-rw-r--r--deps/rabbit/src/rabbit_client_sup.erl2
-rw-r--r--deps/rabbit/src/rabbit_connection_helper_sup.erl2
-rw-r--r--deps/rabbit/src/rabbit_connection_sup.erl2
-rw-r--r--deps/rabbit/src/rabbit_connection_tracking.erl2
-rw-r--r--deps/rabbit/src/rabbit_connection_tracking_handler.erl2
-rw-r--r--deps/rabbit/src/rabbit_control_pbe.erl2
-rw-r--r--deps/rabbit/src/rabbit_core_ff.erl2
-rw-r--r--deps/rabbit/src/rabbit_core_metrics_gc.erl2
-rw-r--r--deps/rabbit/src/rabbit_credential_validation.erl2
-rw-r--r--deps/rabbit/src/rabbit_credential_validator.erl2
-rw-r--r--deps/rabbit/src/rabbit_credential_validator_accept_everything.erl2
-rw-r--r--deps/rabbit/src/rabbit_credential_validator_min_password_length.erl2
-rw-r--r--deps/rabbit/src/rabbit_credential_validator_password_regexp.erl2
-rw-r--r--deps/rabbit/src/rabbit_cuttlefish.erl36
-rw-r--r--deps/rabbit/src/rabbit_db.erl33
-rw-r--r--deps/rabbit/src/rabbit_db_rtparams.erl249
-rw-r--r--deps/rabbit/src/rabbit_db_user.erl620
-rw-r--r--deps/rabbit/src/rabbit_db_vhost.erl321
-rw-r--r--deps/rabbit/src/rabbit_dead_letter.erl2
-rw-r--r--deps/rabbit/src/rabbit_definitions.erl2
-rw-r--r--deps/rabbit/src/rabbit_definitions_hashing.erl2
-rw-r--r--deps/rabbit/src/rabbit_definitions_import_https.erl2
-rw-r--r--deps/rabbit/src/rabbit_definitions_import_local_filesystem.erl2
-rw-r--r--deps/rabbit/src/rabbit_diagnostics.erl2
-rw-r--r--deps/rabbit/src/rabbit_direct.erl2
-rw-r--r--deps/rabbit/src/rabbit_direct_reply_to.erl2
-rw-r--r--deps/rabbit/src/rabbit_disk_monitor.erl2
-rw-r--r--deps/rabbit/src/rabbit_epmd_monitor.erl2
-rw-r--r--deps/rabbit/src/rabbit_event_consumer.erl2
-rw-r--r--deps/rabbit/src/rabbit_exchange.erl2
-rw-r--r--deps/rabbit/src/rabbit_exchange_decorator.erl2
-rw-r--r--deps/rabbit/src/rabbit_exchange_parameters.erl2
-rw-r--r--deps/rabbit/src/rabbit_exchange_type_direct.erl2
-rw-r--r--deps/rabbit/src/rabbit_exchange_type_fanout.erl2
-rw-r--r--deps/rabbit/src/rabbit_exchange_type_headers.erl2
-rw-r--r--deps/rabbit/src/rabbit_exchange_type_invalid.erl2
-rw-r--r--deps/rabbit/src/rabbit_exchange_type_topic.erl2
-rw-r--r--deps/rabbit/src/rabbit_feature_flags.erl4
-rw-r--r--deps/rabbit/src/rabbit_ff_controller.erl1136
-rw-r--r--deps/rabbit/src/rabbit_ff_extra.erl2
-rw-r--r--deps/rabbit/src/rabbit_ff_registry.erl4
-rw-r--r--deps/rabbit/src/rabbit_ff_registry_factory.erl710
-rw-r--r--deps/rabbit/src/rabbit_fhc_helpers.erl2
-rw-r--r--deps/rabbit/src/rabbit_fifo.erl2
-rw-r--r--deps/rabbit/src/rabbit_fifo.hrl2
-rw-r--r--deps/rabbit/src/rabbit_fifo_client.erl2
-rw-r--r--deps/rabbit/src/rabbit_fifo_dlx.erl2
-rw-r--r--deps/rabbit/src/rabbit_fifo_dlx.hrl2
-rw-r--r--deps/rabbit/src/rabbit_fifo_dlx_client.erl2
-rw-r--r--deps/rabbit/src/rabbit_fifo_dlx_sup.erl2
-rw-r--r--deps/rabbit/src/rabbit_fifo_dlx_worker.erl2
-rw-r--r--deps/rabbit/src/rabbit_fifo_v0.erl2
-rw-r--r--deps/rabbit/src/rabbit_fifo_v1.erl2
-rw-r--r--deps/rabbit/src/rabbit_file.erl2
-rw-r--r--deps/rabbit/src/rabbit_framing.erl2
-rw-r--r--deps/rabbit/src/rabbit_global_counters.erl2
-rw-r--r--deps/rabbit/src/rabbit_guid.erl2
-rw-r--r--deps/rabbit/src/rabbit_health_check.erl2
-rw-r--r--deps/rabbit/src/rabbit_limiter.erl2
-rw-r--r--deps/rabbit/src/rabbit_log_tail.erl2
-rw-r--r--deps/rabbit/src/rabbit_looking_glass.erl2
-rw-r--r--deps/rabbit/src/rabbit_maintenance.erl24
-rw-r--r--deps/rabbit/src/rabbit_memory_monitor.erl2
-rw-r--r--deps/rabbit/src/rabbit_metrics.erl2
-rw-r--r--deps/rabbit/src/rabbit_mirror_queue_coordinator.erl2
-rw-r--r--deps/rabbit/src/rabbit_mirror_queue_master.erl2
-rw-r--r--deps/rabbit/src/rabbit_mirror_queue_misc.erl2
-rw-r--r--deps/rabbit/src/rabbit_mirror_queue_mode.erl2
-rw-r--r--deps/rabbit/src/rabbit_mirror_queue_mode_all.erl2
-rw-r--r--deps/rabbit/src/rabbit_mirror_queue_mode_exactly.erl2
-rw-r--r--deps/rabbit/src/rabbit_mirror_queue_mode_nodes.erl2
-rw-r--r--deps/rabbit/src/rabbit_mirror_queue_slave.erl2
-rw-r--r--deps/rabbit/src/rabbit_mirror_queue_sync.erl2
-rw-r--r--deps/rabbit/src/rabbit_mnesia.erl2
-rw-r--r--deps/rabbit/src/rabbit_mnesia_rename.erl2
-rw-r--r--deps/rabbit/src/rabbit_msg_file.erl2
-rw-r--r--deps/rabbit/src/rabbit_msg_store.erl2
-rw-r--r--deps/rabbit/src/rabbit_msg_store_ets_index.erl2
-rw-r--r--deps/rabbit/src/rabbit_msg_store_gc.erl2
-rw-r--r--deps/rabbit/src/rabbit_networking.erl2
-rw-r--r--deps/rabbit/src/rabbit_networking_store.erl46
-rw-r--r--deps/rabbit/src/rabbit_node_monitor.erl2
-rw-r--r--deps/rabbit/src/rabbit_nodes.erl2
-rw-r--r--deps/rabbit/src/rabbit_osiris_metrics.erl2
-rw-r--r--deps/rabbit/src/rabbit_parameter_validation.erl2
-rw-r--r--deps/rabbit/src/rabbit_password.erl2
-rw-r--r--deps/rabbit/src/rabbit_password_hashing_md5.erl2
-rw-r--r--deps/rabbit/src/rabbit_password_hashing_sha256.erl2
-rw-r--r--deps/rabbit/src/rabbit_password_hashing_sha512.erl2
-rw-r--r--deps/rabbit/src/rabbit_peer_discovery.erl2
-rw-r--r--deps/rabbit/src/rabbit_peer_discovery_classic_config.erl2
-rw-r--r--deps/rabbit/src/rabbit_peer_discovery_dns.erl2
-rw-r--r--deps/rabbit/src/rabbit_plugins.erl2
-rw-r--r--deps/rabbit/src/rabbit_policies.erl2
-rw-r--r--deps/rabbit/src/rabbit_policy.erl2
-rw-r--r--deps/rabbit/src/rabbit_policy_merge_strategy.erl2
-rw-r--r--deps/rabbit/src/rabbit_prelaunch_enabled_plugins_file.erl2
-rw-r--r--deps/rabbit/src/rabbit_prelaunch_feature_flags.erl2
-rw-r--r--deps/rabbit/src/rabbit_prelaunch_logging.erl12
-rw-r--r--deps/rabbit/src/rabbit_prequeue.erl2
-rw-r--r--deps/rabbit/src/rabbit_priority_queue.erl2
-rw-r--r--deps/rabbit/src/rabbit_queue_consumers.erl2
-rw-r--r--deps/rabbit/src/rabbit_queue_decorator.erl2
-rw-r--r--deps/rabbit/src/rabbit_queue_index.erl2
-rw-r--r--deps/rabbit/src/rabbit_queue_location.erl2
-rw-r--r--deps/rabbit/src/rabbit_queue_location_client_local.erl2
-rw-r--r--deps/rabbit/src/rabbit_queue_location_min_masters.erl2
-rw-r--r--deps/rabbit/src/rabbit_queue_location_random.erl2
-rw-r--r--deps/rabbit/src/rabbit_queue_location_validator.erl2
-rw-r--r--deps/rabbit/src/rabbit_queue_master_location_misc.erl2
-rw-r--r--deps/rabbit/src/rabbit_queue_master_locator.erl2
-rw-r--r--deps/rabbit/src/rabbit_queue_type.erl2
-rw-r--r--deps/rabbit/src/rabbit_queue_type_util.erl2
-rw-r--r--deps/rabbit/src/rabbit_quorum_memory_manager.erl2
-rw-r--r--deps/rabbit/src/rabbit_quorum_queue.erl4
-rw-r--r--deps/rabbit/src/rabbit_ra_registry.erl2
-rw-r--r--deps/rabbit/src/rabbit_reader.erl2
-rw-r--r--deps/rabbit/src/rabbit_recovery_terms.erl2
-rw-r--r--deps/rabbit/src/rabbit_release_series.erl2
-rw-r--r--deps/rabbit/src/rabbit_restartable_sup.erl2
-rw-r--r--deps/rabbit/src/rabbit_router.erl2
-rw-r--r--deps/rabbit/src/rabbit_runtime_parameters.erl2
-rw-r--r--deps/rabbit/src/rabbit_ssl.erl2
-rw-r--r--deps/rabbit/src/rabbit_stream_coordinator.erl2
-rw-r--r--deps/rabbit/src/rabbit_stream_queue.erl2
-rw-r--r--deps/rabbit/src/rabbit_stream_sac_coordinator.erl770
-rw-r--r--deps/rabbit/src/rabbit_sup.erl2
-rw-r--r--deps/rabbit/src/rabbit_sysmon_handler.erl2
-rw-r--r--deps/rabbit/src/rabbit_sysmon_minder.erl2
-rw-r--r--deps/rabbit/src/rabbit_table.erl2
-rw-r--r--deps/rabbit/src/rabbit_time_travel_dbg.erl76
-rw-r--r--deps/rabbit/src/rabbit_trace.erl2
-rw-r--r--deps/rabbit/src/rabbit_tracking.erl2
-rw-r--r--deps/rabbit/src/rabbit_tracking_store.erl47
-rw-r--r--deps/rabbit/src/rabbit_upgrade_preparation.erl2
-rw-r--r--deps/rabbit/src/rabbit_variable_queue.erl2
-rw-r--r--deps/rabbit/src/rabbit_version.erl2
-rw-r--r--deps/rabbit/src/rabbit_vhost.erl2
-rw-r--r--deps/rabbit/src/rabbit_vhost_limit.erl2
-rw-r--r--deps/rabbit/src/rabbit_vhost_msg_store.erl2
-rw-r--r--deps/rabbit/src/rabbit_vhost_process.erl2
-rw-r--r--deps/rabbit/src/rabbit_vhost_sup.erl2
-rw-r--r--deps/rabbit/src/rabbit_vhost_sup_sup.erl2
-rw-r--r--deps/rabbit/src/rabbit_vhost_sup_wrapper.erl2
-rw-r--r--deps/rabbit/src/rabbit_vm.erl2
-rw-r--r--deps/rabbit/src/supervised_lifecycle.erl2
-rw-r--r--deps/rabbit/src/tcp_listener.erl2
-rw-r--r--deps/rabbit/src/tcp_listener_sup.erl2
-rw-r--r--deps/rabbit/src/term_to_binary_compat.erl2
-rw-r--r--deps/rabbit/src/vhost.erl2
-rw-r--r--deps/rabbit/test/backing_queue_SUITE.erl2
-rw-r--r--deps/rabbit/test/channel_interceptor_SUITE.erl2
-rw-r--r--deps/rabbit/test/channel_operation_timeout_SUITE.erl2
-rw-r--r--deps/rabbit/test/channel_operation_timeout_test_queue.erl2
-rw-r--r--deps/rabbit/test/classic_queue_prop_SUITE.erl2
-rw-r--r--deps/rabbit/test/cluster_SUITE.erl2
-rw-r--r--deps/rabbit/test/cluster_rename_SUITE.erl2
-rw-r--r--deps/rabbit/test/clustering_management_SUITE.erl2
-rw-r--r--deps/rabbit/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbit/test/consumer_timeout_SUITE.erl2
-rw-r--r--deps/rabbit/test/crashing_queues_SUITE.erl2
-rw-r--r--deps/rabbit/test/dead_lettering_SUITE.erl2
-rw-r--r--deps/rabbit/test/definition_import_SUITE.erl2
-rw-r--r--deps/rabbit/test/disconnect_detected_during_alarm_SUITE.erl2
-rw-r--r--deps/rabbit/test/disk_monitor_SUITE.erl2
-rw-r--r--deps/rabbit/test/dummy_event_receiver.erl2
-rw-r--r--deps/rabbit/test/dummy_runtime_parameters.erl2
-rw-r--r--deps/rabbit/test/dummy_supervisor2.erl2
-rw-r--r--deps/rabbit/test/dynamic_ha_SUITE.erl2
-rw-r--r--deps/rabbit/test/dynamic_qq_SUITE.erl2
-rw-r--r--deps/rabbit/test/eager_sync_SUITE.erl2
-rw-r--r--deps/rabbit/test/feature_flags_SUITE.erl2
-rw-r--r--deps/rabbit/test/feature_flags_SUITE_data/my_plugin/src/my_plugin.erl2
-rw-r--r--deps/rabbit/test/feature_flags_v2_SUITE.erl1536
-rw-r--r--deps/rabbit/test/feature_flags_with_unpriveleged_user_SUITE.erl2
-rw-r--r--deps/rabbit/test/lazy_queue_SUITE.erl2
-rw-r--r--deps/rabbit/test/list_consumers_sanity_check_SUITE.erl2
-rw-r--r--deps/rabbit/test/list_queues_online_and_offline_SUITE.erl2
-rw-r--r--deps/rabbit/test/logging_SUITE.erl2
-rw-r--r--deps/rabbit/test/maintenance_mode_SUITE.erl2
-rw-r--r--deps/rabbit/test/many_node_ha_SUITE.erl2
-rw-r--r--deps/rabbit/test/message_size_limit_SUITE.erl2
-rw-r--r--deps/rabbit/test/metrics_SUITE.erl2
-rw-r--r--deps/rabbit/test/mirrored_supervisor_SUITE.erl2
-rw-r--r--deps/rabbit/test/mirrored_supervisor_SUITE_gs.erl2
-rw-r--r--deps/rabbit/test/msg_store_SUITE.erl2
-rw-r--r--deps/rabbit/test/peer_discovery_classic_config_SUITE.erl2
-rw-r--r--deps/rabbit/test/peer_discovery_dns_SUITE.erl2
-rw-r--r--deps/rabbit/test/per_user_connection_channel_limit_SUITE.erl2
-rw-r--r--deps/rabbit/test/per_user_connection_channel_limit_partitions_SUITE.erl2
-rw-r--r--deps/rabbit/test/per_user_connection_channel_tracking_SUITE.erl2
-rw-r--r--deps/rabbit/test/per_user_connection_tracking_SUITE.erl2
-rw-r--r--deps/rabbit/test/per_vhost_connection_limit_SUITE.erl2
-rw-r--r--deps/rabbit/test/per_vhost_connection_limit_partitions_SUITE.erl2
-rw-r--r--deps/rabbit/test/per_vhost_msg_store_SUITE.erl2
-rw-r--r--deps/rabbit/test/per_vhost_queue_limit_SUITE.erl2
-rw-r--r--deps/rabbit/test/policy_SUITE.erl2
-rw-r--r--deps/rabbit/test/priority_queue_SUITE.erl2
-rw-r--r--deps/rabbit/test/priority_queue_recovery_SUITE.erl2
-rw-r--r--deps/rabbit/test/product_info_SUITE.erl2
-rw-r--r--deps/rabbit/test/proxy_protocol_SUITE.erl2
-rw-r--r--deps/rabbit/test/publisher_confirms_parallel_SUITE.erl2
-rw-r--r--deps/rabbit/test/queue_length_limits_SUITE.erl2
-rw-r--r--deps/rabbit/test/queue_master_location_SUITE.erl2
-rw-r--r--deps/rabbit/test/queue_parallel_SUITE.erl4
-rw-r--r--deps/rabbit/test/quorum_queue_SUITE.erl4
-rw-r--r--deps/rabbit/test/rabbit_auth_backend_context_propagation_mock.erl2
-rw-r--r--deps/rabbit/test/rabbit_core_metrics_gc_SUITE.erl2
-rw-r--r--deps/rabbit/test/rabbit_cuttlefish_SUITE.erl55
-rw-r--r--deps/rabbit/test/rabbit_dummy_protocol_connection_info.erl2
-rw-r--r--deps/rabbit/test/rabbit_fifo_dlx_SUITE.erl2
-rw-r--r--deps/rabbit/test/rabbit_fifo_dlx_integration_SUITE.erl2
-rw-r--r--deps/rabbit/test/rabbit_foo_protocol_connection_info.erl2
-rw-r--r--deps/rabbit/test/rabbit_ha_test_consumer.erl2
-rw-r--r--deps/rabbit/test/rabbit_ha_test_producer.erl2
-rw-r--r--deps/rabbit/test/rabbit_stream_queue_SUITE.erl2
-rw-r--r--deps/rabbit/test/rabbit_stream_sac_coordinator_SUITE.erl418
-rw-r--r--deps/rabbit/test/rabbitmq_queues_cli_integration_SUITE.erl2
-rw-r--r--deps/rabbit/test/rabbitmqctl_integration_SUITE.erl2
-rw-r--r--deps/rabbit/test/rabbitmqctl_shutdown_SUITE.erl2
-rw-r--r--deps/rabbit/test/signal_handling_SUITE.erl2
-rw-r--r--deps/rabbit/test/simple_ha_SUITE.erl2
-rw-r--r--deps/rabbit/test/single_active_consumer_SUITE.erl4
-rw-r--r--deps/rabbit/test/sync_detection_SUITE.erl2
-rw-r--r--deps/rabbit/test/term_to_binary_compat_prop_SUITE.erl2
-rw-r--r--deps/rabbit/test/topic_permission_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_access_control_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_access_control_authn_authz_context_propagation_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_access_control_credential_validation_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_amqp091_content_framing_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_amqp091_server_properties_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_app_management_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_cluster_formation_locking_mocks_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_collections_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_config_value_encryption_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_connection_tracking_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_credit_flow_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_disk_monitor_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_file_handle_cache_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_gen_server2_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_gm_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_log_management_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_operator_policy_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_pg_local_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_plugin_directories_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_plugin_versioning_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_policy_validators_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_priority_queue_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_queue_consumers_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_stats_and_metrics_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_supervisor2_SUITE.erl2
-rw-r--r--deps/rabbit/test/unit_vm_memory_monitor_SUITE.erl2
-rw-r--r--deps/rabbit/test/upgrade_preparation_SUITE.erl2
-rw-r--r--deps/rabbit/test/vhost_SUITE.erl2
-rw-r--r--deps/rabbit_common/include/rabbit.hrl4
-rw-r--r--deps/rabbit_common/include/rabbit_core_metrics.hrl2
-rw-r--r--deps/rabbit_common/include/rabbit_memory.hrl2
-rw-r--r--deps/rabbit_common/include/rabbit_misc.hrl2
-rw-r--r--deps/rabbit_common/include/rabbit_msg_store.hrl2
-rw-r--r--deps/rabbit_common/include/resource.hrl2
-rw-r--r--deps/rabbit_common/src/app_utils.erl2
-rw-r--r--deps/rabbit_common/src/code_version.erl2
-rw-r--r--deps/rabbit_common/src/credit_flow.erl2
-rw-r--r--deps/rabbit_common/src/delegate.erl2
-rw-r--r--deps/rabbit_common/src/delegate_sup.erl2
-rw-r--r--deps/rabbit_common/src/file_handle_cache.erl2
-rw-r--r--deps/rabbit_common/src/file_handle_cache_stats.erl2
-rw-r--r--deps/rabbit_common/src/gen_server2.erl2
-rw-r--r--deps/rabbit_common/src/mirrored_supervisor.erl2
-rw-r--r--deps/rabbit_common/src/mirrored_supervisor_locks.erl2
-rw-r--r--deps/rabbit_common/src/mnesia_sync.erl2
-rw-r--r--deps/rabbit_common/src/pmon.erl2
-rw-r--r--deps/rabbit_common/src/priority_queue.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_amqp_connection.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_amqqueue_common.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_auth_backend_dummy.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_auth_mechanism.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_authn_backend.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_authz_backend.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_basic_common.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_binary_generator.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_binary_parser.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_cert_info.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_channel_common.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_command_assembler.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_control_misc.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_core_metrics.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_data_coercion.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_date_time.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_env.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_error_logger_handler.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_event.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_exchange_type.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_heartbeat.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_json.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_log.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_misc.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_msg_store_index.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_net.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_nodes_common.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_password_hashing.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_pbe.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_peer_discovery_backend.erl4
-rw-r--r--deps/rabbit_common/src/rabbit_policy_validator.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_queue_collector.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_registry.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_registry_class.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_resource_monitor_misc.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_runtime.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_runtime_parameter.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_ssl_options.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_types.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_writer.erl2
-rw-r--r--deps/rabbit_common/src/supervisor2.erl2
-rw-r--r--deps/rabbit_common/src/vm_memory_monitor.erl2
-rw-r--r--deps/rabbit_common/src/worker_pool.erl2
-rw-r--r--deps/rabbit_common/src/worker_pool_sup.erl2
-rw-r--r--deps/rabbit_common/src/worker_pool_worker.erl2
-rw-r--r--deps/rabbit_common/test/gen_server2_test_server.erl2
-rw-r--r--deps/rabbit_common/test/rabbit_env_SUITE.erl2
-rw-r--r--deps/rabbit_common/test/supervisor2_SUITE.erl2
-rw-r--r--deps/rabbit_common/test/test_event_handler.erl2
-rw-r--r--deps/rabbit_common/test/unit_SUITE.erl2
-rw-r--r--deps/rabbit_common/test/unit_priority_queue_SUITE.erl2
-rw-r--r--deps/rabbit_common/test/worker_pool_SUITE.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListAmqp10ConnectionsCommand.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_channel.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_incoming_link.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_link_util.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_message.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_outgoing_link.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_reader.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_process.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_sup.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_sup_sup.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_util.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_writer.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/test/amqp10_client_SUITE.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/test/command_SUITE.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/test/config_schema_SUITE.erl54
-rw-r--r--deps/rabbitmq_amqp1_0/test/proxy_protocol_SUITE.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/test/system_SUITE.erl2
-rw-r--r--deps/rabbitmq_amqp1_0/test/unit_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_cache/include/rabbit_auth_backend_cache.hrl2
-rw-r--r--deps/rabbitmq_auth_backend_cache/src/rabbit_auth_backend_cache.erl2
-rw-r--r--deps/rabbitmq_auth_backend_cache/src/rabbit_auth_backend_cache_app.erl2
-rw-r--r--deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache.erl2
-rw-r--r--deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_dict.erl2
-rw-r--r--deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets.erl2
-rw-r--r--deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets_segmented.erl2
-rw-r--r--deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets_segmented_stateless.erl2
-rw-r--r--deps/rabbitmq_auth_backend_cache/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_cache/test/rabbit_auth_backend_cache_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_cache/test/rabbit_auth_cache_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_http/src/rabbit_auth_backend_http.erl2
-rw-r--r--deps/rabbitmq_auth_backend_http/src/rabbit_auth_backend_http_app.erl2
-rw-r--r--deps/rabbitmq_auth_backend_http/test/auth_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_http/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_http/test/unit_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl2
-rw-r--r--deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap_app.erl2
-rw-r--r--deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap_util.erl2
-rw-r--r--deps/rabbitmq_auth_backend_ldap/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_ldap/test/rabbit_ldap_seed.erl2
-rw-r--r--deps/rabbitmq_auth_backend_ldap/test/system_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_ldap/test/unit_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/README.md4
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddUaaKeyCommand.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2_app.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/src/rabbit_oauth2_scope.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt_jwk.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt_jwt.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/src/wildcard.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/test/add_uaa_key_command_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/test/jwks_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/test/rabbit_auth_backend_oauth2_test_util.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/test/scope_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/test/system_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/test/unit_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/test/wildcard_match_SUITE.erl2
-rw-r--r--deps/rabbitmq_auth_mechanism_ssl/README.md2
-rw-r--r--deps/rabbitmq_auth_mechanism_ssl/src/rabbit_auth_mechanism_ssl.erl2
-rw-r--r--deps/rabbitmq_auth_mechanism_ssl/src/rabbit_auth_mechanism_ssl_app.erl2
-rw-r--r--deps/rabbitmq_aws/priv/schema/rabbitmq_aws.schema2
-rw-r--r--deps/rabbitmq_aws/src/rabbitmq_aws_config.erl2
-rw-r--r--deps/rabbitmq_cli/lib/rabbit_common/records.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/auto_complete.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/command_behaviour.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_default_switches_and_timeout.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_no_positional_arguments.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_one_positional_argument.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_one_positive_integer_argument.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_two_positional_arguments.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/alarms.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/ansi.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/code_path.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/command_modules.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/config.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/data_coercion.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/distribution.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/doc_guide.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/erl_eval.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/exit_codes.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/feature_flags.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/helpers.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/input.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/listeners.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/log_files.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/memory.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/merges_default_virtual_host.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/merges_no_defaults.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/networking.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/node_name.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/os_pid.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/output.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/parser.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/paths.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/platform.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/requires_rabbit_app_running.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/requires_rabbit_app_stopped.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/validators.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/core/version.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/add_user_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/add_vhost_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/authenticate_user_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/autocomplete_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/await_online_nodes_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/await_startup_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/cancel_sync_queue_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/change_cluster_node_type_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/change_password_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_global_parameter_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_operator_policy_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_parameter_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_password_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_permissions_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_policy_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_topic_permissions_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_user_limits_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_vhost_limits_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_all_connections_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_all_user_connections_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_connection_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/cluster_status_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/decode_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_queue_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_user_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_vhost_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/enable_feature_flag_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/encode_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/environment_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/eval_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/eval_file_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/exec_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/export_definitions_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_boot_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_gc_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_reset_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/forget_cluster_node_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/help_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/hipe_compile_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/import_definitions_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/join_cluster_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_bindings_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_channels_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_ciphers_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_connections_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_consumers_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_exchanges_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_feature_flags_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_global_parameters_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_hashes_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_operator_policies_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_parameters_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_permissions_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_policies_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_queues_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_topic_permissions_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_unresponsive_queues_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_user_permissions_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_user_topic_permissions_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_users_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_vhost_limits_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_vhosts_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/node_health_check_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/ping_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/purge_queue_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/rename_cluster_node_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/report_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/reset_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/restart_vhost_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/resume_listeners_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/rotate_logs_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_cluster_name_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_disk_free_limit_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_global_parameter_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_log_level_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_operator_policy_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_parameter_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_permissions_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_policy_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_topic_permissions_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_user_tags_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vhost_limits_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vhost_tags_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vm_memory_high_watermark_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/shutdown_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/start_app_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/status_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/stop_app_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/stop_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/suspend_listeners_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/sync_queue_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/trace_off_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/trace_on_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/update_cluster_nodes_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/version_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/wait_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/info_keys.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/rpc_stream.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/default_output.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/alarms_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/certificates_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_alarms_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_certificate_expiration_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_local_alarms_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_port_connectivity_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_port_listener_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_protocol_listener_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_running_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_virtual_hosts_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/cipher_suites_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/command_line_arguments_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/consume_event_stream_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/disable_auth_attempt_source_tracking_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/discover_peers_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/enable_auth_attempt_source_tracking_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_cookie_hash_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_cookie_sources_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_version_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/is_booting_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/is_running_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/list_network_interfaces_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/list_node_auth_attempt_stats_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/listeners_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_location_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_tail_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_tail_stream_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/maybe_stuck_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/memory_breakdown_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/observer_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/os_env_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/remote_shell_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/reset_node_auth_attempt_metrics_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/resolve_hostname_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/resolver_info_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/runtime_thread_stats_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/schema_info_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/server_version_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/tls_versions_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/diagnostics_helpers.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatter_behaviour.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/csv.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/erlang.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/formatter_helpers.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/inspect.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/json.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/json_stream.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/msacc.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/plugins.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/pretty_table.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/report.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/string.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/string_per_line.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/table.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/information_unit.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/directories_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/disable_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/enable_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/is_enabled.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/list_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/set_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/error_output.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/plugins_helpers.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/printer_behaviour.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/printers/file.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/printers/std_io.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/printers/std_io_raw.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/add_member_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/check_if_node_is_mirror_sync_critical_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/check_if_node_is_quorum_critical_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/delete_member_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/grow_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/peek_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/quorum_status_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/rebalance_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/reclaim_quorum_memory_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/shrink_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/add_replica_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/delete_replica_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/restart_stream_command.ex74
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/set_stream_retention_policy_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/stream_status_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/time_unit.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/await_online_quorum_plus_one_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/await_online_synchronized_mirror_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/drain_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/post_upgrade_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/revive_command.ex2
-rw-r--r--deps/rabbitmq_cli/lib/rabbitmqctl.ex2
-rw-r--r--deps/rabbitmq_cli/test/ctl/clear_global_parameter_command_test.exs2
-rw-r--r--deps/rabbitmq_cli/test/ctl/clear_policy_command_test.exs2
-rw-r--r--deps/rabbitmq_cli/test/ctl/close_all_user_connections_command_test.exs2
-rw-r--r--deps/rabbitmq_cli/test/ctl/decode_command_test.exs2
-rw-r--r--deps/rabbitmq_cli/test/ctl/encode_command_test.exs2
-rw-r--r--deps/rabbitmq_cli/test/ctl/resume_listeners_command_test.exs2
-rw-r--r--deps/rabbitmq_cli/test/ctl/suspend_listeners_command_test.exs2
-rw-r--r--deps/rabbitmq_cli/test/streams/add_replica_command_test.exs2
-rw-r--r--deps/rabbitmq_cli/test/streams/delete_replica_command_test.exs2
-rw-r--r--deps/rabbitmq_cli/test/streams/set_stream_retention_policy_command_test.exs2
-rw-r--r--deps/rabbitmq_consistent_hash_exchange/src/Elixir.RabbitMQ.CLI.Diagnostics.Commands.ConsistentHashExchangeRingStateCommand.erl2
-rw-r--r--deps/rabbitmq_consistent_hash_exchange/src/rabbit_exchange_type_consistent_hash.erl2
-rw-r--r--deps/rabbitmq_consistent_hash_exchange/test/rabbit_exchange_type_consistent_hash_SUITE.erl2
-rw-r--r--deps/rabbitmq_ct_client_helpers/src/rabbit_ct_client_helpers.erl2
-rw-r--r--deps/rabbitmq_ct_helpers/src/rabbit_control_helper.erl2
-rw-r--r--deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl2
-rw-r--r--deps/rabbitmq_ct_helpers/src/rabbit_ct_config_schema.erl2
-rw-r--r--deps/rabbitmq_ct_helpers/src/rabbit_ct_helpers.erl2
-rw-r--r--deps/rabbitmq_ct_helpers/src/rabbit_ct_proper_helpers.erl2
-rw-r--r--deps/rabbitmq_ct_helpers/src/rabbit_ct_vm_helpers.erl2
-rw-r--r--deps/rabbitmq_ct_helpers/src/rabbit_mgmt_test_util.erl2
-rw-r--r--deps/rabbitmq_ct_helpers/test/terraform_SUITE.erl2
-rw-r--r--deps/rabbitmq_event_exchange/src/rabbit_event_exchange_decorator.erl2
-rw-r--r--deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl2
-rw-r--r--deps/rabbitmq_event_exchange/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_event_exchange/test/system_SUITE.erl2
-rw-r--r--deps/rabbitmq_event_exchange/test/unit_SUITE.erl2
-rw-r--r--deps/rabbitmq_federation/include/rabbit_federation.hrl2
-rw-r--r--deps/rabbitmq_federation/src/Elixir.RabbitMQ.CLI.Ctl.Commands.FederationStatusCommand.erl2
-rw-r--r--deps/rabbitmq_federation/src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartFederationLinkCommand.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_app.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_db.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_event.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_exchange.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_exchange_link.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_exchange_link_sup_sup.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_link_sup.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_link_util.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_parameters.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_pg.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_queue.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_queue_link.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_queue_link_sup_sup.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_status.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_sup.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_upstream.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_upstream_exchange.erl2
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_util.erl2
-rw-r--r--deps/rabbitmq_federation/test/exchange_SUITE.erl2
-rw-r--r--deps/rabbitmq_federation/test/federation_status_command_SUITE.erl2
-rw-r--r--deps/rabbitmq_federation/test/queue_SUITE.erl2
-rw-r--r--deps/rabbitmq_federation/test/rabbit_federation_status_SUITE.erl2
-rw-r--r--deps/rabbitmq_federation/test/rabbit_federation_test_util.erl2
-rw-r--r--deps/rabbitmq_federation/test/restart_federation_link_command_SUITE.erl2
-rw-r--r--deps/rabbitmq_federation/test/unit_SUITE.erl2
-rw-r--r--deps/rabbitmq_federation/test/unit_inbroker_SUITE.erl2
-rw-r--r--deps/rabbitmq_federation_management/src/rabbit_federation_mgmt.erl2
-rw-r--r--deps/rabbitmq_federation_management/test/federation_mgmt_SUITE.erl2
-rw-r--r--deps/rabbitmq_jms_topic_exchange/src/rabbit_jms_topic_exchange.erl2
-rw-r--r--deps/rabbitmq_jms_topic_exchange/src/sjx_evaluator.erl2
-rw-r--r--deps/rabbitmq_jms_topic_exchange/test/rjms_topic_selector_SUITE.erl2
-rw-r--r--deps/rabbitmq_jms_topic_exchange/test/rjms_topic_selector_unit_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/include/rabbit_mgmt.hrl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_app.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_cors.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_csp.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_db.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_db_cache.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_db_cache_sup.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_dispatcher.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_extension.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_headers.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_hsts.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_load_definitions.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_reset_handler.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_stats.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_sup.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_sup_sup.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_util.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_aliveness_test.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_auth.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_auth_attempts.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_binding.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_bindings.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_channel.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_channels.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_channels_vhost.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_cluster_name.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_connection.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_channels.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_user_name.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_connections.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_connections_vhost.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_consumers.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_environment.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange_publish.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_exchanges.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_extensions.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_feature_flag_enable.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_feature_flags.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameter.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameters.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_alarms.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_certificate_expiration.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_local_alarms.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_node_is_mirror_sync_critical.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_node_is_quorum_critical.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_port_listener.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_protocol_listener.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_virtual_hosts.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_healthchecks.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_limit.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_limits.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_login.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_node.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory_ets.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_nodes.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_operator_policies.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_operator_policy.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_overview.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_parameter.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_parameters.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_permission.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_user.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_vhost.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_policies.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_policy.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_queue.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_actions.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_get.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_purge.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_queues.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_rebalance_queues.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_redirect.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_reset.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_static.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permission.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions_user.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions_vhost.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_user.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_user_limit.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_user_limits.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_users.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_users_bulk_delete.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost_restart.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_vhosts.erl2
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_whoami.erl2
-rw-r--r--deps/rabbitmq_management/test/cache_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/test/clustering_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/test/clustering_prop_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/test/listener_config_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/test/rabbit_mgmt_http_health_checks_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/test/rabbit_mgmt_only_http_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/test/rabbit_mgmt_rabbitmqadmin_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/test/rabbit_mgmt_runtime_parameters_util.erl2
-rw-r--r--deps/rabbitmq_management/test/rabbit_mgmt_stats_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/test/rabbit_mgmt_test_db_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/test/rabbit_mgmt_test_unit_SUITE.erl2
-rw-r--r--deps/rabbitmq_management/test/stats_SUITE.erl2
-rw-r--r--deps/rabbitmq_management_agent/include/rabbit_mgmt_agent.hrl2
-rw-r--r--deps/rabbitmq_management_agent/include/rabbit_mgmt_metrics.hrl2
-rw-r--r--deps/rabbitmq_management_agent/include/rabbit_mgmt_records.hrl2
-rw-r--r--deps/rabbitmq_management_agent/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ResetStatsDbCommand.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/exometer_slide.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_app.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_config.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup_sup.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_data.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_data_compat.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_db_handler.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_external_stats.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_ff.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_format.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_gc.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_collector.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_gc.erl2
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_storage.erl2
-rw-r--r--deps/rabbitmq_management_agent/test/exometer_slide_SUITE.erl2
-rw-r--r--deps/rabbitmq_management_agent/test/metrics_SUITE.erl2
-rw-r--r--deps/rabbitmq_management_agent/test/rabbit_mgmt_gc_SUITE.erl2
-rw-r--r--deps/rabbitmq_management_agent/test/rabbit_mgmt_slide_SUITE.erl2
-rw-r--r--deps/rabbitmq_mqtt/include/mqtt_machine.hrl2
-rw-r--r--deps/rabbitmq_mqtt/include/mqtt_machine_v0.hrl2
-rw-r--r--deps/rabbitmq_mqtt/include/rabbit_mqtt.hrl2
-rw-r--r--deps/rabbitmq_mqtt/include/rabbit_mqtt_frame.hrl2
-rw-r--r--deps/rabbitmq_mqtt/include/rabbit_mqtt_retained_msg_store.hrl2
-rw-r--r--deps/rabbitmq_mqtt/src/Elixir.RabbitMQ.CLI.Ctl.Commands.DecommissionMqttNodeCommand.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListMqttConnectionsCommand.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/mqtt_machine.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/mqtt_machine_v0.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/mqtt_node.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_collector.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_connection_info.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_connection_sup.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_frame.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_internal_event_handler.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_processor.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_reader.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_dets.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_ets.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_noop.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_retainer.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_retainer_sup.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_sup.erl2
-rw-r--r--deps/rabbitmq_mqtt/src/rabbit_mqtt_util.erl2
-rw-r--r--deps/rabbitmq_mqtt/test/auth_SUITE.erl2
-rw-r--r--deps/rabbitmq_mqtt/test/cluster_SUITE.erl2
-rw-r--r--deps/rabbitmq_mqtt/test/command_SUITE.erl2
-rw-r--r--deps/rabbitmq_mqtt/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_mqtt/test/java_SUITE.erl2
-rw-r--r--deps/rabbitmq_mqtt/test/java_SUITE_data/src/test/java/com/rabbitmq/mqtt/test/MqttTest.java2
-rw-r--r--deps/rabbitmq_mqtt/test/processor_SUITE.erl2
-rw-r--r--deps/rabbitmq_mqtt/test/proxy_protocol_SUITE.erl2
-rw-r--r--deps/rabbitmq_mqtt/test/rabbit_auth_backend_mqtt_mock.erl2
-rw-r--r--deps/rabbitmq_mqtt/test/reader_SUITE.erl2
-rw-r--r--deps/rabbitmq_mqtt/test/retainer_SUITE.erl2
-rw-r--r--deps/rabbitmq_mqtt/test/util_SUITE.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_aws/README.md2
-rw-r--r--deps/rabbitmq_peer_discovery_aws/priv/schema/rabbitmq_peer_discovery_aws.schema2
-rw-r--r--deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_aws/src/rabbitmq_peer_discovery_aws.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_aws/test/aws_ecs_util.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_aws/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_aws/test/integration_SUITE.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_aws/test/unit_SUITE.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_common/include/rabbit_peer_discovery.hrl2
-rw-r--r--deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_cleanup.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_common_app.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_common_sup.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_config.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_httpc.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_util.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_common/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_consul/include/rabbit_peer_discovery_consul.hrl2
-rw-r--r--deps/rabbitmq_peer_discovery_consul/src/rabbit_peer_discovery_consul.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_app.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_health_check_helper.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_sup.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_consul/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_consul/test/rabbitmq_peer_discovery_consul_SUITE.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_etcd/include/rabbit_peer_discovery_etcd.hrl2
-rw-r--r--deps/rabbitmq_peer_discovery_etcd/src/rabbit_peer_discovery_etcd.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_app.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_sup.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_v3_client.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_etcd/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_etcd/test/config_schema_SUITE_data/rabbitmq_peer_discovery_etcd.snippets2
-rw-r--r--deps/rabbitmq_peer_discovery_etcd/test/system_SUITE.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_etcd/test/unit_SUITE.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_k8s/include/rabbit_peer_discovery_k8s.hrl2
-rw-r--r--deps/rabbitmq_peer_discovery_k8s/src/rabbit_peer_discovery_k8s.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_app.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_node_monitor.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_sup.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_k8s/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_peer_discovery_k8s/test/config_schema_SUITE_data/rabbitmq_peer_discovery_k8s.snippets2
-rw-r--r--deps/rabbitmq_peer_discovery_k8s/test/rabbitmq_peer_discovery_k8s_SUITE.erl2
-rw-r--r--deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_alarm_metrics_collector.erl2
-rw-r--r--deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_core_metrics_collector.erl2
-rw-r--r--deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_global_metrics_collector.erl2
-rw-r--r--deps/rabbitmq_prometheus/src/rabbit_prometheus_app.erl2
-rw-r--r--deps/rabbitmq_prometheus/src/rabbit_prometheus_dispatcher.erl2
-rw-r--r--deps/rabbitmq_prometheus/src/rabbit_prometheus_handler.erl2
-rw-r--r--deps/rabbitmq_prometheus/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_prometheus/test/rabbit_prometheus_http_SUITE.erl2
-rw-r--r--deps/rabbitmq_random_exchange/src/rabbit_exchange_type_random.erl2
-rw-r--r--deps/rabbitmq_recent_history_exchange/include/rabbit_recent_history.hrl2
-rw-r--r--deps/rabbitmq_recent_history_exchange/src/rabbit_exchange_type_recent_history.erl2
-rw-r--r--deps/rabbitmq_recent_history_exchange/test/system_SUITE.erl2
-rw-r--r--deps/rabbitmq_sharding/src/rabbit_sharding_exchange_decorator.erl2
-rw-r--r--deps/rabbitmq_sharding/src/rabbit_sharding_exchange_type_modulus_hash.erl2
-rw-r--r--deps/rabbitmq_sharding/src/rabbit_sharding_interceptor.erl2
-rw-r--r--deps/rabbitmq_sharding/src/rabbit_sharding_policy_validator.erl2
-rw-r--r--deps/rabbitmq_sharding/src/rabbit_sharding_shard.erl2
-rw-r--r--deps/rabbitmq_sharding/src/rabbit_sharding_util.erl2
-rw-r--r--deps/rabbitmq_sharding/test/rabbit_hash_exchange_SUITE.erl2
-rw-r--r--deps/rabbitmq_sharding/test/rabbit_sharding_SUITE.erl2
-rw-r--r--deps/rabbitmq_shovel/include/rabbit_shovel.hrl2
-rw-r--r--deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteShovelCommand.erl2
-rw-r--r--deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartShovelCommand.erl2
-rw-r--r--deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ShovelStatusCommand.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_amqp091_shovel.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_amqp10_shovel.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_shovel.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_shovel_behaviour.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_shovel_config.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup_sup.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_shovel_locks.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_shovel_parameters.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_shovel_status.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_shovel_sup.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_shovel_util.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_shovel_worker.erl2
-rw-r--r--deps/rabbitmq_shovel/src/rabbit_shovel_worker_sup.erl2
-rw-r--r--deps/rabbitmq_shovel/test/amqp10_SUITE.erl2
-rw-r--r--deps/rabbitmq_shovel/test/amqp10_dynamic_SUITE.erl2
-rw-r--r--deps/rabbitmq_shovel/test/amqp10_shovel_SUITE.erl2
-rw-r--r--deps/rabbitmq_shovel/test/config_SUITE.erl2
-rw-r--r--deps/rabbitmq_shovel/test/configuration_SUITE.erl2
-rw-r--r--deps/rabbitmq_shovel/test/delete_shovel_command_SUITE.erl2
-rw-r--r--deps/rabbitmq_shovel/test/dynamic_SUITE.erl2
-rw-r--r--deps/rabbitmq_shovel/test/parameters_SUITE.erl2
-rw-r--r--deps/rabbitmq_shovel/test/shovel_status_command_SUITE.erl2
-rw-r--r--deps/rabbitmq_shovel/test/shovel_test_utils.erl2
-rw-r--r--deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt.erl2
-rw-r--r--deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt.hrl2
-rw-r--r--deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt_util.erl2
-rw-r--r--deps/rabbitmq_shovel_management/test/http_SUITE.erl2
-rw-r--r--deps/rabbitmq_stomp/include/rabbit_stomp.hrl2
-rw-r--r--deps/rabbitmq_stomp/include/rabbit_stomp_frame.hrl2
-rw-r--r--deps/rabbitmq_stomp/include/rabbit_stomp_headers.hrl2
-rw-r--r--deps/rabbitmq_stomp/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStompConnectionsCommand.erl2
-rw-r--r--deps/rabbitmq_stomp/src/rabbit_stomp.erl2
-rw-r--r--deps/rabbitmq_stomp/src/rabbit_stomp_client_sup.erl2
-rw-r--r--deps/rabbitmq_stomp/src/rabbit_stomp_connection_info.erl2
-rw-r--r--deps/rabbitmq_stomp/src/rabbit_stomp_frame.erl2
-rw-r--r--deps/rabbitmq_stomp/src/rabbit_stomp_internal_event_handler.erl2
-rw-r--r--deps/rabbitmq_stomp/src/rabbit_stomp_processor.erl2
-rw-r--r--deps/rabbitmq_stomp/src/rabbit_stomp_reader.erl2
-rw-r--r--deps/rabbitmq_stomp/src/rabbit_stomp_sup.erl2
-rw-r--r--deps/rabbitmq_stomp/src/rabbit_stomp_util.erl2
-rw-r--r--deps/rabbitmq_stomp/test/command_SUITE.erl2
-rw-r--r--deps/rabbitmq_stomp/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_stomp/test/connections_SUITE.erl2
-rw-r--r--deps/rabbitmq_stomp/test/frame_SUITE.erl2
-rw-r--r--deps/rabbitmq_stomp/test/proxy_protocol_SUITE.erl2
-rw-r--r--deps/rabbitmq_stomp/test/python_SUITE.erl2
-rw-r--r--deps/rabbitmq_stomp/test/src/rabbit_stomp_client.erl2
-rw-r--r--deps/rabbitmq_stomp/test/src/rabbit_stomp_publish_test.erl2
-rw-r--r--deps/rabbitmq_stomp/test/system_SUITE.erl2
-rw-r--r--deps/rabbitmq_stomp/test/topic_SUITE.erl2
-rw-r--r--deps/rabbitmq_stomp/test/util_SUITE.erl2
-rw-r--r--deps/rabbitmq_stream/README.adoc2
-rw-r--r--deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConnectionsCommand.erl2
-rw-r--r--deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumerGroupsCommand.erl114
-rw-r--r--deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamGroupConsumersCommand.erl122
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream.erl2
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream_connection_sup.erl2
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream_manager.erl2
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream_metrics.erl2
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream_metrics_gc.erl2
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream_reader.erl2
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream_sup.erl2
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream_utils.erl2
-rw-r--r--deps/rabbitmq_stream/test/commands_SUITE.erl4
-rw-r--r--deps/rabbitmq_stream/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_stream/test/rabbit_stream_SUITE.erl2
-rw-r--r--deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/ClusterSizeTest.java2
-rw-r--r--deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/FailureTest.java2
-rw-r--r--deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/Host.java2
-rw-r--r--deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/LeaderLocatorTest.java2
-rw-r--r--deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/StreamTest.java2
-rw-r--r--deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/TestUtils.java2
-rw-r--r--deps/rabbitmq_stream/test/rabbit_stream_manager_SUITE.erl2
-rw-r--r--deps/rabbitmq_stream_common/README.adoc2
-rw-r--r--deps/rabbitmq_stream_management/README.adoc2
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_connection_consumers_mgmt.erl2
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_connection_mgmt.erl2
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_connection_publishers_mgmt.erl2
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_connections_mgmt.erl2
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_connections_vhost_mgmt.erl2
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_consumers_mgmt.erl2
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_management_utils.erl2
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_mgmt_db.erl2
-rw-r--r--deps/rabbitmq_stream_management/src/rabbit_stream_publishers_mgmt.erl2
-rw-r--r--deps/rabbitmq_stream_management/test/http_SUITE.erl2
-rw-r--r--deps/rabbitmq_stream_management/test/http_SUITE_data/src/test/java/com/rabbitmq/stream/TestUtils.java2
-rw-r--r--deps/rabbitmq_top/src/rabbit_top_app.erl2
-rw-r--r--deps/rabbitmq_top/src/rabbit_top_extension.erl2
-rw-r--r--deps/rabbitmq_top/src/rabbit_top_sup.erl2
-rw-r--r--deps/rabbitmq_top/src/rabbit_top_util.erl2
-rw-r--r--deps/rabbitmq_top/src/rabbit_top_wm_ets_tables.erl2
-rw-r--r--deps/rabbitmq_top/src/rabbit_top_wm_process.erl2
-rw-r--r--deps/rabbitmq_top/src/rabbit_top_wm_processes.erl2
-rw-r--r--deps/rabbitmq_top/src/rabbit_top_worker.erl2
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_app.erl2
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_consumer.erl2
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_consumer_sup.erl2
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_files.erl2
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_mgmt.erl2
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_sup.erl2
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_traces.erl2
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_util.erl2
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_wm_file.erl2
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_wm_files.erl2
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_wm_trace.erl2
-rw-r--r--deps/rabbitmq_tracing/src/rabbit_tracing_wm_traces.erl2
-rw-r--r--deps/rabbitmq_tracing/test/rabbit_tracing_SUITE.erl2
-rw-r--r--deps/rabbitmq_trust_store/src/rabbit_trust_store.erl2
-rw-r--r--deps/rabbitmq_trust_store/src/rabbit_trust_store_app.erl2
-rw-r--r--deps/rabbitmq_trust_store/src/rabbit_trust_store_certificate_provider.erl2
-rw-r--r--deps/rabbitmq_trust_store/src/rabbit_trust_store_file_provider.erl2
-rw-r--r--deps/rabbitmq_trust_store/src/rabbit_trust_store_http_provider.erl2
-rw-r--r--deps/rabbitmq_trust_store/src/rabbit_trust_store_sup.erl2
-rw-r--r--deps/rabbitmq_trust_store/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_trust_store/test/system_SUITE.erl2
-rw-r--r--deps/rabbitmq_web_dispatch/src/rabbit_cowboy_middleware.erl2
-rw-r--r--deps/rabbitmq_web_dispatch/src/rabbit_cowboy_redirect.erl2
-rw-r--r--deps/rabbitmq_web_dispatch/src/rabbit_cowboy_stream_h.erl2
-rw-r--r--deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch.erl2
-rw-r--r--deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_app.erl2
-rw-r--r--deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_listing_handler.erl2
-rw-r--r--deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_registry.erl2
-rw-r--r--deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_sup.erl2
-rw-r--r--deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_util.erl2
-rw-r--r--deps/rabbitmq_web_dispatch/test/rabbit_web_dispatch_SUITE.erl2
-rw-r--r--deps/rabbitmq_web_dispatch/test/rabbit_web_dispatch_unit_SUITE.erl2
-rw-r--r--deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl2
-rw-r--r--deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_connection_info.erl2
-rw-r--r--deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_connection_sup.erl2
-rw-r--r--deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_handler.erl2
-rw-r--r--deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_middleware.erl2
-rw-r--r--deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_stream_handler.erl2
-rw-r--r--deps/rabbitmq_web_mqtt/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_web_mqtt/test/proxy_protocol_SUITE.erl2
-rw-r--r--deps/rabbitmq_web_mqtt/test/src/rabbit_ws_test_util.erl2
-rw-r--r--deps/rabbitmq_web_mqtt/test/src/rfc6455_client.erl2
-rw-r--r--deps/rabbitmq_web_mqtt/test/system_SUITE.erl2
-rw-r--r--deps/rabbitmq_web_mqtt_examples/src/rabbit_web_mqtt_examples_app.erl2
-rw-r--r--deps/rabbitmq_web_stomp/src/rabbit_web_stomp_app.erl2
-rw-r--r--deps/rabbitmq_web_stomp/src/rabbit_web_stomp_connection_sup.erl2
-rw-r--r--deps/rabbitmq_web_stomp/src/rabbit_web_stomp_handler.erl2
-rw-r--r--deps/rabbitmq_web_stomp/src/rabbit_web_stomp_internal_event_handler.erl2
-rw-r--r--deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl2
-rw-r--r--deps/rabbitmq_web_stomp/src/rabbit_web_stomp_middleware.erl2
-rw-r--r--deps/rabbitmq_web_stomp/src/rabbit_web_stomp_stream_handler.erl2
-rw-r--r--deps/rabbitmq_web_stomp/src/rabbit_web_stomp_sup.erl2
-rw-r--r--deps/rabbitmq_web_stomp/test/amqp_stomp_SUITE.erl2
-rw-r--r--deps/rabbitmq_web_stomp/test/config_schema_SUITE.erl2
-rw-r--r--deps/rabbitmq_web_stomp/test/cowboy_websocket_SUITE.erl2
-rw-r--r--deps/rabbitmq_web_stomp/test/proxy_protocol_SUITE.erl2
-rw-r--r--deps/rabbitmq_web_stomp/test/raw_websocket_SUITE.erl2
-rw-r--r--deps/rabbitmq_web_stomp/test/src/rabbit_ws_test_util.erl2
-rw-r--r--deps/rabbitmq_web_stomp/test/src/rfc6455_client.erl2
-rw-r--r--deps/rabbitmq_web_stomp/test/src/stomp.erl2
-rw-r--r--deps/rabbitmq_web_stomp/test/unit_SUITE.erl2
-rw-r--r--deps/rabbitmq_web_stomp_examples/src/rabbit_web_stomp_examples_app.erl2
1168 files changed, 7604 insertions, 1175 deletions
diff --git a/README.md b/README.md
index 7844a21e6f..5c1bcb9cce 100644
--- a/README.md
+++ b/README.md
@@ -75,4 +75,4 @@ RabbitMQ server is [licensed under the MPL 2.0](LICENSE-MPL-RabbitMQ).
## Copyright
-(c) 2007-2022 VMware, Inc. or its affiliates.
+(c) 2007-2023 VMware, Inc. or its affiliates.
diff --git a/deps/amqp10_client/src/amqp10_client.erl b/deps/amqp10_client/src/amqp10_client.erl
index a848818554..78d065dd7b 100644
--- a/deps/amqp10_client/src/amqp10_client.erl
+++ b/deps/amqp10_client/src/amqp10_client.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_client).
diff --git a/deps/amqp10_client/src/amqp10_client.hrl b/deps/amqp10_client/src/amqp10_client.hrl
index becbd75861..bf00cffea3 100644
--- a/deps/amqp10_client/src/amqp10_client.hrl
+++ b/deps/amqp10_client/src/amqp10_client.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(AMQP_PROTOCOL_HEADER, <<"AMQP", 0, 1, 0, 0>>).
diff --git a/deps/amqp10_client/src/amqp10_client_app.erl b/deps/amqp10_client/src/amqp10_client_app.erl
index 57ba7c1ead..74d0eb0332 100644
--- a/deps/amqp10_client/src/amqp10_client_app.erl
+++ b/deps/amqp10_client/src/amqp10_client_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_client_app).
diff --git a/deps/amqp10_client/src/amqp10_client_connection.erl b/deps/amqp10_client/src/amqp10_client_connection.erl
index e1d85ac96c..a983394e45 100644
--- a/deps/amqp10_client/src/amqp10_client_connection.erl
+++ b/deps/amqp10_client/src/amqp10_client_connection.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_client_connection).
diff --git a/deps/amqp10_client/src/amqp10_client_connection_sup.erl b/deps/amqp10_client/src/amqp10_client_connection_sup.erl
index a89fba58be..68252637da 100644
--- a/deps/amqp10_client/src/amqp10_client_connection_sup.erl
+++ b/deps/amqp10_client/src/amqp10_client_connection_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_client_connection_sup).
diff --git a/deps/amqp10_client/src/amqp10_client_connections_sup.erl b/deps/amqp10_client/src/amqp10_client_connections_sup.erl
index 744415643c..fd15cc89a0 100644
--- a/deps/amqp10_client/src/amqp10_client_connections_sup.erl
+++ b/deps/amqp10_client/src/amqp10_client_connections_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_client_connections_sup).
diff --git a/deps/amqp10_client/src/amqp10_client_frame_reader.erl b/deps/amqp10_client/src/amqp10_client_frame_reader.erl
index 2a280583ba..f749f2cb95 100644
--- a/deps/amqp10_client/src/amqp10_client_frame_reader.erl
+++ b/deps/amqp10_client/src/amqp10_client_frame_reader.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_client_frame_reader).
diff --git a/deps/amqp10_client/src/amqp10_client_session.erl b/deps/amqp10_client/src/amqp10_client_session.erl
index 28680149a9..4ea25a7d38 100644
--- a/deps/amqp10_client/src/amqp10_client_session.erl
+++ b/deps/amqp10_client/src/amqp10_client_session.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_client_session).
diff --git a/deps/amqp10_client/src/amqp10_client_sessions_sup.erl b/deps/amqp10_client/src/amqp10_client_sessions_sup.erl
index a50d5ad735..05e162ecc1 100644
--- a/deps/amqp10_client/src/amqp10_client_sessions_sup.erl
+++ b/deps/amqp10_client/src/amqp10_client_sessions_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_client_sessions_sup).
diff --git a/deps/amqp10_client/src/amqp10_client_sup.erl b/deps/amqp10_client/src/amqp10_client_sup.erl
index c32fd1a275..c623085462 100644
--- a/deps/amqp10_client/src/amqp10_client_sup.erl
+++ b/deps/amqp10_client/src/amqp10_client_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_client_sup).
diff --git a/deps/amqp10_client/src/amqp10_client_types.erl b/deps/amqp10_client/src/amqp10_client_types.erl
index efa5a67588..da7ee33918 100644
--- a/deps/amqp10_client/src/amqp10_client_types.erl
+++ b/deps/amqp10_client/src/amqp10_client_types.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_client_types).
diff --git a/deps/amqp10_client/src/amqp10_msg.erl b/deps/amqp10_client/src/amqp10_msg.erl
index 97f856cf01..c4eb1dce9a 100644
--- a/deps/amqp10_client/src/amqp10_msg.erl
+++ b/deps/amqp10_client/src/amqp10_msg.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_msg).
diff --git a/deps/amqp10_client/test/activemq_ct_helpers.erl b/deps/amqp10_client/test/activemq_ct_helpers.erl
index 6f4b7306d2..798d4dd143 100644
--- a/deps/amqp10_client/test/activemq_ct_helpers.erl
+++ b/deps/amqp10_client/test/activemq_ct_helpers.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(activemq_ct_helpers).
diff --git a/deps/amqp10_client/test/mock_server.erl b/deps/amqp10_client/test/mock_server.erl
index 4dc4d9e7fb..d1ddd8c654 100644
--- a/deps/amqp10_client/test/mock_server.erl
+++ b/deps/amqp10_client/test/mock_server.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(mock_server).
diff --git a/deps/amqp10_client/test/msg_SUITE.erl b/deps/amqp10_client/test/msg_SUITE.erl
index 5bcbd09da7..261af2ee3f 100644
--- a/deps/amqp10_client/test/msg_SUITE.erl
+++ b/deps/amqp10_client/test/msg_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(msg_SUITE).
diff --git a/deps/amqp10_client/test/system_SUITE.erl b/deps/amqp10_client/test/system_SUITE.erl
index 714dbed65a..785d766b79 100644
--- a/deps/amqp10_client/test/system_SUITE.erl
+++ b/deps/amqp10_client/test/system_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(system_SUITE).
diff --git a/deps/amqp10_common/src/amqp10_binary_generator.erl b/deps/amqp10_common/src/amqp10_binary_generator.erl
index 1912b308bb..908c2e93ae 100644
--- a/deps/amqp10_common/src/amqp10_binary_generator.erl
+++ b/deps/amqp10_common/src/amqp10_binary_generator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_binary_generator).
diff --git a/deps/amqp10_common/src/amqp10_binary_parser.erl b/deps/amqp10_common/src/amqp10_binary_parser.erl
index 78784d7502..04d7ea04fb 100644
--- a/deps/amqp10_common/src/amqp10_binary_parser.erl
+++ b/deps/amqp10_common/src/amqp10_binary_parser.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_binary_parser).
diff --git a/deps/amqp10_common/src/amqp10_framing.erl b/deps/amqp10_common/src/amqp10_framing.erl
index f1117959bf..f85ce23027 100644
--- a/deps/amqp10_common/src/amqp10_framing.erl
+++ b/deps/amqp10_common/src/amqp10_framing.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_framing).
diff --git a/deps/amqp_client/include/amqp_client.hrl b/deps/amqp_client/include/amqp_client.hrl
index 6eb54d7d2e..2f1aad5e5a 100644
--- a/deps/amqp_client/include/amqp_client.hrl
+++ b/deps/amqp_client/include/amqp_client.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-ifndef(AMQP_CLIENT_HRL).
diff --git a/deps/amqp_client/include/amqp_client_internal.hrl b/deps/amqp_client/include/amqp_client_internal.hrl
index e7512d4041..5b0a02563f 100644
--- a/deps/amqp_client/include/amqp_client_internal.hrl
+++ b/deps/amqp_client/include/amqp_client_internal.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-include("amqp_client.hrl").
diff --git a/deps/amqp_client/src/amqp_auth_mechanisms.erl b/deps/amqp_client/src/amqp_auth_mechanisms.erl
index 8fe6e4d30a..6a111d58f5 100644
--- a/deps/amqp_client/src/amqp_auth_mechanisms.erl
+++ b/deps/amqp_client/src/amqp_auth_mechanisms.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @private
diff --git a/deps/amqp_client/src/amqp_channel.erl b/deps/amqp_client/src/amqp_channel.erl
index 00d820ae4d..a4d95d8441 100644
--- a/deps/amqp_client/src/amqp_channel.erl
+++ b/deps/amqp_client/src/amqp_channel.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @type close_reason(Type) = {shutdown, amqp_reason(Type)}.
diff --git a/deps/amqp_client/src/amqp_channel_sup.erl b/deps/amqp_client/src/amqp_channel_sup.erl
index c9015a4eab..35594a8bf6 100644
--- a/deps/amqp_client/src/amqp_channel_sup.erl
+++ b/deps/amqp_client/src/amqp_channel_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @private
diff --git a/deps/amqp_client/src/amqp_channel_sup_sup.erl b/deps/amqp_client/src/amqp_channel_sup_sup.erl
index 33c8f34adc..2ba6ada881 100644
--- a/deps/amqp_client/src/amqp_channel_sup_sup.erl
+++ b/deps/amqp_client/src/amqp_channel_sup_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @private
diff --git a/deps/amqp_client/src/amqp_channels_manager.erl b/deps/amqp_client/src/amqp_channels_manager.erl
index fc68b25fe4..844a587859 100644
--- a/deps/amqp_client/src/amqp_channels_manager.erl
+++ b/deps/amqp_client/src/amqp_channels_manager.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @private
diff --git a/deps/amqp_client/src/amqp_client.erl b/deps/amqp_client/src/amqp_client.erl
index b4239a025c..0defd96c29 100644
--- a/deps/amqp_client/src/amqp_client.erl
+++ b/deps/amqp_client/src/amqp_client.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @private
diff --git a/deps/amqp_client/src/amqp_connection.erl b/deps/amqp_client/src/amqp_connection.erl
index 16a6aff8a8..5631d7a589 100644
--- a/deps/amqp_client/src/amqp_connection.erl
+++ b/deps/amqp_client/src/amqp_connection.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @type close_reason(Type) = {shutdown, amqp_reason(Type)}.
diff --git a/deps/amqp_client/src/amqp_connection_sup.erl b/deps/amqp_client/src/amqp_connection_sup.erl
index a9dbdc74aa..f393bc6a5e 100644
--- a/deps/amqp_client/src/amqp_connection_sup.erl
+++ b/deps/amqp_client/src/amqp_connection_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @private
diff --git a/deps/amqp_client/src/amqp_connection_type_sup.erl b/deps/amqp_client/src/amqp_connection_type_sup.erl
index 25c374fabf..7dc5b6375e 100644
--- a/deps/amqp_client/src/amqp_connection_type_sup.erl
+++ b/deps/amqp_client/src/amqp_connection_type_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @private
diff --git a/deps/amqp_client/src/amqp_direct_connection.erl b/deps/amqp_client/src/amqp_direct_connection.erl
index da68e49e7b..82e4651bbf 100644
--- a/deps/amqp_client/src/amqp_direct_connection.erl
+++ b/deps/amqp_client/src/amqp_direct_connection.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @private
diff --git a/deps/amqp_client/src/amqp_direct_consumer.erl b/deps/amqp_client/src/amqp_direct_consumer.erl
index 9bae5ebac1..2b76d36226 100644
--- a/deps/amqp_client/src/amqp_direct_consumer.erl
+++ b/deps/amqp_client/src/amqp_direct_consumer.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @doc This module is an implementation of the amqp_gen_consumer
diff --git a/deps/amqp_client/src/amqp_gen_connection.erl b/deps/amqp_client/src/amqp_gen_connection.erl
index 09b736c517..6e44556465 100644
--- a/deps/amqp_client/src/amqp_gen_connection.erl
+++ b/deps/amqp_client/src/amqp_gen_connection.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @private
diff --git a/deps/amqp_client/src/amqp_gen_consumer.erl b/deps/amqp_client/src/amqp_gen_consumer.erl
index 512b3e70ed..ed2db315f3 100644
--- a/deps/amqp_client/src/amqp_gen_consumer.erl
+++ b/deps/amqp_client/src/amqp_gen_consumer.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @doc A behaviour module for implementing consumers for
diff --git a/deps/amqp_client/src/amqp_main_reader.erl b/deps/amqp_client/src/amqp_main_reader.erl
index 42ec132e82..e2e326dc45 100644
--- a/deps/amqp_client/src/amqp_main_reader.erl
+++ b/deps/amqp_client/src/amqp_main_reader.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @private
diff --git a/deps/amqp_client/src/amqp_network_connection.erl b/deps/amqp_client/src/amqp_network_connection.erl
index 38a8af1475..505ae89195 100644
--- a/deps/amqp_client/src/amqp_network_connection.erl
+++ b/deps/amqp_client/src/amqp_network_connection.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @private
@@ -317,7 +317,7 @@ client_properties(UserProperties) ->
{<<"version">>, longstr, list_to_binary(Vsn)},
{<<"platform">>, longstr, <<"Erlang">>},
{<<"copyright">>, longstr,
- <<"Copyright (c) 2007-2022 VMware, Inc. or its affiliates.">>},
+ <<"Copyright (c) 2007-2023 VMware, Inc. or its affiliates.">>},
{<<"information">>, longstr,
<<"Licensed under the MPL. "
"See https://www.rabbitmq.com/">>},
diff --git a/deps/amqp_client/src/amqp_rpc_client.erl b/deps/amqp_client/src/amqp_rpc_client.erl
index 0b9d758d3c..2d4b4a769e 100644
--- a/deps/amqp_client/src/amqp_rpc_client.erl
+++ b/deps/amqp_client/src/amqp_rpc_client.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @doc This module allows the simple execution of an asynchronous RPC over
diff --git a/deps/amqp_client/src/amqp_rpc_server.erl b/deps/amqp_client/src/amqp_rpc_server.erl
index 3643ff8abd..c71a02cdde 100644
--- a/deps/amqp_client/src/amqp_rpc_server.erl
+++ b/deps/amqp_client/src/amqp_rpc_server.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @doc This is a utility module that is used to expose an arbitrary function
diff --git a/deps/amqp_client/src/amqp_selective_consumer.erl b/deps/amqp_client/src/amqp_selective_consumer.erl
index 14147201df..80726225d5 100644
--- a/deps/amqp_client/src/amqp_selective_consumer.erl
+++ b/deps/amqp_client/src/amqp_selective_consumer.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @doc This module is an implementation of the amqp_gen_consumer
diff --git a/deps/amqp_client/src/amqp_sup.erl b/deps/amqp_client/src/amqp_sup.erl
index 986c772c47..d9ae37236e 100644
--- a/deps/amqp_client/src/amqp_sup.erl
+++ b/deps/amqp_client/src/amqp_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @private
diff --git a/deps/amqp_client/src/amqp_uri.erl b/deps/amqp_client/src/amqp_uri.erl
index 0800f02ffe..5ebb11257e 100644
--- a/deps/amqp_client/src/amqp_uri.erl
+++ b/deps/amqp_client/src/amqp_uri.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp_uri).
diff --git a/deps/amqp_client/src/rabbit_routing_util.erl b/deps/amqp_client/src/rabbit_routing_util.erl
index 24cf54231c..fe458744ed 100644
--- a/deps/amqp_client/src/rabbit_routing_util.erl
+++ b/deps/amqp_client/src/rabbit_routing_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2013-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2013-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_routing_util).
diff --git a/deps/amqp_client/src/uri_parser.erl b/deps/amqp_client/src/uri_parser.erl
index 976f41500f..77d7eff3cc 100644
--- a/deps/amqp_client/src/uri_parser.erl
+++ b/deps/amqp_client/src/uri_parser.erl
@@ -1,19 +1,19 @@
%% This file is a copy of http_uri.erl from the R13B-1 Erlang/OTP
%% distribution with several modifications.
-%% All modifications are Copyright (c) 2009-2022 VMware, Inc. or its affiliates.
+%% All modifications are Copyright (c) 2009-2023 VMware, Inc. or its affiliates.
%% ``The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved via the world wide web at https://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% The Initial Developer of the Original Code is Ericsson Utvecklings AB.
%% Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings
%% AB. All Rights Reserved.''
diff --git a/deps/amqp_client/test/system_SUITE.erl b/deps/amqp_client/test/system_SUITE.erl
index fe66547a84..dba9fe7190 100644
--- a/deps/amqp_client/test/system_SUITE.erl
+++ b/deps/amqp_client/test/system_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(system_SUITE).
diff --git a/deps/amqp_client/test/unit_SUITE.erl b/deps/amqp_client/test/unit_SUITE.erl
index 191257ab56..af4bc688e6 100644
--- a/deps/amqp_client/test/unit_SUITE.erl
+++ b/deps/amqp_client/test/unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_SUITE).
diff --git a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state.erl b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state.erl
index c96c152082..c5183cbb31 100644
--- a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state.erl
+++ b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state.erl
@@ -3,7 +3,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_boot_state).
diff --git a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state_sup.erl b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state_sup.erl
index 3816b5f6d4..03a3924355 100644
--- a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state_sup.erl
+++ b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state_sup.erl
@@ -3,7 +3,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_boot_state_sup).
diff --git a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state_systemd.erl b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state_systemd.erl
index a7da1895f9..c775165f1c 100644
--- a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state_systemd.erl
+++ b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_boot_state_systemd.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2015-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2015-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_boot_state_systemd).
diff --git a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl
index 9771aa4635..d79fc9e7b8 100644
--- a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl
+++ b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_prelaunch_early_logging).
diff --git a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_file.erl b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_file.erl
index ac524181a3..347e305775 100644
--- a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_file.erl
+++ b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_file.erl
@@ -11,8 +11,8 @@
%% See the License for the specific language governing permissions and
%% limitations under the License.
%%
-%% Copyright Ericsson AB 2011-2022. All Rights Reserved.
-%% Copyright (c) 2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright Ericsson AB 2011-2023. All Rights Reserved.
+%% Copyright (c) 2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This code originated here and has been modified to suit RabbitMQ:
%% https://github.com/erlang/otp/blob/2d43af53899d35423f1c83887026089c91bce010/lib/ssl/src/ssl_dist_sup.erl
diff --git a/deps/rabbit/apps/rabbitmq_prelaunch/test/rabbit_prelaunch_file_SUITE.erl b/deps/rabbit/apps/rabbitmq_prelaunch/test/rabbit_prelaunch_file_SUITE.erl
index b5173ae49b..a92fef6b6a 100644
--- a/deps/rabbit/apps/rabbitmq_prelaunch/test/rabbit_prelaunch_file_SUITE.erl
+++ b/deps/rabbit/apps/rabbitmq_prelaunch/test/rabbit_prelaunch_file_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_prelaunch_file_SUITE).
diff --git a/deps/rabbit/docs/rabbitmq-diagnostics.8 b/deps/rabbit/docs/rabbitmq-diagnostics.8
index 3dbb35913f..45a7e5b78d 100644
--- a/deps/rabbit/docs/rabbitmq-diagnostics.8
+++ b/deps/rabbit/docs/rabbitmq-diagnostics.8
@@ -3,7 +3,7 @@
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
.\" file, You can obtain one at https://mozilla.org/MPL/2.0/.
.\"
-.\" Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+.\" Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
.\"
.Dd October 26, 2022
.Dt RABBITMQ-DIAGNOSTICS 8
diff --git a/deps/rabbit/docs/rabbitmq-echopid.8 b/deps/rabbit/docs/rabbitmq-echopid.8
index d5f5121c46..c001d76ac3 100644
--- a/deps/rabbit/docs/rabbitmq-echopid.8
+++ b/deps/rabbit/docs/rabbitmq-echopid.8
@@ -3,7 +3,7 @@
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
.\" file, You can obtain one at https://mozilla.org/MPL/2.0/.
.\"
-.\" Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+.\" Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
.\"
.Dd September 28, 2019
.Dt RABBITMQ-ECHOPID.BAT 8
diff --git a/deps/rabbit/docs/rabbitmq-env.conf.5 b/deps/rabbit/docs/rabbitmq-env.conf.5
index 5344b8597d..64431df56b 100644
--- a/deps/rabbit/docs/rabbitmq-env.conf.5
+++ b/deps/rabbit/docs/rabbitmq-env.conf.5
@@ -3,7 +3,7 @@
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
.\" file, You can obtain one at https://mozilla.org/MPL/2.0/.
.\"
-.\" Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+.\" Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
.\"
.Dd September 28, 2019
.Dt RABBITMQ-ENV.CONF 5
diff --git a/deps/rabbit/docs/rabbitmq-plugins.8 b/deps/rabbit/docs/rabbitmq-plugins.8
index e14389e261..cdab567153 100644
--- a/deps/rabbit/docs/rabbitmq-plugins.8
+++ b/deps/rabbit/docs/rabbitmq-plugins.8
@@ -3,7 +3,7 @@
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
.\" file, You can obtain one at https://mozilla.org/MPL/2.0/.
.\"
-.\" Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+.\" Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
.\"
.Dd September 28, 2019
.Dt RABBITMQ-PLUGINS 8
diff --git a/deps/rabbit/docs/rabbitmq-queues.8 b/deps/rabbit/docs/rabbitmq-queues.8
index 022a5dcb56..b4e5d9bf50 100644
--- a/deps/rabbit/docs/rabbitmq-queues.8
+++ b/deps/rabbit/docs/rabbitmq-queues.8
@@ -3,7 +3,7 @@
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
.\" file, You can obtain one at https://mozilla.org/MPL/2.0/.
.\"
-.\" Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+.\" Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
.\"
.Dd June 19, 2021
.Dt RABBITMQ-QUEUES 8
diff --git a/deps/rabbit/docs/rabbitmq-server.8 b/deps/rabbit/docs/rabbitmq-server.8
index 76c16bc436..819a0f4e38 100644
--- a/deps/rabbit/docs/rabbitmq-server.8
+++ b/deps/rabbit/docs/rabbitmq-server.8
@@ -3,7 +3,7 @@
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
.\" file, You can obtain one at https://mozilla.org/MPL/2.0/.
.\"
-.\" Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+.\" Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
.\"
.Dd September 28, 2019
.Dt RABBITMQ-SERVER 8
diff --git a/deps/rabbit/docs/rabbitmq-service.8 b/deps/rabbit/docs/rabbitmq-service.8
index 7bb27baac3..b034c95510 100644
--- a/deps/rabbit/docs/rabbitmq-service.8
+++ b/deps/rabbit/docs/rabbitmq-service.8
@@ -3,7 +3,7 @@
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
.\" file, You can obtain one at https://mozilla.org/MPL/2.0/.
.\"
-.\" Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+.\" Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
.\"
.Dd September 28, 2019
.Dt RABBITMQ-SERVICE.BAT 8
diff --git a/deps/rabbit/docs/rabbitmq-upgrade.8 b/deps/rabbit/docs/rabbitmq-upgrade.8
index c33280439a..ce38580110 100644
--- a/deps/rabbit/docs/rabbitmq-upgrade.8
+++ b/deps/rabbit/docs/rabbitmq-upgrade.8
@@ -3,7 +3,7 @@
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
.\" file, You can obtain one at https://mozilla.org/MPL/2.0/.
.\"
-.\" Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+.\" Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
.\"
.Dd June 19, 2021
.Dt RABBITMQ-UPGRADE 8
diff --git a/deps/rabbit/docs/rabbitmqctl.8 b/deps/rabbit/docs/rabbitmqctl.8
index 8dab27ba48..5046655daa 100644
--- a/deps/rabbit/docs/rabbitmqctl.8
+++ b/deps/rabbit/docs/rabbitmqctl.8
@@ -3,7 +3,7 @@
.\" License, v. 2.0. If a copy of the MPL was not distributed with this
.\" file, You can obtain one at https://mozilla.org/MPL/2.0/.
.\"
-.\" Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+.\" Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
.\"
.Dd October 26, 2022
.Dt RABBITMQCTL 8
diff --git a/deps/rabbit/include/amqqueue.hrl b/deps/rabbit/include/amqqueue.hrl
index 097f1dfa0c..29329e2fb5 100644
--- a/deps/rabbit/include/amqqueue.hrl
+++ b/deps/rabbit/include/amqqueue.hrl
@@ -2,7 +2,11 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
+<<<<<<< HEAD
%% Copyright (c) 2018-2020 VMware, Inc. or its affiliates. All rights reserved.
+=======
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
+>>>>>>> ec4f1dba7d ((c) year bump: 2022 => 2023)
%%
-include("amqqueue_v1.hrl").
diff --git a/deps/rabbit/include/gm_specs.hrl b/deps/rabbit/include/gm_specs.hrl
index 17cc3ec640..92d885e47d 100644
--- a/deps/rabbit/include/gm_specs.hrl
+++ b/deps/rabbit/include/gm_specs.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-type callback_result() :: 'ok' | {'stop', any()} | {'become', atom(), args()}.
diff --git a/deps/rabbit/scripts/rabbitmq-streams b/deps/rabbit/scripts/rabbitmq-streams
index 8d4804a08f..66278fffdc 100755
--- a/deps/rabbit/scripts/rabbitmq-streams
+++ b/deps/rabbit/scripts/rabbitmq-streams
@@ -4,7 +4,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
##
# Exit immediately if a pipeline, which may consist of a single simple command,
diff --git a/deps/rabbit/scripts/rabbitmq-streams.bat b/deps/rabbit/scripts/rabbitmq-streams.bat
index 532094f559..6523201ed4 100644
--- a/deps/rabbit/scripts/rabbitmq-streams.bat
+++ b/deps/rabbit/scripts/rabbitmq-streams.bat
@@ -4,7 +4,7 @@ REM This Source Code Form is subject to the terms of the Mozilla Public
REM License, v. 2.0. If a copy of the MPL was not distributed with this
REM file, You can obtain one at https://mozilla.org/MPL/2.0/.
REM
-REM Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+REM Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
REM
REM Scopes the variables to the current batch file
diff --git a/deps/rabbit/scripts/rabbitmq-tanzu b/deps/rabbit/scripts/rabbitmq-tanzu
index 219fa9d380..60d9e566c2 100755
--- a/deps/rabbit/scripts/rabbitmq-tanzu
+++ b/deps/rabbit/scripts/rabbitmq-tanzu
@@ -3,7 +3,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
##
# Exit immediately if a pipeline, which may consist of a single simple command,
diff --git a/deps/rabbit/scripts/rabbitmq-tanzu.bat b/deps/rabbit/scripts/rabbitmq-tanzu.bat
index 12c44f4f8b..46ce9ffadf 100644
--- a/deps/rabbit/scripts/rabbitmq-tanzu.bat
+++ b/deps/rabbit/scripts/rabbitmq-tanzu.bat
@@ -3,7 +3,7 @@ REM This Source Code Form is subject to the terms of the Mozilla Public
REM License, v. 2.0. If a copy of the MPL was not distributed with this
REM file, You can obtain one at https://mozilla.org/MPL/2.0/.
REM
-REM Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+REM Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
REM
REM Scopes the variables to the current batch file
diff --git a/deps/rabbit/src/amqqueue.erl b/deps/rabbit/src/amqqueue.erl
index a828a22a8d..4c2170b34b 100644
--- a/deps/rabbit/src/amqqueue.erl
+++ b/deps/rabbit/src/amqqueue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqqueue). %% Could become amqqueue_v2 in the future.
diff --git a/deps/rabbit/src/background_gc.erl b/deps/rabbit/src/background_gc.erl
index 19bfab1904..0aab74afbe 100644
--- a/deps/rabbit/src/background_gc.erl
+++ b/deps/rabbit/src/background_gc.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(background_gc).
diff --git a/deps/rabbit/src/code_server_cache.erl b/deps/rabbit/src/code_server_cache.erl
index dd1b56d924..4cfc81eb3c 100644
--- a/deps/rabbit/src/code_server_cache.erl
+++ b/deps/rabbit/src/code_server_cache.erl
@@ -4,7 +4,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(code_server_cache).
diff --git a/deps/rabbit/src/gatherer.erl b/deps/rabbit/src/gatherer.erl
index 395929315f..8a0ab570a3 100644
--- a/deps/rabbit/src/gatherer.erl
+++ b/deps/rabbit/src/gatherer.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(gatherer).
diff --git a/deps/rabbit/src/gm.erl b/deps/rabbit/src/gm.erl
index 65b30651e0..fd0222b294 100644
--- a/deps/rabbit/src/gm.erl
+++ b/deps/rabbit/src/gm.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(gm).
diff --git a/deps/rabbit/src/internal_user.erl b/deps/rabbit/src/internal_user.erl
index fdb65a485d..117e00b012 100644
--- a/deps/rabbit/src/internal_user.erl
+++ b/deps/rabbit/src/internal_user.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(internal_user).
diff --git a/deps/rabbit/src/lqueue.erl b/deps/rabbit/src/lqueue.erl
index 78312c04cb..c5d1f3af86 100644
--- a/deps/rabbit/src/lqueue.erl
+++ b/deps/rabbit/src/lqueue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(lqueue).
diff --git a/deps/rabbit/src/mirrored_supervisor_sups.erl b/deps/rabbit/src/mirrored_supervisor_sups.erl
index e8ac7e318e..0c18be499a 100644
--- a/deps/rabbit/src/mirrored_supervisor_sups.erl
+++ b/deps/rabbit/src/mirrored_supervisor_sups.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(mirrored_supervisor_sups).
diff --git a/deps/rabbit/src/pg_local.erl b/deps/rabbit/src/pg_local.erl
index bbc8df13ed..40e17f42a1 100644
--- a/deps/rabbit/src/pg_local.erl
+++ b/deps/rabbit/src/pg_local.erl
@@ -13,7 +13,7 @@
%% versions of Erlang/OTP. The remaining type specs have been
%% removed.
-%% All modifications are (C) 2010-2022 VMware, Inc. or its affiliates.
+%% All modifications are (C) 2010-2023 VMware, Inc. or its affiliates.
%% %CopyrightBegin%
%%
diff --git a/deps/rabbit/src/pid_recomposition.erl b/deps/rabbit/src/pid_recomposition.erl
index db24de16b8..a0bbc322fc 100644
--- a/deps/rabbit/src/pid_recomposition.erl
+++ b/deps/rabbit/src/pid_recomposition.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(pid_recomposition).
diff --git a/deps/rabbit/src/rabbit.erl b/deps/rabbit/src/rabbit.erl
index 2eb6b5212d..b8c62b4519 100644
--- a/deps/rabbit/src/rabbit.erl
+++ b/deps/rabbit/src/rabbit.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit).
diff --git a/deps/rabbit/src/rabbit_access_control.erl b/deps/rabbit/src/rabbit_access_control.erl
index e5c6332649..86e683af28 100644
--- a/deps/rabbit/src/rabbit_access_control.erl
+++ b/deps/rabbit/src/rabbit_access_control.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_access_control).
diff --git a/deps/rabbit/src/rabbit_alarm.erl b/deps/rabbit/src/rabbit_alarm.erl
index 5f9d4cc542..4cd15040e1 100644
--- a/deps/rabbit/src/rabbit_alarm.erl
+++ b/deps/rabbit/src/rabbit_alarm.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% There are two types of alarms handled by this module:
%%
diff --git a/deps/rabbit/src/rabbit_amqqueue.erl b/deps/rabbit/src/rabbit_amqqueue.erl
index e5b9676b46..50f14fd426 100644
--- a/deps/rabbit/src/rabbit_amqqueue.erl
+++ b/deps/rabbit/src/rabbit_amqqueue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqqueue).
diff --git a/deps/rabbit/src/rabbit_amqqueue_process.erl b/deps/rabbit/src/rabbit_amqqueue_process.erl
index f95a41b947..0dc015c883 100644
--- a/deps/rabbit/src/rabbit_amqqueue_process.erl
+++ b/deps/rabbit/src/rabbit_amqqueue_process.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqqueue_process).
diff --git a/deps/rabbit/src/rabbit_amqqueue_sup.erl b/deps/rabbit/src/rabbit_amqqueue_sup.erl
index 3085175a51..837f6d1185 100644
--- a/deps/rabbit/src/rabbit_amqqueue_sup.erl
+++ b/deps/rabbit/src/rabbit_amqqueue_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqqueue_sup).
diff --git a/deps/rabbit/src/rabbit_amqqueue_sup_sup.erl b/deps/rabbit/src/rabbit_amqqueue_sup_sup.erl
index 1d0f7ae403..4cbfd7f042 100644
--- a/deps/rabbit/src/rabbit_amqqueue_sup_sup.erl
+++ b/deps/rabbit/src/rabbit_amqqueue_sup_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqqueue_sup_sup).
diff --git a/deps/rabbit/src/rabbit_auth_backend_internal.erl b/deps/rabbit/src/rabbit_auth_backend_internal.erl
index addb141d5f..52b664dedb 100644
--- a/deps/rabbit/src/rabbit_auth_backend_internal.erl
+++ b/deps/rabbit/src/rabbit_auth_backend_internal.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_internal).
diff --git a/deps/rabbit/src/rabbit_auth_mechanism_amqplain.erl b/deps/rabbit/src/rabbit_auth_mechanism_amqplain.erl
index 6a4e12c132..ef9cbdba18 100644
--- a/deps/rabbit/src/rabbit_auth_mechanism_amqplain.erl
+++ b/deps/rabbit/src/rabbit_auth_mechanism_amqplain.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_mechanism_amqplain).
diff --git a/deps/rabbit/src/rabbit_auth_mechanism_cr_demo.erl b/deps/rabbit/src/rabbit_auth_mechanism_cr_demo.erl
index eff5a7e6e0..f0e10e5563 100644
--- a/deps/rabbit/src/rabbit_auth_mechanism_cr_demo.erl
+++ b/deps/rabbit/src/rabbit_auth_mechanism_cr_demo.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_mechanism_cr_demo).
diff --git a/deps/rabbit/src/rabbit_auth_mechanism_plain.erl b/deps/rabbit/src/rabbit_auth_mechanism_plain.erl
index 3a489c6032..f4501da8d6 100644
--- a/deps/rabbit/src/rabbit_auth_mechanism_plain.erl
+++ b/deps/rabbit/src/rabbit_auth_mechanism_plain.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_mechanism_plain).
diff --git a/deps/rabbit/src/rabbit_autoheal.erl b/deps/rabbit/src/rabbit_autoheal.erl
index e6b7145c39..19baf0dec0 100644
--- a/deps/rabbit/src/rabbit_autoheal.erl
+++ b/deps/rabbit/src/rabbit_autoheal.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_autoheal).
diff --git a/deps/rabbit/src/rabbit_backing_queue.erl b/deps/rabbit/src/rabbit_backing_queue.erl
index 07cdc533cb..973b5907a0 100644
--- a/deps/rabbit/src/rabbit_backing_queue.erl
+++ b/deps/rabbit/src/rabbit_backing_queue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_backing_queue).
diff --git a/deps/rabbit/src/rabbit_basic.erl b/deps/rabbit/src/rabbit_basic.erl
index 1a25967f2a..4c67af1249 100644
--- a/deps/rabbit/src/rabbit_basic.erl
+++ b/deps/rabbit/src/rabbit_basic.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_basic).
diff --git a/deps/rabbit/src/rabbit_binding.erl b/deps/rabbit/src/rabbit_binding.erl
index 0ee256d389..c028edc0ec 100644
--- a/deps/rabbit/src/rabbit_binding.erl
+++ b/deps/rabbit/src/rabbit_binding.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_binding).
diff --git a/deps/rabbit/src/rabbit_boot_steps.erl b/deps/rabbit/src/rabbit_boot_steps.erl
index 7fb626cdb7..a0a7236639 100644
--- a/deps/rabbit/src/rabbit_boot_steps.erl
+++ b/deps/rabbit/src/rabbit_boot_steps.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_boot_steps).
diff --git a/deps/rabbit/src/rabbit_channel.erl b/deps/rabbit/src/rabbit_channel.erl
index 844c3b9783..bd99b3bbe2 100644
--- a/deps/rabbit/src/rabbit_channel.erl
+++ b/deps/rabbit/src/rabbit_channel.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_channel).
diff --git a/deps/rabbit/src/rabbit_channel_interceptor.erl b/deps/rabbit/src/rabbit_channel_interceptor.erl
index 234aa1a9ad..10efe69892 100644
--- a/deps/rabbit/src/rabbit_channel_interceptor.erl
+++ b/deps/rabbit/src/rabbit_channel_interceptor.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_channel_interceptor).
diff --git a/deps/rabbit/src/rabbit_channel_sup.erl b/deps/rabbit/src/rabbit_channel_sup.erl
index b1e2f6fa47..d3391b68db 100644
--- a/deps/rabbit/src/rabbit_channel_sup.erl
+++ b/deps/rabbit/src/rabbit_channel_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_channel_sup).
diff --git a/deps/rabbit/src/rabbit_channel_sup_sup.erl b/deps/rabbit/src/rabbit_channel_sup_sup.erl
index 0e95b66e64..7dd4e1daa9 100644
--- a/deps/rabbit/src/rabbit_channel_sup_sup.erl
+++ b/deps/rabbit/src/rabbit_channel_sup_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_channel_sup_sup).
diff --git a/deps/rabbit/src/rabbit_channel_tracking.erl b/deps/rabbit/src/rabbit_channel_tracking.erl
index bb798645b4..1229b84352 100644
--- a/deps/rabbit/src/rabbit_channel_tracking.erl
+++ b/deps/rabbit/src/rabbit_channel_tracking.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_channel_tracking).
diff --git a/deps/rabbit/src/rabbit_channel_tracking_handler.erl b/deps/rabbit/src/rabbit_channel_tracking_handler.erl
index 9cb1ca6fd7..1d30eff6fa 100644
--- a/deps/rabbit/src/rabbit_channel_tracking_handler.erl
+++ b/deps/rabbit/src/rabbit_channel_tracking_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_channel_tracking_handler).
diff --git a/deps/rabbit/src/rabbit_classic_queue_index_v2.erl b/deps/rabbit/src/rabbit_classic_queue_index_v2.erl
index e5dce884cb..20ba983c37 100644
--- a/deps/rabbit/src/rabbit_classic_queue_index_v2.erl
+++ b/deps/rabbit/src/rabbit_classic_queue_index_v2.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_classic_queue_index_v2).
diff --git a/deps/rabbit/src/rabbit_classic_queue_store_v2.erl b/deps/rabbit/src/rabbit_classic_queue_store_v2.erl
index dfc3d2d25b..9b76fe7313 100644
--- a/deps/rabbit/src/rabbit_classic_queue_store_v2.erl
+++ b/deps/rabbit/src/rabbit_classic_queue_store_v2.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% The classic queue store works as follow:
diff --git a/deps/rabbit/src/rabbit_client_sup.erl b/deps/rabbit/src/rabbit_client_sup.erl
index 47ff1c1445..0e1a2b2f71 100644
--- a/deps/rabbit/src/rabbit_client_sup.erl
+++ b/deps/rabbit/src/rabbit_client_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_client_sup).
diff --git a/deps/rabbit/src/rabbit_connection_helper_sup.erl b/deps/rabbit/src/rabbit_connection_helper_sup.erl
index 5cf0cc210f..ad891549de 100644
--- a/deps/rabbit/src/rabbit_connection_helper_sup.erl
+++ b/deps/rabbit/src/rabbit_connection_helper_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_connection_helper_sup).
diff --git a/deps/rabbit/src/rabbit_connection_sup.erl b/deps/rabbit/src/rabbit_connection_sup.erl
index 83da3e72e1..e0e171790e 100644
--- a/deps/rabbit/src/rabbit_connection_sup.erl
+++ b/deps/rabbit/src/rabbit_connection_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_connection_sup).
diff --git a/deps/rabbit/src/rabbit_connection_tracking.erl b/deps/rabbit/src/rabbit_connection_tracking.erl
index b33d5da18c..ea9a43af00 100644
--- a/deps/rabbit/src/rabbit_connection_tracking.erl
+++ b/deps/rabbit/src/rabbit_connection_tracking.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_connection_tracking).
diff --git a/deps/rabbit/src/rabbit_connection_tracking_handler.erl b/deps/rabbit/src/rabbit_connection_tracking_handler.erl
index 3b60a6a038..586f00ad27 100644
--- a/deps/rabbit/src/rabbit_connection_tracking_handler.erl
+++ b/deps/rabbit/src/rabbit_connection_tracking_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_connection_tracking_handler).
diff --git a/deps/rabbit/src/rabbit_control_pbe.erl b/deps/rabbit/src/rabbit_control_pbe.erl
index 6a65641237..fea5b28676 100644
--- a/deps/rabbit/src/rabbit_control_pbe.erl
+++ b/deps/rabbit/src/rabbit_control_pbe.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_control_pbe).
diff --git a/deps/rabbit/src/rabbit_core_ff.erl b/deps/rabbit/src/rabbit_core_ff.erl
index e521ee536c..121c01243d 100644
--- a/deps/rabbit/src/rabbit_core_ff.erl
+++ b/deps/rabbit/src/rabbit_core_ff.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_core_ff).
diff --git a/deps/rabbit/src/rabbit_core_metrics_gc.erl b/deps/rabbit/src/rabbit_core_metrics_gc.erl
index 8a8023c390..37f6bdbb72 100644
--- a/deps/rabbit/src/rabbit_core_metrics_gc.erl
+++ b/deps/rabbit/src/rabbit_core_metrics_gc.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_core_metrics_gc).
diff --git a/deps/rabbit/src/rabbit_credential_validation.erl b/deps/rabbit/src/rabbit_credential_validation.erl
index 2cb56635e7..8f41b48d48 100644
--- a/deps/rabbit/src/rabbit_credential_validation.erl
+++ b/deps/rabbit/src/rabbit_credential_validation.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_credential_validation).
diff --git a/deps/rabbit/src/rabbit_credential_validator.erl b/deps/rabbit/src/rabbit_credential_validator.erl
index 7e0e81c159..52840aba62 100644
--- a/deps/rabbit/src/rabbit_credential_validator.erl
+++ b/deps/rabbit/src/rabbit_credential_validator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_credential_validator).
diff --git a/deps/rabbit/src/rabbit_credential_validator_accept_everything.erl b/deps/rabbit/src/rabbit_credential_validator_accept_everything.erl
index c3311d9c68..91bd2049a3 100644
--- a/deps/rabbit/src/rabbit_credential_validator_accept_everything.erl
+++ b/deps/rabbit/src/rabbit_credential_validator_accept_everything.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_credential_validator_accept_everything).
diff --git a/deps/rabbit/src/rabbit_credential_validator_min_password_length.erl b/deps/rabbit/src/rabbit_credential_validator_min_password_length.erl
index c87a91e28c..730071b7b2 100644
--- a/deps/rabbit/src/rabbit_credential_validator_min_password_length.erl
+++ b/deps/rabbit/src/rabbit_credential_validator_min_password_length.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_credential_validator_min_password_length).
diff --git a/deps/rabbit/src/rabbit_credential_validator_password_regexp.erl b/deps/rabbit/src/rabbit_credential_validator_password_regexp.erl
index 64a0217ba2..38a83440cd 100644
--- a/deps/rabbit/src/rabbit_credential_validator_password_regexp.erl
+++ b/deps/rabbit/src/rabbit_credential_validator_password_regexp.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
diff --git a/deps/rabbit/src/rabbit_cuttlefish.erl b/deps/rabbit/src/rabbit_cuttlefish.erl
new file mode 100644
index 0000000000..3ab4694853
--- /dev/null
+++ b/deps/rabbit/src/rabbit_cuttlefish.erl
@@ -0,0 +1,36 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2023-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(rabbit_cuttlefish).
+
+-export([
+ aggregate_props/2
+]).
+
+-type keyed_props() :: [{binary(), [{binary(), any()}]}].
+
+-spec aggregate_props([{string(), any()}], [string()]) ->
+ keyed_props().
+aggregate_props(Conf, Prefix) ->
+ Pattern = Prefix ++ ["$id", "$_"],
+ PrefixLen = length(Prefix),
+ FlatList = lists:filtermap(
+ fun({K, V}) ->
+ case cuttlefish_variable:is_fuzzy_match(K, Pattern) of
+ true -> {true, {lists:nthtail(PrefixLen, K), V}};
+ _ -> false
+ end
+ end,
+ Conf
+ ),
+ proplists:from_map(
+ maps:groups_from_list(
+ fun({[ID | _], _}) -> list_to_binary(ID) end,
+ fun({[_ | [Setting | _]], Value}) -> {list_to_binary(Setting), Value} end,
+ FlatList
+ )
+ ).
diff --git a/deps/rabbit/src/rabbit_db.erl b/deps/rabbit/src/rabbit_db.erl
new file mode 100644
index 0000000000..838adcec21
--- /dev/null
+++ b/deps/rabbit/src/rabbit_db.erl
@@ -0,0 +1,33 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(rabbit_db).
+
+-include_lib("kernel/include/logger.hrl").
+-include_lib("stdlib/include/assert.hrl").
+
+-export([run/1]).
+
+%% -------------------------------------------------------------------
+%% run().
+%% -------------------------------------------------------------------
+
+-spec run(Funs) -> Ret when
+ Funs :: #{mnesia := Fun},
+ Fun :: fun(() -> Ret),
+ Ret :: any().
+%% @doc Runs the function corresponding to the used database engine.
+%%
+%% @returns the return value of `Fun'.
+
+run(Funs)
+ when is_map(Funs) andalso is_map_key(mnesia, Funs) ->
+ #{mnesia := MnesiaFun} = Funs,
+ run_with_mnesia(MnesiaFun).
+
+run_with_mnesia(Fun) ->
+ Fun().
diff --git a/deps/rabbit/src/rabbit_db_rtparams.erl b/deps/rabbit/src/rabbit_db_rtparams.erl
new file mode 100644
index 0000000000..0a133be43f
--- /dev/null
+++ b/deps/rabbit/src/rabbit_db_rtparams.erl
@@ -0,0 +1,249 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(rabbit_db_rtparams).
+
+-include_lib("rabbit_common/include/rabbit.hrl").
+
+-export([set/2, set/4,
+ get/1,
+ get_or_set/2,
+ get_all/0, get_all/2,
+ delete/1, delete/3]).
+
+-define(MNESIA_TABLE, rabbit_runtime_parameters).
+
+%% -------------------------------------------------------------------
+%% set().
+%% -------------------------------------------------------------------
+
+-spec set(Key, Term) -> Ret when
+ Key :: atom(),
+ Term :: any(),
+ Ret :: new | {old, Term}.
+%% @doc Sets the new value of the global runtime parameter named `Key'.
+%%
+%% @returns `new' if the runtime parameter was not set before, or `{old,
+%% OldTerm}' with the old value.
+%%
+%% @private
+
+set(Key, Term) when is_atom(Key) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> set_in_mnesia(Key, Term) end}).
+
+set_in_mnesia(Key, Term) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> set_in_mnesia_tx(Key, Term) end).
+
+-spec set(VHostName, Comp, Name, Term) -> Ret when
+ VHostName :: vhost:name(),
+ Comp :: binary(),
+ Name :: binary() | atom(),
+ Term :: any(),
+ Ret :: new | {old, Term}.
+%% @doc Checks the existence of `VHostName' and sets the new value of the
+%% non-global runtime parameter named `Key'.
+%%
+%% @returns `new' if the runtime parameter was not set before, or `{old,
+%% OldTerm}' with the old value.
+%%
+%% @private
+
+set(VHostName, Comp, Name, Term)
+ when is_binary(VHostName) andalso
+ is_binary(Comp) andalso
+ (is_binary(Name) orelse is_atom(Name)) ->
+ Key = {VHostName, Comp, Name},
+ rabbit_db:run(
+ #{mnesia => fun() -> set_in_mnesia(VHostName, Key, Term) end}).
+
+set_in_mnesia(VHostName, Key, Term) ->
+ rabbit_misc:execute_mnesia_transaction(
+ rabbit_db_vhost:with_fun_in_mnesia_tx(
+ VHostName,
+ fun() -> set_in_mnesia_tx(Key, Term) end)).
+
+set_in_mnesia_tx(Key, Term) ->
+ Res = case mnesia:read(?MNESIA_TABLE, Key, read) of
+ [Params] -> {old, Params#runtime_parameters.value};
+ [] -> new
+ end,
+ Record = #runtime_parameters{key = Key,
+ value = Term},
+ mnesia:write(?MNESIA_TABLE, Record, write),
+ Res.
+
+%% -------------------------------------------------------------------
+%% get().
+%% -------------------------------------------------------------------
+
+-spec get(Key) -> Ret when
+ Key :: atom() | {vhost:name(), binary(), binary()},
+ Ret :: #runtime_parameters{} | undefined.
+%% @doc Returns a runtime parameter.
+%%
+%% @returns the value of the runtime parameter if it exists, or `undefined'
+%% otherwise.
+%%
+%% @private
+
+get({VHostName, Comp, Name} = Key)
+ when is_binary(VHostName) andalso
+ is_binary(Comp) andalso
+ (is_binary(Name) orelse is_atom(Name)) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> get_in_mnesia(Key) end});
+get(Key) when is_atom(Key) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> get_in_mnesia(Key) end}).
+
+get_in_mnesia(Key) ->
+ case mnesia:dirty_read(?MNESIA_TABLE, Key) of
+ [] -> undefined;
+ [Record] -> Record
+ end.
+
+%% -------------------------------------------------------------------
+%% get_or_set().
+%% -------------------------------------------------------------------
+
+-spec get_or_set(Key, Default) -> Ret when
+ Key :: atom() | {vhost:name(), binary(), binary()},
+ Default :: any(),
+ Ret :: #runtime_parameters{}.
+%% @doc Returns a runtime parameter or sets its value if it does not exist.
+%%
+%% @private
+
+get_or_set({VHostName, Comp, Name} = Key, Default)
+ when is_binary(VHostName) andalso
+ is_binary(Comp) andalso
+ (is_binary(Name) orelse is_atom(Name)) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> get_or_set_in_mnesia(Key, Default) end});
+get_or_set(Key, Default) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> get_or_set_in_mnesia(Key, Default) end}).
+
+get_or_set_in_mnesia(Key, Default) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> get_or_set_in_mnesia_tx(Key, Default) end).
+
+get_or_set_in_mnesia_tx(Key, Default) ->
+ case mnesia:read(?MNESIA_TABLE, Key, read) of
+ [Record] ->
+ Record;
+ [] ->
+ Record = #runtime_parameters{key = Key,
+ value = Default},
+ mnesia:write(?MNESIA_TABLE, Record, write),
+ Record
+ end.
+
+%% -------------------------------------------------------------------
+%% get_all().
+%% -------------------------------------------------------------------
+
+-spec get_all() -> Ret when
+ Ret :: [#runtime_parameters{}].
+%% @doc Gets all runtime parameters.
+%%
+%% @returns a list of runtime parameters records.
+%%
+%% @private
+
+get_all() ->
+ rabbit_db:run(
+ #{mnesia => fun() -> get_all_in_mnesia() end}).
+
+get_all_in_mnesia() ->
+ rabbit_misc:dirty_read_all(?MNESIA_TABLE).
+
+-spec get_all(VHostName, Comp) -> Ret when
+ VHostName :: vhost:name() | '_',
+ Comp :: binary() | '_',
+ Ret :: [#runtime_parameters{}].
+%% @doc Gets all non-global runtime parameters matching the given virtual host
+%% and component.
+%%
+%% @returns a list of runtime parameters records.
+%%
+%% @private
+
+get_all(VHostName, Comp)
+ when (is_binary(VHostName) orelse VHostName =:= '_') andalso
+ (is_binary(Comp) orelse Comp =:= '_') ->
+ rabbit_db:run(
+ #{mnesia => fun() -> get_all_in_mnesia(VHostName, Comp) end}).
+
+get_all_in_mnesia(VHostName, Comp) ->
+ mnesia:async_dirty(
+ fun () ->
+ case VHostName of
+ '_' -> ok;
+ _ -> rabbit_vhost:assert(VHostName)
+ end,
+ Match = #runtime_parameters{key = {VHostName, Comp, '_'},
+ _ = '_'},
+ mnesia:match_object(?MNESIA_TABLE, Match, read)
+ end).
+
+%% -------------------------------------------------------------------
+%% delete().
+%% -------------------------------------------------------------------
+
+-spec delete(Key) -> ok when
+ Key :: atom().
+%% @doc Deletes the global runtime parameter named `Key'.
+%%
+%% @private
+
+delete(Key) when is_atom(Key) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> delete_in_mnesia(Key) end}).
+
+-spec delete(VHostName, Comp, Name) -> ok when
+ VHostName :: vhost:name() | '_',
+ Comp :: binary() | '_',
+ Name :: binary() | atom() | '_'.
+%% @doc Deletes the non-global runtime parameter named `Name' for the given
+%% virtual host and component.
+%%
+%% @private
+
+delete(VHostName, Comp, Name)
+ when is_binary(VHostName) andalso
+ is_binary(Comp) andalso
+ (is_binary(Name) orelse (is_atom(Name) andalso Name =/= '_')) ->
+ Key = {VHostName, Comp, Name},
+ rabbit_db:run(
+ #{mnesia => fun() -> delete_in_mnesia(Key) end});
+delete(VHostName, Comp, Name)
+ when VHostName =:= '_' orelse Comp =:= '_' orelse Name =:= '_' ->
+ rabbit_db:run(
+ #{mnesia =>
+ fun() -> delete_matching_in_mnesia(VHostName, Comp, Name) end}).
+
+delete_in_mnesia(Key) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> delete_in_mnesia_tx(Key) end).
+
+delete_in_mnesia_tx(Key) ->
+ mnesia:delete(?MNESIA_TABLE, Key, write).
+
+delete_matching_in_mnesia(VHostName, Comp, Name) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> delete_matching_in_mnesia_tx(VHostName, Comp, Name) end).
+
+delete_matching_in_mnesia_tx(VHostName, Comp, Name) ->
+ Match = #runtime_parameters{key = {VHostName, Comp, Name},
+ _ = '_'},
+ _ = [ok = mnesia:delete(?MNESIA_TABLE, Key, write)
+ || #runtime_parameters{key = Key} <-
+ mnesia:match_object(?MNESIA_TABLE, Match, write)],
+ ok.
diff --git a/deps/rabbit/src/rabbit_db_user.erl b/deps/rabbit/src/rabbit_db_user.erl
new file mode 100644
index 0000000000..72a3dbdfda
--- /dev/null
+++ b/deps/rabbit/src/rabbit_db_user.erl
@@ -0,0 +1,620 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(rabbit_db_user).
+
+-include_lib("stdlib/include/assert.hrl").
+
+-include_lib("rabbit_common/include/rabbit.hrl").
+
+-export([create/1,
+ update/2,
+ get_all/0,
+ with_fun_in_mnesia_tx/2,
+ get_user_permissions/2,
+ check_and_match_user_permissions/2,
+ set_user_permissions/1,
+ clear_user_permissions/2,
+ clear_matching_user_permissions/2,
+ get_topic_permissions/3,
+ check_and_match_topic_permissions/3,
+ set_topic_permissions/1,
+ clear_topic_permissions/3,
+ clear_matching_topic_permissions/3,
+ delete/1]).
+
+-define(MNESIA_TABLE, rabbit_user).
+-define(PERM_MNESIA_TABLE, rabbit_user_permission).
+-define(TOPIC_PERM_MNESIA_TABLE, rabbit_topic_permission).
+
+%% -------------------------------------------------------------------
+%% create().
+%% -------------------------------------------------------------------
+
+-spec create(User) -> ok when
+ User :: internal_user:internal_user().
+%% @doc Creates and writes an internal user record.
+%%
+%% @returns `ok' if the record was written to the database. It throws an
+%% exception if the user already exists or the transaction fails.
+%%
+%% @private
+
+create(User) ->
+ Username = internal_user:get_username(User),
+ rabbit_db:run(
+ #{mnesia => fun() -> create_in_mnesia(Username, User) end}).
+
+create_in_mnesia(Username, User) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> create_in_mnesia_tx(Username, User) end).
+
+create_in_mnesia_tx(Username, User) ->
+ case mnesia:wread({?MNESIA_TABLE, Username}) of
+ [] -> ok = mnesia:write(?MNESIA_TABLE, User, write);
+ _ -> mnesia:abort({user_already_exists, Username})
+ end.
+
+%% -------------------------------------------------------------------
+%% update().
+%% -------------------------------------------------------------------
+
+-spec update(Username, UpdateFun) -> ok when
+ Username :: internal_user:username(),
+ User :: internal_user:internal_user(),
+ UpdateFun :: fun((User) -> User).
+%% @doc Updates an existing internal user record using `UpdateFun'.
+%%
+%% @private
+
+update(Username, UpdateFun)
+ when is_binary(Username) andalso is_function(UpdateFun, 1) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> update_in_mnesia(Username, UpdateFun) end}).
+
+update_in_mnesia(Username, UpdateFun) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> update_in_mnesia_tx(Username, UpdateFun) end).
+
+update_in_mnesia_tx(Username, UpdateFun) ->
+ case mnesia:wread({?MNESIA_TABLE, Username}) of
+ [User0] ->
+ User1 = UpdateFun(User0),
+ ok = mnesia:write(?MNESIA_TABLE, User1, write);
+ [] ->
+ mnesia:abort({no_such_user, Username})
+ end.
+
+%% -------------------------------------------------------------------
+%% get_all().
+%% -------------------------------------------------------------------
+
+-spec get_all() -> [User] when
+ User :: internal_user:internal_user().
+%% @doc Returns all user records.
+%%
+%% @returns the list of internal user records.
+%%
+%% @private
+
+get_all() ->
+ rabbit_db:run(
+ #{mnesia => fun() -> get_all_in_mnesia() end}).
+
+get_all_in_mnesia() ->
+ mnesia:dirty_match_object(
+ ?MNESIA_TABLE,
+ internal_user:pattern_match_all()).
+
+%% -------------------------------------------------------------------
+%% with_fun_in_*().
+%% -------------------------------------------------------------------
+
+-spec with_fun_in_mnesia_tx(Username, TxFun) -> Fun when
+ Username :: internal_user:username(),
+ TxFun :: fun(() -> Ret),
+ Fun :: fun(() -> Ret),
+ Ret :: any().
+%% @doc Returns a function, calling `TxFun' only if the user named `Username'
+%% exists.
+%%
+%% The returned function must be used inside a Mnesia transaction.
+%%
+%% @returns a function calling `TxFun' only if the user exists.
+%%
+%% @private
+
+with_fun_in_mnesia_tx(Username, TxFun)
+ when is_binary(Username) andalso is_function(TxFun, 0) ->
+ fun() ->
+ ?assert(mnesia:is_transaction()),
+ case mnesia:read({?MNESIA_TABLE, Username}) of
+ [_User] -> TxFun();
+ [] -> mnesia:abort({no_such_user, Username})
+ end
+ end.
+
+%% -------------------------------------------------------------------
+%% get_user_permissions().
+%% -------------------------------------------------------------------
+
+-spec get_user_permissions(Username, VHostName) -> Ret when
+ Username :: internal_user:username(),
+ VHostName :: vhost:name(),
+ Ret :: UserPermission | undefined,
+ UserPermission :: #user_permission{}.
+%% @doc Returns the user permissions for the given user in the given virtual
+%% host.
+%%
+%% @returns the user permissions record if any, or `undefined'.
+%%
+%% @private
+
+get_user_permissions(Username, VHostName)
+ when is_binary(Username) andalso is_binary(VHostName) ->
+ rabbit_db:run(
+ #{mnesia =>
+ fun() -> get_user_permissions_in_mnesia(Username, VHostName) end}).
+
+get_user_permissions_in_mnesia(Username, VHostName) ->
+ Key = #user_vhost{username = Username,
+ virtual_host = VHostName},
+ case mnesia:dirty_read({?PERM_MNESIA_TABLE, Key}) of
+ [UserPermission] -> UserPermission;
+ [] -> undefined
+ end.
+
+%% -------------------------------------------------------------------
+%% check_and_match_user_permissions().
+%% -------------------------------------------------------------------
+
+-spec check_and_match_user_permissions(Username, VHostName) -> Ret when
+ Username :: internal_user:username() | '_',
+ VHostName :: vhost:name() | '_',
+ Ret :: [UserPermission],
+ UserPermission :: #user_permission{}.
+%% @doc Returns the user permissions matching the given user in the given virtual
+%% host.
+%%
+%% @returns a list of user permission records.
+%%
+%% @private
+
+check_and_match_user_permissions(Username, VHostName)
+ when (is_binary(Username) orelse Username =:= '_') andalso
+ (is_binary(VHostName) orelse VHostName =:= '_') ->
+ rabbit_db:run(
+ #{mnesia =>
+ fun() -> match_user_permissions_in_mnesia(Username, VHostName) end}).
+
+match_user_permissions_in_mnesia('_' = Username, '_' = VHostName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() ->
+ match_user_permissions_in_mnesia_tx(Username, VHostName)
+ end);
+match_user_permissions_in_mnesia('_' = Username, VHostName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ rabbit_db_vhost:with_fun_in_mnesia_tx(
+ VHostName,
+ fun() ->
+ match_user_permissions_in_mnesia_tx(Username, VHostName)
+ end));
+match_user_permissions_in_mnesia(Username, '_' = VHostName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ with_fun_in_mnesia_tx(
+ Username,
+ fun() ->
+ match_user_permissions_in_mnesia_tx(Username, VHostName)
+ end));
+match_user_permissions_in_mnesia(Username, VHostName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ with_fun_in_mnesia_tx(
+ Username,
+ rabbit_db_vhost:with_fun_in_mnesia_tx(
+ VHostName,
+ fun() ->
+ match_user_permissions_in_mnesia_tx(Username, VHostName)
+ end))).
+
+match_user_permissions_in_mnesia_tx(Username, VHostName) ->
+ mnesia:match_object(
+ ?PERM_MNESIA_TABLE,
+ #user_permission{user_vhost = #user_vhost{
+ username = Username,
+ virtual_host = VHostName},
+ permission = '_'},
+ read).
+
+%% -------------------------------------------------------------------
+%% set_user_permissions().
+%% -------------------------------------------------------------------
+
+-spec set_user_permissions(UserPermission) -> ok when
+ UserPermission :: #user_permission{}.
+%% @doc Sets the user permissions for the user and virtual host set in the
+%% `UserPermission' record.
+%%
+%% @private
+
+set_user_permissions(
+ #user_permission{user_vhost = #user_vhost{username = Username,
+ virtual_host = VHostName}}
+ = UserPermission) ->
+ rabbit_db:run(
+ #{mnesia =>
+ fun() ->
+ set_user_permissions_in_mnesia(
+ Username, VHostName, UserPermission)
+ end}).
+
+set_user_permissions_in_mnesia(Username, VHostName, UserPermission) ->
+ rabbit_misc:execute_mnesia_transaction(
+ with_fun_in_mnesia_tx(
+ Username,
+ rabbit_db_vhost:with_fun_in_mnesia_tx(
+ VHostName,
+ fun() -> set_user_permissions_in_mnesia_tx(UserPermission) end))).
+
+set_user_permissions_in_mnesia_tx(UserPermission) ->
+ mnesia:write(?PERM_MNESIA_TABLE, UserPermission, write).
+
+%% -------------------------------------------------------------------
+%% clear_user_permissions().
+%% -------------------------------------------------------------------
+
+-spec clear_user_permissions(Username, VHostName) -> ok when
+ Username :: internal_user:username(),
+ VHostName :: vhost:name().
+%% @doc Clears the user permissions of the given user in the given virtual
+%% host.
+%%
+%% @private
+
+clear_user_permissions(Username, VHostName)
+ when is_binary(Username) andalso is_binary(VHostName) ->
+ rabbit_db:run(
+ #{mnesia =>
+ fun() -> clear_user_permissions_in_mnesia(Username, VHostName) end}).
+
+clear_user_permissions_in_mnesia(Username, VHostName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> clear_user_permissions_in_mnesia_tx(Username, VHostName) end).
+
+clear_user_permissions_in_mnesia_tx(Username, VHostName) ->
+ mnesia:delete({?PERM_MNESIA_TABLE,
+ #user_vhost{username = Username,
+ virtual_host = VHostName}}).
+
+%% -------------------------------------------------------------------
+%% clear_matching_user_permissions().
+%% -------------------------------------------------------------------
+
+-spec clear_matching_user_permissions(Username, VHostName) -> Ret when
+ Username :: internal_user:username() | '_',
+ VHostName :: vhost:name() | '_',
+ Ret :: [#user_permission{}].
+%% @doc Clears all user permissions matching arguments.
+%%
+%% @returns a list of matching user permissions.
+%%
+%% @private
+
+clear_matching_user_permissions(Username, VHostName)
+ when (is_binary(Username) orelse Username =:= '_') andalso
+ (is_binary(VHostName) orelse VHostName =:= '_') ->
+ rabbit_db:run(
+ #{mnesia =>
+ fun() ->
+ clear_matching_user_permissions_in_mnesia(Username, VHostName)
+ end
+ }).
+
+clear_matching_user_permissions_in_mnesia(Username, VHostName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() ->
+ clear_matching_user_permissions_in_mnesia_tx( Username, VHostName)
+ end).
+
+clear_matching_user_permissions_in_mnesia_tx(Username, VHostName) ->
+ [begin
+ mnesia:delete(?PERM_MNESIA_TABLE, Key, write),
+ Record
+ end
+ || #user_permission{user_vhost = Key} = Record
+ <- match_user_permissions_in_mnesia_tx(Username, VHostName)].
+
+%% -------------------------------------------------------------------
+%% get_topic_permissions().
+%% -------------------------------------------------------------------
+
+-spec get_topic_permissions(Username, VHostName, ExchangeName) -> Ret when
+ Username :: internal_topic:topicname(),
+ VHostName :: vhost:name(),
+ ExchangeName :: binary(),
+ Ret :: TopicPermission | undefined,
+ TopicPermission :: #topic_permission{}.
+%% @doc Returns the topic permissions for the given user and exchange in the
+%% given virtual host.
+%%
+%% @returns the topic permissions record if any, or `undefined'.
+%%
+%% @private
+
+get_topic_permissions(Username, VHostName, ExchangeName)
+ when is_binary(Username) andalso
+ is_binary(VHostName) andalso
+ is_binary(ExchangeName) ->
+ rabbit_db:run(
+ #{mnesia =>
+ fun() ->
+ get_topic_permissions_in_mnesia(
+ Username, VHostName, ExchangeName)
+ end}).
+
+get_topic_permissions_in_mnesia(Username, VHostName, ExchangeName) ->
+ Key = #topic_permission_key{
+ user_vhost = #user_vhost{username = Username,
+ virtual_host = VHostName},
+ exchange = ExchangeName},
+ case mnesia:dirty_read({?TOPIC_PERM_MNESIA_TABLE, Key}) of
+ [TopicPermission] -> TopicPermission;
+ [] -> undefined
+ end.
+
+%% -------------------------------------------------------------------
+%% check_and_match_topic_permissions().
+%% -------------------------------------------------------------------
+
+-spec check_and_match_topic_permissions(
+ Username, VHostName, ExchangeName) -> Ret when
+ Username :: internal_user:username() | '_',
+ VHostName :: vhost:name() | '_',
+ ExchangeName :: binary() | '_',
+ Ret :: [TopicPermission],
+ TopicPermission :: #topic_permission{}.
+%% @doc Returns the topic permissions matching the given user and exchange in
+%% the given virtual host.
+%%
+%% @returns a list of topic permissions records.
+%%
+%% @private
+
+check_and_match_topic_permissions(Username, VHostName, ExchangeName)
+ when (is_binary(Username) orelse Username =:= '_') andalso
+ (is_binary(VHostName) orelse VHostName =:= '_') andalso
+ (is_binary(ExchangeName) orelse ExchangeName =:= '_') ->
+ rabbit_db:run(
+ #{mnesia =>
+ fun() ->
+ match_topic_permissions_in_mnesia(
+ Username, VHostName, ExchangeName)
+ end}).
+
+match_topic_permissions_in_mnesia(
+ '_' = Username, '_' = VHostName, ExchangeName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() ->
+ match_topic_permissions_in_mnesia_tx(
+ Username, VHostName, ExchangeName)
+ end);
+match_topic_permissions_in_mnesia(
+ '_' = Username, VHostName, ExchangeName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ rabbit_db_vhost:with_fun_in_mnesia_tx(
+ VHostName,
+ fun() ->
+ match_topic_permissions_in_mnesia_tx(
+ Username, VHostName, ExchangeName)
+ end));
+match_topic_permissions_in_mnesia(
+ Username, '_' = VHostName, ExchangeName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ with_fun_in_mnesia_tx(
+ Username,
+ fun() ->
+ match_topic_permissions_in_mnesia_tx(
+ Username, VHostName, ExchangeName)
+ end));
+match_topic_permissions_in_mnesia(
+ Username, VHostName, ExchangeName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ with_fun_in_mnesia_tx(
+ Username,
+ rabbit_db_vhost:with_fun_in_mnesia_tx(
+ VHostName,
+ fun() ->
+ match_topic_permissions_in_mnesia_tx(
+ Username, VHostName, ExchangeName)
+ end))).
+
+match_topic_permissions_in_mnesia_tx(Username, VHostName, ExchangeName) ->
+ mnesia:match_object(
+ ?TOPIC_PERM_MNESIA_TABLE,
+ #topic_permission{
+ topic_permission_key = #topic_permission_key{
+ user_vhost = #user_vhost{
+ username = Username,
+ virtual_host = VHostName},
+ exchange = ExchangeName},
+ permission = '_'},
+ read).
+
+%% -------------------------------------------------------------------
+%% set_topic_permissions().
+%% -------------------------------------------------------------------
+
+-spec set_topic_permissions(TopicPermission) -> ok when
+ TopicPermission :: #topic_permission{}.
+%% @doc Sets the permissions for the user, virtual host and exchange set in
+%% the `TopicPermission' record.
+%%
+%% @private
+
+set_topic_permissions(
+ #topic_permission{
+ topic_permission_key =
+ #topic_permission_key{
+ user_vhost = #user_vhost{username = Username,
+ virtual_host = VHostName}}}
+ = TopicPermission) ->
+ rabbit_db:run(
+ #{mnesia =>
+ fun() ->
+ set_topic_permissions_in_mnesia(
+ Username, VHostName, TopicPermission)
+ end}).
+
+set_topic_permissions_in_mnesia(Username, VHostName, TopicPermission) ->
+ rabbit_misc:execute_mnesia_transaction(
+ with_fun_in_mnesia_tx(
+ Username,
+ rabbit_db_vhost:with_fun_in_mnesia_tx(
+ VHostName,
+ fun() ->
+ set_topic_permissions_in_mnesia_tx(TopicPermission)
+ end))).
+
+set_topic_permissions_in_mnesia_tx(TopicPermission) ->
+ mnesia:write(?TOPIC_PERM_MNESIA_TABLE, TopicPermission, write).
+
+%% -------------------------------------------------------------------
+%% clear_topic_permissions().
+%% -------------------------------------------------------------------
+
+-spec clear_topic_permissions(Username, VHostName, ExchangeName) -> ok when
+ Username :: internal_user:username(),
+ VHostName :: vhost:name(),
+ ExchangeName :: binary() | '_'.
+%% @doc Clears the topic permissions of the given user and exchange in the
+%% given virtual host and exchange.
+%%
+%% @private
+
+clear_topic_permissions(Username, VHostName, ExchangeName)
+ when is_binary(Username) andalso is_binary(VHostName) andalso
+ (is_binary(ExchangeName) orelse ExchangeName =:= '_') ->
+ rabbit_db:run(
+ #{mnesia =>
+ fun() ->
+ clear_topic_permissions_in_mnesia(
+ Username, VHostName, ExchangeName)
+ end}).
+
+clear_topic_permissions_in_mnesia(Username, VHostName, ExchangeName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() ->
+ clear_topic_permissions_in_mnesia_tx(
+ Username, VHostName, ExchangeName)
+ end).
+
+clear_topic_permissions_in_mnesia_tx(Username, VHostName, ExchangeName) ->
+ delete_topic_permission_in_mnesia_tx(Username, VHostName, ExchangeName).
+
+%% -------------------------------------------------------------------
+%% clear_matching_topic_permissions().
+%% -------------------------------------------------------------------
+
+-spec clear_matching_topic_permissions(Username, VHostName, ExchangeName) ->
+ Ret when
+ Username :: internal_topic:topicname() | '_',
+ VHostName :: vhost:name() | '_',
+ ExchangeName :: binary() | '_',
+ Ret :: [#topic_permission{}].
+%% @doc Clears all topic permissions matching arguments.
+%%
+%% @returns a list of matching topic permissions.
+%%
+%% @private
+
+clear_matching_topic_permissions(Username, VHostName, ExchangeName)
+ when (is_binary(Username) orelse Username =:= '_') andalso
+ (is_binary(VHostName) orelse VHostName =:= '_') andalso
+ (is_binary(ExchangeName) orelse ExchangeName =:= '_') ->
+ rabbit_db:run(
+ #{mnesia =>
+ fun() ->
+ clear_matching_topic_permissions_in_mnesia(
+ Username, VHostName, ExchangeName)
+ end}).
+
+clear_matching_topic_permissions_in_mnesia(
+ Username, VHostName, ExchangeName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() ->
+ clear_matching_topic_permissions_in_mnesia_tx(
+ Username, VHostName, ExchangeName)
+ end).
+
+clear_matching_topic_permissions_in_mnesia_tx(
+ Username, VHostName, ExchangeName) ->
+ [begin
+ mnesia:delete(?TOPIC_PERM_MNESIA_TABLE, Key, write),
+ Record
+ end
+ || #topic_permission{topic_permission_key = Key} = Record
+ <- match_topic_permissions_in_mnesia_tx(
+ Username, VHostName, ExchangeName)].
+
+%% -------------------------------------------------------------------
+%% delete().
+%% -------------------------------------------------------------------
+
+-spec delete(Username) -> Existed when
+ Username :: internal_user:username(),
+ Existed :: boolean().
+%% @doc Deletes a user and its permissions from the database.
+%%
+%% @returns a boolean indicating if the user existed. It throws an exception
+%% if the transaction fails.
+%%
+%% @private
+
+delete(Username) when is_binary(Username) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> delete_in_mnesia(Username) end}).
+
+delete_in_mnesia(Username) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> delete_in_mnesia_tx(Username) end).
+
+delete_in_mnesia_tx(Username) ->
+ Existed = mnesia:wread({?MNESIA_TABLE, Username}) =/= [],
+ delete_user_in_mnesia_tx(Username),
+ delete_user_permission_in_mnesia_tx(Username, '_'),
+ delete_topic_permission_in_mnesia_tx(Username, '_', '_'),
+ Existed.
+
+delete_user_in_mnesia_tx(Username) ->
+ mnesia:delete({?MNESIA_TABLE, Username}).
+
+delete_user_permission_in_mnesia_tx(Username, VHostName) ->
+ Pattern = user_permission_pattern(Username, VHostName),
+ _ = [mnesia:delete_object(?PERM_MNESIA_TABLE, R, write) ||
+ R <- mnesia:match_object(?PERM_MNESIA_TABLE, Pattern, write)],
+ ok.
+
+delete_topic_permission_in_mnesia_tx(Username, VHostName, ExchangeName) ->
+ Pattern = topic_permission_pattern(Username, VHostName, ExchangeName),
+ _ = [mnesia:delete_object(?TOPIC_PERM_MNESIA_TABLE, R, write) ||
+ R <- mnesia:match_object(?TOPIC_PERM_MNESIA_TABLE, Pattern, write)],
+ ok.
+
+user_permission_pattern(Username, VHostName) ->
+ #user_permission{user_vhost = #user_vhost{
+ username = Username,
+ virtual_host = VHostName},
+ permission = '_'}.
+
+topic_permission_pattern(Username, VHostName, ExchangeName) ->
+ #topic_permission{
+ topic_permission_key =
+ #topic_permission_key{
+ user_vhost = #user_vhost{
+ username = Username,
+ virtual_host = VHostName},
+ exchange = ExchangeName},
+ permission = '_'}.
diff --git a/deps/rabbit/src/rabbit_db_vhost.erl b/deps/rabbit/src/rabbit_db_vhost.erl
new file mode 100644
index 0000000000..91b9e10e6d
--- /dev/null
+++ b/deps/rabbit/src/rabbit_db_vhost.erl
@@ -0,0 +1,321 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(rabbit_db_vhost).
+
+-include_lib("kernel/include/logger.hrl").
+-include_lib("stdlib/include/assert.hrl").
+-include_lib("rabbit_common/include/logging.hrl").
+
+-include("vhost.hrl").
+
+-export([create_or_get/3,
+ merge_metadata/2,
+ set_tags/2,
+ exists/1,
+ get/1,
+ get_all/0,
+ list/0,
+ update/2,
+ with_fun_in_mnesia_tx/2,
+ delete/1]).
+
+-define(MNESIA_TABLE, rabbit_vhost).
+
+%% -------------------------------------------------------------------
+%% create_or_get().
+%% -------------------------------------------------------------------
+
+-spec create_or_get(VHostName, Limits, Metadata) -> Ret when
+ VHostName :: vhost:name(),
+ Limits :: vhost:limits(),
+ Metadata :: vhost:metadata(),
+ Ret :: {existing | new, VHost},
+ VHost :: vhost:vhost().
+%% @doc Writes a virtual host record if it doesn't exist already or returns
+%% the existing one.
+%%
+%% @returns the existing record if there is one in the database already, or
+%% the newly created record. It throws an exception if the transaction fails.
+%%
+%% @private
+
+create_or_get(VHostName, Limits, Metadata)
+ when is_binary(VHostName) andalso
+ is_list(Limits) andalso
+ is_map(Metadata) ->
+ VHost = vhost:new(VHostName, Limits, Metadata),
+ rabbit_db:run(
+ #{mnesia => fun() -> create_or_get_in_mnesia(VHostName, VHost) end}).
+
+create_or_get_in_mnesia(VHostName, VHost) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> create_or_get_in_mnesia_tx(VHostName, VHost) end).
+
+create_or_get_in_mnesia_tx(VHostName, VHost) ->
+ case mnesia:wread({?MNESIA_TABLE, VHostName}) of
+ [] ->
+ mnesia:write(?MNESIA_TABLE, VHost, write),
+ {new, VHost};
+
+ %% the vhost already exists
+ [ExistingVHost] ->
+ {existing, ExistingVHost}
+ end.
+
+%% -------------------------------------------------------------------
+%% merge_metadata().
+%% -------------------------------------------------------------------
+
+-spec merge_metadata(VHostName, Metadata) -> Ret when
+ VHostName :: vhost:name(),
+ Metadata :: vhost:metadata(),
+ Ret :: {ok, VHost} | {error, {no_such_vhost, VHostName}},
+ VHost :: vhost:vhost().
+%% @doc Updates the metadata of an existing virtual host record.
+%%
+%% @returns `{ok, VHost}' with the updated record if the record existed and
+%% the update succeeded or an error tuple if the record didn't exist. It
+%% throws an exception if the transaction fails.
+%%
+%% @private
+
+merge_metadata(VHostName, Metadata)
+ when is_binary(VHostName) andalso is_map(Metadata) ->
+ case do_merge_metadata(VHostName, Metadata) of
+ {ok, VHost} when ?is_vhost(VHost) ->
+ rabbit_log:debug("Updated a virtual host record ~tp", [VHost]),
+ {ok, VHost};
+ {error, _} = Error ->
+ Error
+ end.
+
+do_merge_metadata(VHostName, Metadata) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> merge_metadata_in_mnesia(VHostName, Metadata) end}).
+
+merge_metadata_in_mnesia(VHostName, Metadata) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> merge_metadata_in_mnesia_tx(VHostName, Metadata) end).
+
+merge_metadata_in_mnesia_tx(VHostName, Metadata) ->
+ case mnesia:wread({?MNESIA_TABLE, VHostName}) of
+ [] ->
+ {error, {no_such_vhost, VHostName}};
+ [VHost0] when ?is_vhost(VHost0) ->
+ VHost1 = vhost:merge_metadata(VHost0, Metadata),
+ ?assert(?is_vhost(VHost1)),
+ mnesia:write(?MNESIA_TABLE, VHost1, write),
+ {ok, VHost1}
+ end.
+
+%% -------------------------------------------------------------------
+%% set_tags().
+%% -------------------------------------------------------------------
+
+-spec set_tags(VHostName, Tags) -> VHost when
+ VHostName :: vhost:name(),
+ Tags :: [vhost:tag() | binary() | string()],
+ VHost :: vhost:vhost().
+%% @doc Sets the tags of an existing virtual host record.
+%%
+%% @returns the updated virtual host record if the record existed and the
+%% update succeeded. It throws an exception if the transaction fails.
+%%
+%% @private
+
+set_tags(VHostName, Tags)
+ when is_binary(VHostName) andalso is_list(Tags) ->
+ ConvertedTags = [rabbit_data_coercion:to_atom(Tag) || Tag <- Tags],
+ rabbit_db:run(
+ #{mnesia => fun() -> set_tags_in_mnesia(VHostName, ConvertedTags) end}).
+
+set_tags_in_mnesia(VHostName, Tags) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> set_tags_in_mnesia_tx(VHostName, Tags) end).
+
+set_tags_in_mnesia_tx(VHostName, Tags) ->
+ UpdateFun = fun(VHost) -> do_set_tags(VHost, Tags) end,
+ update_in_mnesia_tx(VHostName, UpdateFun).
+
+do_set_tags(VHost, Tags) when ?is_vhost(VHost) andalso is_list(Tags) ->
+ Metadata0 = vhost:get_metadata(VHost),
+ Metadata1 = Metadata0#{tags => Tags},
+ vhost:set_metadata(VHost, Metadata1).
+
+%% -------------------------------------------------------------------
+%% exists().
+%% -------------------------------------------------------------------
+
+-spec exists(VHostName) -> Exists when
+ VHostName :: vhost:name(),
+ Exists :: boolean().
+%% @doc Indicates if the virtual host named `VHostName' exists.
+%%
+%% @returns true if the virtual host exists, false otherwise.
+%%
+%% @private
+
+exists(VHostName) when is_binary(VHostName) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> exists_in_mnesia(VHostName) end}).
+
+exists_in_mnesia(VHostName) ->
+ mnesia:dirty_read({?MNESIA_TABLE, VHostName}) /= [].
+
+%% -------------------------------------------------------------------
+%% get().
+%% -------------------------------------------------------------------
+
+-spec get(VHostName) -> VHost | undefined when
+ VHostName :: vhost:name(),
+ VHost :: vhost:vhost().
+%% @doc Returns the record of the virtual host named `VHostName'.
+%%
+%% @returns the virtual host record or `undefined' if no virtual host is named
+%% `VHostName'.
+%%
+%% @private
+
+get(VHostName) when is_binary(VHostName) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> get_in_mnesia(VHostName) end}).
+
+get_in_mnesia(VHostName) ->
+ case mnesia:dirty_read({?MNESIA_TABLE, VHostName}) of
+ [VHost] when ?is_vhost(VHost) -> VHost;
+ [] -> undefined
+ end.
+
+%% -------------------------------------------------------------------
+%% get_all().
+%% -------------------------------------------------------------------
+
+-spec get_all() -> [VHost] when
+ VHost :: vhost:vhost().
+%% @doc Returns all virtual host records.
+%%
+%% @returns the list of all virtual host records.
+%%
+%% @private
+
+get_all() ->
+ rabbit_db:run(
+ #{mnesia => fun() -> get_all_in_mnesia() end}).
+
+get_all_in_mnesia() ->
+ mnesia:dirty_match_object(?MNESIA_TABLE, vhost:pattern_match_all()).
+
+%% -------------------------------------------------------------------
+%% list().
+%% -------------------------------------------------------------------
+
+-spec list() -> [VHostName] when
+ VHostName :: vhost:name().
+%% @doc Lists the names of all virtual hosts.
+%%
+%% @returns a list of virtual host names.
+%%
+%% @private
+
+list() ->
+ rabbit_db:run(
+ #{mnesia => fun() -> list_in_mnesia() end}).
+
+list_in_mnesia() ->
+ mnesia:dirty_all_keys(?MNESIA_TABLE).
+
+%% -------------------------------------------------------------------
+%% update_in_*tx().
+%% -------------------------------------------------------------------
+
+-spec update(VHostName, UpdateFun) -> VHost when
+ VHostName :: vhost:name(),
+ UpdateFun :: fun((VHost) -> VHost),
+ VHost :: vhost:vhost().
+%% @doc Updates an existing virtual host record using the result of
+%% `UpdateFun'.
+%%
+%% @returns the updated virtual host record if the record existed and the
+%% update succeeded. It throws an exception if the transaction fails.
+%%
+%% @private
+
+update(VHostName, UpdateFun)
+ when is_binary(VHostName) andalso is_function(UpdateFun, 1) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> update_in_mnesia(VHostName, UpdateFun) end}).
+
+update_in_mnesia(VHostName, UpdateFun) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> update_in_mnesia_tx(VHostName, UpdateFun) end).
+
+update_in_mnesia_tx(VHostName, UpdateFun)
+ when is_binary(VHostName) andalso is_function(UpdateFun, 1) ->
+ case mnesia:wread({?MNESIA_TABLE, VHostName}) of
+ [VHost0] when ?is_vhost(VHost0) ->
+ VHost1 = UpdateFun(VHost0),
+ mnesia:write(?MNESIA_TABLE, VHost1, write),
+ VHost1;
+ [] ->
+ mnesia:abort({no_such_vhost, VHostName})
+ end.
+
+%% -------------------------------------------------------------------
+%% with_fun_in_*_tx().
+%% -------------------------------------------------------------------
+
+-spec with_fun_in_mnesia_tx(VHostName, TxFun) -> Fun when
+ VHostName :: vhost:name(),
+ TxFun :: fun(() -> Ret),
+ Fun :: fun(() -> Ret),
+ Ret :: any().
+%% @doc Returns a function, calling `TxFun' only if the virtual host named
+%% `VHostName' exists.
+%%
+%% The returned function must be used inside a Mnesia transaction.
+%%
+%% @returns a function calling `TxFun' only if the virtual host exists.
+%%
+%% @private
+
+with_fun_in_mnesia_tx(VHostName, TxFun)
+ when is_binary(VHostName) andalso is_function(TxFun, 0) ->
+ fun() ->
+ ?assert(mnesia:is_transaction()),
+ case mnesia:read({?MNESIA_TABLE, VHostName}) of
+ [_VHost] -> TxFun();
+ [] -> mnesia:abort({no_such_vhost, VHostName})
+ end
+ end.
+
+%% -------------------------------------------------------------------
+%% delete().
+%% -------------------------------------------------------------------
+
+-spec delete(VHostName) -> Existed when
+ VHostName :: vhost:name(),
+ Existed :: boolean().
+%% @doc Deletes a virtual host record from the database.
+%%
+%% @returns a boolean indicating if the vhost existed or not. It throws an
+%% exception if the transaction fails.
+%%
+%% @private
+
+delete(VHostName) when is_binary(VHostName) ->
+ rabbit_db:run(
+ #{mnesia => fun() -> delete_in_mnesia(VHostName) end}).
+
+delete_in_mnesia(VHostName) ->
+ rabbit_misc:execute_mnesia_transaction(
+ fun() -> delete_in_mnesia_tx(VHostName) end).
+
+delete_in_mnesia_tx(VHostName) ->
+ Existed = mnesia:wread({?MNESIA_TABLE, VHostName}) =/= [],
+ mnesia:delete({?MNESIA_TABLE, VHostName}),
+ Existed.
diff --git a/deps/rabbit/src/rabbit_dead_letter.erl b/deps/rabbit/src/rabbit_dead_letter.erl
index a81d8e3452..a42edbecfc 100644
--- a/deps/rabbit/src/rabbit_dead_letter.erl
+++ b/deps/rabbit/src/rabbit_dead_letter.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_dead_letter).
diff --git a/deps/rabbit/src/rabbit_definitions.erl b/deps/rabbit/src/rabbit_definitions.erl
index 7cd0c7a26c..127898f011 100644
--- a/deps/rabbit/src/rabbit_definitions.erl
+++ b/deps/rabbit/src/rabbit_definitions.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
diff --git a/deps/rabbit/src/rabbit_definitions_hashing.erl b/deps/rabbit/src/rabbit_definitions_hashing.erl
index 7794ad1027..c7eece5a80 100644
--- a/deps/rabbit/src/rabbit_definitions_hashing.erl
+++ b/deps/rabbit/src/rabbit_definitions_hashing.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This module is responsible for definition content hashing. Content hashing
diff --git a/deps/rabbit/src/rabbit_definitions_import_https.erl b/deps/rabbit/src/rabbit_definitions_import_https.erl
index 95b849d171..d358450d03 100644
--- a/deps/rabbit/src/rabbit_definitions_import_https.erl
+++ b/deps/rabbit/src/rabbit_definitions_import_https.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This module is responsible for loading definition from an HTTPS endpoint.
diff --git a/deps/rabbit/src/rabbit_definitions_import_local_filesystem.erl b/deps/rabbit/src/rabbit_definitions_import_local_filesystem.erl
index bc14ed51f3..bfdab66039 100644
--- a/deps/rabbit/src/rabbit_definitions_import_local_filesystem.erl
+++ b/deps/rabbit/src/rabbit_definitions_import_local_filesystem.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This module is responsible for loading definition from a local filesystem
diff --git a/deps/rabbit/src/rabbit_diagnostics.erl b/deps/rabbit/src/rabbit_diagnostics.erl
index aec88e806c..b262753c60 100644
--- a/deps/rabbit/src/rabbit_diagnostics.erl
+++ b/deps/rabbit/src/rabbit_diagnostics.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_diagnostics).
diff --git a/deps/rabbit/src/rabbit_direct.erl b/deps/rabbit/src/rabbit_direct.erl
index f05daac462..55ab268da5 100644
--- a/deps/rabbit/src/rabbit_direct.erl
+++ b/deps/rabbit/src/rabbit_direct.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_direct).
diff --git a/deps/rabbit/src/rabbit_direct_reply_to.erl b/deps/rabbit/src/rabbit_direct_reply_to.erl
index 42655b1f7a..4e8a6eb19e 100644
--- a/deps/rabbit/src/rabbit_direct_reply_to.erl
+++ b/deps/rabbit/src/rabbit_direct_reply_to.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_direct_reply_to).
diff --git a/deps/rabbit/src/rabbit_disk_monitor.erl b/deps/rabbit/src/rabbit_disk_monitor.erl
index 704248cb36..153b49af27 100644
--- a/deps/rabbit/src/rabbit_disk_monitor.erl
+++ b/deps/rabbit/src/rabbit_disk_monitor.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_disk_monitor).
diff --git a/deps/rabbit/src/rabbit_epmd_monitor.erl b/deps/rabbit/src/rabbit_epmd_monitor.erl
index b61774431f..dee0f39dc5 100644
--- a/deps/rabbit/src/rabbit_epmd_monitor.erl
+++ b/deps/rabbit/src/rabbit_epmd_monitor.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_epmd_monitor).
diff --git a/deps/rabbit/src/rabbit_event_consumer.erl b/deps/rabbit/src/rabbit_event_consumer.erl
index b133c1319b..b591b5c333 100644
--- a/deps/rabbit/src/rabbit_event_consumer.erl
+++ b/deps/rabbit/src/rabbit_event_consumer.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_event_consumer).
diff --git a/deps/rabbit/src/rabbit_exchange.erl b/deps/rabbit/src/rabbit_exchange.erl
index db16b48390..7a60bed68a 100644
--- a/deps/rabbit/src/rabbit_exchange.erl
+++ b/deps/rabbit/src/rabbit_exchange.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange).
diff --git a/deps/rabbit/src/rabbit_exchange_decorator.erl b/deps/rabbit/src/rabbit_exchange_decorator.erl
index 11e5e6aeeb..41867ef91c 100644
--- a/deps/rabbit/src/rabbit_exchange_decorator.erl
+++ b/deps/rabbit/src/rabbit_exchange_decorator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange_decorator).
diff --git a/deps/rabbit/src/rabbit_exchange_parameters.erl b/deps/rabbit/src/rabbit_exchange_parameters.erl
index 30a1592cd7..f17af57719 100644
--- a/deps/rabbit/src/rabbit_exchange_parameters.erl
+++ b/deps/rabbit/src/rabbit_exchange_parameters.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange_parameters).
diff --git a/deps/rabbit/src/rabbit_exchange_type_direct.erl b/deps/rabbit/src/rabbit_exchange_type_direct.erl
index 578ebe85d4..de38454e20 100644
--- a/deps/rabbit/src/rabbit_exchange_type_direct.erl
+++ b/deps/rabbit/src/rabbit_exchange_type_direct.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange_type_direct).
diff --git a/deps/rabbit/src/rabbit_exchange_type_fanout.erl b/deps/rabbit/src/rabbit_exchange_type_fanout.erl
index 2e022136b0..c69657f262 100644
--- a/deps/rabbit/src/rabbit_exchange_type_fanout.erl
+++ b/deps/rabbit/src/rabbit_exchange_type_fanout.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange_type_fanout).
diff --git a/deps/rabbit/src/rabbit_exchange_type_headers.erl b/deps/rabbit/src/rabbit_exchange_type_headers.erl
index 875db370f7..8f23d1deff 100644
--- a/deps/rabbit/src/rabbit_exchange_type_headers.erl
+++ b/deps/rabbit/src/rabbit_exchange_type_headers.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange_type_headers).
diff --git a/deps/rabbit/src/rabbit_exchange_type_invalid.erl b/deps/rabbit/src/rabbit_exchange_type_invalid.erl
index 7330b53e77..93e5e54123 100644
--- a/deps/rabbit/src/rabbit_exchange_type_invalid.erl
+++ b/deps/rabbit/src/rabbit_exchange_type_invalid.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange_type_invalid).
diff --git a/deps/rabbit/src/rabbit_exchange_type_topic.erl b/deps/rabbit/src/rabbit_exchange_type_topic.erl
index e8affd846b..f485685307 100644
--- a/deps/rabbit/src/rabbit_exchange_type_topic.erl
+++ b/deps/rabbit/src/rabbit_exchange_type_topic.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange_type_topic).
diff --git a/deps/rabbit/src/rabbit_feature_flags.erl b/deps/rabbit/src/rabbit_feature_flags.erl
index 1b7206009d..c45351bdf6 100644
--- a/deps/rabbit/src/rabbit_feature_flags.erl
+++ b/deps/rabbit/src/rabbit_feature_flags.erl
@@ -2,11 +2,11 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @author The RabbitMQ team
-%% @copyright 2018-2022 VMware, Inc. or its affiliates.
+%% @copyright 2018-2023 VMware, Inc. or its affiliates.
%%
%% @doc
%% This module offers a framework to declare capabilities a RabbitMQ node
diff --git a/deps/rabbit/src/rabbit_ff_controller.erl b/deps/rabbit/src/rabbit_ff_controller.erl
new file mode 100644
index 0000000000..c315dd34c6
--- /dev/null
+++ b/deps/rabbit/src/rabbit_ff_controller.erl
@@ -0,0 +1,1136 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2021-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+%% @author The RabbitMQ team
+%% @copyright 2023 VMware, Inc. or its affiliates.
+%%
+%% @doc
+%% The feature flag controller is responsible for synchronization and managing
+%% concurrency when feature flag states are changed.
+%%
+%% It makes sure only one node can enable feature flags or synchronize its
+%% feature flag states with other nodes at a time. If another node wants to
+%% enable a feature flag or if it joins a cluster and needs to synchronize its
+%% feature flag states, it will wait for the current task to finish.
+%%
+%% The feature flag controller is used as soon as the `feature_flags_v2'
+%% feature flag is enabled.
+%%
+%% Compared to the initial subsystem, it also introduces a new migration
+%% function signature; See {@link rabbit_feature_flags:migration_fun_v2()}.
+
+-module(rabbit_ff_controller).
+-behaviour(gen_statem).
+
+-include_lib("kernel/include/logger.hrl").
+-include_lib("stdlib/include/assert.hrl").
+
+-include_lib("rabbit_common/include/logging.hrl").
+
+-export([is_supported/1, is_supported/2,
+ enable/1,
+ check_node_compatibility/1,
+ sync_cluster/0,
+ refresh_after_app_load/0]).
+
+%% Internal use only.
+-export([start/0,
+ start_link/0,
+ rpc_call/5,
+ all_nodes/0,
+ running_nodes/0]).
+
+%% gen_statem callbacks.
+-export([callback_mode/0,
+ init/1,
+ terminate/3,
+ code_change/4,
+
+ standing_by/3,
+ waiting_for_end_of_controller_task/3,
+ updating_feature_flag_states/3]).
+
+-record(?MODULE, {from,
+ notify = #{}}).
+
+-define(LOCAL_NAME, ?MODULE).
+-define(GLOBAL_NAME, {?MODULE, global}).
+
+%% Default timeout for operations on remote nodes.
+-define(TIMEOUT, 60000).
+
+start() ->
+ gen_statem:start({local, ?LOCAL_NAME}, ?MODULE, none, []).
+
+start_link() ->
+ gen_statem:start_link({local, ?LOCAL_NAME}, ?MODULE, none, []).
+
+is_supported(FeatureNames) ->
+ is_supported(FeatureNames, ?TIMEOUT).
+
+is_supported(FeatureName, Timeout) when is_atom(FeatureName) ->
+ is_supported([FeatureName], Timeout);
+is_supported(FeatureNames, Timeout) when is_list(FeatureNames) ->
+ Nodes = running_nodes(),
+ case collect_inventory_on_nodes(Nodes, Timeout) of
+ {ok, Inventory} ->
+ lists:all(
+ fun(FeatureName) ->
+ is_known_and_supported(Inventory, FeatureName)
+ end,
+ FeatureNames);
+ _Error ->
+ false
+ end.
+
+enable(FeatureName) when is_atom(FeatureName) ->
+ enable([FeatureName]);
+enable(FeatureNames) when is_list(FeatureNames) ->
+ ?LOG_DEBUG(
+ "Feature flags: REQUEST TO ENABLE: ~tp",
+ [FeatureNames],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ gen_statem:call(?LOCAL_NAME, {enable, FeatureNames}).
+
+check_node_compatibility(RemoteNode) ->
+ ThisNode = node(),
+ ?LOG_DEBUG(
+ "Feature flags: CHECKING COMPATIBILITY between nodes `~ts` and `~ts`",
+ [ThisNode, RemoteNode],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ %% We don't go through the controller process to check nodes compatibility
+ %% because this function is used while `rabbit' is stopped usually.
+ %%
+ %% There is no benefit in starting a controller just for this check
+ %% because it would not guaranty that the compatibility remains true after
+ %% this function finishes and before the node starts and synchronizes
+ %% feature flags.
+ check_node_compatibility_task(ThisNode, RemoteNode).
+
+sync_cluster() ->
+ ?LOG_DEBUG(
+ "Feature flags: SYNCING FEATURE FLAGS in cluster...",
+ [],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ case erlang:whereis(?LOCAL_NAME) of
+ Pid when is_pid(Pid) ->
+ %% The function is called while `rabbit' is running.
+ gen_statem:call(?LOCAL_NAME, sync_cluster);
+ undefined ->
+ %% The function is called while `rabbit' is stopped. We need to
+ %% start a one-off controller, again to make sure concurrent
+ %% changes are blocked.
+ {ok, Pid} = start_link(),
+ Ret = gen_statem:call(Pid, sync_cluster),
+ gen_statem:stop(Pid),
+ Ret
+ end.
+
+refresh_after_app_load() ->
+ ?LOG_DEBUG(
+ "Feature flags: REFRESHING after applications load...",
+ [],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ gen_statem:call(?LOCAL_NAME, refresh_after_app_load).
+
+%% --------------------------------------------------------------------
+%% gen_statem callbacks.
+%% --------------------------------------------------------------------
+
+callback_mode() ->
+ state_functions.
+
+init(_Args) ->
+ {ok, standing_by, none}.
+
+standing_by(
+ {call, From} = EventType, EventContent, none)
+ when EventContent =/= notify_when_done ->
+ ?LOG_DEBUG(
+ "Feature flags: registering controller globally before "
+ "proceeding with task: ~tp",
+ [EventContent],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+
+ %% The first step is to register this process globally (it is already
+ %% registered locally). The purpose is to make sure this one takes full
+ %% control on feature flag changes among other controllers.
+ %%
+ %% This is useful for situations where a new node joins the cluster while
+ %% a feature flag is being enabled. In this case, when that new node joins
+ %% and its controller wants to synchronize feature flags, it will block
+ %% and wait for this one to finish.
+ case register_globally() of
+ yes ->
+ %% We would register the process globally. Therefore we can
+ %% proceed with enabling/syncing feature flags.
+ ?LOG_DEBUG(
+ "Feature flags: controller globally registered; can proceed "
+ "with task",
+ [],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+
+ Data = #?MODULE{from = From},
+ {next_state, updating_feature_flag_states, Data,
+ [{next_event, internal, EventContent}]};
+
+ no ->
+ %% Another controller is globally registered. We ask that global
+ %% controller to notify us when it is done, and we wait for its
+ %% response.
+ ?LOG_DEBUG(
+ "Feature flags: controller NOT globally registered; need to "
+ "wait for the current global controller's task to finish",
+ [],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+
+ RequestId = notify_me_when_done(),
+ {next_state, waiting_for_end_of_controller_task, RequestId,
+ [{next_event, EventType, EventContent}]}
+ end;
+standing_by(
+ {call, From}, notify_when_done, none) ->
+ %% This state is entered when a globally-registered controller finished
+ %% its task but had unhandled `notify_when_done` requests in its inbox. We
+ %% just need to notify the caller that it can proceed.
+ notify_waiting_controller(From),
+ {keep_state_and_data, []}.
+
+waiting_for_end_of_controller_task(
+ {call, _From}, _EventContent, _RequestId) ->
+ {keep_state_and_data, [postpone]};
+waiting_for_end_of_controller_task(
+ info, Msg, RequestId) ->
+ case gen_statem:check_response(Msg, RequestId) of
+ {reply, done} ->
+ ?LOG_DEBUG(
+ "Feature flags: current global controller's task finished; "
+ "trying to take next turn",
+ [],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ {next_state, standing_by, none, []};
+ {error, Reason} ->
+ ?LOG_DEBUG(
+ "Feature flags: error while waiting for current global "
+ "controller's task: ~0p; trying to take next turn",
+ [Reason],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ {next_state, standing_by, none, []};
+ no_reply ->
+ ?LOG_DEBUG(
+ "Feature flags: unknown message while waiting for current "
+ "global controller's task: ~0p; still waiting",
+ [Msg],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ keep_state_and_data
+ end.
+
+updating_feature_flag_states(
+ internal, Task, #?MODULE{from = From} = Data) ->
+ Reply = proceed_with_task(Task),
+
+ ?LOG_DEBUG(
+ "Feature flags: unregistering controller globally",
+ [],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ unregister_globally(),
+ notify_waiting_controllers(Data),
+ {next_state, standing_by, none, [{reply, From, Reply}]};
+updating_feature_flag_states(
+ {call, From}, notify_when_done, #?MODULE{notify = Notify} = Data) ->
+ Notify1 = Notify#{From => true},
+ Data1 = Data#?MODULE{notify = Notify1},
+ {keep_state, Data1}.
+
+proceed_with_task({enable, FeatureNames}) ->
+ enable_task(FeatureNames);
+proceed_with_task(sync_cluster) ->
+ sync_cluster_task();
+proceed_with_task(refresh_after_app_load) ->
+ refresh_after_app_load_task().
+
+terminate(_Reason, _State, _Data) ->
+ ok.
+
+code_change(_OldVsn, OldState, OldData, _Extra) ->
+ {ok, OldState, OldData}.
+
+%% --------------------------------------------------------------------
+%% Global name registration.
+%% --------------------------------------------------------------------
+
+register_globally() ->
+ ?LOG_DEBUG(
+ "Feature flags: [global sync] @ ~ts",
+ [node()],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ ok = rabbit_node_monitor:global_sync(),
+ ?LOG_DEBUG(
+ "Feature flags: [global register] @ ~ts",
+ [node()],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ global:register_name(?GLOBAL_NAME, self()).
+
+unregister_globally() ->
+ ?LOG_DEBUG(
+ "Feature flags: [global unregister] @ ~ts",
+ [node()],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ _ = global:unregister_name(?GLOBAL_NAME),
+ ok.
+
+notify_me_when_done() ->
+ gen_statem:send_request({global, ?GLOBAL_NAME}, notify_when_done).
+
+notify_waiting_controllers(#?MODULE{notify = Notify}) ->
+ maps:fold(
+ fun(From, true, Acc) ->
+ notify_waiting_controller(From),
+ Acc
+ end, ok, Notify).
+
+notify_waiting_controller({ControlerPid, _} = From) ->
+ ControlerNode = node(ControlerPid),
+ ?LOG_DEBUG(
+ "Feature flags: controller's task finished; notify waiting controller "
+ "on node ~tp",
+ [ControlerNode],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ gen_statem:reply(From, done).
+
+%% --------------------------------------------------------------------
+%% Code to check compatibility between nodes.
+%% --------------------------------------------------------------------
+
+-spec check_node_compatibility_task(Node, Node) -> Ret when
+ Node :: node(),
+ Ret :: ok | {error, Reason},
+ Reason :: incompatible_feature_flags.
+
+check_node_compatibility_task(NodeA, NodeB) ->
+ ?LOG_NOTICE(
+ "Feature flags: checking nodes `~ts` and `~ts` compatibility...",
+ [NodeA, NodeB],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ NodesA = list_nodes_clustered_with(NodeA),
+ NodesB = list_nodes_clustered_with(NodeB),
+ AreCompatible = case collect_inventory_on_nodes(NodesA) of
+ {ok, InventoryA} ->
+ ?LOG_DEBUG(
+ "Feature flags: inventory of node `~ts`:~n~tp",
+ [NodeA, InventoryA],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ case collect_inventory_on_nodes(NodesB) of
+ {ok, InventoryB} ->
+ ?LOG_DEBUG(
+ "Feature flags: inventory of node "
+ "`~ts`:~n~tp",
+ [NodeB, InventoryB],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ are_compatible(InventoryA, InventoryB);
+ _ ->
+ false
+ end;
+ _ ->
+ false
+ end,
+ case AreCompatible of
+ true ->
+ ?LOG_NOTICE(
+ "Feature flags: nodes `~ts` and `~ts` are compatible",
+ [NodeA, NodeB],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ ok;
+ false ->
+ ?LOG_WARNING(
+ "Feature flags: nodes `~ts` and `~ts` are incompatible",
+ [NodeA, NodeB],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ {error, incompatible_feature_flags}
+ end.
+
+-spec list_nodes_clustered_with(Node) -> [Node] when
+ Node :: node().
+
+list_nodes_clustered_with(Node) ->
+ %% If Mnesia is stopped on the given node, it will return an empty list.
+ %% In this case, only consider that stopped node.
+ case rpc_call(Node, ?MODULE, running_nodes, [], ?TIMEOUT) of
+ [] -> [Node];
+ List -> List
+ end.
+
+-spec are_compatible(Inventory, Inventory) -> AreCompatible when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ AreCompatible :: boolean().
+
+are_compatible(InventoryA, InventoryB) ->
+ check_one_way_compatibility(InventoryA, InventoryB)
+ andalso
+ check_one_way_compatibility(InventoryB, InventoryA).
+
+-spec check_one_way_compatibility(Inventory, Inventory) -> AreCompatible when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ AreCompatible :: boolean().
+
+check_one_way_compatibility(InventoryA, InventoryB) ->
+ %% This function checks the compatibility in one way, "inventory A" is
+ %% compatible with "inventory B". This is true if all feature flags
+ %% enabled in "inventory B" are supported by "inventory A".
+ %%
+ %% They don't need to be enabled on both side: the feature flags states
+ %% will be synchronized by `sync_cluster()'.
+ FeatureNames = list_feature_flags_enabled_somewhere(InventoryB, true),
+ lists:all(
+ fun(FeatureName) ->
+ #{feature_flags := #{FeatureName := FeatureFlag}} = InventoryB,
+ not is_known(InventoryA, FeatureFlag)
+ orelse
+ is_known_and_supported(InventoryA, FeatureName)
+ end, FeatureNames).
+
+%% --------------------------------------------------------------------
+%% Code to enable and sync feature flags.
+%% --------------------------------------------------------------------
+
+-spec enable_task(FeatureNames) -> Ret when
+ FeatureNames :: [rabbit_feature_flags:feature_name()],
+ Ret :: ok | {error, Reason},
+ Reason :: term().
+
+enable_task(FeatureNames) ->
+ %% We take a snapshot of clustered nodes, including stopped nodes, at the
+ %% beginning of the process and use that list at all time.
+ %%
+ %% If there are some missing, unreachable or stopped nodes, we abort the
+ %% task and refuse to enable the feature flag(s). This is to make sure
+ %% that if there is a network partition, the other side of the partition
+ %% doesn't "rejoin" the cluster with some feature flags enabled behind the
+ %% scene.
+ %%
+ %% TODO: Should we remove the requirement above and call `sync_cluster()'
+ %% when a network partition is repaired?
+ %%
+ %% If a node tries to join the cluster during the task, it will block
+ %% because it will want to synchronize its feature flags state with the
+ %% cluster. For that to happen, this controller `enable' task needs to
+ %% finish before the synchronization task starts.
+ %%
+ %% If a node stops during the task, this will trigger an RPC error at some
+ %% point and the task will abort. That's ok because migration functions
+ %% are supposed to be idempotent.
+ AllNodes = all_nodes(),
+ RunningNodes = running_nodes(),
+ case RunningNodes of
+ AllNodes ->
+ ?LOG_DEBUG(
+ "Feature flags: nodes where the feature flags will be "
+ "enabled: ~tp~n"
+ "Feature flags: new nodes joining the cluster in between "
+ "will wait and synchronize their feature flag states after.",
+ [AllNodes],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+
+ %% Likewise, we take a snapshot of the feature flags states on all
+ %% running nodes right from the beginning. This is what we use
+ %% during the entire task to determine if feature flags are
+ %% supported, enabled somewhere, etc.
+ case collect_inventory_on_nodes(AllNodes) of
+ {ok, Inventory} -> enable_many(Inventory, FeatureNames);
+ Error -> Error
+ end;
+ _ ->
+ ?LOG_ERROR(
+ "Feature flags: refuse to enable feature flags while "
+ "clustered nodes are missing, stopped or unreachable: ~tp",
+ [AllNodes -- RunningNodes]),
+ {error, missing_clustered_nodes}
+ end.
+
+-spec sync_cluster_task() -> Ret when
+ Ret :: ok | {error, Reason},
+ Reason :: term().
+
+sync_cluster_task() ->
+ %% We assume that a feature flag can only be enabled, not disabled.
+ %% Therefore this synchronization searches for feature flags enabled on
+ %% some nodes but not all, and make sure they are enabled everywhere.
+ %%
+ %% This happens when a node joins a cluster and that node has a different
+ %% set of enabled feature flags.
+ %%
+ %% FIXME: `enable_task()' requires that all nodes in the cluster run to
+ %% enable anything. Should we require the same here? On one hand, this
+ %% would make sure a feature flag isn't enabled while there is a network
+ %% partition. On the other hand, this would require that all nodes are
+ %% running before we can expand the cluster...
+ Nodes = running_nodes(),
+ ?LOG_DEBUG(
+ "Feature flags: synchronizing feature flags on nodes: ~tp",
+ [Nodes],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+
+ case collect_inventory_on_nodes(Nodes) of
+ {ok, Inventory} ->
+ FeatureNames = list_feature_flags_enabled_somewhere(
+ Inventory, false),
+ enable_many(Inventory, FeatureNames);
+ Error ->
+ Error
+ end.
+
+-spec refresh_after_app_load_task() -> Ret when
+ Ret :: ok | {error, Reason},
+ Reason :: term().
+
+refresh_after_app_load_task() ->
+ case rabbit_ff_registry_factory:initialize_registry() of
+ ok -> sync_cluster_task();
+ Error -> Error
+ end.
+
+-spec enable_many(Inventory, FeatureNames) -> Ret when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureNames :: [rabbit_feature_flags:feature_name()],
+ Ret :: ok | {error, Reason},
+ Reason :: term().
+
+enable_many(#{states_per_node := _} = Inventory, [FeatureName | Rest]) ->
+ case enable_if_supported(Inventory, FeatureName) of
+ ok -> enable_many(Inventory, Rest);
+ Error -> Error
+ end;
+enable_many(_Inventory, []) ->
+ ok.
+
+-spec enable_if_supported(Inventory, FeatureName) -> Ret when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureName :: rabbit_feature_flags:feature_name(),
+ Ret :: ok | {error, Reason},
+ Reason :: term().
+
+enable_if_supported(#{states_per_node := _} = Inventory, FeatureName) ->
+ case is_known_and_supported(Inventory, FeatureName) of
+ true ->
+ ?LOG_DEBUG(
+ "Feature flags: `~ts`: supported; continuing",
+ [FeatureName],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ case lock_registry_and_enable(Inventory, FeatureName) of
+ {ok, _Inventory} -> ok;
+ Error -> Error
+ end;
+ false ->
+ ?LOG_DEBUG(
+ "Feature flags: `~ts`: unsupported; aborting",
+ [FeatureName],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ {error, unsupported}
+ end.
+
+-spec lock_registry_and_enable(Inventory, FeatureName) -> Ret when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureName :: rabbit_feature_flags:feature_name(),
+ Ret :: {ok, Inventory} | {error, Reason},
+ Reason :: term().
+
+lock_registry_and_enable(#{states_per_node := _} = Inventory, FeatureName) ->
+ %% We acquire a lock before making any change to the registry. This is not
+ %% used by the controller (because it is already using a globally
+ %% registered name to prevent concurrent runs). But this is used in
+ %% `rabbit_feature_flags:is_enabled()' to block while the state is
+ %% `state_changing'.
+ rabbit_ff_registry_factory:acquire_state_change_lock(),
+ Ret = enable_with_registry_locked(Inventory, FeatureName),
+ rabbit_ff_registry_factory:release_state_change_lock(),
+ Ret.
+
+-spec enable_with_registry_locked(Inventory, FeatureName) -> Ret when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureName :: rabbit_feature_flags:feature_name(),
+ Ret :: {ok, Inventory} | {error, Reason},
+ Reason :: term().
+
+enable_with_registry_locked(
+ #{states_per_node := _} = Inventory, FeatureName) ->
+ %% We verify if the feature flag needs to be enabled somewhere. This may
+ %% have changed since the beginning, not because another controller
+ %% enabled it (this is not possible because only one can run at a given
+ %% time), but because this feature flag was already enabled as a
+ %% consequence (for instance, it's a dependency of another feature flag we
+ %% processed).
+ Nodes = list_nodes_where_feature_flag_is_disabled(Inventory, FeatureName),
+ case Nodes of
+ [] ->
+ ?LOG_DEBUG(
+ "Feature flags: `~ts`: already enabled; skipping",
+ [FeatureName],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ {ok, Inventory};
+ _ ->
+ ?LOG_NOTICE(
+ "Feature flags: attempt to enable `~ts`...",
+ [FeatureName],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+
+ case update_feature_state_and_enable(Inventory, FeatureName) of
+ {ok, _Inventory} = Ok ->
+ ?LOG_NOTICE(
+ "Feature flags: `~ts` enabled",
+ [FeatureName],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ Ok;
+ Error ->
+ ?LOG_ERROR(
+ "Feature flags: failed to enable `~ts`: ~tp",
+ [FeatureName, Error],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ Error
+ end
+ end.
+
+-spec update_feature_state_and_enable(Inventory, FeatureName) -> Ret when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureName :: rabbit_feature_flags:feature_name(),
+ Ret :: {ok, Inventory} | {error, Reason},
+ Reason :: term().
+
+update_feature_state_and_enable(
+ #{states_per_node := _} = Inventory, FeatureName) ->
+ %% The feature flag is marked as `state_changing' on all running nodes who
+ %% know it, including those where it's already enabled. The idea is that
+ %% the feature flag is between two states on some nodes and the code
+ %% running on the nodes where the feature flag enabled shouldn't assume
+ %% all nodes in the cluster are in the same situation.
+ Nodes = list_nodes_who_know_the_feature_flag(Inventory, FeatureName),
+
+ %% We only consider nodes where the feature flag is disabled. The
+ %% migration function is only executed on those nodes. I.e. we don't run
+ %% it again where it has already been executed.
+ NodesWhereDisabled = list_nodes_where_feature_flag_is_disabled(
+ Inventory, FeatureName),
+
+ Ret1 = mark_as_enabled_on_nodes(
+ Nodes, Inventory, FeatureName, state_changing),
+ case Ret1 of
+ %% We ignore the returned updated inventory because we don't need or
+ %% even want to remember the `state_changing' state. This is only used
+ %% for external queries of the registry.
+ {ok, _Inventory0} ->
+ case do_enable(Inventory, FeatureName, NodesWhereDisabled) of
+ {ok, Inventory1} ->
+ Ret2 = mark_as_enabled_on_nodes(
+ Nodes, Inventory1, FeatureName, true),
+ case Ret2 of
+ {ok, Inventory2} ->
+ post_enable(
+ Inventory2, FeatureName, NodesWhereDisabled),
+ Ret2;
+ Error ->
+ _ = mark_as_enabled_on_nodes(
+ Nodes, Inventory, FeatureName, false),
+ Error
+ end;
+ Error ->
+ _ = mark_as_enabled_on_nodes(
+ Nodes, Inventory, FeatureName, false),
+ Error
+ end;
+ Error ->
+ _ = mark_as_enabled_on_nodes(
+ Nodes, Inventory, FeatureName, false),
+ Error
+ end.
+
+-spec do_enable(Inventory, FeatureName, Nodes) -> Ret when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureName :: rabbit_feature_flags:feature_name(),
+ Nodes :: [node()],
+ Ret :: {ok, Inventory} | {error, Reason},
+ Reason :: term().
+
+do_enable(#{states_per_node := _} = Inventory, FeatureName, Nodes) ->
+ %% After dependencies are enabled, we need to remember the updated
+ %% inventory. This is useful later to skip feature flags enabled earlier
+ %% in the process. For instance because a feature flag is dependency of
+ %% several other feature flags.
+ case enable_dependencies(Inventory, FeatureName) of
+ {ok, Inventory1} ->
+ Rets = run_callback(Nodes, FeatureName, enable, #{}, infinity),
+ maps:fold(
+ fun
+ (_Node, ok, {ok, _} = Ret) -> Ret;
+ (_Node, Error, {ok, _}) -> Error;
+ (_Node, _, Error) -> Error
+ end, {ok, Inventory1}, Rets);
+ Error ->
+ Error
+ end.
+
+-spec post_enable(Inventory, FeatureName, Nodes) -> Ret when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureName :: rabbit_feature_flags:feature_name(),
+ Nodes :: [node()],
+ Ret :: ok.
+
+post_enable(#{states_per_node := _}, FeatureName, Nodes) ->
+ case rabbit_feature_flags:uses_callbacks(FeatureName) of
+ true ->
+ _ = run_callback(Nodes, FeatureName, post_enable, #{}, infinity),
+ ok;
+ false ->
+ ok
+ end.
+
+%% --------------------------------------------------------------------
+%% Cluster relationship and inventory.
+%% --------------------------------------------------------------------
+
+-ifndef(TEST).
+all_nodes() ->
+ lists:usort([node() | mnesia:system_info(db_nodes)]).
+
+running_nodes() ->
+ lists:usort([node() | mnesia:system_info(running_db_nodes)]).
+-else.
+all_nodes() ->
+ RemoteNodes = case rabbit_feature_flags:get_overriden_nodes() of
+ undefined -> mnesia:system_info(db_nodes);
+ Nodes -> Nodes
+ end,
+ lists:usort([node() | RemoteNodes]).
+
+running_nodes() ->
+ RemoteNodes = case rabbit_feature_flags:get_overriden_running_nodes() of
+ undefined -> mnesia:system_info(running_db_nodes);
+ Nodes -> Nodes
+ end,
+ lists:usort([node() | RemoteNodes]).
+-endif.
+
+collect_inventory_on_nodes(Nodes) ->
+ collect_inventory_on_nodes(Nodes, ?TIMEOUT).
+
+-spec collect_inventory_on_nodes(Nodes, Timeout) -> Ret when
+ Nodes :: [node()],
+ Timeout :: timeout(),
+ Ret :: {ok, Inventory} | {error, Reason},
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ Reason :: term().
+
+collect_inventory_on_nodes(Nodes, Timeout) ->
+ ?LOG_DEBUG(
+ "Feature flags: collecting inventory on nodes: ~tp",
+ [Nodes],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ Inventory0 = #{feature_flags => #{},
+ applications_per_node => #{},
+ states_per_node => #{}},
+ Rets = rpc_calls(Nodes, rabbit_ff_registry, inventory, [], Timeout),
+ maps:fold(
+ fun
+ (Node,
+ #{feature_flags := FeatureFlags1,
+ applications := ScannedApps,
+ states := FeatureStates},
+ {ok, #{feature_flags := FeatureFlags,
+ applications_per_node := ScannedAppsPerNode,
+ states_per_node := StatesPerNode} = Inventory}) ->
+ FeatureFlags2 = maps:merge(FeatureFlags, FeatureFlags1),
+ ScannedAppsPerNode1 = ScannedAppsPerNode#{Node => ScannedApps},
+ StatesPerNode1 = StatesPerNode#{Node => FeatureStates},
+ Inventory1 = Inventory#{
+ feature_flags => FeatureFlags2,
+ applications_per_node => ScannedAppsPerNode1,
+ states_per_node => StatesPerNode1},
+ {ok, Inventory1};
+ (_Node, #{}, Error) ->
+ Error;
+ (_Node, Error, {ok, #{}}) ->
+ Error;
+ (_Node, _Error, Error) ->
+ Error
+ end, {ok, Inventory0}, Rets).
+
+-spec list_feature_flags_enabled_somewhere(Inventory, HandleStateChanging) ->
+ Ret when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ HandleStateChanging :: boolean(),
+ Ret :: [FeatureName],
+ FeatureName :: rabbit_feature_flags:feature_name().
+
+list_feature_flags_enabled_somewhere(
+ #{states_per_node := StatesPerNode},
+ HandleStateChanging) ->
+ %% We want to collect feature flags which are enabled on at least one
+ %% node.
+ MergedStates = maps:fold(
+ fun(_Node, FeatureStates, Acc1) ->
+ maps:fold(
+ fun
+ (FeatureName, true, Acc2) ->
+ Acc2#{FeatureName => true};
+ (_FeatureName, false, Acc2) ->
+ Acc2;
+ (FeatureName, state_changing, Acc2)
+ when HandleStateChanging ->
+ Acc2#{FeatureName => true}
+ end, Acc1, FeatureStates)
+ end, #{}, StatesPerNode),
+ lists:sort(maps:keys(MergedStates)).
+
+-spec list_nodes_who_know_the_feature_flag(Inventory, FeatureName) ->
+ Ret when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureName :: rabbit_feature_flags:feature_name(),
+ Ret :: [node()].
+
+list_nodes_who_know_the_feature_flag(
+ #{states_per_node := StatesPerNode},
+ FeatureName) ->
+ Nodes = lists:sort(
+ maps:keys(
+ maps:filter(
+ fun(_Node, FeatureStates) ->
+ maps:is_key(FeatureName, FeatureStates)
+ end, StatesPerNode))),
+ this_node_first(Nodes).
+
+-spec list_nodes_where_feature_flag_is_disabled(Inventory, FeatureName) ->
+ Ret when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureName :: rabbit_feature_flags:feature_name(),
+ Ret :: [node()].
+
+list_nodes_where_feature_flag_is_disabled(
+ #{states_per_node := StatesPerNode},
+ FeatureName) ->
+ Nodes = lists:sort(
+ maps:keys(
+ maps:filter(
+ fun(_Node, FeatureStates) ->
+ case FeatureStates of
+ %% The feature flag is known on this node, run
+ %% the migration function only if it is
+ %% disabled.
+ #{FeatureName := Enabled} -> not Enabled;
+
+
+ %% The feature flags is unknown on this node,
+ %% don't run the migration function.
+ _ -> false
+ end
+ end, StatesPerNode))),
+ this_node_first(Nodes).
+
+this_node_first(Nodes) ->
+ ThisNode = node(),
+ case lists:member(ThisNode, Nodes) of
+ true -> [ThisNode | Nodes -- [ThisNode]];
+ false -> Nodes
+ end.
+
+-spec rpc_call(Node, Module, Function, Args, Timeout) -> Ret when
+ Node :: node(),
+ Module :: module(),
+ Function :: atom(),
+ Args :: [term()],
+ Timeout :: timeout(),
+ Ret :: term() | {error, term()}.
+
+rpc_call(Node, Module, Function, Args, Timeout) ->
+ case rpc:call(Node, Module, Function, Args, Timeout) of
+ {badrpc, {'EXIT',
+ {undef,
+ [{rabbit_feature_flags, Function, Args, []}
+ | _]}}} ->
+ %% If rabbit_feature_flags:Function() is undefined
+ %% on the remote node, we consider it to be a 3.7.x
+ %% pre-feature-flags node.
+ %%
+ %% Theoretically, it could be an older version (3.6.x and
+ %% older). But the RabbitMQ version consistency check
+ %% (rabbit_misc:version_minor_equivalent/2) called from
+ %% rabbit_mnesia:check_rabbit_consistency/2 already blocked
+ %% this situation from happening before we reach this point.
+ ?LOG_DEBUG(
+ "Feature flags: ~ts:~ts~tp unavailable on node `~ts`: "
+ "assuming it is a RabbitMQ 3.7.x pre-feature-flags node",
+ [Module, Function, Args, Node],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ {error, pre_feature_flags_rabbitmq};
+ {badrpc, Reason} = Error ->
+ ?LOG_ERROR(
+ "Feature flags: error while running:~n"
+ "Feature flags: ~ts:~ts~tp~n"
+ "Feature flags: on node `~ts`:~n"
+ "Feature flags: ~tp",
+ [Module, Function, Args, Node, Reason],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ {error, Error};
+ Ret ->
+ Ret
+ end.
+
+-spec rpc_calls(Nodes, Module, Function, Args, Timeout) -> Rets when
+ Nodes :: [node()],
+ Module :: module(),
+ Function :: atom(),
+ Args :: [term()],
+ Timeout :: timeout(),
+ Rets :: #{node() => term()}.
+
+rpc_calls(Nodes, Module, Function, Args, Timeout) when is_list(Nodes) ->
+ Parent = self(),
+ CallRef = {Module, Function, Args},
+ Runners = [{Node,
+ spawn_monitor(
+ fun() ->
+ Ret = rpc_call(
+ Node, Module, Function, Args, Timeout),
+ Parent ! {internal_rpc_call, Node, CallRef, Ret}
+ end)}
+ || Node <- Nodes],
+ Rets = [receive
+ {internal_rpc_call, Node, CallRef, Ret} ->
+ %% After we got the return value for that node, we still
+ %% need to consume the `DOWN' message emitted once the
+ %% spawn process exited.
+ receive
+ {'DOWN', MRef, process, Pid, Reason} ->
+ ?assertEqual(normal, Reason)
+ end,
+ {Node, Ret};
+ {'DOWN', MRef, process, Pid, Reason} ->
+ {Node, {error, {'DOWN', Reason}}}
+ end
+ || {Node, {Pid, MRef}} <- Runners],
+ maps:from_list(Rets).
+
+%% --------------------------------------------------------------------
+%% Feature flag support queries.
+%% --------------------------------------------------------------------
+
+-spec is_known(Inventory, FeatureFlag) -> IsKnown when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureFlag :: rabbit_feature_flags:feature_props_extended(),
+ IsKnown :: boolean().
+
+is_known(
+ #{applications_per_node := ScannedAppsPerNode},
+ #{provided_by := App} = _FeatureFlag) ->
+ maps:fold(
+ fun
+ (_Node, ScannedApps, false) -> lists:member(App, ScannedApps);
+ (_Node, _ScannedApps, true) -> true
+ end, false, ScannedAppsPerNode).
+
+-spec is_known_and_supported(Inventory, FeatureName) ->
+ IsKnownAndSupported when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureName :: rabbit_feature_flags:feature_name(),
+ IsKnownAndSupported :: boolean().
+
+is_known_and_supported(
+ #{feature_flags := FeatureFlags,
+ applications_per_node := ScannedAppsPerNode,
+ states_per_node := StatesPerNode},
+ FeatureName)
+ when is_map_key(FeatureName, FeatureFlags) ->
+ %% A feature flag is considered supported by a node if:
+ %% - the node knows the feature flag, or
+ %% - the node does not have the application providing it.
+ %%
+ %% Therefore, we first need to look up the application providing this
+ %% feature flag.
+ #{FeatureName := #{provided_by := App}} = FeatureFlags,
+
+ maps:fold(
+ fun
+ (Node, FeatureStates, true) ->
+ case FeatureStates of
+ #{FeatureName := _} ->
+ %% The node knows about the feature flag.
+ true;
+ _ ->
+ %% The node doesn't know about the feature flag, so does
+ %% it have the application providing it loaded?
+ #{Node := ScannedApps} = ScannedAppsPerNode,
+ not lists:member(App, ScannedApps)
+ end;
+ (_Node, _FeatureStates, false) ->
+ false
+ end, true, StatesPerNode);
+is_known_and_supported(_Inventory, _FeatureName) ->
+ %% None of the nodes know about this feature flag at all.
+ false.
+
+%% --------------------------------------------------------------------
+%% Feature flag state changes.
+%% --------------------------------------------------------------------
+
+-spec mark_as_enabled_on_nodes(Nodes, Inventory, FeatureName, IsEnabled) ->
+ Ret when
+ Nodes :: [node()],
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureName :: rabbit_feature_flags:feature_name(),
+ IsEnabled :: rabbit_feature_flags:feature_state(),
+ Ret :: {ok, Inventory} | {error, Reason},
+ Reason :: term().
+
+mark_as_enabled_on_nodes(
+ Nodes,
+ #{states_per_node := StatesPerNode} = Inventory,
+ FeatureName, IsEnabled) ->
+ ?LOG_DEBUG(
+ "Feature flags: `~ts`: mark as enabled=~tp on nodes ~tp",
+ [FeatureName, IsEnabled, Nodes],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ Rets = rpc_calls(
+ Nodes, rabbit_feature_flags, mark_as_enabled_locally,
+ [FeatureName, IsEnabled], ?TIMEOUT),
+ Ret = maps:fold(
+ fun
+ (Node, ok, {ok, StatesPerNode1}) ->
+ FeatureStates1 = maps:get(Node, StatesPerNode1),
+ FeatureStates2 = FeatureStates1#{
+ FeatureName => IsEnabled},
+ StatesPerNode2 = StatesPerNode1#{
+ Node => FeatureStates2},
+ {ok, StatesPerNode2};
+ (_Node, ok, Error) ->
+ Error;
+ (_Node, Error, {ok, _StatesPerNode1}) ->
+ Error;
+ (_Node, _Error, Error) ->
+ Error
+ end, {ok, StatesPerNode}, Rets),
+ case Ret of
+ {ok, StatesPerNode3} ->
+ Inventory1 = Inventory#{states_per_node => StatesPerNode3},
+ {ok, Inventory1};
+ Error ->
+ Error
+ end.
+
+%% --------------------------------------------------------------------
+%% Feature flag dependencies handling.
+%% --------------------------------------------------------------------
+
+-spec enable_dependencies(Inventory, FeatureName) -> Ret when
+ Inventory :: rabbit_feature_flags:cluster_inventory(),
+ FeatureName :: rabbit_feature_flags:feature_name(),
+ Ret :: {ok, Inventory} | {error, Reason},
+ Reason :: term().
+
+enable_dependencies(
+ #{feature_flags := FeatureFlags} = Inventory, FeatureName) ->
+ #{FeatureName := FeatureProps} = FeatureFlags,
+ DependsOn = maps:get(depends_on, FeatureProps, []),
+ case DependsOn of
+ [] ->
+ {ok, Inventory};
+ _ ->
+ ?LOG_DEBUG(
+ "Feature flags: `~ts`: enable dependencies: ~tp",
+ [FeatureName, DependsOn],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ enable_dependencies1(Inventory, DependsOn)
+ end.
+
+enable_dependencies1(
+ #{states_per_node := _} = Inventory, [FeatureName | Rest]) ->
+ case enable_with_registry_locked(Inventory, FeatureName) of
+ {ok, Inventory1} -> enable_dependencies1(Inventory1, Rest);
+ Error -> Error
+ end;
+enable_dependencies1(
+ #{states_per_node := _} = Inventory, []) ->
+ {ok, Inventory}.
+
+%% --------------------------------------------------------------------
+%% Migration function.
+%% --------------------------------------------------------------------
+
+-spec run_callback(Nodes, FeatureName, Command, Extra, Timeout) ->
+ Rets when
+ Nodes :: [node()],
+ FeatureName :: rabbit_feature_flags:feature_name(),
+ Command :: rabbit_feature_flags:callback_name(),
+ Extra :: map(),
+ Timeout :: timeout(),
+ Rets :: #{node() => term()}.
+
+run_callback(Nodes, FeatureName, Command, Extra, Timeout) ->
+ FeatureProps = rabbit_ff_registry:get(FeatureName),
+ Callbacks = maps:get(callbacks, FeatureProps, #{}),
+ case Callbacks of
+ #{Command := {CallbackMod, CallbackFun}}
+ when is_atom(CallbackMod) andalso is_atom(CallbackFun) ->
+ %% The migration fun API v2 is of the form:
+ %% CallbackMod:CallbackFun(...)
+ %%
+ %% Also, the function is executed on all nodes in parallel.
+ Args = Extra#{feature_name => FeatureName,
+ feature_props => FeatureProps,
+ command => Command,
+ nodes => Nodes},
+ do_run_callback(Nodes, CallbackMod, CallbackFun, Args, Timeout);
+ #{Command := Invalid} ->
+ ?LOG_ERROR(
+ "Feature flags: `~ts`: invalid callback for `~ts`: ~tp",
+ [FeatureName, Command, Invalid],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ #{node() =>
+ {error, {invalid_callback, FeatureName, Command, Invalid}}};
+ _ ->
+ %% The migration fun API v1 is of the form:
+ %% MigrationMod:MigrationFun(
+ %% FeatureName, FeatureProps, Command).
+ %%
+ %% Also, the function is executed once on the calling node only.
+ %%
+ %% Only `enable' is supported by the v1 migration function.
+ Ret = case Command of
+ enable ->
+ Ret0 = rabbit_feature_flags:run_migration_fun(
+ FeatureName, FeatureProps, Command),
+ case Ret0 of
+ {error, no_migration_fun} -> ok;
+ _ -> Ret0
+ end;
+ _ ->
+ ok
+ end,
+ #{node() => Ret}
+ end.
+
+-spec do_run_callback(Nodes, CallbackMod, CallbackFun, Args, Timeout) ->
+ Rets when
+ Nodes :: [node()],
+ CallbackMod :: module(),
+ CallbackFun :: atom(),
+ Args :: rabbit_feature_flags:callbacks_args(),
+ Timeout :: timeout(),
+ Rets :: #{node() => rabbit_feature_flags:callbacks_rets()}.
+
+do_run_callback(Nodes, CallbackMod, CallbackFun, Args, Timeout) ->
+ #{feature_name := FeatureName,
+ command := Command} = Args,
+ ?LOG_DEBUG(
+ "Feature flags: `~ts`: run callback ~ts:~ts (~ts callback)~n"
+ "Feature flags: with args = ~tp~n"
+ "Feature flags: on nodes ~tp",
+ [FeatureName, CallbackMod, CallbackFun, Command, Args, Nodes],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ Rets = rpc_calls(Nodes, CallbackMod, CallbackFun, [Args], Timeout),
+ ?LOG_DEBUG(
+ "Feature flags: `~ts`: callback ~ts:~ts (~ts callback) returned:~n"
+ "Feature flags: ~tp",
+ [FeatureName, CallbackMod, CallbackFun, Command, Rets],
+ #{domain => ?RMQLOG_DOMAIN_FEAT_FLAGS}),
+ Rets.
diff --git a/deps/rabbit/src/rabbit_ff_extra.erl b/deps/rabbit/src/rabbit_ff_extra.erl
index cf6db74ceb..bc78f0fd5b 100644
--- a/deps/rabbit/src/rabbit_ff_extra.erl
+++ b/deps/rabbit/src/rabbit_ff_extra.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% @copyright 2018-2022 VMware, Inc. or its affiliates.
+%% @copyright 2018-2023 VMware, Inc. or its affiliates.
%%
%% @doc
%% This module provides extra functions unused by the feature flags
diff --git a/deps/rabbit/src/rabbit_ff_registry.erl b/deps/rabbit/src/rabbit_ff_registry.erl
index dd33e6a23b..83ff6bdb34 100644
--- a/deps/rabbit/src/rabbit_ff_registry.erl
+++ b/deps/rabbit/src/rabbit_ff_registry.erl
@@ -2,11 +2,11 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @author The RabbitMQ team
-%% @copyright 2018-2022 VMware, Inc. or its affiliates.
+%% @copyright 2018-2023 VMware, Inc. or its affiliates.
%%
%% @doc
%% This module exposes the API of the {@link rabbit_feature_flags}
diff --git a/deps/rabbit/src/rabbit_ff_registry_factory.erl b/deps/rabbit/src/rabbit_ff_registry_factory.erl
new file mode 100644
index 0000000000..b1529a2c23
--- /dev/null
+++ b/deps/rabbit/src/rabbit_ff_registry_factory.erl
@@ -0,0 +1,710 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(rabbit_ff_registry_factory).
+
+-include_lib("kernel/include/logger.hrl").
+-include_lib("stdlib/include/assert.hrl").
+
+-export([initialize_registry/0,
+ initialize_registry/1,
+ initialize_registry/3,
+ acquire_state_change_lock/0,
+ release_state_change_lock/0]).
+
+-ifdef(TEST).
+-export([registry_loading_lock/0]).
+-endif.
+
+-define(FF_STATE_CHANGE_LOCK, {feature_flags_state_change, self()}).
+-define(FF_REGISTRY_LOADING_LOCK, {feature_flags_registry_loading, self()}).
+
+-type registry_vsn() :: term().
+
+-spec acquire_state_change_lock() -> boolean().
+acquire_state_change_lock() ->
+ rabbit_log_feature_flags:debug(
+ "Feature flags: acquiring lock ~tp",
+ [?FF_STATE_CHANGE_LOCK]),
+ Ret = global:set_lock(?FF_STATE_CHANGE_LOCK),
+ rabbit_log_feature_flags:debug(
+ "Feature flags: acquired lock ~tp",
+ [?FF_STATE_CHANGE_LOCK]),
+ Ret.
+
+-spec release_state_change_lock() -> true.
+release_state_change_lock() ->
+ rabbit_log_feature_flags:debug(
+ "Feature flags: releasing lock ~tp",
+ [?FF_STATE_CHANGE_LOCK]),
+ global:del_lock(?FF_STATE_CHANGE_LOCK).
+
+-spec initialize_registry() -> ok | {error, any()} | no_return().
+%% @private
+%% @doc
+%% Initializes or reinitializes the registry.
+%%
+%% The registry is an Erlang module recompiled at runtime to hold the
+%% state of all supported feature flags.
+%%
+%% That Erlang module is called {@link rabbit_ff_registry}. The initial
+%% source code of this module simply calls this function so it is
+%% replaced by a proper registry.
+%%
+%% Once replaced, the registry contains the map of all supported feature
+%% flags and their state. This makes it very efficient to query a
+%% feature flag state or property.
+%%
+%% The registry is local to all RabbitMQ nodes.
+
+initialize_registry() ->
+ initialize_registry(#{}).
+
+-spec initialize_registry(rabbit_feature_flags:feature_flags()) ->
+ ok | {error, any()} | no_return().
+%% @private
+%% @doc
+%% Initializes or reinitializes the registry.
+%%
+%% See {@link initialize_registry/0} for a description of the registry.
+%%
+%% This function takes a map of new supported feature flags (so their
+%% name and extended properties) to add to the existing known feature
+%% flags.
+
+initialize_registry(NewSupportedFeatureFlags) ->
+ %% The first step is to get the feature flag states. We start from the
+ %% recorded states on disk (the `feature_flags' file).
+ %%
+ %% If this is the first time we initialize the registry, we use the
+ %% recorded states. If the registry is refreshed, we merged the current
+ %% in-memory states (which should have been recorded on disk already) on
+ %% top of the on-disk states.
+ %%
+ %% This takes care of plugins initialized during node startup. A plugin's
+ %% feature flags might have been enabled in a previous instance of the
+ %% RabbitMQ node. Their state will be recorded on disk, but the in-memory
+ %% registry (loaded earlier during startup⁾ doesn't have their state
+ %% because the feature flags were not known at that time. That's why the
+ %% on-disk states are read every time.
+
+ AlreadyEnabledFeatureNames =
+ rabbit_feature_flags:read_enabled_feature_flags_list(),
+ FeatureStates0 =
+ rabbit_feature_flags:enabled_feature_flags_to_feature_states(
+ AlreadyEnabledFeatureNames),
+
+ RegistryInitialized = rabbit_ff_registry:is_registry_initialized(),
+ FeatureStates = case RegistryInitialized of
+ true ->
+ CurrentFeatureStates = rabbit_ff_registry:states(),
+ maps:merge(FeatureStates0, CurrentFeatureStates);
+ false ->
+ FeatureStates0
+ end,
+
+ %% We also record if the feature flags state was correctly written
+ %% to disk. Currently we don't use this information, but in the
+ %% future, we might want to retry the write if it failed so far.
+ %%
+ %% TODO: Retry to write the feature flags state if the first try
+ %% failed.
+ WrittenToDisk = case RegistryInitialized of
+ true ->
+ rabbit_ff_registry:is_registry_written_to_disk();
+ false ->
+ true
+ end,
+ initialize_registry(NewSupportedFeatureFlags,
+ FeatureStates,
+ WrittenToDisk).
+
+-spec initialize_registry(rabbit_feature_flags:feature_flags(),
+ rabbit_feature_flags:feature_states(),
+ boolean()) ->
+ ok | {error, any()} | no_return().
+%% @private
+%% @doc
+%% Initializes or reinitializes the registry.
+%%
+%% See {@link initialize_registry/0} for a description of the registry.
+%%
+%% This function takes a map of new supported feature flags (so their
+%% name and extended properties) to add to the existing known feature
+%% flags, a map of the new feature flag states (whether they are
+%% enabled, disabled or `state_changing'), and a flag to indicate if the
+%% feature flag states was recorded to disk.
+%%
+%% The latter is used to block callers asking if a feature flag is
+%% enabled or disabled while its state is changing.
+
+initialize_registry(NewSupportedFeatureFlags,
+ NewFeatureStates,
+ WrittenToDisk) ->
+ try
+ Ret = maybe_initialize_registry(NewSupportedFeatureFlags,
+ NewFeatureStates,
+ WrittenToDisk),
+ case Ret of
+ ok -> ok;
+ restart -> initialize_registry(NewSupportedFeatureFlags,
+ NewFeatureStates,
+ WrittenToDisk);
+ Error1 -> Error1
+ end
+ catch
+ throw:{error, _} = Error2 ->
+ Error2
+ end.
+
+-spec maybe_initialize_registry(rabbit_feature_flags:feature_flags(),
+ rabbit_feature_flags:feature_states(),
+ boolean()) ->
+ ok | restart | {error, any()} | no_return().
+
+maybe_initialize_registry(NewSupportedFeatureFlags,
+ NewFeatureStates,
+ WrittenToDisk) ->
+ %% We save the version of the current registry before computing
+ %% the new one. This is used when we do the actual reload: if the
+ %% current registry was reloaded in the meantime, we need to restart
+ %% the computation to make sure we don't loose data.
+ RegistryVsn = registry_vsn(),
+
+ %% We take the feature flags already registered.
+ RegistryInitialized = rabbit_ff_registry:is_registry_initialized(),
+ KnownFeatureFlags1 = case RegistryInitialized of
+ true -> rabbit_ff_registry:list(all);
+ false -> #{}
+ end,
+
+ %% Query the list (it's a map to be exact) of known
+ %% supported feature flags. That list comes from the
+ %% `-rabbitmq_feature_flag().` module attributes exposed by all
+ %% currently loaded Erlang modules.
+ {ScannedApps, KnownFeatureFlags2} =
+ rabbit_feature_flags:query_supported_feature_flags(),
+
+ %% We merge the feature flags we already knew about
+ %% (KnownFeatureFlags1), those found in the loaded applications
+ %% (KnownFeatureFlags2) and those specified in arguments
+ %% (NewSupportedFeatureFlags). The latter come from remote nodes
+ %% usually: for example, they can come from plugins loaded on remote
+ %% node but the plugins are missing locally. In this case, we
+ %% consider those feature flags supported because there is no code
+ %% locally which would cause issues.
+ %%
+ %% It means that the list of feature flags only grows. we don't try
+ %% to clean it at some point because we want to remember about the
+ %% feature flags we saw (and their state). It should be fine because
+ %% that list should remain small.
+ KnownFeatureFlags = maps:merge(KnownFeatureFlags1,
+ KnownFeatureFlags2),
+ AllFeatureFlags = maps:merge(KnownFeatureFlags,
+ NewSupportedFeatureFlags),
+
+ %% Next we want to update the feature states, based on the new
+ %% states passed as arguments.
+ %%
+ %% At the same time, we pay attention to required feature flags. Those
+ %% are feature flags which must be enabled. The compatibility and
+ %% migration code behind them is gone at that point. We distinguish two
+ %% situations:
+ %% 1. The node starts for the very first time (the
+ %% `enabled_feature_flags' file does not exist). In this case, the
+ %% required feature flags are marked as enabled right away.
+ %% 2. This is a node restart (the file exists), and thus possibly an
+ %% upgrade. This time, if required feature flags are not enabled, we
+ %% return an error (and RabbitMQ start will abort). RabbitMQ won't be
+ %% able to work, especially if the feature flag needed some
+ %% migration, because the corresponding code was removed.
+ NewNode =
+ not rabbit_feature_flags:does_enabled_feature_flags_list_file_exist(),
+ FeatureStates0 = case RegistryInitialized of
+ true ->
+ maps:merge(rabbit_ff_registry:states(),
+ NewFeatureStates);
+ false ->
+ NewFeatureStates
+ end,
+ FeatureStates = maps:map(
+ fun(FeatureName, FeatureProps) ->
+ Stability = maps:get(
+ stability, FeatureProps, stable),
+ State = case FeatureStates0 of
+ #{FeatureName := FeatureState} ->
+ FeatureState;
+ _ ->
+ false
+ end,
+ case Stability of
+ required when State =:= true ->
+ %% The required feature flag is already
+ %% enabled, we keep it this way.
+ State;
+ required when NewNode ->
+ %% This is the very first time the node
+ %% starts, we already mark the required
+ %% feature flag as enabled.
+ ?assertNotEqual(state_changing, State),
+ true;
+ required ->
+ %% This is not a new node and the
+ %% required feature flag is disabled.
+ %% This is an error and RabbitMQ must be
+ %% downgraded to enable the feature
+ %% flag.
+ ?assertNotEqual(state_changing, State),
+ rabbit_log_feature_flags:error(
+ "Feature flags: `~ts`: required "
+ "feature flag not enabled! It must "
+ "be enabled before upgrading "
+ "RabbitMQ.",
+ [FeatureName]),
+ throw({error,
+ {disabled_required_feature_flag,
+ FeatureName}});
+ _ ->
+ State
+ end
+ end, AllFeatureFlags),
+
+ %% The feature flags inventory is used by rabbit_ff_controller to query
+ %% feature flags atomically. The inventory also contains the list of
+ %% scanned applications: this is used to determine if an application is
+ %% known by this node or not, and decide if a missing feature flag is
+ %% unknown or unsupported.
+ Inventory = #{applications => ScannedApps,
+ feature_flags => KnownFeatureFlags2,
+ states => FeatureStates},
+
+ Proceed = does_registry_need_refresh(AllFeatureFlags,
+ FeatureStates,
+ WrittenToDisk),
+
+ case Proceed of
+ true ->
+ rabbit_log_feature_flags:debug(
+ "Feature flags: (re)initialize registry (~tp)",
+ [self()]),
+ T0 = erlang:timestamp(),
+ Ret = do_initialize_registry(RegistryVsn,
+ AllFeatureFlags,
+ FeatureStates,
+ Inventory,
+ WrittenToDisk),
+ T1 = erlang:timestamp(),
+ rabbit_log_feature_flags:debug(
+ "Feature flags: time to regen registry: ~tp us",
+ [timer:now_diff(T1, T0)]),
+ Ret;
+ false ->
+ rabbit_log_feature_flags:debug(
+ "Feature flags: registry already up-to-date, skipping init"),
+ ok
+ end.
+
+-spec does_registry_need_refresh(rabbit_feature_flags:feature_flags(),
+ rabbit_feature_flags:feature_states(),
+ boolean()) ->
+ boolean().
+
+does_registry_need_refresh(AllFeatureFlags,
+ FeatureStates,
+ WrittenToDisk) ->
+ case rabbit_ff_registry:is_registry_initialized() of
+ true ->
+ %% Before proceeding with the actual
+ %% (re)initialization, let's see if there are any
+ %% changes.
+ CurrentAllFeatureFlags = rabbit_ff_registry:list(all),
+ CurrentFeatureStates = rabbit_ff_registry:states(),
+ CurrentWrittenToDisk =
+ rabbit_ff_registry:is_registry_written_to_disk(),
+
+ if
+ AllFeatureFlags =/= CurrentAllFeatureFlags ->
+ rabbit_log_feature_flags:debug(
+ "Feature flags: registry refresh needed: "
+ "yes, list of feature flags differs"),
+ true;
+ FeatureStates =/= CurrentFeatureStates ->
+ rabbit_log_feature_flags:debug(
+ "Feature flags: registry refresh needed: "
+ "yes, feature flag states differ"),
+ true;
+ WrittenToDisk =/= CurrentWrittenToDisk ->
+ rabbit_log_feature_flags:debug(
+ "Feature flags: registry refresh needed: "
+ "yes, \"written to disk\" state changed"),
+ true;
+ true ->
+ rabbit_log_feature_flags:debug(
+ "Feature flags: registry refresh needed: no"),
+ false
+ end;
+ false ->
+ rabbit_log_feature_flags:debug(
+ "Feature flags: registry refresh needed: "
+ "yes, first-time initialization"),
+ true
+ end.
+
+-spec do_initialize_registry(registry_vsn(),
+ rabbit_feature_flags:feature_flags(),
+ rabbit_feature_flags:feature_states(),
+ rabbit_feature_flags:inventory(),
+ boolean()) ->
+ ok | restart | {error, any()} | no_return().
+%% @private
+
+do_initialize_registry(RegistryVsn,
+ AllFeatureFlags,
+ FeatureStates,
+ #{applications := ScannedApps} = Inventory,
+ WrittenToDisk) ->
+ %% We log the state of those feature flags.
+ rabbit_log_feature_flags:debug(
+ "Feature flags: list of feature flags found:~n" ++
+ lists:flatten(
+ [rabbit_misc:format(
+ "Feature flags: [~ts] ~ts~n",
+ [case maps:get(FeatureName, FeatureStates, false) of
+ true -> "x";
+ state_changing -> "~~";
+ false -> " "
+ end,
+ FeatureName])
+ || FeatureName <- lists:sort(maps:keys(AllFeatureFlags))] ++
+ [rabbit_misc:format(
+ "Feature flags: scanned applications: ~tp~n"
+ "Feature flags: feature flag states written to disk: ~ts",
+ [ScannedApps,
+ case WrittenToDisk of
+ true -> "yes";
+ false -> "no"
+ end])])
+ ),
+
+ %% We request the registry to be regenerated and reloaded with the
+ %% new state.
+ regen_registry_mod(RegistryVsn,
+ AllFeatureFlags,
+ FeatureStates,
+ Inventory,
+ WrittenToDisk).
+
+-spec regen_registry_mod(
+ RegistryVsn, AllFeatureFlags, FeatureStates, Inventory,
+ WrittenToDisk) -> Ret when
+ RegistryVsn :: registry_vsn(),
+ AllFeatureFlags :: rabbit_feature_flags:feature_flags(),
+ FeatureStates :: rabbit_feature_flags:feature_states(),
+ Inventory :: rabbit_feature_flags:inventory(),
+ WrittenToDisk :: boolean(),
+ Ret :: ok | restart | {error, any()} | no_return().
+%% @private
+
+regen_registry_mod(RegistryVsn,
+ AllFeatureFlags,
+ FeatureStates,
+ Inventory,
+ WrittenToDisk) ->
+ %% Here, we recreate the source code of the `rabbit_ff_registry`
+ %% module from scratch.
+ %%
+ %% IMPORTANT: We want both modules to have the exact same public
+ %% API in order to simplify the life of developers and their tools
+ %% (Dialyzer, completion, and so on).
+
+ %% -module(rabbit_ff_registry).
+ ModuleAttr = erl_syntax:attribute(
+ erl_syntax:atom(module),
+ [erl_syntax:atom(rabbit_ff_registry)]),
+ ModuleForm = erl_syntax:revert(ModuleAttr),
+ %% -export([...]).
+ ExportAttr = erl_syntax:attribute(
+ erl_syntax:atom(export),
+ [erl_syntax:list(
+ [erl_syntax:arity_qualifier(
+ erl_syntax:atom(F),
+ erl_syntax:integer(A))
+ || {F, A} <- [{get, 1},
+ {list, 1},
+ {states, 0},
+ {is_supported, 1},
+ {is_enabled, 1},
+ {is_registry_initialized, 0},
+ {is_registry_written_to_disk, 0},
+ {inventory, 0}]]
+ )
+ ]
+ ),
+ ExportForm = erl_syntax:revert(ExportAttr),
+ %% get(_) -> ...
+ GetClauses = [erl_syntax:clause(
+ [erl_syntax:atom(FeatureName)],
+ [],
+ [erl_syntax:abstract(maps:get(FeatureName,
+ AllFeatureFlags))])
+ || FeatureName <- maps:keys(AllFeatureFlags)
+ ],
+ GetUnknownClause = erl_syntax:clause(
+ [erl_syntax:variable("_")],
+ [],
+ [erl_syntax:atom(undefined)]),
+ GetFun = erl_syntax:function(
+ erl_syntax:atom(get),
+ GetClauses ++ [GetUnknownClause]),
+ GetFunForm = erl_syntax:revert(GetFun),
+ %% list(_) -> ...
+ ListAllBody = erl_syntax:abstract(AllFeatureFlags),
+ ListAllClause = erl_syntax:clause([erl_syntax:atom(all)],
+ [],
+ [ListAllBody]),
+ EnabledFeatureFlags = maps:filter(
+ fun(FeatureName, _) ->
+ maps:is_key(FeatureName,
+ FeatureStates)
+ andalso
+ maps:get(FeatureName, FeatureStates)
+ =:=
+ true
+ end, AllFeatureFlags),
+ ListEnabledBody = erl_syntax:abstract(EnabledFeatureFlags),
+ ListEnabledClause = erl_syntax:clause(
+ [erl_syntax:atom(enabled)],
+ [],
+ [ListEnabledBody]),
+ DisabledFeatureFlags = maps:filter(
+ fun(FeatureName, _) ->
+ not maps:is_key(FeatureName,
+ FeatureStates)
+ orelse
+ maps:get(FeatureName, FeatureStates)
+ =:=
+ false
+ end, AllFeatureFlags),
+ ListDisabledBody = erl_syntax:abstract(DisabledFeatureFlags),
+ ListDisabledClause = erl_syntax:clause(
+ [erl_syntax:atom(disabled)],
+ [],
+ [ListDisabledBody]),
+ StateChangingFeatureFlags = maps:filter(
+ fun(FeatureName, _) ->
+ maps:is_key(FeatureName,
+ FeatureStates)
+ andalso
+ maps:get(FeatureName, FeatureStates)
+ =:=
+ state_changing
+ end, AllFeatureFlags),
+ ListStateChangingBody = erl_syntax:abstract(StateChangingFeatureFlags),
+ ListStateChangingClause = erl_syntax:clause(
+ [erl_syntax:atom(state_changing)],
+ [],
+ [ListStateChangingBody]),
+ ListFun = erl_syntax:function(
+ erl_syntax:atom(list),
+ [ListAllClause,
+ ListEnabledClause,
+ ListDisabledClause,
+ ListStateChangingClause]),
+ ListFunForm = erl_syntax:revert(ListFun),
+ %% states() -> ...
+ StatesBody = erl_syntax:abstract(FeatureStates),
+ StatesClause = erl_syntax:clause([], [], [StatesBody]),
+ StatesFun = erl_syntax:function(
+ erl_syntax:atom(states),
+ [StatesClause]),
+ StatesFunForm = erl_syntax:revert(StatesFun),
+ %% is_supported(_) -> ...
+ IsSupportedClauses = [erl_syntax:clause(
+ [erl_syntax:atom(FeatureName)],
+ [],
+ [erl_syntax:atom(true)])
+ || FeatureName <- maps:keys(AllFeatureFlags)
+ ],
+ NotSupportedClause = erl_syntax:clause(
+ [erl_syntax:variable("_")],
+ [],
+ [erl_syntax:atom(false)]),
+ IsSupportedFun = erl_syntax:function(
+ erl_syntax:atom(is_supported),
+ IsSupportedClauses ++ [NotSupportedClause]),
+ IsSupportedFunForm = erl_syntax:revert(IsSupportedFun),
+ %% is_enabled(_) -> ...
+ IsEnabledClauses = [erl_syntax:clause(
+ [erl_syntax:atom(FeatureName)],
+ [],
+ [case maps:is_key(FeatureName, FeatureStates) of
+ true ->
+ erl_syntax:atom(
+ maps:get(FeatureName, FeatureStates));
+ false ->
+ erl_syntax:atom(false)
+ end])
+ || FeatureName <- maps:keys(AllFeatureFlags)
+ ],
+ NotEnabledClause = erl_syntax:clause(
+ [erl_syntax:variable("_")],
+ [],
+ [erl_syntax:atom(false)]),
+ IsEnabledFun = erl_syntax:function(
+ erl_syntax:atom(is_enabled),
+ IsEnabledClauses ++ [NotEnabledClause]),
+ IsEnabledFunForm = erl_syntax:revert(IsEnabledFun),
+ %% is_registry_initialized() -> ...
+ IsInitializedClauses = [erl_syntax:clause(
+ [],
+ [],
+ [erl_syntax:atom(true)])
+ ],
+ IsInitializedFun = erl_syntax:function(
+ erl_syntax:atom(is_registry_initialized),
+ IsInitializedClauses),
+ IsInitializedFunForm = erl_syntax:revert(IsInitializedFun),
+ %% is_registry_written_to_disk() -> ...
+ IsWrittenToDiskClauses = [erl_syntax:clause(
+ [],
+ [],
+ [erl_syntax:atom(WrittenToDisk)])
+ ],
+ IsWrittenToDiskFun = erl_syntax:function(
+ erl_syntax:atom(is_registry_written_to_disk),
+ IsWrittenToDiskClauses),
+ IsWrittenToDiskFunForm = erl_syntax:revert(IsWrittenToDiskFun),
+ %% inventory() -> ...
+ InventoryBody = erl_syntax:abstract(Inventory),
+ InventoryClause = erl_syntax:clause([], [], [InventoryBody]),
+ InventoryFun = erl_syntax:function(
+ erl_syntax:atom(inventory),
+ [InventoryClause]),
+ InventoryFunForm = erl_syntax:revert(InventoryFun),
+ %% Compilation!
+ Forms = [ModuleForm,
+ ExportForm,
+ GetFunForm,
+ ListFunForm,
+ StatesFunForm,
+ IsSupportedFunForm,
+ IsEnabledFunForm,
+ IsInitializedFunForm,
+ IsWrittenToDiskFunForm,
+ InventoryFunForm],
+ maybe_log_registry_source_code(Forms),
+ CompileOpts = [return_errors,
+ return_warnings],
+ case compile:forms(Forms, CompileOpts) of
+ {ok, Mod, Bin, _} ->
+ load_registry_mod(RegistryVsn, Mod, Bin);
+ {error, Errors, Warnings} ->
+ rabbit_log_feature_flags:error(
+ "Feature flags: registry compilation failure:~n"
+ "Errors: ~tp~n"
+ "Warnings: ~tp",
+ [Errors, Warnings]),
+ {error, {compilation_failure, Errors, Warnings}};
+ error ->
+ rabbit_log_feature_flags:error(
+ "Feature flags: registry compilation failure",
+ []),
+ {error, {compilation_failure, [], []}}
+ end.
+
+maybe_log_registry_source_code(Forms) ->
+ case rabbit_prelaunch:get_context() of
+ #{log_feature_flags_registry := true} ->
+ rabbit_log_feature_flags:debug(
+ "== FEATURE FLAGS REGISTRY ==~n"
+ "~ts~n"
+ "== END ==~n",
+ [erl_prettypr:format(erl_syntax:form_list(Forms))]),
+ ok;
+ _ ->
+ ok
+ end.
+
+-ifdef(TEST).
+registry_loading_lock() -> ?FF_REGISTRY_LOADING_LOCK.
+-endif.
+
+-spec load_registry_mod(registry_vsn(), module(), binary()) ->
+ ok | restart | no_return().
+%% @private
+
+load_registry_mod(RegistryVsn, Mod, Bin) ->
+ rabbit_log_feature_flags:debug(
+ "Feature flags: registry module ready, loading it (~tp)...",
+ [self()]),
+ FakeFilename = "Compiled and loaded by " ?MODULE_STRING,
+ %% Time to load the new registry, replacing the old one. We use a
+ %% lock here to synchronize concurrent reloads.
+ global:set_lock(?FF_REGISTRY_LOADING_LOCK, [node()]),
+ rabbit_log_feature_flags:debug(
+ "Feature flags: acquired lock before reloading registry module (~tp)",
+ [self()]),
+ %% We want to make sure that the old registry (not the one being
+ %% currently in use) is purged by the code server. It means no
+ %% process lingers on that old code.
+ %%
+ %% We use code:soft_purge() for that (meaning no process is killed)
+ %% and we wait in an infinite loop for that to succeed.
+ ok = purge_old_registry(Mod),
+ %% Now we can replace the currently loaded registry by the new one.
+ %% The code server takes care of marking the current registry as old
+ %% and load the new module in an atomic operation.
+ %%
+ %% Therefore there is no chance of a window where there is no
+ %% registry module available, causing the one on disk to be
+ %% reloaded.
+ Ret = case registry_vsn() of
+ RegistryVsn -> code:load_binary(Mod, FakeFilename, Bin);
+ OtherVsn -> {error, {restart, RegistryVsn, OtherVsn}}
+ end,
+ rabbit_log_feature_flags:debug(
+ "Feature flags: releasing lock after reloading registry module (~tp)",
+ [self()]),
+ global:del_lock(?FF_REGISTRY_LOADING_LOCK, [node()]),
+ case Ret of
+ {module, _} ->
+ rabbit_log_feature_flags:debug(
+ "Feature flags: registry module loaded (vsn: ~tp -> ~tp)",
+ [RegistryVsn, registry_vsn()]),
+ ok;
+ {error, {restart, Expected, Current}} ->
+ rabbit_log_feature_flags:error(
+ "Feature flags: another registry module was loaded in the "
+ "meantime (expected old vsn: ~tp, current vsn: ~tp); "
+ "restarting the regen",
+ [Expected, Current]),
+ restart;
+ {error, Reason} ->
+ rabbit_log_feature_flags:error(
+ "Feature flags: failed to load registry module: ~tp",
+ [Reason]),
+ throw({feature_flag_registry_reload_failure, Reason})
+ end.
+
+-spec registry_vsn() -> registry_vsn().
+%% @private
+
+registry_vsn() ->
+ Attrs = rabbit_ff_registry:module_info(attributes),
+ proplists:get_value(vsn, Attrs, undefined).
+
+purge_old_registry(Mod) ->
+ case code:is_loaded(Mod) of
+ {file, _} -> do_purge_old_registry(Mod);
+ false -> ok
+ end.
+
+do_purge_old_registry(Mod) ->
+ case code:soft_purge(Mod) of
+ true -> ok;
+ false -> do_purge_old_registry(Mod)
+ end.
diff --git a/deps/rabbit/src/rabbit_fhc_helpers.erl b/deps/rabbit/src/rabbit_fhc_helpers.erl
index 77342622d0..9bc2bf05ef 100644
--- a/deps/rabbit/src/rabbit_fhc_helpers.erl
+++ b/deps/rabbit/src/rabbit_fhc_helpers.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_fhc_helpers).
diff --git a/deps/rabbit/src/rabbit_fifo.erl b/deps/rabbit/src/rabbit_fifo.erl
index 94901323ca..f42ba411a7 100644
--- a/deps/rabbit/src/rabbit_fifo.erl
+++ b/deps/rabbit/src/rabbit_fifo.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%% before post gc 1M msg: 203MB, after recovery + gc: 203MB
diff --git a/deps/rabbit/src/rabbit_fifo.hrl b/deps/rabbit/src/rabbit_fifo.hrl
index 7c0b7a2009..f92138e2e9 100644
--- a/deps/rabbit/src/rabbit_fifo.hrl
+++ b/deps/rabbit/src/rabbit_fifo.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%% macros for memory optimised tuple structures
%% [A|B] saves 1 byte compared to {A,B}
diff --git a/deps/rabbit/src/rabbit_fifo_client.erl b/deps/rabbit/src/rabbit_fifo_client.erl
index 8fd8577aad..d813d0de60 100644
--- a/deps/rabbit/src/rabbit_fifo_client.erl
+++ b/deps/rabbit/src/rabbit_fifo_client.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @doc Provides an easy to consume API for interacting with the {@link rabbit_fifo.}
diff --git a/deps/rabbit/src/rabbit_fifo_dlx.erl b/deps/rabbit/src/rabbit_fifo_dlx.erl
index 0671f1382c..46402b5f4c 100644
--- a/deps/rabbit/src/rabbit_fifo_dlx.erl
+++ b/deps/rabbit/src/rabbit_fifo_dlx.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(rabbit_fifo_dlx).
diff --git a/deps/rabbit/src/rabbit_fifo_dlx.hrl b/deps/rabbit/src/rabbit_fifo_dlx.hrl
index 43d8d360df..9346782573 100644
--- a/deps/rabbit/src/rabbit_fifo_dlx.hrl
+++ b/deps/rabbit/src/rabbit_fifo_dlx.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-record(dlx_consumer,
{pid :: pid(),
diff --git a/deps/rabbit/src/rabbit_fifo_dlx_client.erl b/deps/rabbit/src/rabbit_fifo_dlx_client.erl
index 32ea672158..00e9427606 100644
--- a/deps/rabbit/src/rabbit_fifo_dlx_client.erl
+++ b/deps/rabbit/src/rabbit_fifo_dlx_client.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(rabbit_fifo_dlx_client).
diff --git a/deps/rabbit/src/rabbit_fifo_dlx_sup.erl b/deps/rabbit/src/rabbit_fifo_dlx_sup.erl
index 7df83b7098..f72040f8f2 100644
--- a/deps/rabbit/src/rabbit_fifo_dlx_sup.erl
+++ b/deps/rabbit/src/rabbit_fifo_dlx_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(rabbit_fifo_dlx_sup).
diff --git a/deps/rabbit/src/rabbit_fifo_dlx_worker.erl b/deps/rabbit/src/rabbit_fifo_dlx_worker.erl
index 414a0e628e..99be9a916a 100644
--- a/deps/rabbit/src/rabbit_fifo_dlx_worker.erl
+++ b/deps/rabbit/src/rabbit_fifo_dlx_worker.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%% One rabbit_fifo_dlx_worker process exists per (source) quorum queue that has at-least-once dead lettering
%% enabled. The rabbit_fifo_dlx_worker process is co-located on the quorum queue leader node.
diff --git a/deps/rabbit/src/rabbit_fifo_v0.erl b/deps/rabbit/src/rabbit_fifo_v0.erl
index 8cc9fc8cca..f398a47a0a 100644
--- a/deps/rabbit/src/rabbit_fifo_v0.erl
+++ b/deps/rabbit/src/rabbit_fifo_v0.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_fifo_v0).
diff --git a/deps/rabbit/src/rabbit_fifo_v1.erl b/deps/rabbit/src/rabbit_fifo_v1.erl
index 4e4e91d76a..3f25ca19b8 100644
--- a/deps/rabbit/src/rabbit_fifo_v1.erl
+++ b/deps/rabbit/src/rabbit_fifo_v1.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_fifo_v1).
diff --git a/deps/rabbit/src/rabbit_file.erl b/deps/rabbit/src/rabbit_file.erl
index 50d4caa982..4d10dd888b 100644
--- a/deps/rabbit/src/rabbit_file.erl
+++ b/deps/rabbit/src/rabbit_file.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_file).
diff --git a/deps/rabbit/src/rabbit_framing.erl b/deps/rabbit/src/rabbit_framing.erl
index f4518eb6e7..e0f638e618 100644
--- a/deps/rabbit/src/rabbit_framing.erl
+++ b/deps/rabbit/src/rabbit_framing.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% TODO auto-generate
diff --git a/deps/rabbit/src/rabbit_global_counters.erl b/deps/rabbit/src/rabbit_global_counters.erl
index 6787556fe5..7855ba5b5a 100644
--- a/deps/rabbit/src/rabbit_global_counters.erl
+++ b/deps/rabbit/src/rabbit_global_counters.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_global_counters).
diff --git a/deps/rabbit/src/rabbit_guid.erl b/deps/rabbit/src/rabbit_guid.erl
index 8bcae2d478..f895cd7b70 100644
--- a/deps/rabbit/src/rabbit_guid.erl
+++ b/deps/rabbit/src/rabbit_guid.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_guid).
diff --git a/deps/rabbit/src/rabbit_health_check.erl b/deps/rabbit/src/rabbit_health_check.erl
index e3499c447f..00fd8815be 100644
--- a/deps/rabbit/src/rabbit_health_check.erl
+++ b/deps/rabbit/src/rabbit_health_check.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_health_check).
diff --git a/deps/rabbit/src/rabbit_limiter.erl b/deps/rabbit/src/rabbit_limiter.erl
index 5170fd99a8..d9e0c90d49 100644
--- a/deps/rabbit/src/rabbit_limiter.erl
+++ b/deps/rabbit/src/rabbit_limiter.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% The purpose of the limiter is to stem the flow of messages from
diff --git a/deps/rabbit/src/rabbit_log_tail.erl b/deps/rabbit/src/rabbit_log_tail.erl
index d2f6572979..0265617285 100644
--- a/deps/rabbit/src/rabbit_log_tail.erl
+++ b/deps/rabbit/src/rabbit_log_tail.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_log_tail).
diff --git a/deps/rabbit/src/rabbit_looking_glass.erl b/deps/rabbit/src/rabbit_looking_glass.erl
index 64ce32f6c6..0b758ba58f 100644
--- a/deps/rabbit/src/rabbit_looking_glass.erl
+++ b/deps/rabbit/src/rabbit_looking_glass.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_looking_glass).
diff --git a/deps/rabbit/src/rabbit_maintenance.erl b/deps/rabbit/src/rabbit_maintenance.erl
index e2dc086aed..a33ca8534d 100644
--- a/deps/rabbit/src/rabbit_maintenance.erl
+++ b/deps/rabbit/src/rabbit_maintenance.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_maintenance).
@@ -156,12 +156,12 @@ do_revive() ->
rabbit_event:notify(maintenance_revived, #{}),
ok.
-
+
-spec mark_as_being_drained() -> boolean().
mark_as_being_drained() ->
rabbit_log:debug("Marking the node as undergoing maintenance"),
set_maintenance_status_status(?DRAINING_STATUS).
-
+
-spec unmark_as_being_drained() -> boolean().
unmark_as_being_drained() ->
rabbit_log:debug("Unmarking the node as undergoing maintenance"),
@@ -188,8 +188,8 @@ set_maintenance_status_status(Status) ->
{atomic, ok} -> true;
_ -> false
end.
-
-
+
+
-spec is_being_drained_local_read(node()) -> boolean().
is_being_drained_local_read(Node) ->
Status = status_local_read(Node),
@@ -208,7 +208,7 @@ status_local_read(Node) ->
Status;
_ -> ?DEFAULT_STATUS
end.
-
+
-spec status_consistent_read(node()) -> maintenance_status().
status_consistent_read(Node) ->
case mnesia:transaction(fun() -> mnesia:read(?TABLE, Node) end) of
@@ -218,15 +218,15 @@ status_consistent_read(Node) ->
{atomic, _} -> ?DEFAULT_STATUS;
{aborted, _Reason} -> ?DEFAULT_STATUS
end.
-
+
-spec filter_out_drained_nodes_local_read([node()]) -> [node()].
filter_out_drained_nodes_local_read(Nodes) ->
lists:filter(fun(N) -> not is_being_drained_local_read(N) end, Nodes).
-
+
-spec filter_out_drained_nodes_consistent_read([node()]) -> [node()].
filter_out_drained_nodes_consistent_read(Nodes) ->
lists:filter(fun(N) -> not is_being_drained_consistent_read(N) end, Nodes).
-
+
-spec suspend_all_client_listeners() -> rabbit_types:ok_or_error(any()).
%% Pauses all listeners on the current node except for
%% Erlang distribution (clustering and CLI tools).
@@ -386,7 +386,7 @@ revive_local_quorum_queue_replicas() ->
end
end || Q <- Queues],
rabbit_log:info("Restart of local quorum queue replicas is complete").
-
+
%%
%% Implementation
%%
@@ -398,11 +398,11 @@ local_listener_fold_fun(Fun) ->
(_, Acc) ->
Acc
end.
-
+
ok_or_first_error(ok, Acc) ->
Acc;
ok_or_first_error({error, _} = Err, _Acc) ->
Err.
-
+
readable_candidate_list(Nodes) ->
string:join(lists:map(fun rabbit_data_coercion:to_list/1, Nodes), ", ").
diff --git a/deps/rabbit/src/rabbit_memory_monitor.erl b/deps/rabbit/src/rabbit_memory_monitor.erl
index c257f16782..683b07ea54 100644
--- a/deps/rabbit/src/rabbit_memory_monitor.erl
+++ b/deps/rabbit/src/rabbit_memory_monitor.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
diff --git a/deps/rabbit/src/rabbit_metrics.erl b/deps/rabbit/src/rabbit_metrics.erl
index daa49f67ea..fad6c159ab 100644
--- a/deps/rabbit/src/rabbit_metrics.erl
+++ b/deps/rabbit/src/rabbit_metrics.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_metrics).
diff --git a/deps/rabbit/src/rabbit_mirror_queue_coordinator.erl b/deps/rabbit/src/rabbit_mirror_queue_coordinator.erl
index dd1dc4d843..1dd7cfeaa9 100644
--- a/deps/rabbit/src/rabbit_mirror_queue_coordinator.erl
+++ b/deps/rabbit/src/rabbit_mirror_queue_coordinator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mirror_queue_coordinator).
diff --git a/deps/rabbit/src/rabbit_mirror_queue_master.erl b/deps/rabbit/src/rabbit_mirror_queue_master.erl
index bf26eb8dea..f38360dbee 100644
--- a/deps/rabbit/src/rabbit_mirror_queue_master.erl
+++ b/deps/rabbit/src/rabbit_mirror_queue_master.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mirror_queue_master).
diff --git a/deps/rabbit/src/rabbit_mirror_queue_misc.erl b/deps/rabbit/src/rabbit_mirror_queue_misc.erl
index 1357c9beed..72b99e6270 100644
--- a/deps/rabbit/src/rabbit_mirror_queue_misc.erl
+++ b/deps/rabbit/src/rabbit_mirror_queue_misc.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mirror_queue_misc).
diff --git a/deps/rabbit/src/rabbit_mirror_queue_mode.erl b/deps/rabbit/src/rabbit_mirror_queue_mode.erl
index 46aad6bf88..5b62c58adc 100644
--- a/deps/rabbit/src/rabbit_mirror_queue_mode.erl
+++ b/deps/rabbit/src/rabbit_mirror_queue_mode.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mirror_queue_mode).
diff --git a/deps/rabbit/src/rabbit_mirror_queue_mode_all.erl b/deps/rabbit/src/rabbit_mirror_queue_mode_all.erl
index dbba0d2f33..190a6edd6a 100644
--- a/deps/rabbit/src/rabbit_mirror_queue_mode_all.erl
+++ b/deps/rabbit/src/rabbit_mirror_queue_mode_all.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mirror_queue_mode_all).
diff --git a/deps/rabbit/src/rabbit_mirror_queue_mode_exactly.erl b/deps/rabbit/src/rabbit_mirror_queue_mode_exactly.erl
index c5901ddc3b..e08580a805 100644
--- a/deps/rabbit/src/rabbit_mirror_queue_mode_exactly.erl
+++ b/deps/rabbit/src/rabbit_mirror_queue_mode_exactly.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mirror_queue_mode_exactly).
diff --git a/deps/rabbit/src/rabbit_mirror_queue_mode_nodes.erl b/deps/rabbit/src/rabbit_mirror_queue_mode_nodes.erl
index 169d55ba1d..10b57e552b 100644
--- a/deps/rabbit/src/rabbit_mirror_queue_mode_nodes.erl
+++ b/deps/rabbit/src/rabbit_mirror_queue_mode_nodes.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mirror_queue_mode_nodes).
diff --git a/deps/rabbit/src/rabbit_mirror_queue_slave.erl b/deps/rabbit/src/rabbit_mirror_queue_slave.erl
index d9f70229a5..573b3761d3 100644
--- a/deps/rabbit/src/rabbit_mirror_queue_slave.erl
+++ b/deps/rabbit/src/rabbit_mirror_queue_slave.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mirror_queue_slave).
diff --git a/deps/rabbit/src/rabbit_mirror_queue_sync.erl b/deps/rabbit/src/rabbit_mirror_queue_sync.erl
index e3e6139c19..cbef4b1a30 100644
--- a/deps/rabbit/src/rabbit_mirror_queue_sync.erl
+++ b/deps/rabbit/src/rabbit_mirror_queue_sync.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mirror_queue_sync).
diff --git a/deps/rabbit/src/rabbit_mnesia.erl b/deps/rabbit/src/rabbit_mnesia.erl
index 464f9e526b..1d28f3ead6 100644
--- a/deps/rabbit/src/rabbit_mnesia.erl
+++ b/deps/rabbit/src/rabbit_mnesia.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mnesia).
diff --git a/deps/rabbit/src/rabbit_mnesia_rename.erl b/deps/rabbit/src/rabbit_mnesia_rename.erl
index 9c1f708b8d..5cb339a81f 100644
--- a/deps/rabbit/src/rabbit_mnesia_rename.erl
+++ b/deps/rabbit/src/rabbit_mnesia_rename.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mnesia_rename).
diff --git a/deps/rabbit/src/rabbit_msg_file.erl b/deps/rabbit/src/rabbit_msg_file.erl
index 8b3a48c5bc..58554494ce 100644
--- a/deps/rabbit/src/rabbit_msg_file.erl
+++ b/deps/rabbit/src/rabbit_msg_file.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_msg_file).
diff --git a/deps/rabbit/src/rabbit_msg_store.erl b/deps/rabbit/src/rabbit_msg_store.erl
index 6229566c64..dc1c08da31 100644
--- a/deps/rabbit/src/rabbit_msg_store.erl
+++ b/deps/rabbit/src/rabbit_msg_store.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_msg_store).
diff --git a/deps/rabbit/src/rabbit_msg_store_ets_index.erl b/deps/rabbit/src/rabbit_msg_store_ets_index.erl
index 7b26b0ae3a..1358660633 100644
--- a/deps/rabbit/src/rabbit_msg_store_ets_index.erl
+++ b/deps/rabbit/src/rabbit_msg_store_ets_index.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_msg_store_ets_index).
diff --git a/deps/rabbit/src/rabbit_msg_store_gc.erl b/deps/rabbit/src/rabbit_msg_store_gc.erl
index f771bacbcb..f9c250670e 100644
--- a/deps/rabbit/src/rabbit_msg_store_gc.erl
+++ b/deps/rabbit/src/rabbit_msg_store_gc.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_msg_store_gc).
diff --git a/deps/rabbit/src/rabbit_networking.erl b/deps/rabbit/src/rabbit_networking.erl
index 157f223326..728e9ae775 100644
--- a/deps/rabbit/src/rabbit_networking.erl
+++ b/deps/rabbit/src/rabbit_networking.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_networking).
diff --git a/deps/rabbit/src/rabbit_networking_store.erl b/deps/rabbit/src/rabbit_networking_store.erl
new file mode 100644
index 0000000000..b7b96a61d9
--- /dev/null
+++ b/deps/rabbit/src/rabbit_networking_store.erl
@@ -0,0 +1,46 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+-module(rabbit_networking_store).
+
+-behaviour(gen_server).
+
+%% API
+-export([start_link/0]).
+
+%% gen_server callbacks
+-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
+ terminate/2, code_change/3, format_status/2]).
+
+-define(SERVER, ?MODULE).
+
+-record(state, {}).
+
+start_link() ->
+ gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
+
+init([]) ->
+ rabbit_networking:ensure_listener_table_for_this_node(),
+ {ok, #state{}}.
+
+handle_call(_Request, _From, State) ->
+ Reply = ok,
+ {reply, Reply, State}.
+
+handle_cast(_Request, State) ->
+ {noreply, State}.
+
+handle_info(_Info, State) ->
+ {noreply, State}.
+
+terminate(_Reason, _State) ->
+ ok.
+
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+format_status(_Opt, Status) ->
+ Status.
diff --git a/deps/rabbit/src/rabbit_node_monitor.erl b/deps/rabbit/src/rabbit_node_monitor.erl
index fc35d6e897..4d73fd2d9f 100644
--- a/deps/rabbit/src/rabbit_node_monitor.erl
+++ b/deps/rabbit/src/rabbit_node_monitor.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_node_monitor).
diff --git a/deps/rabbit/src/rabbit_nodes.erl b/deps/rabbit/src/rabbit_nodes.erl
index f8430ebe8c..305e96a661 100644
--- a/deps/rabbit/src/rabbit_nodes.erl
+++ b/deps/rabbit/src/rabbit_nodes.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_nodes).
diff --git a/deps/rabbit/src/rabbit_osiris_metrics.erl b/deps/rabbit/src/rabbit_osiris_metrics.erl
index a24635c5d2..c877bd30d8 100644
--- a/deps/rabbit/src/rabbit_osiris_metrics.erl
+++ b/deps/rabbit/src/rabbit_osiris_metrics.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_osiris_metrics).
diff --git a/deps/rabbit/src/rabbit_parameter_validation.erl b/deps/rabbit/src/rabbit_parameter_validation.erl
index 9958ff8f5a..32df7558ef 100644
--- a/deps/rabbit/src/rabbit_parameter_validation.erl
+++ b/deps/rabbit/src/rabbit_parameter_validation.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_parameter_validation).
diff --git a/deps/rabbit/src/rabbit_password.erl b/deps/rabbit/src/rabbit_password.erl
index 1674db7cac..7ebebbb318 100644
--- a/deps/rabbit/src/rabbit_password.erl
+++ b/deps/rabbit/src/rabbit_password.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_password).
diff --git a/deps/rabbit/src/rabbit_password_hashing_md5.erl b/deps/rabbit/src/rabbit_password_hashing_md5.erl
index a6923de2ae..1ee6e2ffe4 100644
--- a/deps/rabbit/src/rabbit_password_hashing_md5.erl
+++ b/deps/rabbit/src/rabbit_password_hashing_md5.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% Legacy hashing implementation, only used as a last resort when
diff --git a/deps/rabbit/src/rabbit_password_hashing_sha256.erl b/deps/rabbit/src/rabbit_password_hashing_sha256.erl
index de6bc1cf48..e8314abda1 100644
--- a/deps/rabbit/src/rabbit_password_hashing_sha256.erl
+++ b/deps/rabbit/src/rabbit_password_hashing_sha256.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_password_hashing_sha256).
diff --git a/deps/rabbit/src/rabbit_password_hashing_sha512.erl b/deps/rabbit/src/rabbit_password_hashing_sha512.erl
index 9215670fac..a4f794a814 100644
--- a/deps/rabbit/src/rabbit_password_hashing_sha512.erl
+++ b/deps/rabbit/src/rabbit_password_hashing_sha512.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_password_hashing_sha512).
diff --git a/deps/rabbit/src/rabbit_peer_discovery.erl b/deps/rabbit/src/rabbit_peer_discovery.erl
index f30d84b2b7..6f3b6d21ae 100644
--- a/deps/rabbit/src/rabbit_peer_discovery.erl
+++ b/deps/rabbit/src/rabbit_peer_discovery.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery).
diff --git a/deps/rabbit/src/rabbit_peer_discovery_classic_config.erl b/deps/rabbit/src/rabbit_peer_discovery_classic_config.erl
index c2faafc9b1..210dfbe3e8 100644
--- a/deps/rabbit/src/rabbit_peer_discovery_classic_config.erl
+++ b/deps/rabbit/src/rabbit_peer_discovery_classic_config.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_classic_config).
diff --git a/deps/rabbit/src/rabbit_peer_discovery_dns.erl b/deps/rabbit/src/rabbit_peer_discovery_dns.erl
index 4c4ff52916..8110d1de21 100644
--- a/deps/rabbit/src/rabbit_peer_discovery_dns.erl
+++ b/deps/rabbit/src/rabbit_peer_discovery_dns.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_dns).
diff --git a/deps/rabbit/src/rabbit_plugins.erl b/deps/rabbit/src/rabbit_plugins.erl
index 950bbfccbb..2b6b4185bb 100644
--- a/deps/rabbit/src/rabbit_plugins.erl
+++ b/deps/rabbit/src/rabbit_plugins.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_plugins).
diff --git a/deps/rabbit/src/rabbit_policies.erl b/deps/rabbit/src/rabbit_policies.erl
index 35379a582d..967f9f58c3 100644
--- a/deps/rabbit/src/rabbit_policies.erl
+++ b/deps/rabbit/src/rabbit_policies.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_policies).
diff --git a/deps/rabbit/src/rabbit_policy.erl b/deps/rabbit/src/rabbit_policy.erl
index c74420d0bb..600a075052 100644
--- a/deps/rabbit/src/rabbit_policy.erl
+++ b/deps/rabbit/src/rabbit_policy.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_policy).
diff --git a/deps/rabbit/src/rabbit_policy_merge_strategy.erl b/deps/rabbit/src/rabbit_policy_merge_strategy.erl
index 1a487bf160..21bb1f7598 100644
--- a/deps/rabbit/src/rabbit_policy_merge_strategy.erl
+++ b/deps/rabbit/src/rabbit_policy_merge_strategy.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_policy_merge_strategy).
diff --git a/deps/rabbit/src/rabbit_prelaunch_enabled_plugins_file.erl b/deps/rabbit/src/rabbit_prelaunch_enabled_plugins_file.erl
index 6c8e7ebf64..e55a28e4a7 100644
--- a/deps/rabbit/src/rabbit_prelaunch_enabled_plugins_file.erl
+++ b/deps/rabbit/src/rabbit_prelaunch_enabled_plugins_file.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_prelaunch_enabled_plugins_file).
diff --git a/deps/rabbit/src/rabbit_prelaunch_feature_flags.erl b/deps/rabbit/src/rabbit_prelaunch_feature_flags.erl
index 51040ad75c..cf41a3495e 100644
--- a/deps/rabbit/src/rabbit_prelaunch_feature_flags.erl
+++ b/deps/rabbit/src/rabbit_prelaunch_feature_flags.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_prelaunch_feature_flags).
diff --git a/deps/rabbit/src/rabbit_prelaunch_logging.erl b/deps/rabbit/src/rabbit_prelaunch_logging.erl
index 544e5416a9..d7ef1685b6 100644
--- a/deps/rabbit/src/rabbit_prelaunch_logging.erl
+++ b/deps/rabbit/src/rabbit_prelaunch_logging.erl
@@ -2,11 +2,11 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @author The RabbitMQ team
-%% @copyright 2019-2022 VMware, Inc. or its affiliates.
+%% @copyright 2019-2023 VMware, Inc. or its affiliates.
%%
%% @doc
%% This module manages the configuration of the Erlang Logger facility. In
@@ -570,10 +570,10 @@ get_log_app_env() ->
extract_file_rotation_spec(Defaults) ->
Spec = lists:filter(fun(Elem) ->
case Elem of
- {rotate_on_date, _} -> true;
- {compress_on_rotate, _} -> true;
- {max_no_bytes, _} -> true;
- {max_no_files, _} -> true;
+ {rotate_on_date, _} -> true;
+ {compress_on_rotate, _} -> true;
+ {max_no_bytes, _} -> true;
+ {max_no_files, _} -> true;
_ -> false
end
end, Defaults),
diff --git a/deps/rabbit/src/rabbit_prequeue.erl b/deps/rabbit/src/rabbit_prequeue.erl
index e518e2fe66..5a613a6e94 100644
--- a/deps/rabbit/src/rabbit_prequeue.erl
+++ b/deps/rabbit/src/rabbit_prequeue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_prequeue).
diff --git a/deps/rabbit/src/rabbit_priority_queue.erl b/deps/rabbit/src/rabbit_priority_queue.erl
index be2310d174..9a92de4641 100644
--- a/deps/rabbit/src/rabbit_priority_queue.erl
+++ b/deps/rabbit/src/rabbit_priority_queue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2015-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2015-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_priority_queue).
diff --git a/deps/rabbit/src/rabbit_queue_consumers.erl b/deps/rabbit/src/rabbit_queue_consumers.erl
index 457a27969a..19c5341b80 100644
--- a/deps/rabbit/src/rabbit_queue_consumers.erl
+++ b/deps/rabbit/src/rabbit_queue_consumers.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_consumers).
diff --git a/deps/rabbit/src/rabbit_queue_decorator.erl b/deps/rabbit/src/rabbit_queue_decorator.erl
index 42c4b6c693..4073f5a1be 100644
--- a/deps/rabbit/src/rabbit_queue_decorator.erl
+++ b/deps/rabbit/src/rabbit_queue_decorator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_decorator).
diff --git a/deps/rabbit/src/rabbit_queue_index.erl b/deps/rabbit/src/rabbit_queue_index.erl
index c743cc3b0c..1aa6990586 100644
--- a/deps/rabbit/src/rabbit_queue_index.erl
+++ b/deps/rabbit/src/rabbit_queue_index.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_index).
diff --git a/deps/rabbit/src/rabbit_queue_location.erl b/deps/rabbit/src/rabbit_queue_location.erl
index f7c803eac5..7befca9341 100644
--- a/deps/rabbit/src/rabbit_queue_location.erl
+++ b/deps/rabbit/src/rabbit_queue_location.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_location).
diff --git a/deps/rabbit/src/rabbit_queue_location_client_local.erl b/deps/rabbit/src/rabbit_queue_location_client_local.erl
index 07cfaa6319..d380ce0ec5 100644
--- a/deps/rabbit/src/rabbit_queue_location_client_local.erl
+++ b/deps/rabbit/src/rabbit_queue_location_client_local.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_location_client_local).
diff --git a/deps/rabbit/src/rabbit_queue_location_min_masters.erl b/deps/rabbit/src/rabbit_queue_location_min_masters.erl
index 24509fbce9..a821914a29 100644
--- a/deps/rabbit/src/rabbit_queue_location_min_masters.erl
+++ b/deps/rabbit/src/rabbit_queue_location_min_masters.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_location_min_masters).
diff --git a/deps/rabbit/src/rabbit_queue_location_random.erl b/deps/rabbit/src/rabbit_queue_location_random.erl
index 21d7ed89b5..fd9499cc33 100644
--- a/deps/rabbit/src/rabbit_queue_location_random.erl
+++ b/deps/rabbit/src/rabbit_queue_location_random.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_location_random).
diff --git a/deps/rabbit/src/rabbit_queue_location_validator.erl b/deps/rabbit/src/rabbit_queue_location_validator.erl
index 910a512b64..b7126bb5bb 100644
--- a/deps/rabbit/src/rabbit_queue_location_validator.erl
+++ b/deps/rabbit/src/rabbit_queue_location_validator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_location_validator).
diff --git a/deps/rabbit/src/rabbit_queue_master_location_misc.erl b/deps/rabbit/src/rabbit_queue_master_location_misc.erl
index 7032fca687..9ac4787a2f 100644
--- a/deps/rabbit/src/rabbit_queue_master_location_misc.erl
+++ b/deps/rabbit/src/rabbit_queue_master_location_misc.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_master_location_misc).
diff --git a/deps/rabbit/src/rabbit_queue_master_locator.erl b/deps/rabbit/src/rabbit_queue_master_locator.erl
index b2a9958850..cb948e7e97 100644
--- a/deps/rabbit/src/rabbit_queue_master_locator.erl
+++ b/deps/rabbit/src/rabbit_queue_master_locator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_master_locator).
diff --git a/deps/rabbit/src/rabbit_queue_type.erl b/deps/rabbit/src/rabbit_queue_type.erl
index 73482e9af4..a10a408a1a 100644
--- a/deps/rabbit/src/rabbit_queue_type.erl
+++ b/deps/rabbit/src/rabbit_queue_type.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_type).
diff --git a/deps/rabbit/src/rabbit_queue_type_util.erl b/deps/rabbit/src/rabbit_queue_type_util.erl
index d640d95eb1..0157382017 100644
--- a/deps/rabbit/src/rabbit_queue_type_util.erl
+++ b/deps/rabbit/src/rabbit_queue_type_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_type_util).
diff --git a/deps/rabbit/src/rabbit_quorum_memory_manager.erl b/deps/rabbit/src/rabbit_quorum_memory_manager.erl
index 995753febf..61a85c59bf 100644
--- a/deps/rabbit/src/rabbit_quorum_memory_manager.erl
+++ b/deps/rabbit/src/rabbit_quorum_memory_manager.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_quorum_memory_manager).
diff --git a/deps/rabbit/src/rabbit_quorum_queue.erl b/deps/rabbit/src/rabbit_quorum_queue.erl
index 28aee909fa..71b2966389 100644
--- a/deps/rabbit/src/rabbit_quorum_queue.erl
+++ b/deps/rabbit/src/rabbit_quorum_queue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_quorum_queue).
@@ -160,7 +160,7 @@ handle_event({From, Evt}, QState) ->
rabbit_fifo_client:handle_ra_event(From, Evt, QState).
-spec declare(amqqueue:amqqueue(), node()) ->
- {new | existing, amqqueue:amqqueue()} |
+ {new | existing, amqqueue:amqqueue()} |
{protocol_error, Type :: atom(), Reason :: string(), Args :: term()}.
declare(Q, _Node) when ?amqqueue_is_quorum(Q) ->
case rabbit_queue_type_util:run_checks(
diff --git a/deps/rabbit/src/rabbit_ra_registry.erl b/deps/rabbit/src/rabbit_ra_registry.erl
index e528edf588..19e6944e5d 100644
--- a/deps/rabbit/src/rabbit_ra_registry.erl
+++ b/deps/rabbit/src/rabbit_ra_registry.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ra_registry).
diff --git a/deps/rabbit/src/rabbit_reader.erl b/deps/rabbit/src/rabbit_reader.erl
index 71730e0559..256a92d144 100644
--- a/deps/rabbit/src/rabbit_reader.erl
+++ b/deps/rabbit/src/rabbit_reader.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_reader).
diff --git a/deps/rabbit/src/rabbit_recovery_terms.erl b/deps/rabbit/src/rabbit_recovery_terms.erl
index 358a668150..75a81f971a 100644
--- a/deps/rabbit/src/rabbit_recovery_terms.erl
+++ b/deps/rabbit/src/rabbit_recovery_terms.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% We use a gen_server simply so that during the terminate/2 call
diff --git a/deps/rabbit/src/rabbit_release_series.erl b/deps/rabbit/src/rabbit_release_series.erl
index 9b8adf046d..20ab366848 100644
--- a/deps/rabbit/src/rabbit_release_series.erl
+++ b/deps/rabbit/src/rabbit_release_series.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_release_series).
diff --git a/deps/rabbit/src/rabbit_restartable_sup.erl b/deps/rabbit/src/rabbit_restartable_sup.erl
index 7a4cb0ed98..551ea3051d 100644
--- a/deps/rabbit/src/rabbit_restartable_sup.erl
+++ b/deps/rabbit/src/rabbit_restartable_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_restartable_sup).
diff --git a/deps/rabbit/src/rabbit_router.erl b/deps/rabbit/src/rabbit_router.erl
index 19541b5f55..4552082aa1 100644
--- a/deps/rabbit/src/rabbit_router.erl
+++ b/deps/rabbit/src/rabbit_router.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_router).
diff --git a/deps/rabbit/src/rabbit_runtime_parameters.erl b/deps/rabbit/src/rabbit_runtime_parameters.erl
index c539176df5..cd9809028b 100644
--- a/deps/rabbit/src/rabbit_runtime_parameters.erl
+++ b/deps/rabbit/src/rabbit_runtime_parameters.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_runtime_parameters).
diff --git a/deps/rabbit/src/rabbit_ssl.erl b/deps/rabbit/src/rabbit_ssl.erl
index 95de8f7acf..8b7e72e551 100644
--- a/deps/rabbit/src/rabbit_ssl.erl
+++ b/deps/rabbit/src/rabbit_ssl.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ssl).
diff --git a/deps/rabbit/src/rabbit_stream_coordinator.erl b/deps/rabbit/src/rabbit_stream_coordinator.erl
index 726644f14f..fddfb406e3 100644
--- a/deps/rabbit/src/rabbit_stream_coordinator.erl
+++ b/deps/rabbit/src/rabbit_stream_coordinator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_coordinator).
diff --git a/deps/rabbit/src/rabbit_stream_queue.erl b/deps/rabbit/src/rabbit_stream_queue.erl
index bcbd592789..1610385d60 100644
--- a/deps/rabbit/src/rabbit_stream_queue.erl
+++ b/deps/rabbit/src/rabbit_stream_queue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_queue).
diff --git a/deps/rabbit/src/rabbit_stream_sac_coordinator.erl b/deps/rabbit/src/rabbit_stream_sac_coordinator.erl
new file mode 100644
index 0000000000..0131dcc4ac
--- /dev/null
+++ b/deps/rabbit/src/rabbit_stream_sac_coordinator.erl
@@ -0,0 +1,770 @@
+%% The contents of this file are subject to the Mozilla Public License
+%% Version 2.0 (the "License"); you may not use this file except in
+%% compliance with the License. You may obtain a copy of the License
+%% at https://www.mozilla.org/en-US/MPL/2.0/
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and
+%% limitations under the License.
+%%
+%% The Original Code is RabbitMQ.
+%%
+%% The Initial Developer of the Original Code is Pivotal Software, Inc.
+%% Copyright (c) 2021-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(rabbit_stream_sac_coordinator).
+
+-include("rabbit_stream_sac_coordinator.hrl").
+
+-opaque command() ::
+ #command_register_consumer{} | #command_unregister_consumer{} |
+ #command_activate_consumer{}.
+-opaque state() :: #?MODULE{}.
+
+-export_type([state/0,
+ command/0]).
+
+%% Single Active Consumer API
+-export([register_consumer/7,
+ unregister_consumer/5,
+ activate_consumer/3,
+ consumer_groups/2,
+ group_consumers/4]).
+-export([apply/2,
+ init_state/0,
+ send_message/2,
+ ensure_monitors/4,
+ handle_connection_down/2,
+ consumer_groups/3,
+ group_consumers/5,
+ is_ff_enabled/0,
+ overview/1]).
+
+%% Single Active Consumer API
+-spec register_consumer(binary(),
+ binary(),
+ integer(),
+ binary(),
+ pid(),
+ binary(),
+ integer()) ->
+ {ok, boolean()} | {error, feature_flag_disabled} |
+ {error, term()}.
+register_consumer(VirtualHost,
+ Stream,
+ PartitionIndex,
+ ConsumerName,
+ ConnectionPid,
+ Owner,
+ SubscriptionId) ->
+ maybe_sac_execute(fun() ->
+ process_command({sac,
+ #command_register_consumer{vhost =
+ VirtualHost,
+ stream =
+ Stream,
+ partition_index
+ =
+ PartitionIndex,
+ consumer_name
+ =
+ ConsumerName,
+ connection_pid
+ =
+ ConnectionPid,
+ owner =
+ Owner,
+ subscription_id
+ =
+ SubscriptionId}})
+ end).
+
+-spec unregister_consumer(binary(),
+ binary(),
+ binary(),
+ pid(),
+ integer()) ->
+ ok | {error, feature_flag_disabled} |
+ {error, term()}.
+unregister_consumer(VirtualHost,
+ Stream,
+ ConsumerName,
+ ConnectionPid,
+ SubscriptionId) ->
+ maybe_sac_execute(fun() ->
+ process_command({sac,
+ #command_unregister_consumer{vhost =
+ VirtualHost,
+ stream =
+ Stream,
+ consumer_name
+ =
+ ConsumerName,
+ connection_pid
+ =
+ ConnectionPid,
+ subscription_id
+ =
+ SubscriptionId}})
+ end).
+
+-spec activate_consumer(binary(), binary(), binary()) ->
+ ok | {error, feature_flag_disabled}.
+activate_consumer(VirtualHost, Stream, ConsumerName) ->
+ maybe_sac_execute(fun() ->
+ process_command({sac,
+ #command_activate_consumer{vhost =
+ VirtualHost,
+ stream =
+ Stream,
+ consumer_name
+ =
+ ConsumerName}})
+ end).
+
+process_command(Cmd) ->
+ case rabbit_stream_coordinator:process_command(Cmd) of
+ {ok, Res, _} ->
+ Res;
+ {error, _} = Err ->
+ rabbit_log:warning("SAC coordinator command ~tp returned error ~tp",
+ [Cmd, Err]),
+ Err
+ end.
+
+%% return the current groups for a given virtual host
+-spec consumer_groups(binary(), [atom()]) ->
+ {ok,
+ [term()] | {error, feature_flag_disabled | atom()}}.
+consumer_groups(VirtualHost, InfoKeys) ->
+ maybe_sac_execute(fun() ->
+ case ra:local_query({rabbit_stream_coordinator,
+ node()},
+ fun(State) ->
+ SacState =
+ rabbit_stream_coordinator:sac_state(State),
+ consumer_groups(VirtualHost,
+ InfoKeys,
+ SacState)
+ end)
+ of
+ {ok, {_, Result}, _} -> Result;
+ {error, noproc} ->
+ %% not started yet, so no groups
+ {ok, []};
+ {error, _} = Err -> Err;
+ {timeout, _} -> {error, timeout}
+ end
+ end).
+
+%% get the consumers of a given group in a given virtual host
+-spec group_consumers(binary(), binary(), binary(), [atom()]) ->
+ {ok, [term()]} |
+ {error, feature_flag_disabled | atom()}.
+group_consumers(VirtualHost, Stream, Reference, InfoKeys) ->
+ maybe_sac_execute(fun() ->
+ case ra:local_query({rabbit_stream_coordinator,
+ node()},
+ fun(State) ->
+ SacState =
+ rabbit_stream_coordinator:sac_state(State),
+ group_consumers(VirtualHost,
+ Stream,
+ Reference,
+ InfoKeys,
+ SacState)
+ end)
+ of
+ {ok, {_, {ok, _} = Result}, _} -> Result;
+ {ok, {_, {error, _} = Err}, _} -> Err;
+ {error, noproc} ->
+ %% not started yet, so the group cannot exist
+ {error, not_found};
+ {error, _} = Err -> Err;
+ {timeout, _} -> {error, timeout}
+ end
+ end).
+
+maybe_sac_execute(Fun) ->
+ case rabbit_stream_sac_coordinator:is_ff_enabled() of
+ true ->
+ Fun();
+ false ->
+ {error, feature_flag_disabled}
+ end.
+
+-spec overview(state()) -> map().
+overview(undefined) ->
+ undefined;
+overview(#?MODULE{groups = Groups}) ->
+ GroupsOverview = maps:map(fun (_, #group{consumers = Consumers,
+ partition_index = Idx}) ->
+ #{num_consumers => length(Consumers),
+ partition_index => Idx}
+ end, Groups),
+ #{num_groups => map_size(Groups),
+ groups => GroupsOverview}.
+
+
+-spec init_state() -> state().
+init_state() ->
+ #?MODULE{groups = #{}, pids_groups = #{}}.
+
+-spec apply(command(), state()) ->
+ {state(), term(), ra_machine:effects()}.
+apply(#command_register_consumer{vhost = VirtualHost,
+ stream = Stream,
+ partition_index = PartitionIndex,
+ consumer_name = ConsumerName,
+ connection_pid = ConnectionPid,
+ owner = Owner,
+ subscription_id = SubscriptionId},
+ #?MODULE{groups = StreamGroups0} = State) ->
+ StreamGroups1 =
+ maybe_create_group(VirtualHost,
+ Stream,
+ PartitionIndex,
+ ConsumerName,
+ StreamGroups0),
+
+ do_register_consumer(VirtualHost,
+ Stream,
+ PartitionIndex,
+ ConsumerName,
+ ConnectionPid,
+ Owner,
+ SubscriptionId,
+ State#?MODULE{groups = StreamGroups1});
+apply(#command_unregister_consumer{vhost = VirtualHost,
+ stream = Stream,
+ consumer_name = ConsumerName,
+ connection_pid = ConnectionPid,
+ subscription_id = SubscriptionId},
+ #?MODULE{groups = StreamGroups0} = State0) ->
+ {State1, Effects1} =
+ case lookup_group(VirtualHost, Stream, ConsumerName, StreamGroups0) of
+ undefined ->
+ {State0, []};
+ Group0 ->
+ {Group1, Effects} =
+ case lookup_consumer(ConnectionPid, SubscriptionId, Group0)
+ of
+ {value, Consumer} ->
+ G1 = remove_from_group(Consumer, Group0),
+ handle_consumer_removal(G1, Consumer);
+ false ->
+ {Group0, []}
+ end,
+ SGS = update_groups(VirtualHost,
+ Stream,
+ ConsumerName,
+ Group1,
+ StreamGroups0),
+ {State0#?MODULE{groups = SGS}, Effects}
+ end,
+ {State1, ok, Effects1};
+apply(#command_activate_consumer{vhost = VirtualHost,
+ stream = Stream,
+ consumer_name = ConsumerName},
+ #?MODULE{groups = StreamGroups0} = State0) ->
+ {G, Eff} =
+ case lookup_group(VirtualHost, Stream, ConsumerName, StreamGroups0) of
+ undefined ->
+ rabbit_log:warning("trying to activate consumer in group ~tp, but "
+ "the group does not longer exist",
+ [{VirtualHost, Stream, ConsumerName}]),
+ {undefined, []};
+ Group ->
+ #consumer{pid = Pid, subscription_id = SubId} =
+ evaluate_active_consumer(Group),
+ Group1 =
+ update_consumer_state_in_group(Group, Pid, SubId, true),
+ {Group1, [notify_consumer_effect(Pid, SubId, true)]}
+ end,
+ StreamGroups1 =
+ update_groups(VirtualHost, Stream, ConsumerName, G, StreamGroups0),
+ {State0#?MODULE{groups = StreamGroups1}, ok, Eff}.
+
+-spec consumer_groups(binary(), [atom()], state()) -> {ok, [term()]}.
+consumer_groups(VirtualHost, InfoKeys, #?MODULE{groups = Groups}) ->
+ Res = maps:fold(fun ({VH, Stream, Reference},
+ #group{consumers = Consumers,
+ partition_index = PartitionIndex},
+ Acc)
+ when VH == VirtualHost ->
+ Record =
+ lists:foldr(fun (stream, RecAcc) ->
+ [{stream, Stream} | RecAcc];
+ (reference, RecAcc) ->
+ [{reference, Reference}
+ | RecAcc];
+ (partition_index, RecAcc) ->
+ [{partition_index,
+ PartitionIndex}
+ | RecAcc];
+ (consumers, RecAcc) ->
+ [{consumers,
+ length(Consumers)}
+ | RecAcc];
+ (Unknown, RecAcc) ->
+ [{Unknown, unknown_field}
+ | RecAcc]
+ end,
+ [], InfoKeys),
+ [Record | Acc];
+ (_GroupId, _Group, Acc) ->
+ Acc
+ end,
+ [], Groups),
+ {ok, lists:reverse(Res)}.
+
+-spec group_consumers(binary(),
+ binary(),
+ binary(),
+ [atom()],
+ state()) ->
+ {ok, [term()]} | {error, not_found}.
+group_consumers(VirtualHost,
+ Stream,
+ Reference,
+ InfoKeys,
+ #?MODULE{groups = Groups}) ->
+ GroupId = {VirtualHost, Stream, Reference},
+ case Groups of
+ #{GroupId := #group{consumers = Consumers}} ->
+ Cs = lists:foldr(fun(#consumer{subscription_id = SubId,
+ owner = Owner,
+ active = Active},
+ Acc) ->
+ Record =
+ lists:foldr(fun (subscription_id, RecAcc) ->
+ [{subscription_id,
+ SubId}
+ | RecAcc];
+ (connection_name, RecAcc) ->
+ [{connection_name,
+ Owner}
+ | RecAcc];
+ (state, RecAcc)
+ when Active ->
+ [{state, active}
+ | RecAcc];
+ (state, RecAcc) ->
+ [{state, inactive}
+ | RecAcc];
+ (Unknown, RecAcc) ->
+ [{Unknown,
+ unknown_field}
+ | RecAcc]
+ end,
+ [], InfoKeys),
+ [Record | Acc]
+ end,
+ [], Consumers),
+ {ok, Cs};
+ _ ->
+ {error, not_found}
+ end.
+
+-spec ensure_monitors(command(),
+ state(),
+ map(),
+ ra_machine:effects()) ->
+ {state(), map(), ra_machine:effects()}.
+ensure_monitors(#command_register_consumer{vhost = VirtualHost,
+ stream = Stream,
+ consumer_name = ConsumerName,
+ connection_pid = Pid},
+ #?MODULE{pids_groups = PidsGroups0} = State0,
+ Monitors0,
+ Effects) ->
+ GroupId = {VirtualHost, Stream, ConsumerName},
+ Groups0 = maps:get(Pid, PidsGroups0, #{}),
+ PidsGroups1 =
+ maps:put(Pid, maps:put(GroupId, true, Groups0), PidsGroups0),
+ {State0#?MODULE{pids_groups = PidsGroups1}, Monitors0#{Pid => sac},
+ [{monitor, process, Pid}, {monitor, node, node(Pid)} | Effects]};
+ensure_monitors(#command_unregister_consumer{vhost = VirtualHost,
+ stream = Stream,
+ consumer_name = ConsumerName,
+ connection_pid = Pid},
+ #?MODULE{groups = StreamGroups0, pids_groups = PidsGroups0} =
+ State0,
+ Monitors,
+ Effects)
+ when is_map_key(Pid, PidsGroups0) ->
+ GroupId = {VirtualHost, Stream, ConsumerName},
+ #{Pid := PidGroup0} = PidsGroups0,
+ PidGroup1 =
+ case lookup_group(VirtualHost, Stream, ConsumerName, StreamGroups0) of
+ undefined ->
+ %% group is gone, can be removed from the PID map
+ maps:remove(GroupId, PidGroup0);
+ Group ->
+ %% group still exists, check if other consumers are from this PID
+ %% if yes, don't change the PID set
+ %% if no, remove group from PID set
+ case has_consumers_from_pid(Group, Pid) of
+ true ->
+ %% the group still depends on this PID, keep the group entry in the set
+ PidGroup0;
+ false ->
+ %% the group does not depend on the PID anymore, remove the group entry from the map
+ maps:remove(GroupId, PidGroup0)
+ end
+ end,
+ case maps:size(PidGroup1) == 0 of
+ true ->
+ %% no more groups depend on the PID
+ %% remove PID from data structure and demonitor it
+ {State0#?MODULE{pids_groups = maps:remove(Pid, PidsGroups0)},
+ maps:remove(Pid, Monitors), [{demonitor, process, Pid} | Effects]};
+ false ->
+ %% one or more groups still depend on the PID
+ {State0#?MODULE{pids_groups =
+ maps:put(Pid, PidGroup1, PidsGroups0)},
+ Monitors, Effects}
+ end;
+ensure_monitors(_, #?MODULE{} = State0, Monitors, Effects) ->
+ {State0, Monitors, Effects}.
+
+-spec handle_connection_down(connection_pid(), state()) ->
+ {state(), ra_machine:effects()}.
+handle_connection_down(Pid,
+ #?MODULE{pids_groups = PidsGroups0} = State0) ->
+ case maps:take(Pid, PidsGroups0) of
+ error ->
+ {State0, []};
+ {Groups, PidsGroups1} ->
+ State1 = State0#?MODULE{pids_groups = PidsGroups1},
+ %% iterate other the groups that this PID affects
+ maps:fold(fun({VirtualHost, Stream, ConsumerName}, _,
+ {#?MODULE{groups = ConsumerGroups} = S0, Eff0}) ->
+ case lookup_group(VirtualHost,
+ Stream,
+ ConsumerName,
+ ConsumerGroups)
+ of
+ undefined -> {S0, Eff0};
+ #group{consumers = Consumers} ->
+ %% iterate over the consumers of the group
+ %% and unregister the ones from this PID.
+ %% It may not be optimal, computing the new active consumer
+ %% from the purged group and notifying the remaining consumers
+ %% appropriately should avoid unwanted notifications and even rebalancing.
+ lists:foldl(fun (#consumer{pid = P,
+ subscription_id =
+ SubId},
+ {StateSub0, EffSub0})
+ when P == Pid ->
+ {StateSub1, ok, E} =
+ ?MODULE:apply(#command_unregister_consumer{vhost
+ =
+ VirtualHost,
+ stream
+ =
+ Stream,
+ consumer_name
+ =
+ ConsumerName,
+ connection_pid
+ =
+ Pid,
+ subscription_id
+ =
+ SubId},
+ StateSub0),
+ {StateSub1, EffSub0 ++ E};
+ (_Consumer, Acc) -> Acc
+ end,
+ {S0, Eff0}, Consumers)
+ end
+ end,
+ {State1, []}, Groups)
+ end.
+
+do_register_consumer(VirtualHost,
+ Stream,
+ -1 = _PartitionIndex,
+ ConsumerName,
+ ConnectionPid,
+ Owner,
+ SubscriptionId,
+ #?MODULE{groups = StreamGroups0} = State) ->
+ Group0 =
+ lookup_group(VirtualHost, Stream, ConsumerName, StreamGroups0),
+
+ Consumer =
+ case lookup_active_consumer(Group0) of
+ {value, _} ->
+ #consumer{pid = ConnectionPid,
+ owner = Owner,
+ subscription_id = SubscriptionId,
+ active = false};
+ false ->
+ #consumer{pid = ConnectionPid,
+ subscription_id = SubscriptionId,
+ owner = Owner,
+ active = true}
+ end,
+ Group1 = add_to_group(Consumer, Group0),
+ StreamGroups1 =
+ update_groups(VirtualHost,
+ Stream,
+ ConsumerName,
+ Group1,
+ StreamGroups0),
+
+ #consumer{active = Active} = Consumer,
+ Effects =
+ case Active of
+ true ->
+ [notify_consumer_effect(ConnectionPid, SubscriptionId, Active)];
+ _ ->
+ []
+ end,
+
+ {State#?MODULE{groups = StreamGroups1}, {ok, Active}, Effects};
+do_register_consumer(VirtualHost,
+ Stream,
+ _PartitionIndex,
+ ConsumerName,
+ ConnectionPid,
+ Owner,
+ SubscriptionId,
+ #?MODULE{groups = StreamGroups0} = State) ->
+ Group0 =
+ lookup_group(VirtualHost, Stream, ConsumerName, StreamGroups0),
+
+ {Group1, Effects} =
+ case Group0 of
+ #group{consumers = []} ->
+ %% first consumer in the group, it's the active one
+ Consumer0 =
+ #consumer{pid = ConnectionPid,
+ owner = Owner,
+ subscription_id = SubscriptionId,
+ active = true},
+ G1 = add_to_group(Consumer0, Group0),
+ {G1,
+ [notify_consumer_effect(ConnectionPid, SubscriptionId, true)]};
+ _G ->
+ %% whatever the current state is, the newcomer will be passive
+ Consumer0 =
+ #consumer{pid = ConnectionPid,
+ owner = Owner,
+ subscription_id = SubscriptionId,
+ active = false},
+ G1 = add_to_group(Consumer0, Group0),
+
+ case lookup_active_consumer(G1) of
+ {value,
+ #consumer{pid = ActPid, subscription_id = ActSubId} =
+ CurrentActive} ->
+ case evaluate_active_consumer(G1) of
+ CurrentActive ->
+ %% the current active stays the same
+ {G1, []};
+ _ ->
+ %% there's a change, telling the active it's not longer active
+ {update_consumer_state_in_group(G1,
+ ActPid,
+ ActSubId,
+ false),
+ [notify_consumer_effect(ActPid,
+ ActSubId,
+ false,
+ true)]}
+ end;
+ false ->
+ %% no active consumer in the (non-empty) group, we are waiting for the reply of a former active
+ {G1, []}
+ end
+ end,
+ StreamGroups1 =
+ update_groups(VirtualHost,
+ Stream,
+ ConsumerName,
+ Group1,
+ StreamGroups0),
+ {value, #consumer{active = Active}} =
+ lookup_consumer(ConnectionPid, SubscriptionId, Group1),
+ {State#?MODULE{groups = StreamGroups1}, {ok, Active}, Effects}.
+
+handle_consumer_removal(#group{consumers = []} = G, _) ->
+ {G, []};
+handle_consumer_removal(#group{partition_index = -1} = Group0,
+ Consumer) ->
+ case Consumer of
+ #consumer{active = true} ->
+ %% this is the active consumer we remove, computing the new one
+ Group1 = compute_active_consumer(Group0),
+ case lookup_active_consumer(Group1) of
+ {value, #consumer{pid = Pid, subscription_id = SubId}} ->
+ %% creating the side effect to notify the new active consumer
+ {Group1, [notify_consumer_effect(Pid, SubId, true)]};
+ _ ->
+ %% no active consumer found in the group, nothing to do
+ {Group1, []}
+ end;
+ #consumer{active = false} ->
+ %% not the active consumer, nothing to do."),
+ {Group0, []}
+ end;
+handle_consumer_removal(Group0, Consumer) ->
+ case lookup_active_consumer(Group0) of
+ {value,
+ #consumer{pid = ActPid, subscription_id = ActSubId} =
+ CurrentActive} ->
+ case evaluate_active_consumer(Group0) of
+ CurrentActive ->
+ %% the current active stays the same
+ {Group0, []};
+ _ ->
+ %% there's a change, telling the active it's not longer active
+ {update_consumer_state_in_group(Group0,
+ ActPid,
+ ActSubId,
+ false),
+ [notify_consumer_effect(ActPid, ActSubId, false, true)]}
+ end;
+ false ->
+ case Consumer#consumer.active of
+ true ->
+ %% the active one is going away, picking a new one
+ #consumer{pid = P, subscription_id = SID} =
+ evaluate_active_consumer(Group0),
+ {update_consumer_state_in_group(Group0, P, SID, true),
+ [notify_consumer_effect(P, SID, true)]};
+ false ->
+ %% no active consumer in the (non-empty) group, we are waiting for the reply of a former active
+ {Group0, []}
+ end
+ end.
+
+notify_consumer_effect(Pid, SubId, Active) ->
+ notify_consumer_effect(Pid, SubId, Active, false).
+
+notify_consumer_effect(Pid, SubId, Active, false = _SteppingDown) ->
+ mod_call_effect(Pid,
+ {sac,
+ {{subscription_id, SubId}, {active, Active},
+ {extra, []}}});
+notify_consumer_effect(Pid, SubId, Active, true = _SteppingDown) ->
+ mod_call_effect(Pid,
+ {sac,
+ {{subscription_id, SubId}, {active, Active},
+ {extra, [{stepping_down, true}]}}}).
+
+maybe_create_group(VirtualHost,
+ Stream,
+ PartitionIndex,
+ ConsumerName,
+ StreamGroups) ->
+ case StreamGroups of
+ #{{VirtualHost, Stream, ConsumerName} := _Group} ->
+ StreamGroups;
+ SGS ->
+ maps:put({VirtualHost, Stream, ConsumerName},
+ #group{consumers = [], partition_index = PartitionIndex},
+ SGS)
+ end.
+
+lookup_group(VirtualHost, Stream, ConsumerName, StreamGroups) ->
+ maps:get({VirtualHost, Stream, ConsumerName}, StreamGroups,
+ undefined).
+
+add_to_group(Consumer, #group{consumers = Consumers} = Group) ->
+ Group#group{consumers = Consumers ++ [Consumer]}.
+
+remove_from_group(Consumer, #group{consumers = Consumers} = Group) ->
+ Group#group{consumers = lists:delete(Consumer, Consumers)}.
+
+has_consumers_from_pid(#group{consumers = Consumers}, Pid) ->
+ lists:any(fun (#consumer{pid = P}) when P == Pid ->
+ true;
+ (_) ->
+ false
+ end,
+ Consumers).
+
+compute_active_consumer(#group{consumers = Crs,
+ partition_index = -1} =
+ Group)
+ when length(Crs) == 0 ->
+ Group;
+compute_active_consumer(#group{partition_index = -1,
+ consumers = [Consumer0]} =
+ Group0) ->
+ Consumer1 = Consumer0#consumer{active = true},
+ Group0#group{consumers = [Consumer1]};
+compute_active_consumer(#group{partition_index = -1,
+ consumers = [Consumer0 | T]} =
+ Group0) ->
+ Consumer1 = Consumer0#consumer{active = true},
+ Consumers = lists:map(fun(C) -> C#consumer{active = false} end, T),
+ Group0#group{consumers = [Consumer1] ++ Consumers}.
+
+evaluate_active_consumer(#group{partition_index = PartitionIndex,
+ consumers = Consumers})
+ when PartitionIndex >= 0 ->
+ ActiveConsumerIndex = PartitionIndex rem length(Consumers),
+ lists:nth(ActiveConsumerIndex + 1, Consumers).
+
+lookup_consumer(ConnectionPid, SubscriptionId,
+ #group{consumers = Consumers}) ->
+ lists:search(fun(#consumer{pid = ConnPid, subscription_id = SubId}) ->
+ ConnPid == ConnectionPid andalso SubId == SubscriptionId
+ end,
+ Consumers).
+
+lookup_active_consumer(#group{consumers = Consumers}) ->
+ lists:search(fun(#consumer{active = Active}) -> Active end,
+ Consumers).
+
+update_groups(_VirtualHost,
+ _Stream,
+ _ConsumerName,
+ undefined,
+ StreamGroups) ->
+ StreamGroups;
+update_groups(VirtualHost,
+ Stream,
+ ConsumerName,
+ #group{consumers = []},
+ StreamGroups) ->
+ %% the group is now empty, removing the key
+ maps:remove({VirtualHost, Stream, ConsumerName}, StreamGroups);
+update_groups(VirtualHost,
+ Stream,
+ ConsumerName,
+ Group,
+ StreamGroups) ->
+ maps:put({VirtualHost, Stream, ConsumerName}, Group, StreamGroups).
+
+update_consumer_state_in_group(#group{consumers = Consumers0} = G,
+ Pid,
+ SubId,
+ NewState) ->
+ CS1 = lists:map(fun(C0) ->
+ case C0 of
+ #consumer{pid = Pid, subscription_id = SubId} ->
+ C0#consumer{active = NewState};
+ C -> C
+ end
+ end,
+ Consumers0),
+ G#group{consumers = CS1}.
+
+mod_call_effect(Pid, Msg) ->
+ {mod_call, rabbit_stream_sac_coordinator, send_message, [Pid, Msg]}.
+
+-spec send_message(pid(), term()) -> ok.
+send_message(ConnectionPid, Msg) ->
+ ConnectionPid ! Msg,
+ ok.
+
+is_ff_enabled() ->
+ rabbit_feature_flags:is_enabled(stream_single_active_consumer).
diff --git a/deps/rabbit/src/rabbit_sup.erl b/deps/rabbit/src/rabbit_sup.erl
index cbcf0ca664..0e4d9155c7 100644
--- a/deps/rabbit/src/rabbit_sup.erl
+++ b/deps/rabbit/src/rabbit_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_sup).
diff --git a/deps/rabbit/src/rabbit_sysmon_handler.erl b/deps/rabbit/src/rabbit_sysmon_handler.erl
index ff7c5d2045..b55d811702 100644
--- a/deps/rabbit/src/rabbit_sysmon_handler.erl
+++ b/deps/rabbit/src/rabbit_sysmon_handler.erl
@@ -1,5 +1,5 @@
%% Copyright (c) 2011 Basho Technologies, Inc. All Rights Reserved.
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This file is provided to you under the Apache License,
%% Version 2.0 (the "License"); you may not use this file
diff --git a/deps/rabbit/src/rabbit_sysmon_minder.erl b/deps/rabbit/src/rabbit_sysmon_minder.erl
index 950e81858b..b0ec1afa10 100644
--- a/deps/rabbit/src/rabbit_sysmon_minder.erl
+++ b/deps/rabbit/src/rabbit_sysmon_minder.erl
@@ -1,6 +1,6 @@
%% -------------------------------------------------------------------
%% Copyright (c) 2007-2010 Basho Technologies, Inc. All Rights Reserved.
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This file is provided to you under the Apache License,
%% Version 2.0 (the "License"); you may not use this file
diff --git a/deps/rabbit/src/rabbit_table.erl b/deps/rabbit/src/rabbit_table.erl
index 839945cb39..5602ad4d38 100644
--- a/deps/rabbit/src/rabbit_table.erl
+++ b/deps/rabbit/src/rabbit_table.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_table).
diff --git a/deps/rabbit/src/rabbit_time_travel_dbg.erl b/deps/rabbit/src/rabbit_time_travel_dbg.erl
new file mode 100644
index 0000000000..e25d28f79d
--- /dev/null
+++ b/deps/rabbit/src/rabbit_time_travel_dbg.erl
@@ -0,0 +1,76 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+%% This module is a debugging utility mainly meant for debugging
+%% test failures. It should not be used in production in its
+%% current form.
+%%
+%% The tracer is started and configured against a pid and a set
+%% of applications. Then update the code where you need to
+%% obtain events, such as a crash. Wrapping the crash in
+%% a try/catch and adding rabbit_time_travel_dbg:print()
+%% will print up to 1000 events before the crash occured,
+%% allowing you to easily figure out what happened.
+
+-module(rabbit_time_travel_dbg).
+-compile(export_all).
+-compile(nowarn_export_all).
+
+start(Pid) ->
+ start(Pid, [rabbit, rabbit_common]).
+
+start(Pid, Apps) ->
+ Mods = apps_to_mods(Apps, []),
+ TracerPid = spawn_link(?MODULE, init, []),
+ {ok, _} = dbg:tracer(process, {fun (Msg, _) -> TracerPid ! Msg end, []}),
+ _ = [dbg:tpl(M, []) || M <- Mods],
+ dbg:p(Pid, [c]),
+ ok.
+
+apps_to_mods([], Acc) ->
+ lists:flatten(Acc);
+apps_to_mods([App|Tail], Acc) ->
+ _ = application:load(App),
+ {ok, Mods} = application:get_key(App, modules),
+ apps_to_mods(Tail, [Mods|Acc]).
+
+dump() ->
+ ?MODULE ! dump,
+ ok.
+
+print() ->
+ ?MODULE ! print,
+ ok.
+
+stop() ->
+ dbg:stop_clear(),
+ ?MODULE ! stop,
+ ok.
+
+init() ->
+ register(?MODULE, self()),
+ loop(queue:new()).
+
+loop(Q) ->
+ receive
+ dump ->
+ file:write_file("time_travel.dbg",
+ [io_lib:format("~0p~n", [E]) || E <- queue:to_list(Q)]),
+ loop(Q);
+ print ->
+ _ = [logger:error("~0p", [E]) || E <- queue:to_list(Q)],
+ loop(Q);
+ stop ->
+ ok;
+ Msg ->
+ case queue:len(Q) of
+ 1000 ->
+ loop(queue:in(Msg, queue:out(Q)));
+ _ ->
+ loop(queue:in(Msg, Q))
+ end
+ end.
diff --git a/deps/rabbit/src/rabbit_trace.erl b/deps/rabbit/src/rabbit_trace.erl
index b8e560da95..87af56f7a6 100644
--- a/deps/rabbit/src/rabbit_trace.erl
+++ b/deps/rabbit/src/rabbit_trace.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_trace).
diff --git a/deps/rabbit/src/rabbit_tracking.erl b/deps/rabbit/src/rabbit_tracking.erl
index 87b0e7bb4d..39dea5752f 100644
--- a/deps/rabbit/src/rabbit_tracking.erl
+++ b/deps/rabbit/src/rabbit_tracking.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracking).
diff --git a/deps/rabbit/src/rabbit_tracking_store.erl b/deps/rabbit/src/rabbit_tracking_store.erl
new file mode 100644
index 0000000000..ac58d71313
--- /dev/null
+++ b/deps/rabbit/src/rabbit_tracking_store.erl
@@ -0,0 +1,47 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+-module(rabbit_tracking_store).
+
+-behaviour(gen_server).
+
+%% API
+-export([start_link/0]).
+
+%% gen_server callbacks
+-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
+ terminate/2, code_change/3, format_status/2]).
+
+-define(SERVER, ?MODULE).
+
+-record(state, {}).
+
+start_link() ->
+ gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
+
+init([]) ->
+ rabbit_connection_tracking:ensure_tracked_tables_for_this_node(),
+ rabbit_channel_tracking:ensure_tracked_tables_for_this_node(),
+ {ok, #state{}}.
+
+handle_call(_Request, _From, State) ->
+ Reply = ok,
+ {reply, Reply, State}.
+
+handle_cast(_Request, State) ->
+ {noreply, State}.
+
+handle_info(_Info, State) ->
+ {noreply, State}.
+
+terminate(_Reason, _State) ->
+ ok.
+
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+format_status(_Opt, Status) ->
+ Status.
diff --git a/deps/rabbit/src/rabbit_upgrade_preparation.erl b/deps/rabbit/src/rabbit_upgrade_preparation.erl
index 2dcdc50003..de06ab86ca 100644
--- a/deps/rabbit/src/rabbit_upgrade_preparation.erl
+++ b/deps/rabbit/src/rabbit_upgrade_preparation.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_upgrade_preparation).
diff --git a/deps/rabbit/src/rabbit_variable_queue.erl b/deps/rabbit/src/rabbit_variable_queue.erl
index caa4c974dd..316fbb8ac7 100644
--- a/deps/rabbit/src/rabbit_variable_queue.erl
+++ b/deps/rabbit/src/rabbit_variable_queue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_variable_queue).
diff --git a/deps/rabbit/src/rabbit_version.erl b/deps/rabbit/src/rabbit_version.erl
index 809a1c0cce..70772e7808 100644
--- a/deps/rabbit/src/rabbit_version.erl
+++ b/deps/rabbit/src/rabbit_version.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_version).
diff --git a/deps/rabbit/src/rabbit_vhost.erl b/deps/rabbit/src/rabbit_vhost.erl
index 87c7375730..a2e191215d 100644
--- a/deps/rabbit/src/rabbit_vhost.erl
+++ b/deps/rabbit/src/rabbit_vhost.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_vhost).
diff --git a/deps/rabbit/src/rabbit_vhost_limit.erl b/deps/rabbit/src/rabbit_vhost_limit.erl
index f7c48d15ba..4f8cf55cb9 100644
--- a/deps/rabbit/src/rabbit_vhost_limit.erl
+++ b/deps/rabbit/src/rabbit_vhost_limit.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_vhost_limit).
diff --git a/deps/rabbit/src/rabbit_vhost_msg_store.erl b/deps/rabbit/src/rabbit_vhost_msg_store.erl
index 294ca7e9f9..3ef4a66e90 100644
--- a/deps/rabbit/src/rabbit_vhost_msg_store.erl
+++ b/deps/rabbit/src/rabbit_vhost_msg_store.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_vhost_msg_store).
diff --git a/deps/rabbit/src/rabbit_vhost_process.erl b/deps/rabbit/src/rabbit_vhost_process.erl
index 1547dfcce3..b6aaa56ed0 100644
--- a/deps/rabbit/src/rabbit_vhost_process.erl
+++ b/deps/rabbit/src/rabbit_vhost_process.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This module implements a vhost identity process.
diff --git a/deps/rabbit/src/rabbit_vhost_sup.erl b/deps/rabbit/src/rabbit_vhost_sup.erl
index e857f4cd43..ada877a4db 100644
--- a/deps/rabbit/src/rabbit_vhost_sup.erl
+++ b/deps/rabbit/src/rabbit_vhost_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_vhost_sup).
diff --git a/deps/rabbit/src/rabbit_vhost_sup_sup.erl b/deps/rabbit/src/rabbit_vhost_sup_sup.erl
index bd761e938f..9ca5e9f371 100644
--- a/deps/rabbit/src/rabbit_vhost_sup_sup.erl
+++ b/deps/rabbit/src/rabbit_vhost_sup_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_vhost_sup_sup).
diff --git a/deps/rabbit/src/rabbit_vhost_sup_wrapper.erl b/deps/rabbit/src/rabbit_vhost_sup_wrapper.erl
index 5093ecda97..1653cde0de 100644
--- a/deps/rabbit/src/rabbit_vhost_sup_wrapper.erl
+++ b/deps/rabbit/src/rabbit_vhost_sup_wrapper.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This module is a wrapper around vhost supervisor to
diff --git a/deps/rabbit/src/rabbit_vm.erl b/deps/rabbit/src/rabbit_vm.erl
index 207488e7af..be2f1dde5c 100644
--- a/deps/rabbit/src/rabbit_vm.erl
+++ b/deps/rabbit/src/rabbit_vm.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_vm).
diff --git a/deps/rabbit/src/supervised_lifecycle.erl b/deps/rabbit/src/supervised_lifecycle.erl
index 4aea183508..1edfb4efe8 100644
--- a/deps/rabbit/src/supervised_lifecycle.erl
+++ b/deps/rabbit/src/supervised_lifecycle.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% Invoke callbacks on startup and termination.
diff --git a/deps/rabbit/src/tcp_listener.erl b/deps/rabbit/src/tcp_listener.erl
index ef32fb1954..6c7f2f8484 100644
--- a/deps/rabbit/src/tcp_listener.erl
+++ b/deps/rabbit/src/tcp_listener.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(tcp_listener).
diff --git a/deps/rabbit/src/tcp_listener_sup.erl b/deps/rabbit/src/tcp_listener_sup.erl
index d1d5f1cf19..57955dcb75 100644
--- a/deps/rabbit/src/tcp_listener_sup.erl
+++ b/deps/rabbit/src/tcp_listener_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(tcp_listener_sup).
diff --git a/deps/rabbit/src/term_to_binary_compat.erl b/deps/rabbit/src/term_to_binary_compat.erl
index 071da02d0b..4686658a8e 100644
--- a/deps/rabbit/src/term_to_binary_compat.erl
+++ b/deps/rabbit/src/term_to_binary_compat.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(term_to_binary_compat).
diff --git a/deps/rabbit/src/vhost.erl b/deps/rabbit/src/vhost.erl
index d6d7e8aac7..bbf3428e37 100644
--- a/deps/rabbit/src/vhost.erl
+++ b/deps/rabbit/src/vhost.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(vhost).
diff --git a/deps/rabbit/test/backing_queue_SUITE.erl b/deps/rabbit/test/backing_queue_SUITE.erl
index 50d44307ef..1406c20c08 100644
--- a/deps/rabbit/test/backing_queue_SUITE.erl
+++ b/deps/rabbit/test/backing_queue_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(backing_queue_SUITE).
diff --git a/deps/rabbit/test/channel_interceptor_SUITE.erl b/deps/rabbit/test/channel_interceptor_SUITE.erl
index c63daf96e3..dfda16aeb2 100644
--- a/deps/rabbit/test/channel_interceptor_SUITE.erl
+++ b/deps/rabbit/test/channel_interceptor_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(channel_interceptor_SUITE).
diff --git a/deps/rabbit/test/channel_operation_timeout_SUITE.erl b/deps/rabbit/test/channel_operation_timeout_SUITE.erl
index ac9b743e57..3fe12b0139 100644
--- a/deps/rabbit/test/channel_operation_timeout_SUITE.erl
+++ b/deps/rabbit/test/channel_operation_timeout_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(channel_operation_timeout_SUITE).
diff --git a/deps/rabbit/test/channel_operation_timeout_test_queue.erl b/deps/rabbit/test/channel_operation_timeout_test_queue.erl
index e3c36adbab..69a0a41098 100644
--- a/deps/rabbit/test/channel_operation_timeout_test_queue.erl
+++ b/deps/rabbit/test/channel_operation_timeout_test_queue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% @todo This module also needs to be updated when variable queue changes.
diff --git a/deps/rabbit/test/classic_queue_prop_SUITE.erl b/deps/rabbit/test/classic_queue_prop_SUITE.erl
index 8814619b3d..d9a2ffa228 100644
--- a/deps/rabbit/test/classic_queue_prop_SUITE.erl
+++ b/deps/rabbit/test/classic_queue_prop_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(classic_queue_prop_SUITE).
diff --git a/deps/rabbit/test/cluster_SUITE.erl b/deps/rabbit/test/cluster_SUITE.erl
index 97373e7672..f9e9f4ee6b 100644
--- a/deps/rabbit/test/cluster_SUITE.erl
+++ b/deps/rabbit/test/cluster_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(cluster_SUITE).
diff --git a/deps/rabbit/test/cluster_rename_SUITE.erl b/deps/rabbit/test/cluster_rename_SUITE.erl
index 057dc433f2..7b005d6853 100644
--- a/deps/rabbit/test/cluster_rename_SUITE.erl
+++ b/deps/rabbit/test/cluster_rename_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(cluster_rename_SUITE).
diff --git a/deps/rabbit/test/clustering_management_SUITE.erl b/deps/rabbit/test/clustering_management_SUITE.erl
index 6fc253b1d4..1a931b3cbe 100644
--- a/deps/rabbit/test/clustering_management_SUITE.erl
+++ b/deps/rabbit/test/clustering_management_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(clustering_management_SUITE).
diff --git a/deps/rabbit/test/config_schema_SUITE.erl b/deps/rabbit/test/config_schema_SUITE.erl
index 9a1da580fb..b3a0ed54ca 100644
--- a/deps/rabbit/test/config_schema_SUITE.erl
+++ b/deps/rabbit/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbit/test/consumer_timeout_SUITE.erl b/deps/rabbit/test/consumer_timeout_SUITE.erl
index 8ba7ac059b..fa6de05eab 100644
--- a/deps/rabbit/test/consumer_timeout_SUITE.erl
+++ b/deps/rabbit/test/consumer_timeout_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(consumer_timeout_SUITE).
diff --git a/deps/rabbit/test/crashing_queues_SUITE.erl b/deps/rabbit/test/crashing_queues_SUITE.erl
index c756b0a73c..18839310cc 100644
--- a/deps/rabbit/test/crashing_queues_SUITE.erl
+++ b/deps/rabbit/test/crashing_queues_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(crashing_queues_SUITE).
diff --git a/deps/rabbit/test/dead_lettering_SUITE.erl b/deps/rabbit/test/dead_lettering_SUITE.erl
index 3c6ae8ebf5..c232c47935 100644
--- a/deps/rabbit/test/dead_lettering_SUITE.erl
+++ b/deps/rabbit/test/dead_lettering_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% For the full spec see: https://www.rabbitmq.com/dlx.html
%%
diff --git a/deps/rabbit/test/definition_import_SUITE.erl b/deps/rabbit/test/definition_import_SUITE.erl
index 35e5adff45..4b5762fd7b 100644
--- a/deps/rabbit/test/definition_import_SUITE.erl
+++ b/deps/rabbit/test/definition_import_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(definition_import_SUITE).
diff --git a/deps/rabbit/test/disconnect_detected_during_alarm_SUITE.erl b/deps/rabbit/test/disconnect_detected_during_alarm_SUITE.erl
index ecf38a24de..c0f2d15c70 100644
--- a/deps/rabbit/test/disconnect_detected_during_alarm_SUITE.erl
+++ b/deps/rabbit/test/disconnect_detected_during_alarm_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(disconnect_detected_during_alarm_SUITE).
diff --git a/deps/rabbit/test/disk_monitor_SUITE.erl b/deps/rabbit/test/disk_monitor_SUITE.erl
index 2806774603..9e480662f6 100644
--- a/deps/rabbit/test/disk_monitor_SUITE.erl
+++ b/deps/rabbit/test/disk_monitor_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(disk_monitor_SUITE).
diff --git a/deps/rabbit/test/dummy_event_receiver.erl b/deps/rabbit/test/dummy_event_receiver.erl
index e881d55961..5c8327711f 100644
--- a/deps/rabbit/test/dummy_event_receiver.erl
+++ b/deps/rabbit/test/dummy_event_receiver.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(dummy_event_receiver).
diff --git a/deps/rabbit/test/dummy_runtime_parameters.erl b/deps/rabbit/test/dummy_runtime_parameters.erl
index 03244cfb3b..fb54f6af5e 100644
--- a/deps/rabbit/test/dummy_runtime_parameters.erl
+++ b/deps/rabbit/test/dummy_runtime_parameters.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(dummy_runtime_parameters).
diff --git a/deps/rabbit/test/dummy_supervisor2.erl b/deps/rabbit/test/dummy_supervisor2.erl
index 0c288d30bc..7377968f05 100644
--- a/deps/rabbit/test/dummy_supervisor2.erl
+++ b/deps/rabbit/test/dummy_supervisor2.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(dummy_supervisor2).
diff --git a/deps/rabbit/test/dynamic_ha_SUITE.erl b/deps/rabbit/test/dynamic_ha_SUITE.erl
index 07da8352ef..fc226ac55e 100644
--- a/deps/rabbit/test/dynamic_ha_SUITE.erl
+++ b/deps/rabbit/test/dynamic_ha_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(dynamic_ha_SUITE).
diff --git a/deps/rabbit/test/dynamic_qq_SUITE.erl b/deps/rabbit/test/dynamic_qq_SUITE.erl
index 89650c7173..e1e98cd524 100644
--- a/deps/rabbit/test/dynamic_qq_SUITE.erl
+++ b/deps/rabbit/test/dynamic_qq_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(dynamic_qq_SUITE).
diff --git a/deps/rabbit/test/eager_sync_SUITE.erl b/deps/rabbit/test/eager_sync_SUITE.erl
index 563f09a1df..b0d1e3a49f 100644
--- a/deps/rabbit/test/eager_sync_SUITE.erl
+++ b/deps/rabbit/test/eager_sync_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(eager_sync_SUITE).
diff --git a/deps/rabbit/test/feature_flags_SUITE.erl b/deps/rabbit/test/feature_flags_SUITE.erl
index f6ec28635c..560d241a67 100644
--- a/deps/rabbit/test/feature_flags_SUITE.erl
+++ b/deps/rabbit/test/feature_flags_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(feature_flags_SUITE).
diff --git a/deps/rabbit/test/feature_flags_SUITE_data/my_plugin/src/my_plugin.erl b/deps/rabbit/test/feature_flags_SUITE_data/my_plugin/src/my_plugin.erl
index b15474d3b9..1715bd8f88 100644
--- a/deps/rabbit/test/feature_flags_SUITE_data/my_plugin/src/my_plugin.erl
+++ b/deps/rabbit/test/feature_flags_SUITE_data/my_plugin/src/my_plugin.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(my_plugin).
diff --git a/deps/rabbit/test/feature_flags_v2_SUITE.erl b/deps/rabbit/test/feature_flags_v2_SUITE.erl
new file mode 100644
index 0000000000..66e459eb4d
--- /dev/null
+++ b/deps/rabbit/test/feature_flags_v2_SUITE.erl
@@ -0,0 +1,1536 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2021-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(feature_flags_v2_SUITE).
+
+-include_lib("kernel/include/logger.hrl").
+-include_lib("eunit/include/eunit.hrl").
+-include_lib("common_test/include/ct.hrl").
+
+-include_lib("rabbit_common/include/logging.hrl").
+
+-export([suite/0,
+ all/0,
+ groups/0,
+ init_per_suite/1,
+ end_per_suite/1,
+ init_per_group/2,
+ end_per_group/2,
+ init_per_testcase/2,
+ end_per_testcase/2,
+
+ mf_count_runs/3,
+ mf_wait_and_count_runs/3,
+ mf_wait_and_count_runs_v2_enable/1,
+ mf_wait_and_count_runs_v2_post_enable/1,
+
+ enable_unknown_feature_flag_on_a_single_node/1,
+ enable_supported_feature_flag_on_a_single_node/1,
+ enable_unknown_feature_flag_in_a_3node_cluster/1,
+ enable_supported_feature_flag_in_a_3node_cluster/1,
+ enable_partially_supported_feature_flag_in_a_3node_cluster/1,
+ enable_unsupported_feature_flag_in_a_3node_cluster/1,
+ enable_feature_flag_in_cluster_and_add_member_after/1,
+ enable_feature_flag_in_cluster_and_add_member_concurrently_mfv1/1,
+ enable_feature_flag_in_cluster_and_add_member_concurrently_mfv2/1,
+ enable_feature_flag_in_cluster_and_remove_member_concurrently_mfv1/1,
+ enable_feature_flag_in_cluster_and_remove_member_concurrently_mfv2/1,
+ enable_feature_flag_with_post_enable/1
+ ]).
+
+suite() ->
+ [{timetrap, {minutes, 1}}].
+
+all() ->
+ [
+ {group, feature_flags_v1},
+ {group, feature_flags_v2}
+ ].
+
+groups() ->
+ Groups =
+ [
+ {cluster_size_1, [parallel],
+ [
+ enable_unknown_feature_flag_on_a_single_node,
+ enable_supported_feature_flag_on_a_single_node
+ ]},
+ {cluster_size_3, [parallel],
+ [
+ enable_unknown_feature_flag_in_a_3node_cluster,
+ enable_supported_feature_flag_in_a_3node_cluster,
+ enable_partially_supported_feature_flag_in_a_3node_cluster,
+ enable_unsupported_feature_flag_in_a_3node_cluster,
+ enable_feature_flag_in_cluster_and_add_member_after,
+ enable_feature_flag_in_cluster_and_add_member_concurrently_mfv1,
+ enable_feature_flag_in_cluster_and_add_member_concurrently_mfv2,
+ enable_feature_flag_in_cluster_and_remove_member_concurrently_mfv1,
+ enable_feature_flag_in_cluster_and_remove_member_concurrently_mfv2,
+ enable_feature_flag_with_post_enable
+ ]}
+ ],
+ [
+ {feature_flags_v1, [], Groups},
+ {feature_flags_v2, [], Groups}
+ ].
+
+%% -------------------------------------------------------------------
+%% Testsuite setup/teardown.
+%% -------------------------------------------------------------------
+
+init_per_suite(Config) ->
+ rabbit_ct_helpers:log_environment(),
+ logger:set_primary_config(level, debug),
+ rabbit_ct_helpers:run_steps(
+ Config,
+ [fun rabbit_ct_helpers:redirect_logger_to_ct_logs/1]).
+
+end_per_suite(Config) ->
+ Config.
+
+init_per_group(feature_flags_v1, Config) ->
+ rabbit_ct_helpers:set_config(Config, {enable_feature_flags_v2, false});
+init_per_group(feature_flags_v2, Config) ->
+ rabbit_ct_helpers:set_config(Config, {enable_feature_flags_v2, true});
+init_per_group(cluster_size_1, Config) ->
+ rabbit_ct_helpers:set_config(Config, {nodes_count, 1});
+init_per_group(cluster_size_3, Config) ->
+ rabbit_ct_helpers:set_config(Config, {nodes_count, 3});
+init_per_group(_Group, Config) ->
+ Config.
+
+end_per_group(_Group, Config) ->
+ Config.
+
+init_per_testcase(Testcase, Config) ->
+ rabbit_ct_helpers:run_steps(
+ Config,
+ [fun(Cfg) -> start_slave_nodes(Cfg, Testcase) end]).
+
+end_per_testcase(_Testcase, Config) ->
+ rabbit_ct_helpers:run_steps(
+ Config,
+ [fun stop_slave_nodes/1]).
+
+start_slave_nodes(Config, Testcase) ->
+ NodesCount = ?config(nodes_count, Config),
+ ct:pal("Starting ~b slave node(s):", [NodesCount]),
+ Parent = self(),
+ Starters = [spawn_link(
+ fun() ->
+ start_slave_node(Parent, Config, Testcase, N)
+ end)
+ || N <- lists:seq(1, NodesCount)],
+ Nodes = lists:sort(
+ [receive
+ {node, Starter, Node} -> Node
+ end || Starter <- Starters]),
+ ct:pal("Started ~b slave node(s): ~tp", [NodesCount, Nodes]),
+ rabbit_ct_helpers:set_config(Config, {nodes, Nodes}).
+
+start_slave_node(Parent, Config, Testcase, N) ->
+ Prefix = case ?config(enable_feature_flags_v2, Config) of
+ false -> "ffv1";
+ true -> "ffv2"
+ end,
+ Name = list_to_atom(
+ rabbit_misc:format("~ts-~ts-~b", [Prefix, Testcase, N])),
+ ct:pal("- Starting slave node `~ts@...`", [Name]),
+ {ok, Node} = slave:start(net_adm:localhost(), Name),
+ ct:pal("- Slave node `~ts` started", [Node]),
+
+ TestCodePath = filename:dirname(code:which(?MODULE)),
+ true = rpc:call(Node, code, add_path, [TestCodePath]),
+ ok = run_on_node(Node, fun setup_slave_node/1, [Config]),
+ ct:pal("- Slave node `~ts` configured", [Node]),
+ Parent ! {node, self(), Node}.
+
+stop_slave_nodes(Config) ->
+ Nodes = ?config(nodes, Config),
+ ct:pal("Stopping ~b slave nodes:", [length(Nodes)]),
+ lists:foreach(fun stop_slave_node/1, Nodes),
+ rabbit_ct_helpers:delete_config(Config, nodes).
+
+stop_slave_node(Node) ->
+ ct:pal("- Stopping slave node `~ts`...", [Node]),
+ ok = slave:stop(Node).
+
+connect_nodes([FirstNode | OtherNodes] = Nodes) ->
+ lists:foreach(
+ fun(Node) -> pong = rpc:call(Node, net_adm, ping, [FirstNode]) end,
+ OtherNodes),
+ Cluster = lists:sort(
+ [FirstNode | rpc:call(FirstNode, erlang, nodes, [])]),
+ ?assert(lists:all(fun(Node) -> lists:member(Node, Cluster) end, Nodes)).
+
+run_on_node(Node, Fun) ->
+ run_on_node(Node, Fun, []).
+
+run_on_node(Node, Fun, Args) ->
+ rpc:call(Node, erlang, apply, [Fun, Args]).
+
+%% -------------------------------------------------------------------
+%% Slave node configuration.
+%% -------------------------------------------------------------------
+
+setup_slave_node(Config) ->
+ ok = setup_logger(),
+ ok = setup_feature_flags_file(Config),
+ ok = start_controller(),
+ ok = maybe_enable_feature_flags_v2(Config),
+ ok.
+
+setup_logger() ->
+ logger:set_primary_config(level, debug),
+ ok.
+
+setup_feature_flags_file(Config) ->
+ %% The `feature_flags_file' is set to a specific location in the test log
+ %% directory.
+ FeatureFlagsFile = filename:join(
+ ?config(priv_dir, Config),
+ rabbit_misc:format("feature_flags-~ts", [node()])),
+ ?LOG_INFO("Setting `feature_flags_file to \"~ts\"", [FeatureFlagsFile]),
+ case application:load(rabbit) of
+ ok -> ok;
+ {error, {already_loaded, _}} -> ok
+ end,
+ ok = application:set_env(rabbit, feature_flags_file, FeatureFlagsFile),
+ ok.
+
+start_controller() ->
+ ?LOG_INFO("Starting feature flags controller"),
+ {ok, Pid} = rabbit_ff_controller:start(),
+ ?LOG_INFO("Feature flags controller: ~tp", [Pid]),
+ ok.
+
+maybe_enable_feature_flags_v2(Config) ->
+ EnableFFv2 = ?config(enable_feature_flags_v2, Config),
+ case EnableFFv2 of
+ true -> ok = rabbit_feature_flags:enable(feature_flags_v2);
+ false -> ok
+ end,
+ IsEnabled = rabbit_feature_flags:is_enabled(feature_flags_v2),
+ ?LOG_INFO("`feature_flags_v2` enabled: ~ts", [IsEnabled]),
+ ?assertEqual(EnableFFv2, IsEnabled),
+ ok.
+
+override_running_nodes(Nodes) when is_list(Nodes) ->
+ ct:pal("Overriding (running) remote nodes for ~tp", [Nodes]),
+ _ = [begin
+ ok = rpc:call(
+ Node, rabbit_feature_flags, override_nodes,
+ [Nodes]),
+ ?assertEqual(
+ Nodes,
+ lists:sort(
+ [Node |
+ rpc:call(Node, rabbit_feature_flags, remote_nodes, [])])),
+ ?assertEqual(
+ Nodes,
+ rpc:call(Node, rabbit_ff_controller, all_nodes, [])),
+
+ ok = rpc:call(
+ Node, rabbit_feature_flags, override_running_nodes,
+ [Nodes]),
+ ?assertEqual(
+ Nodes,
+ lists:sort(
+ [Node |
+ rpc:call(
+ Node, rabbit_feature_flags, running_remote_nodes, [])])),
+ ?assertEqual(
+ Nodes,
+ rpc:call(Node, rabbit_ff_controller, running_nodes, []))
+ end
+ || Node <- Nodes],
+ ok.
+
+inject_on_nodes(Nodes, FeatureFlags) ->
+ ct:pal(
+ "Injecting feature flags on nodes~n"
+ " Nodes: ~tp~n"
+ " Feature flags: ~tp~n",
+ [Nodes, FeatureFlags]),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:inject_test_feature_flags(
+ FeatureFlags)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+ ok.
+
+%% -------------------------------------------------------------------
+%% Migration functions.
+%% -------------------------------------------------------------------
+
+-define(PT_MIGRATION_FUN_RUNS, {?MODULE, migration_fun_runs}).
+
+bump_runs() ->
+ Count = persistent_term:get(?PT_MIGRATION_FUN_RUNS, 0),
+ persistent_term:put(?PT_MIGRATION_FUN_RUNS, Count + 1),
+ ok.
+
+mf_count_runs(_FeatureName, _FeatureProps, enable) ->
+ bump_runs(),
+ ok.
+
+mf_wait_and_count_runs(_FeatureName, _FeatureProps, enable) ->
+ Peer = get_peer_proc(),
+ Peer ! {node(), self(), waiting},
+ ?LOG_NOTICE("Migration function: waiting for signal from ~tp...", [Peer]),
+ receive proceed -> ok end,
+ ?LOG_NOTICE("Migration function: unblocked!", []),
+ bump_runs(),
+ ok.
+
+mf_wait_and_count_runs_v2_enable(_Args) ->
+ Peer = get_peer_proc(),
+ Peer ! {node(), self(), waiting},
+ ?LOG_NOTICE("Migration function: waiting for signal from ~tp...", [Peer]),
+ receive proceed -> ok end,
+ ?LOG_NOTICE("Migration function: unblocked!", []),
+ bump_runs(),
+ ok.
+
+mf_wait_and_count_runs_v2_post_enable(_Args) ->
+ Peer = get_peer_proc(),
+ Peer ! {node(), self(), waiting},
+ ?LOG_NOTICE("Migration function: waiting for signal from ~tp...", [Peer]),
+ receive proceed -> ok end,
+ ?LOG_NOTICE("Migration function: unblocked!", []),
+ bump_runs(),
+ ok.
+
+-define(PT_PEER_PROC, {?MODULE, peer_proc}).
+
+record_peer_proc(Peer) ->
+ ?LOG_ALERT("Recording peer=~tp", [Peer]),
+ persistent_term:put(?PT_PEER_PROC, Peer).
+
+get_peer_proc() ->
+ persistent_term:get(?PT_PEER_PROC).
+
+%% -------------------------------------------------------------------
+%% Testcases.
+%% -------------------------------------------------------------------
+
+enable_unknown_feature_flag_on_a_single_node(Config) ->
+ [Node] = ?config(nodes, Config),
+ ok = run_on_node(
+ Node, fun enable_unknown_feature_flag_on_a_single_node/0).
+
+enable_unknown_feature_flag_on_a_single_node() ->
+ FeatureName = ?FUNCTION_NAME,
+ ?assertNot(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+
+ %% The node doesn't know about the feature flag and thus rejects the
+ %% request.
+ ?assertEqual(
+ {error, unsupported}, rabbit_feature_flags:enable(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok.
+
+enable_supported_feature_flag_on_a_single_node(Config) ->
+ [Node] = ?config(nodes, Config),
+ ok = run_on_node(
+ Node, fun enable_supported_feature_flag_on_a_single_node/0).
+
+enable_supported_feature_flag_on_a_single_node() ->
+ FeatureName = ?FUNCTION_NAME,
+ FeatureFlags = #{FeatureName => #{provided_by => ?MODULE,
+ stability => stable}},
+ ?assertEqual(
+ ok, rabbit_feature_flags:inject_test_feature_flags(FeatureFlags)),
+ ?assert(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+
+ ?assertEqual(ok, rabbit_feature_flags:enable(FeatureName)),
+ ?assert(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assert(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok.
+
+enable_unknown_feature_flag_in_a_3node_cluster(Config) ->
+ Nodes = ?config(nodes, Config),
+ connect_nodes(Nodes),
+ override_running_nodes(Nodes),
+
+ FeatureName = ?FUNCTION_NAME,
+
+ ct:pal(
+ "Checking the feature flag is unsupported and disabled on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assertNot(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+
+ %% No nodes know about the feature flag and thus all reject the request.
+ ct:pal("Trying to enable the feature flag on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assertEqual(
+ {error, unsupported},
+ rabbit_feature_flags:enable(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+ ct:pal(
+ "Checking the feature flag is still unsupported and disabled on all "
+ "nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assertNot(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+ ok.
+
+enable_supported_feature_flag_in_a_3node_cluster(Config) ->
+ Nodes = ?config(nodes, Config),
+ connect_nodes(Nodes),
+ override_running_nodes(Nodes),
+
+ FeatureName = ?FUNCTION_NAME,
+ FeatureFlags = #{FeatureName => #{provided_by => ?MODULE,
+ stability => stable}},
+ inject_on_nodes(Nodes, FeatureFlags),
+
+ ct:pal(
+ "Checking the feature flag is supported but disabled on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+
+ %% The first call enables the feature flag, the following calls are
+ %% idempotent and do nothing.
+ ct:pal("Enabling the feature flag on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assertEqual(ok, rabbit_feature_flags:enable(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+ ct:pal("Checking the feature flag is supported and enabled on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assert(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+ ok.
+
+enable_partially_supported_feature_flag_in_a_3node_cluster(Config) ->
+ [FirstNode | OtherNodes] = Nodes = ?config(nodes, Config),
+ connect_nodes(Nodes),
+ override_running_nodes(Nodes),
+ UsingFFv1 = not ?config(enable_feature_flags_v2, Config),
+
+ %% This time, we inject the feature flag on a single node only. The other
+ %% nodes don't know about it.
+ FeatureName = ?FUNCTION_NAME,
+ FeatureFlags = #{FeatureName => #{provided_by => ?MODULE,
+ stability => stable}},
+ inject_on_nodes([FirstNode], FeatureFlags),
+
+ case UsingFFv1 of
+ true ->
+ %% With `feature_flags_v1', the code would have shared the new
+ %% feature flags with remote nodes, so let's run that here. In the
+ %% end, the testcase is similar to
+ %% `enable_supported_feature_flag_in_a_3node_cluster'.
+ ct:pal("Refreshing feature flags after app load"),
+ ok = run_on_node(
+ FirstNode,
+ fun() ->
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:
+ share_new_feature_flags_after_app_load(
+ FeatureFlags, infinity)),
+ ok
+ end,
+ []);
+ false ->
+ ok
+ end,
+
+ ct:pal(
+ "Checking the feature flag is supported but disabled on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+
+ %% The first call enables the feature flag, the following calls are
+ %% idempotent and do nothing.
+ ct:pal("Enabling the feature flag on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:enable(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+ ct:pal(
+ "Checking the feature flag is supported on all nodes and enabled on "
+ "all nodes (v1) or the node knowing it only (v2)"),
+ ok = run_on_node(
+ FirstNode,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assert(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ []),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ case UsingFFv1 of
+ true ->
+ ?assert(
+ rabbit_feature_flags:is_supported(FeatureName)),
+ ?assert(
+ rabbit_feature_flags:is_enabled(FeatureName));
+ false ->
+ ?assert(
+ rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(
+ rabbit_feature_flags:is_enabled(FeatureName))
+ end,
+ ok
+ end,
+ [])
+ || Node <- OtherNodes],
+ ok.
+
+enable_unsupported_feature_flag_in_a_3node_cluster(Config) ->
+ [FirstNode | _OtherNodes] = Nodes = ?config(nodes, Config),
+ connect_nodes(Nodes),
+ override_running_nodes(Nodes),
+
+ %% We inject the feature flag on a single node only. We tell it is
+ %% provided by `rabbit' which was already loaded and scanned while
+ %% configuring the node. This way, we ensure the feature flag is
+ %% considered supported by the node where is was injected, but
+ %% unsupported by other nodes.
+ FeatureName = ?FUNCTION_NAME,
+ FeatureFlags = #{FeatureName => #{provided_by => rabbit,
+ stability => stable}},
+ inject_on_nodes([FirstNode], FeatureFlags),
+
+ ct:pal(
+ "Checking the feature flag is unsupported and disabled on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assertNot(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+
+ %% The feature flag is unsupported, thus all reject the request.
+ ct:pal("Enabling the feature flag on all nodes (denied)"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assertEqual(
+ {error, unsupported},
+ rabbit_feature_flags:enable(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+ ct:pal("Checking the feature flag is still disabled on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+ ok.
+
+enable_feature_flag_in_cluster_and_add_member_after(Config) ->
+ AllNodes = [NewNode | [FirstNode | _] = Nodes] = ?config(nodes, Config),
+ connect_nodes(Nodes),
+ override_running_nodes([NewNode]),
+ override_running_nodes(Nodes),
+
+ FeatureName = ?FUNCTION_NAME,
+ FeatureFlags = #{FeatureName =>
+ #{provided_by => ?MODULE,
+ stability => stable,
+ migration_fun => {?MODULE, mf_count_runs}}},
+ inject_on_nodes(AllNodes, FeatureFlags),
+
+ ct:pal(
+ "Checking the feature flag is supported but disabled on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+
+ ct:pal("Enabling the feature flag in the cluster"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assertEqual(ok, rabbit_feature_flags:enable(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+ ct:pal("Checking the feature flag is enabled in the initial cluster"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+ ct:pal("Checking the feature flag is still disabled on the new node"),
+ ok = run_on_node(
+ NewNode,
+ fun() ->
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ []),
+
+ %% Check compatibility between NewNodes and Nodes.
+ ok = run_on_node(
+ NewNode,
+ fun() ->
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:check_node_compatibility(
+ FirstNode)),
+ ok
+ end, []),
+
+ %% Add node to cluster and synchronize feature flags.
+ connect_nodes(AllNodes),
+ override_running_nodes(AllNodes),
+ ct:pal(
+ "Synchronizing feature flags in the expanded cluster~n"
+ "~n"
+ "NOTE: Error messages about crashed migration functions can be "
+ "ignored for feature~n"
+ " flags other than `~ts`~n"
+ " because they assume they run inside RabbitMQ.",
+ [FeatureName]),
+ ok = run_on_node(
+ NewNode,
+ fun() ->
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:sync_feature_flags_with_cluster(
+ Nodes, true)),
+ ok
+ end, []),
+
+ ct:pal("Checking the feature flag is enabled in the expanded cluster"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_enabled(FeatureName)),
+ %% With both feature flags v1 and v2, the migration
+ %% function is executed on the node where `enable()' was
+ %% called, and then on the node joining the cluster.
+ Count = case Node of
+ FirstNode -> 1;
+ NewNode -> 1;
+ _ -> 0
+ end,
+ ?assertEqual(
+ Count,
+ persistent_term:get(?PT_MIGRATION_FUN_RUNS, 0)),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+ ok.
+
+enable_feature_flag_in_cluster_and_add_member_concurrently_mfv1(Config) ->
+ AllNodes = [NewNode | [FirstNode | _] = Nodes] = ?config(nodes, Config),
+ connect_nodes(Nodes),
+ override_running_nodes([NewNode]),
+ override_running_nodes(Nodes),
+
+ FeatureName = ?FUNCTION_NAME,
+ FeatureFlags = #{FeatureName =>
+ #{provided_by => ?MODULE,
+ stability => stable,
+ migration_fun => {?MODULE, mf_wait_and_count_runs}}},
+ inject_on_nodes(AllNodes, FeatureFlags),
+
+ ct:pal(
+ "Checking the feature flag is supported but disabled on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+
+ ct:pal(
+ "Enabling the feature flag in the cluster (in a separate process)"),
+ Peer = self(),
+ Enabler = spawn_link(
+ fun() ->
+ ok =
+ run_on_node(
+ FirstNode,
+ fun() ->
+ %% The migration function uses the `Peer'
+ %% PID (the process executing the testcase)
+ %% to notify its own PID and wait for a
+ %% signal from `Peer' to proceed and finish
+ %% the migration.
+ record_peer_proc(Peer),
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:enable(
+ FeatureName)),
+ ok
+ end,
+ [])
+ end),
+
+ %% By waiting for the message from one of the migration function
+ %% instances, we make sure the feature flags controller on `FirstNode' is
+ %% blocked and waits for a message from this process. Therefore, we are
+ %% sure the feature flag is in the `state_changing' state and we can try
+ %% to add a new node and sync its feature flags.
+ FirstNodeMigFunPid = receive
+ {FirstNode, MigFunPid1, waiting} -> MigFunPid1
+ end,
+
+ %% Check compatibility between NewNodes and Nodes. This doesn't block.
+ ok = run_on_node(
+ NewNode,
+ fun() ->
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:check_node_compatibility(
+ FirstNode)),
+ ok
+ end, []),
+
+ %% Add node to cluster and synchronize feature flags. The synchronization
+ %% blocks.
+ connect_nodes(AllNodes),
+ override_running_nodes(AllNodes),
+ ct:pal(
+ "Synchronizing feature flags in the expanded cluster (in a separate "
+ "process)~n"
+ "~n"
+ "NOTE: Error messages about crashed migration functions can be "
+ "ignored for feature~n"
+ " flags other than `~ts`~n"
+ " because they assume they run inside RabbitMQ.",
+ [FeatureName]),
+ Syncer = spawn_link(
+ fun() ->
+ ok =
+ run_on_node(
+ NewNode,
+ fun() ->
+ record_peer_proc(Peer),
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:
+ sync_feature_flags_with_cluster(
+ Nodes, true)),
+ ok
+ end, [])
+ end),
+
+ ct:pal(
+ "Checking the feature flag state is changing in the initial cluster"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assertEqual(
+ state_changing,
+ rabbit_feature_flags:is_enabled(
+ FeatureName, non_blocking)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+
+ ct:pal("Checking the feature flag is still disabled on the new node"),
+ ok = run_on_node(
+ NewNode,
+ fun() ->
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ []),
+
+ %% Unblock the migration functions on `Nodes'.
+ UsingFFv1 = not ?config(enable_feature_flags_v2, Config),
+ EnablerMRef = erlang:monitor(process, Enabler),
+ SyncerMRef = erlang:monitor(process, Syncer),
+ unlink(Enabler),
+ unlink(Syncer),
+ ExpectedNodes = case UsingFFv1 of
+ true ->
+ %% With v1, the migration function runs on a
+ %% single node in the cluster only in this
+ %% scenario.
+ %%
+ %% The reason is that the new node joined during
+ %% the migration and the feature flag was marked
+ %% as enabled there as well, even though the
+ %% migration function possibly didn't know about
+ %% it. This is one of the problems
+ %% `feature_flags_v2' fixes.
+ [FirstNode];
+ false ->
+ %% With v2 but still using the old migration
+ %% function API (taking 3 arguments), the
+ %% migration function is executed on the node
+ %% where `enable()' was called, and then on the
+ %% node joining the cluster, thanks to the
+ %% synchronization.
+ [FirstNode, NewNode]
+ end,
+
+ %% Unblock the migration function for which we already consumed the
+ %% `waiting' notification.
+ FirstMigratedNode = node(FirstNodeMigFunPid),
+ ?assertEqual(FirstNode, FirstMigratedNode),
+ ct:pal(
+ "Unblocking first node (~tp @ ~ts)",
+ [FirstNodeMigFunPid, FirstMigratedNode]),
+ FirstNodeMigFunPid ! proceed,
+
+ %% Unblock the rest and collect the node names of all migration functions
+ %% which ran.
+ ct:pal("Unblocking other nodes, including the joining one"),
+ OtherMigratedNodes = [receive
+ {Node, MigFunPid2, waiting} ->
+ MigFunPid2 ! proceed,
+ Node
+ end || Node <- ExpectedNodes -- [FirstMigratedNode]],
+ MigratedNodes = [FirstMigratedNode | OtherMigratedNodes],
+ ?assertEqual(lists:sort(ExpectedNodes), lists:sort(MigratedNodes)),
+
+ ct:pal("Waiting for spawned processes to terminate"),
+ receive
+ {'DOWN', EnablerMRef, process, Enabler, EnablerReason} ->
+ ?assertEqual(normal, EnablerReason)
+ end,
+ receive
+ {'DOWN', SyncerMRef, process, Syncer, SyncerReason} ->
+ ?assertEqual(normal, SyncerReason)
+ end,
+
+ ct:pal("Checking the feature flag is enabled in the expanded cluster"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_enabled(FeatureName)),
+ ?assert(
+ not lists:member(Node, MigratedNodes) orelse
+ 1 =:= persistent_term:get(?PT_MIGRATION_FUN_RUNS, 0)),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+ ok.
+
+enable_feature_flag_in_cluster_and_add_member_concurrently_mfv2(Config) ->
+ AllNodes = [NewNode | [FirstNode | _] = Nodes] = ?config(nodes, Config),
+ connect_nodes(Nodes),
+ override_running_nodes([NewNode]),
+ override_running_nodes(Nodes),
+
+ FeatureName = ?FUNCTION_NAME,
+ FeatureFlags = #{FeatureName =>
+ #{provided_by => ?MODULE,
+ stability => stable,
+ callbacks =>
+ #{enable =>
+ {?MODULE, mf_wait_and_count_runs_v2_enable}}}},
+ inject_on_nodes(AllNodes, FeatureFlags),
+
+ ct:pal(
+ "Checking the feature flag is supported but disabled on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+
+ ct:pal(
+ "Enabling the feature flag in the cluster (in a separate process)"),
+ Peer = self(),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ %% The migration function uses the `Peer' PID (the process
+ %% executing the testcase) to notify its own PID and wait
+ %% for a signal from `Peer' to proceed and finish the
+ %% migration.
+ record_peer_proc(Peer),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+ Enabler = spawn_link(
+ fun() ->
+ ok =
+ run_on_node(
+ FirstNode,
+ fun() ->
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:enable(
+ FeatureName)),
+ ok
+ end,
+ [])
+ end),
+
+ %% By waiting for the message from one of the migration function
+ %% instances, we make sure the feature flags controller on `FirstNode' is
+ %% blocked and waits for a message from this process. Therefore, we are
+ %% sure the feature flag is in the `state_changing' state and we can try
+ %% to add a new node and sync its feature flags.
+ FirstNodeMigFunPid = receive
+ {_Node, MigFunPid1, waiting} -> MigFunPid1
+ end,
+
+ %% Check compatibility between NewNodes and Nodes. This doesn't block.
+ ok = run_on_node(
+ NewNode,
+ fun() ->
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:check_node_compatibility(
+ FirstNode)),
+ ok
+ end, []),
+
+ %% Add node to cluster and synchronize feature flags. The synchronization
+ %% blocks.
+ connect_nodes(AllNodes),
+ override_running_nodes(AllNodes),
+ ct:pal(
+ "Synchronizing feature flags in the expanded cluster (in a separate "
+ "process)~n"
+ "~n"
+ "NOTE: Error messages about crashed migration functions can be "
+ "ignored for feature~n"
+ " flags other than `~ts`~n"
+ " because they assume they run inside RabbitMQ.",
+ [FeatureName]),
+ Syncer = spawn_link(
+ fun() ->
+ ok =
+ run_on_node(
+ NewNode,
+ fun() ->
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:
+ sync_feature_flags_with_cluster(
+ Nodes, true)),
+ ok
+ end, [])
+ end),
+
+ ct:pal(
+ "Checking the feature flag state is changing in the initial cluster"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assertEqual(
+ state_changing,
+ rabbit_feature_flags:is_enabled(
+ FeatureName, non_blocking)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+
+ ct:pal("Checking the feature flag is still disabled on the new node"),
+ ok = run_on_node(
+ NewNode,
+ fun() ->
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ []),
+
+ %% Unblock the migration functions on `Nodes'.
+ EnablerMRef = erlang:monitor(process, Enabler),
+ SyncerMRef = erlang:monitor(process, Syncer),
+ unlink(Enabler),
+ unlink(Syncer),
+
+ %% The migration function runs on all clustered nodes with v2, including
+ %% the one joining the cluster, thanks to the synchronization.
+ %%
+ %% When this testcase runs with feature flags v1, the feature flag we want
+ %% to enable uses the migration function API v2: this implicitly enables
+ %% `feature_flags_v2'. As part of the synchronization, the node still on
+ %% feature flags v1 will try to sync `feature_flags_v2' specificaly first.
+ %% After that, the controller-based sync proceeds.
+ ExpectedNodes = Nodes ++ [NewNode],
+
+ %% Unblock the migration function for which we already consumed the
+ %% `waiting' notification.
+ FirstMigratedNode = node(FirstNodeMigFunPid),
+ ct:pal(
+ "Unblocking first node (~tp @ ~ts)",
+ [FirstNodeMigFunPid, FirstMigratedNode]),
+ FirstNodeMigFunPid ! proceed,
+
+ %% Unblock the rest and collect the node names of all migration functions
+ %% which ran.
+ ct:pal("Unblocking other nodes, including the joining one"),
+ OtherMigratedNodes = [receive
+ {Node, MigFunPid2, waiting} ->
+ MigFunPid2 ! proceed,
+ Node
+ end || Node <- ExpectedNodes -- [FirstMigratedNode]],
+ MigratedNodes = [FirstMigratedNode | OtherMigratedNodes],
+ ?assertEqual(lists:sort(ExpectedNodes), lists:sort(MigratedNodes)),
+
+ ct:pal("Waiting for spawned processes to terminate"),
+ receive
+ {'DOWN', EnablerMRef, process, Enabler, EnablerReason} ->
+ ?assertEqual(normal, EnablerReason)
+ end,
+ receive
+ {'DOWN', SyncerMRef, process, Syncer, SyncerReason} ->
+ ?assertEqual(normal, SyncerReason)
+ end,
+
+ ct:pal("Checking the feature flag is enabled in the expanded cluster"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_enabled(FeatureName)),
+ ?assertEqual(
+ 1,
+ persistent_term:get(?PT_MIGRATION_FUN_RUNS, 0)),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+ ok.
+
+enable_feature_flag_in_cluster_and_remove_member_concurrently_mfv1(Config) ->
+ AllNodes = [LeavingNode | [FirstNode | _] = Nodes] = ?config(
+ nodes, Config),
+ connect_nodes(AllNodes),
+ override_running_nodes(AllNodes),
+
+ FeatureName = ?FUNCTION_NAME,
+ FeatureFlags = #{FeatureName =>
+ #{provided_by => ?MODULE,
+ stability => stable,
+ migration_fun => {?MODULE, mf_wait_and_count_runs}}},
+ inject_on_nodes(AllNodes, FeatureFlags),
+
+ ct:pal(
+ "Checking the feature flag is supported but disabled on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+
+ UsingFFv1 = not ?config(enable_feature_flags_v2, Config),
+ ExpectedRet = case UsingFFv1 of
+ true -> ok;
+ false -> {error, {badrpc, nodedown}}
+ end,
+ ct:pal(
+ "Enabling the feature flag in the cluster (in a separate process)"),
+ Peer = self(),
+ Enabler = spawn_link(
+ fun() ->
+ ok =
+ run_on_node(
+ FirstNode,
+ fun() ->
+ %% The migration function uses the `Peer'
+ %% PID (the process executing the testcase)
+ %% to notify its own PID and wait for a
+ %% signal from `Peer' to proceed and finish
+ %% the migration.
+ record_peer_proc(Peer),
+ ?assertEqual(
+ ExpectedRet,
+ rabbit_feature_flags:enable(
+ FeatureName)),
+ ok
+ end,
+ [])
+ end),
+
+ %% By waiting for the message from one of the migration function
+ %% instances, we make sure the feature flags controller on `FirstNode' is
+ %% blocked and waits for a message from this process. Therefore, we are
+ %% sure the feature flag is in the `state_changing' state and we can try
+ %% to add a new node and sync its feature flags.
+ FirstNodeMigFunPid = receive
+ {_Node, MigFunPid1, waiting} -> MigFunPid1
+ end,
+
+ %% Remove node from cluster.
+ stop_slave_node(LeavingNode),
+ override_running_nodes(Nodes),
+
+ %% Unblock the migration functions on `Nodes'.
+ EnablerMRef = erlang:monitor(process, Enabler),
+ unlink(Enabler),
+
+ %% Unblock the migration function for which we already consumed the
+ %% `waiting' notification.
+ FirstMigratedNode = node(FirstNodeMigFunPid),
+ ct:pal(
+ "Unblocking first node (~tp @ ~ts)",
+ [FirstNodeMigFunPid, FirstMigratedNode]),
+ FirstNodeMigFunPid ! proceed,
+
+ ct:pal("Waiting for spawned processes to terminate"),
+ receive
+ {'DOWN', EnablerMRef, process, Enabler, EnablerReason} ->
+ ?assertEqual(normal, EnablerReason)
+ end,
+
+ ct:pal(
+ "Checking the feature flag is enabled (v1) or disabled (v2) in the "
+ "cluster"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ case UsingFFv1 of
+ true ->
+ ?assert(
+ rabbit_feature_flags:is_enabled(FeatureName));
+ false ->
+ ?assertNot(
+ rabbit_feature_flags:is_enabled(FeatureName))
+ end,
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+ ok.
+
+enable_feature_flag_in_cluster_and_remove_member_concurrently_mfv2(Config) ->
+ AllNodes = [LeavingNode | [FirstNode | _] = Nodes] = ?config(
+ nodes, Config),
+ connect_nodes(AllNodes),
+ override_running_nodes(AllNodes),
+
+ FeatureName = ?FUNCTION_NAME,
+ FeatureFlags = #{FeatureName =>
+ #{provided_by => ?MODULE,
+ stability => stable,
+ callbacks =>
+ #{enable =>
+ {?MODULE, mf_wait_and_count_runs_v2_enable}}}},
+ inject_on_nodes(AllNodes, FeatureFlags),
+
+ UsingFFv1 = not ?config(enable_feature_flags_v2, Config),
+
+ ct:pal(
+ "Checking the feature flag is supported but disabled on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+
+ ct:pal(
+ "Enabling the feature flag in the cluster (in a separate process)"),
+ Peer = self(),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ %% The migration function uses the `Peer' PID (the process
+ %% executing the testcase) to notify its own PID and wait
+ %% for a signal from `Peer' to proceed and finish the
+ %% migration.
+ record_peer_proc(Peer),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+ Enabler = spawn_link(
+ fun() ->
+ ok =
+ run_on_node(
+ FirstNode,
+ fun() ->
+ ?assertEqual(
+ {error, {badrpc, nodedown}},
+ rabbit_feature_flags:enable(
+ FeatureName)),
+ ok
+ end,
+ [])
+ end),
+
+ %% By waiting for the message from one of the migration function
+ %% instances, we make sure the feature flags controller on `FirstNode' is
+ %% blocked and waits for a message from this process. Therefore, we are
+ %% sure the feature flag is in the `state_changing' state and we can try
+ %% to add a new node and sync its feature flags.
+ FirstNodeMigFunPid = receive
+ {FirstNode, MigFunPid1, waiting} -> MigFunPid1
+ end,
+
+ %% Remove node from cluster.
+ stop_slave_node(LeavingNode),
+ override_running_nodes(Nodes),
+
+ %% Unblock the migration functions on `Nodes'.
+ EnablerMRef = erlang:monitor(process, Enabler),
+ unlink(Enabler),
+
+ %% The migration function runs on all clustered nodes with v2.
+ %%
+ %% When this testcase runs with feature flags v1, the feature flag we want
+ %% to enable uses the migration function API v2: this implicitly enables
+ %% `feature_flags_v2'. As part of the synchronization, the node still on
+ %% feature flags v1 will try to sync `feature_flags_v2' specificaly first.
+ %% After that, the controller-based sync proceeds.
+ ExpectedNodes = Nodes,
+
+ %% Unblock the migration function for which we already consumed the
+ %% `waiting' notification.
+ FirstMigratedNode = node(FirstNodeMigFunPid),
+ ?assertEqual(FirstNode, FirstMigratedNode),
+ ct:pal(
+ "Unblocking first node (~tp @ ~ts)",
+ [FirstNodeMigFunPid, FirstMigratedNode]),
+ FirstNodeMigFunPid ! proceed,
+
+ %% Unblock the rest and collect the node names of all migration functions
+ %% which ran.
+ ct:pal("Unblocking other nodes"),
+ OtherMigratedNodes = [receive
+ {Node, MigFunPid2, waiting} ->
+ MigFunPid2 ! proceed,
+ Node
+ end || Node <- ExpectedNodes -- [FirstMigratedNode]],
+ MigratedNodes = [FirstMigratedNode | OtherMigratedNodes],
+ ?assertEqual(lists:sort(ExpectedNodes), lists:sort(MigratedNodes)),
+
+ ct:pal("Waiting for spawned processes to terminate"),
+ receive
+ {'DOWN', EnablerMRef, process, Enabler, EnablerReason} ->
+ ?assertEqual(normal, EnablerReason)
+ end,
+
+ ct:pal(
+ "Checking the feature flag is enabled (v1) or disabled (v2) in the "
+ "cluster"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ case UsingFFv1 of
+ true ->
+ ?assertNot(
+ rabbit_feature_flags:is_enabled(FeatureName));
+ false ->
+ ?assertNot(
+ rabbit_feature_flags:is_enabled(FeatureName))
+ end,
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+ ok.
+
+enable_feature_flag_with_post_enable(Config) ->
+ AllNodes = [NewNode | [FirstNode | _] = Nodes] = ?config(nodes, Config),
+ connect_nodes(Nodes),
+ override_running_nodes([NewNode]),
+ override_running_nodes(Nodes),
+
+ FeatureName = ?FUNCTION_NAME,
+ FeatureFlags = #{FeatureName =>
+ #{provided_by => ?MODULE,
+ stability => stable,
+ callbacks =>
+ #{post_enable =>
+ {?MODULE, mf_wait_and_count_runs_v2_post_enable}}}},
+ inject_on_nodes(AllNodes, FeatureFlags),
+
+ ct:pal(
+ "Checking the feature flag is supported but disabled on all nodes"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_supported(FeatureName)),
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+
+ ct:pal(
+ "Enabling the feature flag in the cluster (in a separate process)"),
+ Peer = self(),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ %% The migration function uses the `Peer' PID (the process
+ %% executing the testcase) to notify its own PID and wait
+ %% for a signal from `Peer' to proceed and finish the
+ %% migration.
+ record_peer_proc(Peer),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+ Enabler = spawn_link(
+ fun() ->
+ ok =
+ run_on_node(
+ FirstNode,
+ fun() ->
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:enable(
+ FeatureName)),
+ ok
+ end,
+ [])
+ end),
+
+ %% By waiting for the message from one of the migration function
+ %% instances, we make sure the feature flags controller on `FirstNode' is
+ %% blocked and waits for a message from this process. Therefore, we are
+ %% sure the feature flag is in the `state_changing' state and we can try
+ %% to add a new node and sync its feature flags.
+ FirstNodeMigFunPid = receive
+ {_Node, MigFunPid1, waiting} -> MigFunPid1
+ end,
+
+ %% Check compatibility between NewNodes and Nodes. This doesn't block.
+ ok = run_on_node(
+ NewNode,
+ fun() ->
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:check_node_compatibility(
+ FirstNode)),
+ ok
+ end, []),
+
+ %% Add node to cluster and synchronize feature flags. The synchronization
+ %% blocks.
+ connect_nodes(AllNodes),
+ override_running_nodes(AllNodes),
+ ct:pal(
+ "Synchronizing feature flags in the expanded cluster (in a separate "
+ "process)~n"
+ "~n"
+ "NOTE: Error messages about crashed migration functions can be "
+ "ignored for feature~n"
+ " flags other than `~ts`~n"
+ " because they assume they run inside RabbitMQ.",
+ [FeatureName]),
+ Syncer = spawn_link(
+ fun() ->
+ ok =
+ run_on_node(
+ NewNode,
+ fun() ->
+ ?assertEqual(
+ ok,
+ rabbit_feature_flags:
+ sync_feature_flags_with_cluster(
+ Nodes, true)),
+ ok
+ end, [])
+ end),
+
+ ct:pal(
+ "Checking the feature flag is enabled in the initial cluster"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(
+ rabbit_feature_flags:is_enabled(
+ FeatureName, non_blocking)),
+ ok
+ end,
+ [])
+ || Node <- Nodes],
+
+ ct:pal("Checking the feature flag is still disabled on the new node"),
+ ok = run_on_node(
+ NewNode,
+ fun() ->
+ ?assertNot(rabbit_feature_flags:is_enabled(FeatureName)),
+ ok
+ end,
+ []),
+
+ %% Unblock the migration functions on `Nodes'.
+ EnablerMRef = erlang:monitor(process, Enabler),
+ SyncerMRef = erlang:monitor(process, Syncer),
+ unlink(Enabler),
+ unlink(Syncer),
+
+ %% The migration function runs on all clustered nodes with v2, including
+ %% the one joining the cluster, thanks to the synchronization.
+ %%
+ %% When this testcase runs with feature flags v1, the feature flag we want
+ %% to enable uses the migration function API v2: this implicitly enables
+ %% `feature_flags_v2'. As part of the synchronization, the node still on
+ %% feature flags v1 will try to sync `feature_flags_v2' specificaly first.
+ %% After that, the controller-based sync proceeds.
+ ExpectedNodes = Nodes ++ [NewNode],
+
+ %% Unblock the migration function for which we already consumed the
+ %% `waiting' notification.
+ FirstMigratedNode = node(FirstNodeMigFunPid),
+ ct:pal(
+ "Unblocking first node (~tp @ ~ts)",
+ [FirstNodeMigFunPid, FirstMigratedNode]),
+ FirstNodeMigFunPid ! proceed,
+
+ %% Unblock the rest and collect the node names of all migration functions
+ %% which ran.
+ ct:pal("Unblocking other nodes, including the joining one"),
+ OtherMigratedNodes = [receive
+ {Node, MigFunPid2, waiting} ->
+ MigFunPid2 ! proceed,
+ Node
+ end || Node <- ExpectedNodes -- [FirstMigratedNode]],
+ MigratedNodes = [FirstMigratedNode | OtherMigratedNodes],
+ ?assertEqual(lists:sort(ExpectedNodes), lists:sort(MigratedNodes)),
+
+ ct:pal("Waiting for spawned processes to terminate"),
+ receive
+ {'DOWN', EnablerMRef, process, Enabler, EnablerReason} ->
+ ?assertEqual(normal, EnablerReason)
+ end,
+ receive
+ {'DOWN', SyncerMRef, process, Syncer, SyncerReason} ->
+ ?assertEqual(normal, SyncerReason)
+ end,
+
+ ct:pal("Checking the feature flag is enabled in the expanded cluster"),
+ _ = [ok =
+ run_on_node(
+ Node,
+ fun() ->
+ ?assert(rabbit_feature_flags:is_enabled(FeatureName)),
+ ?assertEqual(
+ 1,
+ persistent_term:get(?PT_MIGRATION_FUN_RUNS, 0)),
+ ok
+ end,
+ [])
+ || Node <- AllNodes],
+ ok.
diff --git a/deps/rabbit/test/feature_flags_with_unpriveleged_user_SUITE.erl b/deps/rabbit/test/feature_flags_with_unpriveleged_user_SUITE.erl
index d2c5e32bcd..0a8559734e 100644
--- a/deps/rabbit/test/feature_flags_with_unpriveleged_user_SUITE.erl
+++ b/deps/rabbit/test/feature_flags_with_unpriveleged_user_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(feature_flags_with_unpriveleged_user_SUITE).
diff --git a/deps/rabbit/test/lazy_queue_SUITE.erl b/deps/rabbit/test/lazy_queue_SUITE.erl
index 7f91f2c3fb..59361b6b73 100644
--- a/deps/rabbit/test/lazy_queue_SUITE.erl
+++ b/deps/rabbit/test/lazy_queue_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(lazy_queue_SUITE).
diff --git a/deps/rabbit/test/list_consumers_sanity_check_SUITE.erl b/deps/rabbit/test/list_consumers_sanity_check_SUITE.erl
index 0825c3bfaf..a7675066be 100644
--- a/deps/rabbit/test/list_consumers_sanity_check_SUITE.erl
+++ b/deps/rabbit/test/list_consumers_sanity_check_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(list_consumers_sanity_check_SUITE).
diff --git a/deps/rabbit/test/list_queues_online_and_offline_SUITE.erl b/deps/rabbit/test/list_queues_online_and_offline_SUITE.erl
index aa10f52bc2..967b5623c8 100644
--- a/deps/rabbit/test/list_queues_online_and_offline_SUITE.erl
+++ b/deps/rabbit/test/list_queues_online_and_offline_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(list_queues_online_and_offline_SUITE).
diff --git a/deps/rabbit/test/logging_SUITE.erl b/deps/rabbit/test/logging_SUITE.erl
index b8075d758d..a00c9fc823 100644
--- a/deps/rabbit/test/logging_SUITE.erl
+++ b/deps/rabbit/test/logging_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(logging_SUITE).
diff --git a/deps/rabbit/test/maintenance_mode_SUITE.erl b/deps/rabbit/test/maintenance_mode_SUITE.erl
index 728ee3e6f1..69888c9b3a 100644
--- a/deps/rabbit/test/maintenance_mode_SUITE.erl
+++ b/deps/rabbit/test/maintenance_mode_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(maintenance_mode_SUITE).
diff --git a/deps/rabbit/test/many_node_ha_SUITE.erl b/deps/rabbit/test/many_node_ha_SUITE.erl
index 4735cd81d1..fbaa7f90f8 100644
--- a/deps/rabbit/test/many_node_ha_SUITE.erl
+++ b/deps/rabbit/test/many_node_ha_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(many_node_ha_SUITE).
diff --git a/deps/rabbit/test/message_size_limit_SUITE.erl b/deps/rabbit/test/message_size_limit_SUITE.erl
index 486c6a2ce1..e3d0e0c9c7 100644
--- a/deps/rabbit/test/message_size_limit_SUITE.erl
+++ b/deps/rabbit/test/message_size_limit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(message_size_limit_SUITE).
diff --git a/deps/rabbit/test/metrics_SUITE.erl b/deps/rabbit/test/metrics_SUITE.erl
index ee7a603639..f9cd01a82c 100644
--- a/deps/rabbit/test/metrics_SUITE.erl
+++ b/deps/rabbit/test/metrics_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(metrics_SUITE).
-compile(export_all).
diff --git a/deps/rabbit/test/mirrored_supervisor_SUITE.erl b/deps/rabbit/test/mirrored_supervisor_SUITE.erl
index e17c287e5b..9f8880062d 100644
--- a/deps/rabbit/test/mirrored_supervisor_SUITE.erl
+++ b/deps/rabbit/test/mirrored_supervisor_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(mirrored_supervisor_SUITE).
diff --git a/deps/rabbit/test/mirrored_supervisor_SUITE_gs.erl b/deps/rabbit/test/mirrored_supervisor_SUITE_gs.erl
index 43c524685c..aca5581cb2 100644
--- a/deps/rabbit/test/mirrored_supervisor_SUITE_gs.erl
+++ b/deps/rabbit/test/mirrored_supervisor_SUITE_gs.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(mirrored_supervisor_SUITE_gs).
diff --git a/deps/rabbit/test/msg_store_SUITE.erl b/deps/rabbit/test/msg_store_SUITE.erl
index 4b88f1c24b..c47b70bf68 100644
--- a/deps/rabbit/test/msg_store_SUITE.erl
+++ b/deps/rabbit/test/msg_store_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(msg_store_SUITE).
diff --git a/deps/rabbit/test/peer_discovery_classic_config_SUITE.erl b/deps/rabbit/test/peer_discovery_classic_config_SUITE.erl
index 8fb3cf421b..ae4946364b 100644
--- a/deps/rabbit/test/peer_discovery_classic_config_SUITE.erl
+++ b/deps/rabbit/test/peer_discovery_classic_config_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(peer_discovery_classic_config_SUITE).
diff --git a/deps/rabbit/test/peer_discovery_dns_SUITE.erl b/deps/rabbit/test/peer_discovery_dns_SUITE.erl
index 05c7e0a65d..059039785a 100644
--- a/deps/rabbit/test/peer_discovery_dns_SUITE.erl
+++ b/deps/rabbit/test/peer_discovery_dns_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(peer_discovery_dns_SUITE).
diff --git a/deps/rabbit/test/per_user_connection_channel_limit_SUITE.erl b/deps/rabbit/test/per_user_connection_channel_limit_SUITE.erl
index 589fdd97f4..c738a1dcd8 100644
--- a/deps/rabbit/test/per_user_connection_channel_limit_SUITE.erl
+++ b/deps/rabbit/test/per_user_connection_channel_limit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(per_user_connection_channel_limit_SUITE).
diff --git a/deps/rabbit/test/per_user_connection_channel_limit_partitions_SUITE.erl b/deps/rabbit/test/per_user_connection_channel_limit_partitions_SUITE.erl
index ddfa98e649..764873011b 100644
--- a/deps/rabbit/test/per_user_connection_channel_limit_partitions_SUITE.erl
+++ b/deps/rabbit/test/per_user_connection_channel_limit_partitions_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(per_user_connection_channel_limit_partitions_SUITE).
diff --git a/deps/rabbit/test/per_user_connection_channel_tracking_SUITE.erl b/deps/rabbit/test/per_user_connection_channel_tracking_SUITE.erl
index 79190dc2ff..c7a985e2d5 100644
--- a/deps/rabbit/test/per_user_connection_channel_tracking_SUITE.erl
+++ b/deps/rabbit/test/per_user_connection_channel_tracking_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(per_user_connection_channel_tracking_SUITE).
diff --git a/deps/rabbit/test/per_user_connection_tracking_SUITE.erl b/deps/rabbit/test/per_user_connection_tracking_SUITE.erl
index 020df0e8dd..4c5b5c318f 100644
--- a/deps/rabbit/test/per_user_connection_tracking_SUITE.erl
+++ b/deps/rabbit/test/per_user_connection_tracking_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(per_user_connection_tracking_SUITE).
diff --git a/deps/rabbit/test/per_vhost_connection_limit_SUITE.erl b/deps/rabbit/test/per_vhost_connection_limit_SUITE.erl
index 0ff26af40c..c997ea5cf3 100644
--- a/deps/rabbit/test/per_vhost_connection_limit_SUITE.erl
+++ b/deps/rabbit/test/per_vhost_connection_limit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(per_vhost_connection_limit_SUITE).
diff --git a/deps/rabbit/test/per_vhost_connection_limit_partitions_SUITE.erl b/deps/rabbit/test/per_vhost_connection_limit_partitions_SUITE.erl
index ddf7945c43..8d9e66b347 100644
--- a/deps/rabbit/test/per_vhost_connection_limit_partitions_SUITE.erl
+++ b/deps/rabbit/test/per_vhost_connection_limit_partitions_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(per_vhost_connection_limit_partitions_SUITE).
diff --git a/deps/rabbit/test/per_vhost_msg_store_SUITE.erl b/deps/rabbit/test/per_vhost_msg_store_SUITE.erl
index ec1661a7b9..44ec78938c 100644
--- a/deps/rabbit/test/per_vhost_msg_store_SUITE.erl
+++ b/deps/rabbit/test/per_vhost_msg_store_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(per_vhost_msg_store_SUITE).
diff --git a/deps/rabbit/test/per_vhost_queue_limit_SUITE.erl b/deps/rabbit/test/per_vhost_queue_limit_SUITE.erl
index a1e4d5a56a..f343e9835f 100644
--- a/deps/rabbit/test/per_vhost_queue_limit_SUITE.erl
+++ b/deps/rabbit/test/per_vhost_queue_limit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(per_vhost_queue_limit_SUITE).
diff --git a/deps/rabbit/test/policy_SUITE.erl b/deps/rabbit/test/policy_SUITE.erl
index 34c9507878..df321f931c 100644
--- a/deps/rabbit/test/policy_SUITE.erl
+++ b/deps/rabbit/test/policy_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(policy_SUITE).
diff --git a/deps/rabbit/test/priority_queue_SUITE.erl b/deps/rabbit/test/priority_queue_SUITE.erl
index 7877053a5b..c567e6e453 100644
--- a/deps/rabbit/test/priority_queue_SUITE.erl
+++ b/deps/rabbit/test/priority_queue_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(priority_queue_SUITE).
diff --git a/deps/rabbit/test/priority_queue_recovery_SUITE.erl b/deps/rabbit/test/priority_queue_recovery_SUITE.erl
index 38fc48f585..cad466498a 100644
--- a/deps/rabbit/test/priority_queue_recovery_SUITE.erl
+++ b/deps/rabbit/test/priority_queue_recovery_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(priority_queue_recovery_SUITE).
diff --git a/deps/rabbit/test/product_info_SUITE.erl b/deps/rabbit/test/product_info_SUITE.erl
index ee8fcc6554..9789331bf1 100644
--- a/deps/rabbit/test/product_info_SUITE.erl
+++ b/deps/rabbit/test/product_info_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(product_info_SUITE).
diff --git a/deps/rabbit/test/proxy_protocol_SUITE.erl b/deps/rabbit/test/proxy_protocol_SUITE.erl
index 19f94c6873..d9db396e6c 100644
--- a/deps/rabbit/test/proxy_protocol_SUITE.erl
+++ b/deps/rabbit/test/proxy_protocol_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(proxy_protocol_SUITE).
diff --git a/deps/rabbit/test/publisher_confirms_parallel_SUITE.erl b/deps/rabbit/test/publisher_confirms_parallel_SUITE.erl
index 00e0e3016d..1b21e47532 100644
--- a/deps/rabbit/test/publisher_confirms_parallel_SUITE.erl
+++ b/deps/rabbit/test/publisher_confirms_parallel_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(publisher_confirms_parallel_SUITE).
diff --git a/deps/rabbit/test/queue_length_limits_SUITE.erl b/deps/rabbit/test/queue_length_limits_SUITE.erl
index cd7f0e79b6..04d72bcdf2 100644
--- a/deps/rabbit/test/queue_length_limits_SUITE.erl
+++ b/deps/rabbit/test/queue_length_limits_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(queue_length_limits_SUITE).
diff --git a/deps/rabbit/test/queue_master_location_SUITE.erl b/deps/rabbit/test/queue_master_location_SUITE.erl
index e79d48d568..8d0af533f3 100644
--- a/deps/rabbit/test/queue_master_location_SUITE.erl
+++ b/deps/rabbit/test/queue_master_location_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(queue_master_location_SUITE).
diff --git a/deps/rabbit/test/queue_parallel_SUITE.erl b/deps/rabbit/test/queue_parallel_SUITE.erl
index a47b5ba527..8d92d20a8e 100644
--- a/deps/rabbit/test/queue_parallel_SUITE.erl
+++ b/deps/rabbit/test/queue_parallel_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%%
-module(queue_parallel_SUITE).
@@ -275,7 +275,7 @@ subscribe_consumers(Config) ->
?assertEqual(10, proplists:get_value(prefetch_count, Consumer)),
?assertEqual([], proplists:get_value(arguments, Consumer)),
- rabbit_ct_client_helpers:close_channel(Ch).
+ rabbit_ct_client_helpers:close_channel(Ch).
subscribe_with_autoack(Config) ->
{_, Ch} = rabbit_ct_client_helpers:open_connection_and_channel(Config, 0),
diff --git a/deps/rabbit/test/quorum_queue_SUITE.erl b/deps/rabbit/test/quorum_queue_SUITE.erl
index 9eade9560d..2185457230 100644
--- a/deps/rabbit/test/quorum_queue_SUITE.erl
+++ b/deps/rabbit/test/quorum_queue_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(quorum_queue_SUITE).
@@ -2942,7 +2942,7 @@ cancel_and_consume_with_same_tag(Config) ->
ok = cancel(Ch),
-
+
ok.
diff --git a/deps/rabbit/test/rabbit_auth_backend_context_propagation_mock.erl b/deps/rabbit/test/rabbit_auth_backend_context_propagation_mock.erl
index 9dfb9f0876..8e842b613a 100644
--- a/deps/rabbit/test/rabbit_auth_backend_context_propagation_mock.erl
+++ b/deps/rabbit/test/rabbit_auth_backend_context_propagation_mock.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% A mock authn/authz that records information during calls. For testing purposes only.
diff --git a/deps/rabbit/test/rabbit_core_metrics_gc_SUITE.erl b/deps/rabbit/test/rabbit_core_metrics_gc_SUITE.erl
index 64392039e2..34f42e6465 100644
--- a/deps/rabbit/test/rabbit_core_metrics_gc_SUITE.erl
+++ b/deps/rabbit/test/rabbit_core_metrics_gc_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_core_metrics_gc_SUITE).
diff --git a/deps/rabbit/test/rabbit_cuttlefish_SUITE.erl b/deps/rabbit/test/rabbit_cuttlefish_SUITE.erl
new file mode 100644
index 0000000000..bdd1d5ba02
--- /dev/null
+++ b/deps/rabbit/test/rabbit_cuttlefish_SUITE.erl
@@ -0,0 +1,55 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2023-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(rabbit_cuttlefish_SUITE).
+
+-include_lib("eunit/include/eunit.hrl").
+
+-compile(export_all).
+
+all() ->
+ [
+ aggregate_props_empty,
+ aggregate_props_one_group,
+ aggregate_props_two_groups,
+ aggregate_props_with_prefix
+ ].
+
+groups() ->
+ [
+ {parallel_tests, [parallel], all()}
+ ].
+
+aggregate_props_empty(_) ->
+ ?assertEqual(rabbit_cuttlefish:aggregate_props([], []), []).
+
+
+aggregate_props_one_group(_) ->
+ Have = rabbit_cuttlefish:aggregate_props([
+ {["1", "banana"], "apple"},
+ {["1", "orange"], "carrot"}
+ ], []),
+ ?assertEqual(Have,
+ [{<<"1">>, [{<<"banana">>, "apple"},
+ {<<"orange">>, "carrot"}]}]).
+
+aggregate_props_two_groups(_) ->
+ Have = rabbit_cuttlefish:aggregate_props([
+ {["1", "banana"], "apple"},
+ {["2", "orange"], "carrot"}
+ ], []),
+ ?assertEqual(Have,
+ [{<<"1">>, [{<<"banana">>, "apple"}]},
+ {<<"2">>, [{<<"orange">>, "carrot"}]}]).
+
+
+aggregate_props_with_prefix(_) ->
+ Have = rabbit_cuttlefish:aggregate_props([
+ {["pre", "fix", "1", "banana"], "apple"},
+ {["other"], "settings"}
+ ], ["pre", "fix"]),
+ ?assertEqual(Have, [{<<"1">>, [{<<"banana">>, "apple"}]}]).
diff --git a/deps/rabbit/test/rabbit_dummy_protocol_connection_info.erl b/deps/rabbit/test/rabbit_dummy_protocol_connection_info.erl
index c0e9a9d5a7..589b058cb1 100644
--- a/deps/rabbit/test/rabbit_dummy_protocol_connection_info.erl
+++ b/deps/rabbit/test/rabbit_dummy_protocol_connection_info.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% Dummy module to test rabbit_direct:extract_extra_auth_props
diff --git a/deps/rabbit/test/rabbit_fifo_dlx_SUITE.erl b/deps/rabbit/test/rabbit_fifo_dlx_SUITE.erl
index e6da11ae54..43560dcbd8 100644
--- a/deps/rabbit/test/rabbit_fifo_dlx_SUITE.erl
+++ b/deps/rabbit/test/rabbit_fifo_dlx_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(rabbit_fifo_dlx_SUITE).
diff --git a/deps/rabbit/test/rabbit_fifo_dlx_integration_SUITE.erl b/deps/rabbit/test/rabbit_fifo_dlx_integration_SUITE.erl
index 81f0dc0ab3..32907c7226 100644
--- a/deps/rabbit/test/rabbit_fifo_dlx_integration_SUITE.erl
+++ b/deps/rabbit/test/rabbit_fifo_dlx_integration_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(rabbit_fifo_dlx_integration_SUITE).
diff --git a/deps/rabbit/test/rabbit_foo_protocol_connection_info.erl b/deps/rabbit/test/rabbit_foo_protocol_connection_info.erl
index 2e1c304147..05b80c7f0b 100644
--- a/deps/rabbit/test/rabbit_foo_protocol_connection_info.erl
+++ b/deps/rabbit/test/rabbit_foo_protocol_connection_info.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_foo_protocol_connection_info).
diff --git a/deps/rabbit/test/rabbit_ha_test_consumer.erl b/deps/rabbit/test/rabbit_ha_test_consumer.erl
index eb4f53d9b2..144c62d834 100644
--- a/deps/rabbit/test/rabbit_ha_test_consumer.erl
+++ b/deps/rabbit/test/rabbit_ha_test_consumer.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ha_test_consumer).
diff --git a/deps/rabbit/test/rabbit_ha_test_producer.erl b/deps/rabbit/test/rabbit_ha_test_producer.erl
index dec80306d1..172b265822 100644
--- a/deps/rabbit/test/rabbit_ha_test_producer.erl
+++ b/deps/rabbit/test/rabbit_ha_test_producer.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ha_test_producer).
diff --git a/deps/rabbit/test/rabbit_stream_queue_SUITE.erl b/deps/rabbit/test/rabbit_stream_queue_SUITE.erl
index 0498393078..ba6d2e5406 100644
--- a/deps/rabbit/test/rabbit_stream_queue_SUITE.erl
+++ b/deps/rabbit/test/rabbit_stream_queue_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_queue_SUITE).
diff --git a/deps/rabbit/test/rabbit_stream_sac_coordinator_SUITE.erl b/deps/rabbit/test/rabbit_stream_sac_coordinator_SUITE.erl
new file mode 100644
index 0000000000..bd82ed681f
--- /dev/null
+++ b/deps/rabbit/test/rabbit_stream_sac_coordinator_SUITE.erl
@@ -0,0 +1,418 @@
+%% The contents of this file are subject to the Mozilla Public License
+%% Version 2.0 (the "License"); you may not use this file except in
+%% compliance with the License. You may obtain a copy of the License
+%% at https://www.mozilla.org/en-US/MPL/2.0/
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and
+%% limitations under the License.
+%%
+%% The Original Code is RabbitMQ.
+%%
+%% The Initial Developer of the Original Code is Pivotal Software, Inc.
+%% Copyright (c) 2021-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(rabbit_stream_sac_coordinator_SUITE).
+
+-compile(export_all).
+
+-include_lib("eunit/include/eunit.hrl").
+-include_lib("rabbit/src/rabbit_stream_sac_coordinator.hrl").
+
+%%%===================================================================
+%%% Common Test callbacks
+%%%===================================================================
+
+-define(STATE, rabbit_stream_sac_coordinator).
+
+all() ->
+ [{group, tests}].
+
+%% replicate eunit like test resolution
+all_tests() ->
+ [F
+ || {F, _} <- ?MODULE:module_info(functions),
+ re:run(atom_to_list(F), "_test$") /= nomatch].
+
+groups() ->
+ [{tests, [], all_tests()}].
+
+init_per_suite(Config) ->
+ Config.
+
+end_per_suite(_Config) ->
+ ok.
+
+init_per_group(_Group, Config) ->
+ Config.
+
+end_per_group(_Group, _Config) ->
+ ok.
+
+init_per_testcase(_TestCase, Config) ->
+ Config.
+
+end_per_testcase(_TestCase, _Config) ->
+ ok.
+
+simple_sac_test(_) ->
+ Stream = <<"stream">>,
+ ConsumerName = <<"app">>,
+ ConnectionPid = self(),
+ GroupId = {<<"/">>, Stream, ConsumerName},
+ Command0 =
+ register_consumer_command(Stream, -1, ConsumerName, ConnectionPid, 0),
+ State0 = state(),
+ {#?STATE{groups = #{GroupId := #group{consumers = Consumers1}}} =
+ State1,
+ {ok, Active1}, Effects1} =
+ rabbit_stream_sac_coordinator:apply(Command0, State0),
+ ?assert(Active1),
+ ?assertEqual([consumer(ConnectionPid, 0, true)], Consumers1),
+ assertSendMessageEffect(ConnectionPid, 0, true, Effects1),
+
+ Command1 =
+ register_consumer_command(Stream, -1, ConsumerName, ConnectionPid, 1),
+ {#?STATE{groups = #{GroupId := #group{consumers = Consumers2}}} =
+ State2,
+ {ok, Active2}, Effects2} =
+ rabbit_stream_sac_coordinator:apply(Command1, State1),
+ ?assertNot(Active2),
+ ?assertEqual([consumer(ConnectionPid, 0, true),
+ consumer(ConnectionPid, 1, false)],
+ Consumers2),
+ assertEmpty(Effects2),
+
+ Command2 =
+ register_consumer_command(Stream, -1, ConsumerName, ConnectionPid, 2),
+ {#?STATE{groups = #{GroupId := #group{consumers = Consumers3}}} =
+ State3,
+ {ok, Active3}, Effects3} =
+ rabbit_stream_sac_coordinator:apply(Command2, State2),
+ ?assertNot(Active3),
+ ?assertEqual([consumer(ConnectionPid, 0, true),
+ consumer(ConnectionPid, 1, false),
+ consumer(ConnectionPid, 2, false)],
+ Consumers3),
+ assertEmpty(Effects3),
+
+ Command3 =
+ unregister_consumer_command(Stream, ConsumerName, ConnectionPid, 0),
+ {#?STATE{groups = #{GroupId := #group{consumers = Consumers4}}} =
+ State4,
+ ok, Effects4} =
+ rabbit_stream_sac_coordinator:apply(Command3, State3),
+ ?assertEqual([consumer(ConnectionPid, 1, true),
+ consumer(ConnectionPid, 2, false)],
+ Consumers4),
+ assertSendMessageEffect(ConnectionPid, 1, true, Effects4),
+
+ Command4 =
+ unregister_consumer_command(Stream, ConsumerName, ConnectionPid, 1),
+ {#?STATE{groups = #{GroupId := #group{consumers = Consumers5}}} =
+ State5,
+ ok, Effects5} =
+ rabbit_stream_sac_coordinator:apply(Command4, State4),
+ ?assertEqual([consumer(ConnectionPid, 2, true)], Consumers5),
+ assertSendMessageEffect(ConnectionPid, 2, true, Effects5),
+
+ Command5 =
+ unregister_consumer_command(Stream, ConsumerName, ConnectionPid, 2),
+ {#?STATE{groups = Groups6}, ok, Effects6} =
+ rabbit_stream_sac_coordinator:apply(Command5, State5),
+ assertEmpty(Groups6),
+ assertEmpty(Effects6),
+
+ ok.
+
+super_stream_partition_sac_test(_) ->
+ Stream = <<"stream">>,
+ ConsumerName = <<"app">>,
+ ConnectionPid = self(),
+ GroupId = {<<"/">>, Stream, ConsumerName},
+ Command0 =
+ register_consumer_command(Stream, 1, ConsumerName, ConnectionPid, 0),
+ State0 = state(),
+ {#?STATE{groups = #{GroupId := #group{consumers = Consumers1}}} =
+ State1,
+ {ok, Active1}, Effects1} =
+ rabbit_stream_sac_coordinator:apply(Command0, State0),
+ ?assert(Active1),
+ ?assertEqual([consumer(ConnectionPid, 0, true)], Consumers1),
+ assertSendMessageEffect(ConnectionPid, 0, true, Effects1),
+
+ Command1 =
+ register_consumer_command(Stream, 1, ConsumerName, ConnectionPid, 1),
+ {#?STATE{groups = #{GroupId := #group{consumers = Consumers2}}} =
+ State2,
+ {ok, Active2}, Effects2} =
+ rabbit_stream_sac_coordinator:apply(Command1, State1),
+ %% never active on registration
+ ?assertNot(Active2),
+ %% all consumers inactive, until the former active one steps down and activates the new consumer
+ ?assertEqual([consumer(ConnectionPid, 0, false),
+ consumer(ConnectionPid, 1, false)],
+ Consumers2),
+ assertSendMessageSteppingDownEffect(ConnectionPid, 0, Effects2),
+
+ Command2 = activate_consumer_command(Stream, ConsumerName),
+ {#?STATE{groups = #{GroupId := #group{consumers = Consumers3}}} =
+ State3,
+ ok, Effects3} =
+ rabbit_stream_sac_coordinator:apply(Command2, State2),
+
+ %% 1 (partition index) % 2 (consumer count) = 1 (active consumer index)
+ ?assertEqual([consumer(ConnectionPid, 0, false),
+ consumer(ConnectionPid, 1, true)],
+ Consumers3),
+ assertSendMessageEffect(ConnectionPid, 1, true, Effects3),
+
+ Command3 =
+ register_consumer_command(Stream, 1, ConsumerName, ConnectionPid, 2),
+ {#?STATE{groups = #{GroupId := #group{consumers = Consumers4}}} =
+ State4,
+ {ok, Active4}, Effects4} =
+ rabbit_stream_sac_coordinator:apply(Command3, State3),
+ %% never active on registration
+ ?assertNot(Active4),
+ %% 1 (partition index) % 3 (consumer count) = 1 (active consumer index)
+ %% the active consumer stays the same
+ ?assertEqual([consumer(ConnectionPid, 0, false),
+ consumer(ConnectionPid, 1, true),
+ consumer(ConnectionPid, 2, false)],
+ Consumers4),
+ assertEmpty(Effects4),
+
+ Command4 =
+ unregister_consumer_command(Stream, ConsumerName, ConnectionPid, 0),
+ {#?STATE{groups = #{GroupId := #group{consumers = Consumers5}}} =
+ State5,
+ ok, Effects5} =
+ rabbit_stream_sac_coordinator:apply(Command4, State4),
+ %% 1 (partition index) % 2 (consumer count) = 1 (active consumer index)
+ %% the active consumer will move from sub 1 to sub 2
+ ?assertEqual([consumer(ConnectionPid, 1, false),
+ consumer(ConnectionPid, 2, false)],
+ Consumers5),
+
+ assertSendMessageSteppingDownEffect(ConnectionPid, 1, Effects5),
+
+ Command5 = activate_consumer_command(Stream, ConsumerName),
+ {#?STATE{groups = #{GroupId := #group{consumers = Consumers6}}} =
+ State6,
+ ok, Effects6} =
+ rabbit_stream_sac_coordinator:apply(Command5, State5),
+
+ ?assertEqual([consumer(ConnectionPid, 1, false),
+ consumer(ConnectionPid, 2, true)],
+ Consumers6),
+ assertSendMessageEffect(ConnectionPid, 2, true, Effects6),
+
+ Command6 =
+ unregister_consumer_command(Stream, ConsumerName, ConnectionPid, 1),
+ {#?STATE{groups = #{GroupId := #group{consumers = Consumers7}}} =
+ State7,
+ ok, Effects7} =
+ rabbit_stream_sac_coordinator:apply(Command6, State6),
+ ?assertEqual([consumer(ConnectionPid, 2, true)], Consumers7),
+ assertEmpty(Effects7),
+
+ Command7 =
+ unregister_consumer_command(Stream, ConsumerName, ConnectionPid, 2),
+ {#?STATE{groups = Groups8}, ok, Effects8} =
+ rabbit_stream_sac_coordinator:apply(Command7, State7),
+ assertEmpty(Groups8),
+ assertEmpty(Effects8),
+
+ ok.
+
+ensure_monitors_test(_) ->
+ GroupId = {<<"/">>, <<"stream">>, <<"app">>},
+ Group =
+ cgroup([consumer(self(), 0, true), consumer(self(), 1, false)]),
+ State0 = state(#{GroupId => Group}),
+ Monitors0 = #{},
+ Command0 =
+ register_consumer_command(<<"stream">>, -1, <<"app">>, self(), 0),
+ {#?STATE{pids_groups = PidsGroups1} = State1, Monitors1, Effects1} =
+ rabbit_stream_sac_coordinator:ensure_monitors(Command0,
+ State0,
+ Monitors0,
+ []),
+ assertSize(1, PidsGroups1),
+ assertSize(1, maps:get(self(), PidsGroups1)),
+ ?assertEqual(#{self() => sac}, Monitors1),
+ ?assertEqual([{monitor, process, self()}, {monitor, node, node()}],
+ Effects1),
+
+ Command1 =
+ register_consumer_command(<<"stream">>, -1, <<"app">>, self(), 1),
+
+ {#?STATE{pids_groups = PidsGroups2} = State2, Monitors2, Effects2} =
+ rabbit_stream_sac_coordinator:ensure_monitors(Command1,
+ State1,
+ Monitors1,
+ []),
+ assertSize(1, PidsGroups2),
+ assertSize(1, maps:get(self(), PidsGroups2)),
+ ?assertEqual(#{self() => sac}, Monitors2),
+ ?assertEqual([{monitor, process, self()}, {monitor, node, node()}],
+ Effects2),
+
+ Group2 = cgroup([consumer(self(), 1, true)]),
+
+ Command2 =
+ unregister_consumer_command(<<"stream">>, <<"app">>, self(), 0),
+
+ {#?STATE{pids_groups = PidsGroups3} = State3, Monitors3, Effects3} =
+ rabbit_stream_sac_coordinator:ensure_monitors(Command2,
+ State2#?STATE{groups =
+ #{GroupId
+ =>
+ Group2}},
+ Monitors2,
+ []),
+ assertSize(1, PidsGroups3),
+ assertSize(1, maps:get(self(), PidsGroups3)),
+ ?assertEqual(#{self() => sac}, Monitors3),
+ ?assertEqual([], Effects3),
+
+ %% trying with an unknown connection PID
+ %% the function should not change anything
+ UnknownConnectionPid = spawn(fun() -> ok end),
+ PassthroughCommand =
+ unregister_consumer_command(<<"stream">>,
+ <<"app">>,
+ UnknownConnectionPid,
+ 0),
+
+ {State3, Monitors3, Effects3} =
+ rabbit_stream_sac_coordinator:ensure_monitors(PassthroughCommand,
+ State3,
+ Monitors3,
+ []),
+
+ Command3 =
+ unregister_consumer_command(<<"stream">>, <<"app">>, self(), 1),
+
+ {#?STATE{pids_groups = PidsGroups4} = _State4, Monitors4, Effects4} =
+ rabbit_stream_sac_coordinator:ensure_monitors(Command3,
+ State3#?STATE{groups =
+ #{}},
+ Monitors3,
+ []),
+ assertEmpty(PidsGroups4),
+ assertEmpty(Monitors4),
+ ?assertEqual([{demonitor, process, self()}], Effects4),
+
+ ok.
+
+handle_connection_down_test(_) ->
+ GroupId = {<<"/">>, <<"stream">>, <<"app">>},
+ Pid0 = self(),
+ Pid1 = spawn(fun() -> ok end),
+ Group =
+ cgroup([consumer(Pid0, 0, true), consumer(Pid1, 1, false),
+ consumer(Pid0, 2, false)]),
+ State0 =
+ state(#{GroupId => Group},
+ #{Pid0 => maps:from_list([{GroupId, true}]),
+ Pid1 => maps:from_list([{GroupId, true}])}),
+
+ {#?STATE{pids_groups = PidsGroups1, groups = Groups1} = State1,
+ Effects1} =
+ rabbit_stream_sac_coordinator:handle_connection_down(Pid0, State0),
+ assertSize(1, PidsGroups1),
+ assertSize(1, maps:get(Pid1, PidsGroups1)),
+ assertSendMessageEffect(Pid1, 1, true, Effects1),
+ ?assertEqual(#{GroupId => cgroup([consumer(Pid1, 1, true)])},
+ Groups1),
+ {#?STATE{pids_groups = PidsGroups2, groups = Groups2} = _State2,
+ Effects2} =
+ rabbit_stream_sac_coordinator:handle_connection_down(Pid1, State1),
+ assertEmpty(PidsGroups2),
+ assertEmpty(Effects2),
+ assertEmpty(Groups2),
+
+ ok.
+
+assertSize(Expected, []) ->
+ ?assertEqual(Expected, 0);
+assertSize(Expected, Map) when is_map(Map) ->
+ ?assertEqual(Expected, maps:size(Map));
+assertSize(Expected, List) when is_list(List) ->
+ ?assertEqual(Expected, length(List)).
+
+assertEmpty(Data) ->
+ assertSize(0, Data).
+
+consumer(Pid, SubId, Active) ->
+ #consumer{pid = Pid,
+ subscription_id = SubId,
+ owner = <<"owning connection label">>,
+ active = Active}.
+
+cgroup(Consumers) ->
+ cgroup(-1, Consumers).
+
+cgroup(PartitionIndex, Consumers) ->
+ #group{partition_index = PartitionIndex, consumers = Consumers}.
+
+state() ->
+ state(#{}).
+
+state(Groups) ->
+ state(Groups, #{}).
+
+state(Groups, PidsGroups) ->
+ #?STATE{groups = Groups, pids_groups = PidsGroups}.
+
+register_consumer_command(Stream,
+ PartitionIndex,
+ ConsumerName,
+ ConnectionPid,
+ SubId) ->
+ #command_register_consumer{vhost = <<"/">>,
+ stream = Stream,
+ partition_index = PartitionIndex,
+ consumer_name = ConsumerName,
+ connection_pid = ConnectionPid,
+ owner = <<"owning connection label">>,
+ subscription_id = SubId}.
+
+unregister_consumer_command(Stream,
+ ConsumerName,
+ ConnectionPid,
+ SubId) ->
+ #command_unregister_consumer{vhost = <<"/">>,
+ stream = Stream,
+ consumer_name = ConsumerName,
+ connection_pid = ConnectionPid,
+ subscription_id = SubId}.
+
+activate_consumer_command(Stream, ConsumerName) ->
+ #command_activate_consumer{vhost = <<"/">>,
+ stream = Stream,
+ consumer_name = ConsumerName}.
+
+assertSendMessageEffect(Pid, SubId, Active, [Effect]) ->
+ ?assertEqual({mod_call,
+ rabbit_stream_sac_coordinator,
+ send_message,
+ [Pid,
+ {sac,
+ {{subscription_id, SubId}, {active, Active},
+ {extra, []}}}]},
+ Effect).
+
+assertSendMessageSteppingDownEffect(Pid, SubId, [Effect]) ->
+ ?assertEqual({mod_call,
+ rabbit_stream_sac_coordinator,
+ send_message,
+ [Pid,
+ {sac,
+ {{subscription_id, SubId}, {active, false},
+ {extra, [{stepping_down, true}]}}}]},
+ Effect).
diff --git a/deps/rabbit/test/rabbitmq_queues_cli_integration_SUITE.erl b/deps/rabbit/test/rabbitmq_queues_cli_integration_SUITE.erl
index 5b956ec809..88943f737a 100644
--- a/deps/rabbit/test/rabbitmq_queues_cli_integration_SUITE.erl
+++ b/deps/rabbit/test/rabbitmq_queues_cli_integration_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmq_queues_cli_integration_SUITE).
diff --git a/deps/rabbit/test/rabbitmqctl_integration_SUITE.erl b/deps/rabbit/test/rabbitmqctl_integration_SUITE.erl
index 4e71267470..9dbeef1415 100644
--- a/deps/rabbit/test/rabbitmqctl_integration_SUITE.erl
+++ b/deps/rabbit/test/rabbitmqctl_integration_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmqctl_integration_SUITE).
diff --git a/deps/rabbit/test/rabbitmqctl_shutdown_SUITE.erl b/deps/rabbit/test/rabbitmqctl_shutdown_SUITE.erl
index f1080625a0..4d091d1c71 100644
--- a/deps/rabbit/test/rabbitmqctl_shutdown_SUITE.erl
+++ b/deps/rabbit/test/rabbitmqctl_shutdown_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmqctl_shutdown_SUITE).
diff --git a/deps/rabbit/test/signal_handling_SUITE.erl b/deps/rabbit/test/signal_handling_SUITE.erl
index 79caf96580..136aa7bee5 100644
--- a/deps/rabbit/test/signal_handling_SUITE.erl
+++ b/deps/rabbit/test/signal_handling_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(signal_handling_SUITE).
diff --git a/deps/rabbit/test/simple_ha_SUITE.erl b/deps/rabbit/test/simple_ha_SUITE.erl
index 08bb52e567..920d67bbc1 100644
--- a/deps/rabbit/test/simple_ha_SUITE.erl
+++ b/deps/rabbit/test/simple_ha_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(simple_ha_SUITE).
diff --git a/deps/rabbit/test/single_active_consumer_SUITE.erl b/deps/rabbit/test/single_active_consumer_SUITE.erl
index 2e06e9585e..c522c63b63 100644
--- a/deps/rabbit/test/single_active_consumer_SUITE.erl
+++ b/deps/rabbit/test/single_active_consumer_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(single_active_consumer_SUITE).
@@ -141,7 +141,7 @@ fallback_to_another_consumer_when_first_one_is_cancelled(Config) ->
{cancel_ok, FirstActiveConsumer} = wait_for_cancel_ok(),
[amqp_channel:cast(Ch, Publish, #amqp_msg{payload = <<"foobar">>}) || _X <- lists:seq(MessageCount div 2 + 1, MessageCount - 1)],
-
+
{ok, {MessagesPerConsumer2, _}} = wait_for_messages(MessageCount div 2 - 1),
SecondActiveConsumerInList = maps:keys(maps:filter(
fun(CTag, Count) -> Count > 0 andalso CTag /= FirstActiveConsumer end,
diff --git a/deps/rabbit/test/sync_detection_SUITE.erl b/deps/rabbit/test/sync_detection_SUITE.erl
index ba69250b34..4bd14191b3 100644
--- a/deps/rabbit/test/sync_detection_SUITE.erl
+++ b/deps/rabbit/test/sync_detection_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(sync_detection_SUITE).
diff --git a/deps/rabbit/test/term_to_binary_compat_prop_SUITE.erl b/deps/rabbit/test/term_to_binary_compat_prop_SUITE.erl
index 91a1d5cb8e..aef0d8a68e 100644
--- a/deps/rabbit/test/term_to_binary_compat_prop_SUITE.erl
+++ b/deps/rabbit/test/term_to_binary_compat_prop_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
diff --git a/deps/rabbit/test/topic_permission_SUITE.erl b/deps/rabbit/test/topic_permission_SUITE.erl
index 06c6f18fab..43e9dabd34 100644
--- a/deps/rabbit/test/topic_permission_SUITE.erl
+++ b/deps/rabbit/test/topic_permission_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(topic_permission_SUITE).
diff --git a/deps/rabbit/test/unit_access_control_SUITE.erl b/deps/rabbit/test/unit_access_control_SUITE.erl
index ccbd764b3f..475768725f 100644
--- a/deps/rabbit/test/unit_access_control_SUITE.erl
+++ b/deps/rabbit/test/unit_access_control_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_access_control_SUITE).
diff --git a/deps/rabbit/test/unit_access_control_authn_authz_context_propagation_SUITE.erl b/deps/rabbit/test/unit_access_control_authn_authz_context_propagation_SUITE.erl
index e7d54cab12..c8dcab98f6 100644
--- a/deps/rabbit/test/unit_access_control_authn_authz_context_propagation_SUITE.erl
+++ b/deps/rabbit/test/unit_access_control_authn_authz_context_propagation_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_access_control_authn_authz_context_propagation_SUITE).
diff --git a/deps/rabbit/test/unit_access_control_credential_validation_SUITE.erl b/deps/rabbit/test/unit_access_control_credential_validation_SUITE.erl
index 4255b1d443..4cc7608154 100644
--- a/deps/rabbit/test/unit_access_control_credential_validation_SUITE.erl
+++ b/deps/rabbit/test/unit_access_control_credential_validation_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_access_control_credential_validation_SUITE).
diff --git a/deps/rabbit/test/unit_amqp091_content_framing_SUITE.erl b/deps/rabbit/test/unit_amqp091_content_framing_SUITE.erl
index 61e004f10d..72b5be08e5 100644
--- a/deps/rabbit/test/unit_amqp091_content_framing_SUITE.erl
+++ b/deps/rabbit/test/unit_amqp091_content_framing_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_amqp091_content_framing_SUITE).
diff --git a/deps/rabbit/test/unit_amqp091_server_properties_SUITE.erl b/deps/rabbit/test/unit_amqp091_server_properties_SUITE.erl
index 6de9a91950..5d3ca4eb51 100644
--- a/deps/rabbit/test/unit_amqp091_server_properties_SUITE.erl
+++ b/deps/rabbit/test/unit_amqp091_server_properties_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_amqp091_server_properties_SUITE).
diff --git a/deps/rabbit/test/unit_app_management_SUITE.erl b/deps/rabbit/test/unit_app_management_SUITE.erl
index fb113b0b8a..8666c568c5 100644
--- a/deps/rabbit/test/unit_app_management_SUITE.erl
+++ b/deps/rabbit/test/unit_app_management_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_app_management_SUITE).
diff --git a/deps/rabbit/test/unit_cluster_formation_locking_mocks_SUITE.erl b/deps/rabbit/test/unit_cluster_formation_locking_mocks_SUITE.erl
index 73ece293c5..7b5985e586 100644
--- a/deps/rabbit/test/unit_cluster_formation_locking_mocks_SUITE.erl
+++ b/deps/rabbit/test/unit_cluster_formation_locking_mocks_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_cluster_formation_locking_mocks_SUITE).
diff --git a/deps/rabbit/test/unit_collections_SUITE.erl b/deps/rabbit/test/unit_collections_SUITE.erl
index b89ff688a7..3291866c1f 100644
--- a/deps/rabbit/test/unit_collections_SUITE.erl
+++ b/deps/rabbit/test/unit_collections_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_collections_SUITE).
diff --git a/deps/rabbit/test/unit_config_value_encryption_SUITE.erl b/deps/rabbit/test/unit_config_value_encryption_SUITE.erl
index 905a0e7692..c4d740ba8d 100644
--- a/deps/rabbit/test/unit_config_value_encryption_SUITE.erl
+++ b/deps/rabbit/test/unit_config_value_encryption_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_config_value_encryption_SUITE).
diff --git a/deps/rabbit/test/unit_connection_tracking_SUITE.erl b/deps/rabbit/test/unit_connection_tracking_SUITE.erl
index 76fc246bcf..71b0bf6aee 100644
--- a/deps/rabbit/test/unit_connection_tracking_SUITE.erl
+++ b/deps/rabbit/test/unit_connection_tracking_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_connection_tracking_SUITE).
diff --git a/deps/rabbit/test/unit_credit_flow_SUITE.erl b/deps/rabbit/test/unit_credit_flow_SUITE.erl
index 6229050de6..a90090dd68 100644
--- a/deps/rabbit/test/unit_credit_flow_SUITE.erl
+++ b/deps/rabbit/test/unit_credit_flow_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_credit_flow_SUITE).
diff --git a/deps/rabbit/test/unit_disk_monitor_SUITE.erl b/deps/rabbit/test/unit_disk_monitor_SUITE.erl
index 47b17f09f5..ad357d55bd 100644
--- a/deps/rabbit/test/unit_disk_monitor_SUITE.erl
+++ b/deps/rabbit/test/unit_disk_monitor_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_disk_monitor_SUITE).
diff --git a/deps/rabbit/test/unit_file_handle_cache_SUITE.erl b/deps/rabbit/test/unit_file_handle_cache_SUITE.erl
index 4fa045e732..14b6370ef5 100644
--- a/deps/rabbit/test/unit_file_handle_cache_SUITE.erl
+++ b/deps/rabbit/test/unit_file_handle_cache_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_file_handle_cache_SUITE).
diff --git a/deps/rabbit/test/unit_gen_server2_SUITE.erl b/deps/rabbit/test/unit_gen_server2_SUITE.erl
index fb1d80aa0d..b12fa0ab84 100644
--- a/deps/rabbit/test/unit_gen_server2_SUITE.erl
+++ b/deps/rabbit/test/unit_gen_server2_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_gen_server2_SUITE).
diff --git a/deps/rabbit/test/unit_gm_SUITE.erl b/deps/rabbit/test/unit_gm_SUITE.erl
index 101a911bb8..870f93ff52 100644
--- a/deps/rabbit/test/unit_gm_SUITE.erl
+++ b/deps/rabbit/test/unit_gm_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_gm_SUITE).
diff --git a/deps/rabbit/test/unit_log_management_SUITE.erl b/deps/rabbit/test/unit_log_management_SUITE.erl
index 3b4848aad4..1ee9c60f08 100644
--- a/deps/rabbit/test/unit_log_management_SUITE.erl
+++ b/deps/rabbit/test/unit_log_management_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_log_management_SUITE).
diff --git a/deps/rabbit/test/unit_operator_policy_SUITE.erl b/deps/rabbit/test/unit_operator_policy_SUITE.erl
index bb6e869102..be01124a2e 100644
--- a/deps/rabbit/test/unit_operator_policy_SUITE.erl
+++ b/deps/rabbit/test/unit_operator_policy_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_operator_policy_SUITE).
diff --git a/deps/rabbit/test/unit_pg_local_SUITE.erl b/deps/rabbit/test/unit_pg_local_SUITE.erl
index 40a299252b..8037491813 100644
--- a/deps/rabbit/test/unit_pg_local_SUITE.erl
+++ b/deps/rabbit/test/unit_pg_local_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_pg_local_SUITE).
diff --git a/deps/rabbit/test/unit_plugin_directories_SUITE.erl b/deps/rabbit/test/unit_plugin_directories_SUITE.erl
index f3c4603b5c..6b3e5a8c88 100644
--- a/deps/rabbit/test/unit_plugin_directories_SUITE.erl
+++ b/deps/rabbit/test/unit_plugin_directories_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_plugin_directories_SUITE).
diff --git a/deps/rabbit/test/unit_plugin_versioning_SUITE.erl b/deps/rabbit/test/unit_plugin_versioning_SUITE.erl
index ade79555b6..ed7e1b3cbb 100644
--- a/deps/rabbit/test/unit_plugin_versioning_SUITE.erl
+++ b/deps/rabbit/test/unit_plugin_versioning_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_plugin_versioning_SUITE).
diff --git a/deps/rabbit/test/unit_policy_validators_SUITE.erl b/deps/rabbit/test/unit_policy_validators_SUITE.erl
index 9621aea1d3..1b5ee4063e 100644
--- a/deps/rabbit/test/unit_policy_validators_SUITE.erl
+++ b/deps/rabbit/test/unit_policy_validators_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_policy_validators_SUITE).
diff --git a/deps/rabbit/test/unit_priority_queue_SUITE.erl b/deps/rabbit/test/unit_priority_queue_SUITE.erl
index 95af76f654..154a56cc4c 100644
--- a/deps/rabbit/test/unit_priority_queue_SUITE.erl
+++ b/deps/rabbit/test/unit_priority_queue_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_priority_queue_SUITE).
diff --git a/deps/rabbit/test/unit_queue_consumers_SUITE.erl b/deps/rabbit/test/unit_queue_consumers_SUITE.erl
index 4a582926c8..4c8bc21d91 100644
--- a/deps/rabbit/test/unit_queue_consumers_SUITE.erl
+++ b/deps/rabbit/test/unit_queue_consumers_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_queue_consumers_SUITE).
diff --git a/deps/rabbit/test/unit_stats_and_metrics_SUITE.erl b/deps/rabbit/test/unit_stats_and_metrics_SUITE.erl
index eea4bb04b7..25f7653eae 100644
--- a/deps/rabbit/test/unit_stats_and_metrics_SUITE.erl
+++ b/deps/rabbit/test/unit_stats_and_metrics_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_stats_and_metrics_SUITE).
diff --git a/deps/rabbit/test/unit_supervisor2_SUITE.erl b/deps/rabbit/test/unit_supervisor2_SUITE.erl
index ca8564c497..104496bc66 100644
--- a/deps/rabbit/test/unit_supervisor2_SUITE.erl
+++ b/deps/rabbit/test/unit_supervisor2_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_supervisor2_SUITE).
diff --git a/deps/rabbit/test/unit_vm_memory_monitor_SUITE.erl b/deps/rabbit/test/unit_vm_memory_monitor_SUITE.erl
index 19dfdfaa22..b93b78e8f2 100644
--- a/deps/rabbit/test/unit_vm_memory_monitor_SUITE.erl
+++ b/deps/rabbit/test/unit_vm_memory_monitor_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_vm_memory_monitor_SUITE).
diff --git a/deps/rabbit/test/upgrade_preparation_SUITE.erl b/deps/rabbit/test/upgrade_preparation_SUITE.erl
index 6898feca99..0388b87d2b 100644
--- a/deps/rabbit/test/upgrade_preparation_SUITE.erl
+++ b/deps/rabbit/test/upgrade_preparation_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(upgrade_preparation_SUITE).
diff --git a/deps/rabbit/test/vhost_SUITE.erl b/deps/rabbit/test/vhost_SUITE.erl
index 569489ac64..4d515900c1 100644
--- a/deps/rabbit/test/vhost_SUITE.erl
+++ b/deps/rabbit/test/vhost_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(vhost_SUITE).
diff --git a/deps/rabbit_common/include/rabbit.hrl b/deps/rabbit_common/include/rabbit.hrl
index bd4290a6d8..02c49b1689 100644
--- a/deps/rabbit_common/include/rabbit.hrl
+++ b/deps/rabbit_common/include/rabbit.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-include("resource.hrl").
@@ -209,7 +209,7 @@
}).
%%----------------------------------------------------------------------------
--define(COPYRIGHT_MESSAGE, "Copyright (c) 2007-2022 VMware, Inc. or its affiliates.").
+-define(COPYRIGHT_MESSAGE, "Copyright (c) 2007-2023 VMware, Inc. or its affiliates.").
-define(INFORMATION_MESSAGE, "Licensed under the MPL 2.0. Website: https://rabbitmq.com").
%% EMPTY_FRAME_SIZE, 8 = 1 + 2 + 4 + 1
diff --git a/deps/rabbit_common/include/rabbit_core_metrics.hrl b/deps/rabbit_common/include/rabbit_core_metrics.hrl
index dd030cb955..4711170143 100644
--- a/deps/rabbit_common/include/rabbit_core_metrics.hrl
+++ b/deps/rabbit_common/include/rabbit_core_metrics.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% These tables contain the raw metrics as stored by RabbitMQ core
diff --git a/deps/rabbit_common/include/rabbit_memory.hrl b/deps/rabbit_common/include/rabbit_memory.hrl
index c01bf0c52b..a9a14f5e5e 100644
--- a/deps/rabbit_common/include/rabbit_memory.hrl
+++ b/deps/rabbit_common/include/rabbit_memory.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(DEFAULT_MEMORY_CHECK_INTERVAL, 1000).
diff --git a/deps/rabbit_common/include/rabbit_misc.hrl b/deps/rabbit_common/include/rabbit_misc.hrl
index d2b752e181..dfc0708087 100644
--- a/deps/rabbit_common/include/rabbit_misc.hrl
+++ b/deps/rabbit_common/include/rabbit_misc.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(RPC_TIMEOUT, 15000).
diff --git a/deps/rabbit_common/include/rabbit_msg_store.hrl b/deps/rabbit_common/include/rabbit_msg_store.hrl
index 91e11e2e11..854b71819c 100644
--- a/deps/rabbit_common/include/rabbit_msg_store.hrl
+++ b/deps/rabbit_common/include/rabbit_msg_store.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-include("rabbit.hrl").
diff --git a/deps/rabbit_common/include/resource.hrl b/deps/rabbit_common/include/resource.hrl
index 020cf8c686..d2b97d7459 100644
--- a/deps/rabbit_common/include/resource.hrl
+++ b/deps/rabbit_common/include/resource.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-record(resource, {
diff --git a/deps/rabbit_common/src/app_utils.erl b/deps/rabbit_common/src/app_utils.erl
index 06eb6bbd67..1189b98be1 100644
--- a/deps/rabbit_common/src/app_utils.erl
+++ b/deps/rabbit_common/src/app_utils.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(app_utils).
diff --git a/deps/rabbit_common/src/code_version.erl b/deps/rabbit_common/src/code_version.erl
index b9923d9ebe..9073de6642 100644
--- a/deps/rabbit_common/src/code_version.erl
+++ b/deps/rabbit_common/src/code_version.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(code_version).
diff --git a/deps/rabbit_common/src/credit_flow.erl b/deps/rabbit_common/src/credit_flow.erl
index ad4a46b544..52af8e7b3b 100644
--- a/deps/rabbit_common/src/credit_flow.erl
+++ b/deps/rabbit_common/src/credit_flow.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(credit_flow).
diff --git a/deps/rabbit_common/src/delegate.erl b/deps/rabbit_common/src/delegate.erl
index adb91221fe..98a0d780e3 100644
--- a/deps/rabbit_common/src/delegate.erl
+++ b/deps/rabbit_common/src/delegate.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(delegate).
diff --git a/deps/rabbit_common/src/delegate_sup.erl b/deps/rabbit_common/src/delegate_sup.erl
index 97b3bebf12..4c299c78bb 100644
--- a/deps/rabbit_common/src/delegate_sup.erl
+++ b/deps/rabbit_common/src/delegate_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(delegate_sup).
diff --git a/deps/rabbit_common/src/file_handle_cache.erl b/deps/rabbit_common/src/file_handle_cache.erl
index 405cbb6469..cacec5be70 100644
--- a/deps/rabbit_common/src/file_handle_cache.erl
+++ b/deps/rabbit_common/src/file_handle_cache.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(file_handle_cache).
diff --git a/deps/rabbit_common/src/file_handle_cache_stats.erl b/deps/rabbit_common/src/file_handle_cache_stats.erl
index dcbbde163a..f5ed8b443b 100644
--- a/deps/rabbit_common/src/file_handle_cache_stats.erl
+++ b/deps/rabbit_common/src/file_handle_cache_stats.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(file_handle_cache_stats).
diff --git a/deps/rabbit_common/src/gen_server2.erl b/deps/rabbit_common/src/gen_server2.erl
index ada7888b02..88de461f12 100644
--- a/deps/rabbit_common/src/gen_server2.erl
+++ b/deps/rabbit_common/src/gen_server2.erl
@@ -93,7 +93,7 @@
%%
%% 11) Internal buffer length is emitted as a core [RabbitMQ] metric.
-%% All modifications are (C) 2009-2022 VMware, Inc. or its affiliates.
+%% All modifications are (C) 2009-2023 VMware, Inc. or its affiliates.
%% ``The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
diff --git a/deps/rabbit_common/src/mirrored_supervisor.erl b/deps/rabbit_common/src/mirrored_supervisor.erl
index fe097f910d..1538e1eef2 100644
--- a/deps/rabbit_common/src/mirrored_supervisor.erl
+++ b/deps/rabbit_common/src/mirrored_supervisor.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(mirrored_supervisor).
diff --git a/deps/rabbit_common/src/mirrored_supervisor_locks.erl b/deps/rabbit_common/src/mirrored_supervisor_locks.erl
index 79630a6225..60db79ca48 100644
--- a/deps/rabbit_common/src/mirrored_supervisor_locks.erl
+++ b/deps/rabbit_common/src/mirrored_supervisor_locks.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(mirrored_supervisor_locks).
diff --git a/deps/rabbit_common/src/mnesia_sync.erl b/deps/rabbit_common/src/mnesia_sync.erl
index f8227a8913..2d48140160 100644
--- a/deps/rabbit_common/src/mnesia_sync.erl
+++ b/deps/rabbit_common/src/mnesia_sync.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(mnesia_sync).
diff --git a/deps/rabbit_common/src/pmon.erl b/deps/rabbit_common/src/pmon.erl
index 0e1f464c9a..0fe439f252 100644
--- a/deps/rabbit_common/src/pmon.erl
+++ b/deps/rabbit_common/src/pmon.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(pmon).
diff --git a/deps/rabbit_common/src/priority_queue.erl b/deps/rabbit_common/src/priority_queue.erl
index 9c92ce4e09..cdbef5f31d 100644
--- a/deps/rabbit_common/src/priority_queue.erl
+++ b/deps/rabbit_common/src/priority_queue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% Priority queues have essentially the same interface as ordinary
diff --git a/deps/rabbit_common/src/rabbit_amqp_connection.erl b/deps/rabbit_common/src/rabbit_amqp_connection.erl
index b0c5ec3168..81784d55cc 100644
--- a/deps/rabbit_common/src/rabbit_amqp_connection.erl
+++ b/deps/rabbit_common/src/rabbit_amqp_connection.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp_connection).
diff --git a/deps/rabbit_common/src/rabbit_amqqueue_common.erl b/deps/rabbit_common/src/rabbit_amqqueue_common.erl
index cb7883e3e0..331772165f 100644
--- a/deps/rabbit_common/src/rabbit_amqqueue_common.erl
+++ b/deps/rabbit_common/src/rabbit_amqqueue_common.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqqueue_common).
diff --git a/deps/rabbit_common/src/rabbit_auth_backend_dummy.erl b/deps/rabbit_common/src/rabbit_auth_backend_dummy.erl
index f08a0ccba7..60ff35f1d4 100644
--- a/deps/rabbit_common/src/rabbit_auth_backend_dummy.erl
+++ b/deps/rabbit_common/src/rabbit_auth_backend_dummy.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_dummy).
diff --git a/deps/rabbit_common/src/rabbit_auth_mechanism.erl b/deps/rabbit_common/src/rabbit_auth_mechanism.erl
index eea4e03c23..6090c41771 100644
--- a/deps/rabbit_common/src/rabbit_auth_mechanism.erl
+++ b/deps/rabbit_common/src/rabbit_auth_mechanism.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_mechanism).
diff --git a/deps/rabbit_common/src/rabbit_authn_backend.erl b/deps/rabbit_common/src/rabbit_authn_backend.erl
index 116b85a4de..2ed7e7d196 100644
--- a/deps/rabbit_common/src/rabbit_authn_backend.erl
+++ b/deps/rabbit_common/src/rabbit_authn_backend.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_authn_backend).
diff --git a/deps/rabbit_common/src/rabbit_authz_backend.erl b/deps/rabbit_common/src/rabbit_authz_backend.erl
index 3fcd043fdc..1a935d567b 100644
--- a/deps/rabbit_common/src/rabbit_authz_backend.erl
+++ b/deps/rabbit_common/src/rabbit_authz_backend.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_authz_backend).
diff --git a/deps/rabbit_common/src/rabbit_basic_common.erl b/deps/rabbit_common/src/rabbit_basic_common.erl
index 6cc9a3fa83..18f1f9bb81 100644
--- a/deps/rabbit_common/src/rabbit_basic_common.erl
+++ b/deps/rabbit_common/src/rabbit_basic_common.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_basic_common).
diff --git a/deps/rabbit_common/src/rabbit_binary_generator.erl b/deps/rabbit_common/src/rabbit_binary_generator.erl
index e13ba66969..cc38ae6b72 100644
--- a/deps/rabbit_common/src/rabbit_binary_generator.erl
+++ b/deps/rabbit_common/src/rabbit_binary_generator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_binary_generator).
diff --git a/deps/rabbit_common/src/rabbit_binary_parser.erl b/deps/rabbit_common/src/rabbit_binary_parser.erl
index 506499d49a..1b42019688 100644
--- a/deps/rabbit_common/src/rabbit_binary_parser.erl
+++ b/deps/rabbit_common/src/rabbit_binary_parser.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_binary_parser).
diff --git a/deps/rabbit_common/src/rabbit_cert_info.erl b/deps/rabbit_common/src/rabbit_cert_info.erl
index 964d34e35c..42996eb0b0 100644
--- a/deps/rabbit_common/src/rabbit_cert_info.erl
+++ b/deps/rabbit_common/src/rabbit_cert_info.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_cert_info).
diff --git a/deps/rabbit_common/src/rabbit_channel_common.erl b/deps/rabbit_common/src/rabbit_channel_common.erl
index 7151d1276e..6c4e3e67a2 100644
--- a/deps/rabbit_common/src/rabbit_channel_common.erl
+++ b/deps/rabbit_common/src/rabbit_channel_common.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_channel_common).
diff --git a/deps/rabbit_common/src/rabbit_command_assembler.erl b/deps/rabbit_common/src/rabbit_command_assembler.erl
index 9ef13ee313..5ad16b3e06 100644
--- a/deps/rabbit_common/src/rabbit_command_assembler.erl
+++ b/deps/rabbit_common/src/rabbit_command_assembler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_command_assembler).
diff --git a/deps/rabbit_common/src/rabbit_control_misc.erl b/deps/rabbit_common/src/rabbit_control_misc.erl
index 218cff3a3c..6b7b09c64d 100644
--- a/deps/rabbit_common/src/rabbit_control_misc.erl
+++ b/deps/rabbit_common/src/rabbit_control_misc.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_control_misc).
diff --git a/deps/rabbit_common/src/rabbit_core_metrics.erl b/deps/rabbit_common/src/rabbit_core_metrics.erl
index 5b086df9b8..9bf87b0fef 100644
--- a/deps/rabbit_common/src/rabbit_core_metrics.erl
+++ b/deps/rabbit_common/src/rabbit_core_metrics.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_core_metrics).
diff --git a/deps/rabbit_common/src/rabbit_data_coercion.erl b/deps/rabbit_common/src/rabbit_data_coercion.erl
index 3082bafa58..08d12d8090 100644
--- a/deps/rabbit_common/src/rabbit_data_coercion.erl
+++ b/deps/rabbit_common/src/rabbit_data_coercion.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_data_coercion).
diff --git a/deps/rabbit_common/src/rabbit_date_time.erl b/deps/rabbit_common/src/rabbit_date_time.erl
index 4f64bc926b..38c51eab4b 100644
--- a/deps/rabbit_common/src/rabbit_date_time.erl
+++ b/deps/rabbit_common/src/rabbit_date_time.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_date_time).
diff --git a/deps/rabbit_common/src/rabbit_env.erl b/deps/rabbit_common/src/rabbit_env.erl
index b4198c85c4..b0e3194533 100644
--- a/deps/rabbit_common/src/rabbit_env.erl
+++ b/deps/rabbit_common/src/rabbit_env.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_env).
diff --git a/deps/rabbit_common/src/rabbit_error_logger_handler.erl b/deps/rabbit_common/src/rabbit_error_logger_handler.erl
index d17c372c6c..21f680d680 100644
--- a/deps/rabbit_common/src/rabbit_error_logger_handler.erl
+++ b/deps/rabbit_common/src/rabbit_error_logger_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_error_logger_handler).
diff --git a/deps/rabbit_common/src/rabbit_event.erl b/deps/rabbit_common/src/rabbit_event.erl
index 674afecc3a..4bf9b0f52a 100644
--- a/deps/rabbit_common/src/rabbit_event.erl
+++ b/deps/rabbit_common/src/rabbit_event.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_event).
diff --git a/deps/rabbit_common/src/rabbit_exchange_type.erl b/deps/rabbit_common/src/rabbit_exchange_type.erl
index 520ef24334..28c35808fd 100644
--- a/deps/rabbit_common/src/rabbit_exchange_type.erl
+++ b/deps/rabbit_common/src/rabbit_exchange_type.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange_type).
diff --git a/deps/rabbit_common/src/rabbit_heartbeat.erl b/deps/rabbit_common/src/rabbit_heartbeat.erl
index 67690ebd66..6a66fbf2c9 100644
--- a/deps/rabbit_common/src/rabbit_heartbeat.erl
+++ b/deps/rabbit_common/src/rabbit_heartbeat.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_heartbeat).
diff --git a/deps/rabbit_common/src/rabbit_json.erl b/deps/rabbit_common/src/rabbit_json.erl
index a96f856cac..4b88ed242f 100644
--- a/deps/rabbit_common/src/rabbit_json.erl
+++ b/deps/rabbit_common/src/rabbit_json.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_json).
diff --git a/deps/rabbit_common/src/rabbit_log.erl b/deps/rabbit_common/src/rabbit_log.erl
index 81258f64fe..81f4593f42 100644
--- a/deps/rabbit_common/src/rabbit_log.erl
+++ b/deps/rabbit_common/src/rabbit_log.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_log).
diff --git a/deps/rabbit_common/src/rabbit_misc.erl b/deps/rabbit_common/src/rabbit_misc.erl
index 25f3bf73cb..78f5915990 100644
--- a/deps/rabbit_common/src/rabbit_misc.erl
+++ b/deps/rabbit_common/src/rabbit_misc.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_misc).
diff --git a/deps/rabbit_common/src/rabbit_msg_store_index.erl b/deps/rabbit_common/src/rabbit_msg_store_index.erl
index c3bca81e2e..8031229b86 100644
--- a/deps/rabbit_common/src/rabbit_msg_store_index.erl
+++ b/deps/rabbit_common/src/rabbit_msg_store_index.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_msg_store_index).
diff --git a/deps/rabbit_common/src/rabbit_net.erl b/deps/rabbit_common/src/rabbit_net.erl
index 98cf9b13c0..326694b400 100644
--- a/deps/rabbit_common/src/rabbit_net.erl
+++ b/deps/rabbit_common/src/rabbit_net.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_net).
diff --git a/deps/rabbit_common/src/rabbit_nodes_common.erl b/deps/rabbit_common/src/rabbit_nodes_common.erl
index 3787acff3f..d6ac264d16 100644
--- a/deps/rabbit_common/src/rabbit_nodes_common.erl
+++ b/deps/rabbit_common/src/rabbit_nodes_common.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_nodes_common).
diff --git a/deps/rabbit_common/src/rabbit_password_hashing.erl b/deps/rabbit_common/src/rabbit_password_hashing.erl
index 5c5540185d..dd291b1a9d 100644
--- a/deps/rabbit_common/src/rabbit_password_hashing.erl
+++ b/deps/rabbit_common/src/rabbit_password_hashing.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_password_hashing).
diff --git a/deps/rabbit_common/src/rabbit_pbe.erl b/deps/rabbit_common/src/rabbit_pbe.erl
index 288ea961a5..75da4b8d63 100644
--- a/deps/rabbit_common/src/rabbit_pbe.erl
+++ b/deps/rabbit_common/src/rabbit_pbe.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_pbe).
diff --git a/deps/rabbit_common/src/rabbit_peer_discovery_backend.erl b/deps/rabbit_common/src/rabbit_peer_discovery_backend.erl
index 5600fc1d90..b347ed2d74 100644
--- a/deps/rabbit_common/src/rabbit_peer_discovery_backend.erl
+++ b/deps/rabbit_common/src/rabbit_peer_discovery_backend.erl
@@ -2,7 +2,7 @@
%% from rabbitmq-autocluster by Gavin Roy.
%%
%% Copyright (c) 2014-2015 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates
%% All rights reserved.
%%
%% Redistribution and use in source and binary forms, with or without modification,
@@ -32,7 +32,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2014-2015 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_backend).
diff --git a/deps/rabbit_common/src/rabbit_policy_validator.erl b/deps/rabbit_common/src/rabbit_policy_validator.erl
index b97ff09aa2..cd9034b40c 100644
--- a/deps/rabbit_common/src/rabbit_policy_validator.erl
+++ b/deps/rabbit_common/src/rabbit_policy_validator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_policy_validator).
diff --git a/deps/rabbit_common/src/rabbit_queue_collector.erl b/deps/rabbit_common/src/rabbit_queue_collector.erl
index b215cdc18b..08da6acc30 100644
--- a/deps/rabbit_common/src/rabbit_queue_collector.erl
+++ b/deps/rabbit_common/src/rabbit_queue_collector.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_queue_collector).
diff --git a/deps/rabbit_common/src/rabbit_registry.erl b/deps/rabbit_common/src/rabbit_registry.erl
index 460b7efe26..2f9d7c6ad5 100644
--- a/deps/rabbit_common/src/rabbit_registry.erl
+++ b/deps/rabbit_common/src/rabbit_registry.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_registry).
diff --git a/deps/rabbit_common/src/rabbit_registry_class.erl b/deps/rabbit_common/src/rabbit_registry_class.erl
index c89f0be126..09605d9168 100644
--- a/deps/rabbit_common/src/rabbit_registry_class.erl
+++ b/deps/rabbit_common/src/rabbit_registry_class.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_registry_class).
diff --git a/deps/rabbit_common/src/rabbit_resource_monitor_misc.erl b/deps/rabbit_common/src/rabbit_resource_monitor_misc.erl
index 53b0f08c74..9d21878376 100644
--- a/deps/rabbit_common/src/rabbit_resource_monitor_misc.erl
+++ b/deps/rabbit_common/src/rabbit_resource_monitor_misc.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
diff --git a/deps/rabbit_common/src/rabbit_runtime.erl b/deps/rabbit_common/src/rabbit_runtime.erl
index ca1ab48322..a3f05be7bb 100644
--- a/deps/rabbit_common/src/rabbit_runtime.erl
+++ b/deps/rabbit_common/src/rabbit_runtime.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This module provides access to runtime metrics that are exposed
diff --git a/deps/rabbit_common/src/rabbit_runtime_parameter.erl b/deps/rabbit_common/src/rabbit_runtime_parameter.erl
index d1fb99b012..e51b4c6da6 100644
--- a/deps/rabbit_common/src/rabbit_runtime_parameter.erl
+++ b/deps/rabbit_common/src/rabbit_runtime_parameter.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_runtime_parameter).
diff --git a/deps/rabbit_common/src/rabbit_ssl_options.erl b/deps/rabbit_common/src/rabbit_ssl_options.erl
index aa20e78b08..b74b5f6ce9 100644
--- a/deps/rabbit_common/src/rabbit_ssl_options.erl
+++ b/deps/rabbit_common/src/rabbit_ssl_options.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ssl_options).
diff --git a/deps/rabbit_common/src/rabbit_types.erl b/deps/rabbit_common/src/rabbit_types.erl
index 55c6b57fdf..cdbb2655a9 100644
--- a/deps/rabbit_common/src/rabbit_types.erl
+++ b/deps/rabbit_common/src/rabbit_types.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_types).
diff --git a/deps/rabbit_common/src/rabbit_writer.erl b/deps/rabbit_common/src/rabbit_writer.erl
index 341dd91701..be306fac39 100644
--- a/deps/rabbit_common/src/rabbit_writer.erl
+++ b/deps/rabbit_common/src/rabbit_writer.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_writer).
diff --git a/deps/rabbit_common/src/supervisor2.erl b/deps/rabbit_common/src/supervisor2.erl
index 05c0a3674f..4382d46ff4 100644
--- a/deps/rabbit_common/src/supervisor2.erl
+++ b/deps/rabbit_common/src/supervisor2.erl
@@ -40,7 +40,7 @@
%% 5) normal, and {shutdown, _} exit reasons are all treated the same
%% (i.e. are regarded as normal exits)
%%
-%% All modifications are (C) 2010-2022 VMware, Inc. or its affiliates.
+%% All modifications are (C) 2010-2023 VMware, Inc. or its affiliates.
%%
%% %CopyrightBegin%
%%
diff --git a/deps/rabbit_common/src/vm_memory_monitor.erl b/deps/rabbit_common/src/vm_memory_monitor.erl
index 0cd4059f9d..55ff54e108 100644
--- a/deps/rabbit_common/src/vm_memory_monitor.erl
+++ b/deps/rabbit_common/src/vm_memory_monitor.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% In practice Erlang shouldn't be allowed to grow to more than a half
diff --git a/deps/rabbit_common/src/worker_pool.erl b/deps/rabbit_common/src/worker_pool.erl
index fc78143b2c..4770fd87a4 100644
--- a/deps/rabbit_common/src/worker_pool.erl
+++ b/deps/rabbit_common/src/worker_pool.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(worker_pool).
diff --git a/deps/rabbit_common/src/worker_pool_sup.erl b/deps/rabbit_common/src/worker_pool_sup.erl
index a9815ba149..a1b1fabda1 100644
--- a/deps/rabbit_common/src/worker_pool_sup.erl
+++ b/deps/rabbit_common/src/worker_pool_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(worker_pool_sup).
diff --git a/deps/rabbit_common/src/worker_pool_worker.erl b/deps/rabbit_common/src/worker_pool_worker.erl
index 8a2e217bfc..13834981b8 100644
--- a/deps/rabbit_common/src/worker_pool_worker.erl
+++ b/deps/rabbit_common/src/worker_pool_worker.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(worker_pool_worker).
diff --git a/deps/rabbit_common/test/gen_server2_test_server.erl b/deps/rabbit_common/test/gen_server2_test_server.erl
index 13e1b997d3..f93403cfb7 100644
--- a/deps/rabbit_common/test/gen_server2_test_server.erl
+++ b/deps/rabbit_common/test/gen_server2_test_server.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(gen_server2_test_server).
diff --git a/deps/rabbit_common/test/rabbit_env_SUITE.erl b/deps/rabbit_common/test/rabbit_env_SUITE.erl
index bb2ea1e772..d3188d1ec4 100644
--- a/deps/rabbit_common/test/rabbit_env_SUITE.erl
+++ b/deps/rabbit_common/test/rabbit_env_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_env_SUITE).
diff --git a/deps/rabbit_common/test/supervisor2_SUITE.erl b/deps/rabbit_common/test/supervisor2_SUITE.erl
index 6c91fdbcc3..5e59337b1c 100644
--- a/deps/rabbit_common/test/supervisor2_SUITE.erl
+++ b/deps/rabbit_common/test/supervisor2_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(supervisor2_SUITE).
diff --git a/deps/rabbit_common/test/test_event_handler.erl b/deps/rabbit_common/test/test_event_handler.erl
index 1c891ae145..b4747f85ef 100644
--- a/deps/rabbit_common/test/test_event_handler.erl
+++ b/deps/rabbit_common/test/test_event_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(test_event_handler).
diff --git a/deps/rabbit_common/test/unit_SUITE.erl b/deps/rabbit_common/test/unit_SUITE.erl
index 4496bf963e..dfd220abad 100644
--- a/deps/rabbit_common/test/unit_SUITE.erl
+++ b/deps/rabbit_common/test/unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_SUITE).
diff --git a/deps/rabbit_common/test/unit_priority_queue_SUITE.erl b/deps/rabbit_common/test/unit_priority_queue_SUITE.erl
index a37b548452..fb86555258 100644
--- a/deps/rabbit_common/test/unit_priority_queue_SUITE.erl
+++ b/deps/rabbit_common/test/unit_priority_queue_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_priority_queue_SUITE).
diff --git a/deps/rabbit_common/test/worker_pool_SUITE.erl b/deps/rabbit_common/test/worker_pool_SUITE.erl
index 82124edb02..12c36eeb59 100644
--- a/deps/rabbit_common/test/worker_pool_SUITE.erl
+++ b/deps/rabbit_common/test/worker_pool_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(worker_pool_SUITE).
diff --git a/deps/rabbitmq_amqp1_0/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListAmqp10ConnectionsCommand.erl b/deps/rabbitmq_amqp1_0/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListAmqp10ConnectionsCommand.erl
index c103f84eea..2cefef9671 100644
--- a/deps/rabbitmq_amqp1_0/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListAmqp10ConnectionsCommand.erl
+++ b/deps/rabbitmq_amqp1_0/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListAmqp10ConnectionsCommand.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.ListAmqp10ConnectionsCommand').
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0.erl
index f4140b9daf..dc8e955c5a 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0).
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_channel.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_channel.erl
index a986fb25ea..b4099e4141 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_channel.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_channel.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0_channel).
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_incoming_link.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_incoming_link.erl
index b5babd790d..c9bbc38881 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_incoming_link.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_incoming_link.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0_incoming_link).
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_link_util.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_link_util.erl
index 82838a9ba1..5ff2b9c8b2 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_link_util.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_link_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0_link_util).
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_message.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_message.erl
index d3f3ee8ae9..c17d19acec 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_message.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_message.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0_message).
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_outgoing_link.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_outgoing_link.erl
index c30271eaab..ae69eb3ef8 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_outgoing_link.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_outgoing_link.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0_outgoing_link).
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_reader.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_reader.erl
index d1fdb1c603..2de81f3798 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_reader.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_reader.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0_reader).
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl
index 4de09a840a..a8821b5563 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0_session).
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_process.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_process.erl
index 2c169f8702..c3ed394521 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_process.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_process.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0_session_process).
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_sup.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_sup.erl
index 369a0bb0c3..02d63b5d87 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_sup.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0_session_sup).
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_sup_sup.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_sup_sup.erl
index e68344b3a5..f489955947 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_sup_sup.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session_sup_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0_session_sup_sup).
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_util.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_util.erl
index 4626e0d07c..4688f8f2f0 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_util.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0_util).
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_writer.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_writer.erl
index 287a243f8d..9319dd21e5 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_writer.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_writer.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp1_0_writer).
diff --git a/deps/rabbitmq_amqp1_0/test/amqp10_client_SUITE.erl b/deps/rabbitmq_amqp1_0/test/amqp10_client_SUITE.erl
index 38eb21d5a3..b1147e400d 100644
--- a/deps/rabbitmq_amqp1_0/test/amqp10_client_SUITE.erl
+++ b/deps/rabbitmq_amqp1_0/test/amqp10_client_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_client_SUITE).
diff --git a/deps/rabbitmq_amqp1_0/test/command_SUITE.erl b/deps/rabbitmq_amqp1_0/test/command_SUITE.erl
index b740da6642..de2a525244 100644
--- a/deps/rabbitmq_amqp1_0/test/command_SUITE.erl
+++ b/deps/rabbitmq_amqp1_0/test/command_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(command_SUITE).
diff --git a/deps/rabbitmq_amqp1_0/test/config_schema_SUITE.erl b/deps/rabbitmq_amqp1_0/test/config_schema_SUITE.erl
new file mode 100644
index 0000000000..b172f35d75
--- /dev/null
+++ b/deps/rabbitmq_amqp1_0/test/config_schema_SUITE.erl
@@ -0,0 +1,54 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(config_schema_SUITE).
+
+-compile(export_all).
+
+all() ->
+ [
+ run_snippets
+ ].
+
+%% -------------------------------------------------------------------
+%% Testsuite setup/teardown.
+%% -------------------------------------------------------------------
+
+init_per_suite(Config) ->
+ rabbit_ct_helpers:log_environment(),
+ Config1 = rabbit_ct_helpers:run_setup_steps(Config),
+ rabbit_ct_config_schema:init_schemas(rabbitmq_amqp1_0, Config1).
+
+
+end_per_suite(Config) ->
+ rabbit_ct_helpers:run_teardown_steps(Config).
+
+init_per_testcase(Testcase, Config) ->
+ rabbit_ct_helpers:testcase_started(Config, Testcase),
+ Config1 = rabbit_ct_helpers:set_config(Config, [
+ {rmq_nodename_suffix, Testcase}
+ ]),
+ rabbit_ct_helpers:run_steps(Config1,
+ rabbit_ct_broker_helpers:setup_steps() ++
+ rabbit_ct_client_helpers:setup_steps()).
+
+end_per_testcase(Testcase, Config) ->
+ Config1 = rabbit_ct_helpers:run_steps(Config,
+ rabbit_ct_client_helpers:teardown_steps() ++
+ rabbit_ct_broker_helpers:teardown_steps()),
+ rabbit_ct_helpers:testcase_finished(Config1, Testcase).
+
+%% -------------------------------------------------------------------
+%% Testcases.
+%% -------------------------------------------------------------------
+
+run_snippets(Config) ->
+ ok = rabbit_ct_broker_helpers:rpc(Config, 0,
+ ?MODULE, run_snippets1, [Config]).
+
+run_snippets1(Config) ->
+ rabbit_ct_config_schema:run_snippets(Config).
diff --git a/deps/rabbitmq_amqp1_0/test/proxy_protocol_SUITE.erl b/deps/rabbitmq_amqp1_0/test/proxy_protocol_SUITE.erl
index 9153709172..1786f0a77f 100644
--- a/deps/rabbitmq_amqp1_0/test/proxy_protocol_SUITE.erl
+++ b/deps/rabbitmq_amqp1_0/test/proxy_protocol_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(proxy_protocol_SUITE).
diff --git a/deps/rabbitmq_amqp1_0/test/system_SUITE.erl b/deps/rabbitmq_amqp1_0/test/system_SUITE.erl
index 1831a92bab..580db99975 100644
--- a/deps/rabbitmq_amqp1_0/test/system_SUITE.erl
+++ b/deps/rabbitmq_amqp1_0/test/system_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(system_SUITE).
diff --git a/deps/rabbitmq_amqp1_0/test/unit_SUITE.erl b/deps/rabbitmq_amqp1_0/test/unit_SUITE.erl
index 3827e1254e..f8af7e6754 100644
--- a/deps/rabbitmq_amqp1_0/test/unit_SUITE.erl
+++ b/deps/rabbitmq_amqp1_0/test/unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_SUITE).
diff --git a/deps/rabbitmq_auth_backend_cache/include/rabbit_auth_backend_cache.hrl b/deps/rabbitmq_auth_backend_cache/include/rabbit_auth_backend_cache.hrl
index a40c08a57f..568b677a4c 100644
--- a/deps/rabbitmq_auth_backend_cache/include/rabbit_auth_backend_cache.hrl
+++ b/deps/rabbitmq_auth_backend_cache/include/rabbit_auth_backend_cache.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% Same as default channel operation timeout.
diff --git a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_backend_cache.erl b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_backend_cache.erl
index 0d1e726950..4af72f52c8 100644
--- a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_backend_cache.erl
+++ b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_backend_cache.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_cache).
diff --git a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_backend_cache_app.erl b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_backend_cache_app.erl
index 32465f2036..3aa68c39fb 100644
--- a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_backend_cache_app.erl
+++ b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_backend_cache_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_cache_app).
diff --git a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache.erl b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache.erl
index b801624068..00ee6f8199 100644
--- a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache.erl
+++ b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_cache).
diff --git a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_dict.erl b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_dict.erl
index 0ec9ffa802..a5cc42a4ea 100644
--- a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_dict.erl
+++ b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_dict.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_cache_dict).
diff --git a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets.erl b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets.erl
index f0224a5aec..5d2fe3bec2 100644
--- a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets.erl
+++ b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_cache_ets).
diff --git a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets_segmented.erl b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets_segmented.erl
index 5095afc13b..91505bbf47 100644
--- a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets_segmented.erl
+++ b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets_segmented.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_cache_ets_segmented).
diff --git a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets_segmented_stateless.erl b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets_segmented_stateless.erl
index 35f5553275..09589bff03 100644
--- a/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets_segmented_stateless.erl
+++ b/deps/rabbitmq_auth_backend_cache/src/rabbit_auth_cache_ets_segmented_stateless.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_cache_ets_segmented_stateless).
diff --git a/deps/rabbitmq_auth_backend_cache/test/config_schema_SUITE.erl b/deps/rabbitmq_auth_backend_cache/test/config_schema_SUITE.erl
index 9fa3c6b199..9cfe800a46 100644
--- a/deps/rabbitmq_auth_backend_cache/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_cache/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_auth_backend_cache/test/rabbit_auth_backend_cache_SUITE.erl b/deps/rabbitmq_auth_backend_cache/test/rabbit_auth_backend_cache_SUITE.erl
index 0d2f79a4df..8db7e7c70d 100644
--- a/deps/rabbitmq_auth_backend_cache/test/rabbit_auth_backend_cache_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_cache/test/rabbit_auth_backend_cache_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_cache_SUITE).
diff --git a/deps/rabbitmq_auth_backend_cache/test/rabbit_auth_cache_SUITE.erl b/deps/rabbitmq_auth_backend_cache/test/rabbit_auth_cache_SUITE.erl
index 164d9e0b36..501029f251 100644
--- a/deps/rabbitmq_auth_backend_cache/test/rabbit_auth_cache_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_cache/test/rabbit_auth_cache_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_cache_SUITE).
diff --git a/deps/rabbitmq_auth_backend_http/src/rabbit_auth_backend_http.erl b/deps/rabbitmq_auth_backend_http/src/rabbit_auth_backend_http.erl
index 6d4143f2f0..269280fdb0 100644
--- a/deps/rabbitmq_auth_backend_http/src/rabbit_auth_backend_http.erl
+++ b/deps/rabbitmq_auth_backend_http/src/rabbit_auth_backend_http.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_http).
diff --git a/deps/rabbitmq_auth_backend_http/src/rabbit_auth_backend_http_app.erl b/deps/rabbitmq_auth_backend_http/src/rabbit_auth_backend_http_app.erl
index 6a815d2dce..22d3f3ae24 100644
--- a/deps/rabbitmq_auth_backend_http/src/rabbit_auth_backend_http_app.erl
+++ b/deps/rabbitmq_auth_backend_http/src/rabbit_auth_backend_http_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_http_app).
diff --git a/deps/rabbitmq_auth_backend_http/test/auth_SUITE.erl b/deps/rabbitmq_auth_backend_http/test/auth_SUITE.erl
index 668e2bbf4c..3098a3840f 100644
--- a/deps/rabbitmq_auth_backend_http/test/auth_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_http/test/auth_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(auth_SUITE).
diff --git a/deps/rabbitmq_auth_backend_http/test/config_schema_SUITE.erl b/deps/rabbitmq_auth_backend_http/test/config_schema_SUITE.erl
index af88669f33..080e62d340 100644
--- a/deps/rabbitmq_auth_backend_http/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_http/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_auth_backend_http/test/unit_SUITE.erl b/deps/rabbitmq_auth_backend_http/test/unit_SUITE.erl
index 83296477ac..733a0a72ec 100644
--- a/deps/rabbitmq_auth_backend_http/test/unit_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_http/test/unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_SUITE).
diff --git a/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl b/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl
index 4bb6020563..762b586214 100644
--- a/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl
+++ b/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_ldap).
diff --git a/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap_app.erl b/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap_app.erl
index 31693b9619..fd375af027 100644
--- a/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap_app.erl
+++ b/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_ldap_app).
diff --git a/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap_util.erl b/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap_util.erl
index 7e4d01fc34..fc238af0f8 100644
--- a/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap_util.erl
+++ b/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_ldap_util).
diff --git a/deps/rabbitmq_auth_backend_ldap/test/config_schema_SUITE.erl b/deps/rabbitmq_auth_backend_ldap/test/config_schema_SUITE.erl
index 11f9107e9b..e4f34abb47 100644
--- a/deps/rabbitmq_auth_backend_ldap/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_ldap/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_auth_backend_ldap/test/rabbit_ldap_seed.erl b/deps/rabbitmq_auth_backend_ldap/test/rabbit_ldap_seed.erl
index 77633c4d6b..0b5e123652 100644
--- a/deps/rabbitmq_auth_backend_ldap/test/rabbit_ldap_seed.erl
+++ b/deps/rabbitmq_auth_backend_ldap/test/rabbit_ldap_seed.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ldap_seed).
diff --git a/deps/rabbitmq_auth_backend_ldap/test/system_SUITE.erl b/deps/rabbitmq_auth_backend_ldap/test/system_SUITE.erl
index d59cb2f25e..fba14e2e5e 100644
--- a/deps/rabbitmq_auth_backend_ldap/test/system_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_ldap/test/system_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(system_SUITE).
diff --git a/deps/rabbitmq_auth_backend_ldap/test/unit_SUITE.erl b/deps/rabbitmq_auth_backend_ldap/test/unit_SUITE.erl
index 1e3b20953c..5630670c2c 100644
--- a/deps/rabbitmq_auth_backend_ldap/test/unit_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_ldap/test/unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_SUITE).
diff --git a/deps/rabbitmq_auth_backend_oauth2/README.md b/deps/rabbitmq_auth_backend_oauth2/README.md
index b923a47fb6..d6e739828a 100644
--- a/deps/rabbitmq_auth_backend_oauth2/README.md
+++ b/deps/rabbitmq_auth_backend_oauth2/README.md
@@ -345,6 +345,10 @@ field will be ignored as long as the token provides a client ID.
## License and Copyright
+<<<<<<< HEAD
(c) 2016-2020 VMware, Inc. or its affiliates.
+=======
+(c) 2016-2023 VMware, Inc. or its affiliates.
+>>>>>>> ec4f1dba7d ((c) year bump: 2022 => 2023)
Released under the Mozilla Public License 2.0, same as RabbitMQ.
diff --git a/deps/rabbitmq_auth_backend_oauth2/src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddUaaKeyCommand.erl b/deps/rabbitmq_auth_backend_oauth2/src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddUaaKeyCommand.erl
index 6bc95cb044..c005b9901c 100644
--- a/deps/rabbitmq_auth_backend_oauth2/src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddUaaKeyCommand.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddUaaKeyCommand.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.AddUaaKeyCommand').
diff --git a/deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2.erl b/deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2.erl
index 70463f9346..0cccfdfa46 100644
--- a/deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_oauth2).
diff --git a/deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2_app.erl b/deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2_app.erl
index bf9b4402a7..1c1dfa6c94 100644
--- a/deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2_app.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_oauth2_app).
diff --git a/deps/rabbitmq_auth_backend_oauth2/src/rabbit_oauth2_scope.erl b/deps/rabbitmq_auth_backend_oauth2/src/rabbit_oauth2_scope.erl
index 60515ecb71..9b841adb0f 100644
--- a/deps/rabbitmq_auth_backend_oauth2/src/rabbit_oauth2_scope.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/src/rabbit_oauth2_scope.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_oauth2_scope).
diff --git a/deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt.erl b/deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt.erl
index 731ae6a481..402e95184f 100644
--- a/deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(uaa_jwt).
diff --git a/deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt_jwk.erl b/deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt_jwk.erl
index 2ea3c58d29..9bb1e27d12 100644
--- a/deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt_jwk.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt_jwk.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(uaa_jwt_jwk).
diff --git a/deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt_jwt.erl b/deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt_jwt.erl
index e145a9a803..692dd4e4bf 100644
--- a/deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt_jwt.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt_jwt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(uaa_jwt_jwt).
diff --git a/deps/rabbitmq_auth_backend_oauth2/src/wildcard.erl b/deps/rabbitmq_auth_backend_oauth2/src/wildcard.erl
index 60f2353600..c989b2eddf 100644
--- a/deps/rabbitmq_auth_backend_oauth2/src/wildcard.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/src/wildcard.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(wildcard).
diff --git a/deps/rabbitmq_auth_backend_oauth2/test/add_uaa_key_command_SUITE.erl b/deps/rabbitmq_auth_backend_oauth2/test/add_uaa_key_command_SUITE.erl
index 7dcb226853..e41b2e9a46 100644
--- a/deps/rabbitmq_auth_backend_oauth2/test/add_uaa_key_command_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/test/add_uaa_key_command_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(add_uaa_key_command_SUITE).
diff --git a/deps/rabbitmq_auth_backend_oauth2/test/config_schema_SUITE.erl b/deps/rabbitmq_auth_backend_oauth2/test/config_schema_SUITE.erl
index e84ce33e43..6544fd2d11 100644
--- a/deps/rabbitmq_auth_backend_oauth2/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_auth_backend_oauth2/test/jwks_SUITE.erl b/deps/rabbitmq_auth_backend_oauth2/test/jwks_SUITE.erl
index 3906f1ba0a..afd0df6716 100644
--- a/deps/rabbitmq_auth_backend_oauth2/test/jwks_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/test/jwks_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(jwks_SUITE).
diff --git a/deps/rabbitmq_auth_backend_oauth2/test/rabbit_auth_backend_oauth2_test_util.erl b/deps/rabbitmq_auth_backend_oauth2/test/rabbit_auth_backend_oauth2_test_util.erl
index c440c052f0..0c71694c1a 100644
--- a/deps/rabbitmq_auth_backend_oauth2/test/rabbit_auth_backend_oauth2_test_util.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/test/rabbit_auth_backend_oauth2_test_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_backend_oauth2_test_util).
diff --git a/deps/rabbitmq_auth_backend_oauth2/test/scope_SUITE.erl b/deps/rabbitmq_auth_backend_oauth2/test/scope_SUITE.erl
index 13031e9c27..6326043098 100644
--- a/deps/rabbitmq_auth_backend_oauth2/test/scope_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/test/scope_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(scope_SUITE).
diff --git a/deps/rabbitmq_auth_backend_oauth2/test/system_SUITE.erl b/deps/rabbitmq_auth_backend_oauth2/test/system_SUITE.erl
index af50ee8666..7d0761b4c4 100644
--- a/deps/rabbitmq_auth_backend_oauth2/test/system_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/test/system_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(system_SUITE).
diff --git a/deps/rabbitmq_auth_backend_oauth2/test/unit_SUITE.erl b/deps/rabbitmq_auth_backend_oauth2/test/unit_SUITE.erl
index b5992e0457..e677badfc2 100644
--- a/deps/rabbitmq_auth_backend_oauth2/test/unit_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/test/unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_SUITE).
diff --git a/deps/rabbitmq_auth_backend_oauth2/test/wildcard_match_SUITE.erl b/deps/rabbitmq_auth_backend_oauth2/test/wildcard_match_SUITE.erl
index 829732da6e..bfce800cf2 100644
--- a/deps/rabbitmq_auth_backend_oauth2/test/wildcard_match_SUITE.erl
+++ b/deps/rabbitmq_auth_backend_oauth2/test/wildcard_match_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(wildcard_match_SUITE).
diff --git a/deps/rabbitmq_auth_mechanism_ssl/README.md b/deps/rabbitmq_auth_mechanism_ssl/README.md
index 1c72e02411..6c346a2038 100644
--- a/deps/rabbitmq_auth_mechanism_ssl/README.md
+++ b/deps/rabbitmq_auth_mechanism_ssl/README.md
@@ -128,6 +128,6 @@ ssl_cert_login_from = common_name
## Copyright & License
-(c) 2007-2022 VMware, Inc. or its affiliates.
+(c) 2007-2023 VMware, Inc. or its affiliates.
Released under the same license as RabbitMQ.
diff --git a/deps/rabbitmq_auth_mechanism_ssl/src/rabbit_auth_mechanism_ssl.erl b/deps/rabbitmq_auth_mechanism_ssl/src/rabbit_auth_mechanism_ssl.erl
index 95e20fe05d..e459586fb6 100644
--- a/deps/rabbitmq_auth_mechanism_ssl/src/rabbit_auth_mechanism_ssl.erl
+++ b/deps/rabbitmq_auth_mechanism_ssl/src/rabbit_auth_mechanism_ssl.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
diff --git a/deps/rabbitmq_auth_mechanism_ssl/src/rabbit_auth_mechanism_ssl_app.erl b/deps/rabbitmq_auth_mechanism_ssl/src/rabbit_auth_mechanism_ssl_app.erl
index cc911fb6cc..393634793a 100644
--- a/deps/rabbitmq_auth_mechanism_ssl/src/rabbit_auth_mechanism_ssl_app.erl
+++ b/deps/rabbitmq_auth_mechanism_ssl/src/rabbit_auth_mechanism_ssl_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_auth_mechanism_ssl_app).
diff --git a/deps/rabbitmq_aws/priv/schema/rabbitmq_aws.schema b/deps/rabbitmq_aws/priv/schema/rabbitmq_aws.schema
index aab42d9cc9..889830974e 100644
--- a/deps/rabbitmq_aws/priv/schema/rabbitmq_aws.schema
+++ b/deps/rabbitmq_aws/priv/schema/rabbitmq_aws.schema
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
% ===============================
diff --git a/deps/rabbitmq_aws/src/rabbitmq_aws_config.erl b/deps/rabbitmq_aws/src/rabbitmq_aws_config.erl
index 252a90e559..603bf7f28c 100644
--- a/deps/rabbitmq_aws/src/rabbitmq_aws_config.erl
+++ b/deps/rabbitmq_aws/src/rabbitmq_aws_config.erl
@@ -1,7 +1,7 @@
%% ====================================================================
%% @author Gavin M. Roy <gavinmroy@gmail.com>
%% @copyright 2016, Gavin M. Roy
-%% @copyright 2016-2022 VMware, Inc. or its affiliates.
+%% @copyright 2016-2023 VMware, Inc. or its affiliates.
%% @private
%% @doc rabbitmq_aws configuration functionality
%% @end
diff --git a/deps/rabbitmq_cli/lib/rabbit_common/records.ex b/deps/rabbitmq_cli/lib/rabbit_common/records.ex
index 9db811be87..512f8722b7 100644
--- a/deps/rabbitmq_cli/lib/rabbit_common/records.ex
+++ b/deps/rabbitmq_cli/lib/rabbit_common/records.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitCommon.Records do
require Record
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/auto_complete.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/auto_complete.ex
index 0f621d8da5..f32756226e 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/auto_complete.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/auto_complete.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.AutoComplete do
alias RabbitMQ.CLI.Core.{CommandModules, Parser}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/command_behaviour.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/command_behaviour.ex
index c7adc88a05..7d0b286692 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/command_behaviour.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/command_behaviour.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.CommandBehaviour do
alias RabbitMQ.CLI.Core.Helpers
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_default_switches_and_timeout.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_default_switches_and_timeout.ex
index 2d33d384a1..2c0bf04c48 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_default_switches_and_timeout.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_default_switches_and_timeout.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Should be used by commands that require rabbit app to be stopped
# but need no other execution environment validators.
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_no_positional_arguments.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_no_positional_arguments.ex
index cb57d9d2cb..4286db3eca 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_no_positional_arguments.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_no_positional_arguments.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Should be used by commands that require rabbit app to be stopped
# but need no other execution environment validators.
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_one_positional_argument.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_one_positional_argument.ex
index 902f3fb69b..65dcd6922e 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_one_positional_argument.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_one_positional_argument.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Should be used by commands that require rabbit app to be stopped
# but need no other execution environment validators.
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_one_positive_integer_argument.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_one_positive_integer_argument.ex
index 5baf794ef1..ffe6f41d88 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_one_positive_integer_argument.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_one_positive_integer_argument.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Should be used by commands that require rabbit app to be stopped
# but need no other execution environment validators.
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_two_positional_arguments.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_two_positional_arguments.ex
index 3fbb892a56..faf36f371f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_two_positional_arguments.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/accepts_two_positional_arguments.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Should be used by commands that require rabbit app to be stopped
# but need no other execution environment validators.
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/alarms.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/alarms.ex
index fe6710c9e4..d3ae9fd36e 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/alarms.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/alarms.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Alarms do
def alarm_lines(alarms, node_name) do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/ansi.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/ansi.ex
index e31c7d4098..1c3900a2b1 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/ansi.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/ansi.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.ANSI do
def bright(string) do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/code_path.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/code_path.ex
index 2d72765ecd..57cbb82790 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/code_path.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/code_path.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.CodePath do
alias RabbitMQ.CLI.Core.{Config, Paths, Platform}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/command_modules.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/command_modules.ex
index dd805734d5..002d1cda29 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/command_modules.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/command_modules.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.CommandModules do
alias RabbitMQ.CLI.Core.{Config, DataCoercion, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/config.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/config.ex
index de286c43f0..9818fa4c07 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/config.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/config.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Config do
alias RabbitMQ.CLI.{
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/data_coercion.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/data_coercion.ex
index 2c90c3ba71..123ef55ddd 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/data_coercion.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/data_coercion.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defprotocol RabbitMQ.CLI.Core.DataCoercion do
def to_atom(data)
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/distribution.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/distribution.ex
index f039e226fe..399f9e7f5e 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/distribution.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/distribution.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Distribution do
alias RabbitMQ.CLI.Core.{ANSI, Config, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/doc_guide.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/doc_guide.ex
index b301ad8b5a..d3a87d4d7e 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/doc_guide.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/doc_guide.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.DocGuide.Macros do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/erl_eval.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/erl_eval.ex
index 8913c7ee84..e3ef24b021 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/erl_eval.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/erl_eval.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.ErlEval do
def parse_expr(expr) do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/exit_codes.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/exit_codes.ex
index e0d54a9d8c..2068df5198 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/exit_codes.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/exit_codes.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Lists predefined error exit codes used by RabbitMQ CLI tools.
# The codes are adopted from [1], which (according to our team's research)
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/feature_flags.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/feature_flags.ex
index b7600f1763..1837050bea 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/feature_flags.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/feature_flags.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.FeatureFlags do
#
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/helpers.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/helpers.ex
index d5af2ee395..0056fd584d 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/helpers.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/helpers.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Helpers do
alias RabbitMQ.CLI.Core.{Config, DataCoercion, NodeName}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/input.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/input.ex
index cab7ba89cf..23ce23f612 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/input.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/input.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Input do
alias RabbitMQ.CLI.Core.Config
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/listeners.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/listeners.ex
index 3fe2d0cd72..374d12b22a 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/listeners.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/listeners.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Listeners do
import Record, only: [defrecord: 3, extract: 2]
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/log_files.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/log_files.ex
index c54b1f3c6c..d1d2fbf9d7 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/log_files.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/log_files.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.LogFiles do
@spec get_log_locations(atom, integer | :infinity) :: [String.t()] | {:badrpc, term}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/memory.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/memory.ex
index cf41f4cef6..eb64b6c9e5 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/memory.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/memory.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Memory do
alias RabbitMQ.CLI.InformationUnit, as: IU
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/merges_default_virtual_host.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/merges_default_virtual_host.ex
index 9f0b63ed22..b26874b650 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/merges_default_virtual_host.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/merges_default_virtual_host.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Should be used by commands that require rabbit app to be stopped
# but need no other execution environment validators.
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/merges_no_defaults.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/merges_no_defaults.ex
index b2ceb8c4a4..37ef11e35d 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/merges_no_defaults.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/merges_no_defaults.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Should be used by commands that require rabbit app to be stopped
# but need no other execution environment validators.
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/networking.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/networking.ex
index 02fb744aa1..ac3babf2bb 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/networking.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/networking.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Networking do
@type address_family() :: :inet | :inet6
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/node_name.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/node_name.ex
index bd5867e755..fe2b04c119 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/node_name.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/node_name.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.NodeName do
alias RabbitMQ.CLI.Core.Config
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/os_pid.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/os_pid.ex
index 1c08d2a60b..710ec6c9bf 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/os_pid.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/os_pid.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.OsPid do
@external_process_check_interval 1000
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/output.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/output.ex
index 8fde452b48..cd79d8bdcc 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/output.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/output.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Output do
def format_output(:ok, _, _) do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/parser.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/parser.ex
index b27c4f0d4b..2160fbcc88 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/parser.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/parser.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Parser do
alias RabbitMQ.CLI.{CommandBehaviour, FormatterBehaviour}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/paths.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/paths.ex
index 726f0b9d0a..4dad7ebea2 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/paths.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/paths.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Paths do
alias RabbitMQ.CLI.Core.Config
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/platform.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/platform.ex
index 4be84f30f9..6aca26a3c6 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/platform.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/platform.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Platform do
def path_separator() do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/requires_rabbit_app_running.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/requires_rabbit_app_running.ex
index 707b7c24b4..b1999505cb 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/requires_rabbit_app_running.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/requires_rabbit_app_running.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Should be used by commands that require rabbit app to be running
# but need no other execution environment validators.
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/requires_rabbit_app_stopped.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/requires_rabbit_app_stopped.ex
index e91615bf73..5398d0e697 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/requires_rabbit_app_stopped.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/requires_rabbit_app_stopped.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Should be used by commands that require rabbit app to be stopped
# but need no other execution environment validators.
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/validators.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/validators.ex
index 2037ae7fbc..cc1cd3e915 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/validators.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/validators.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Provides common validation functions.
defmodule RabbitMQ.CLI.Core.Validators do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/version.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/version.ex
index e27dd0585c..2f7bc6ffc9 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/core/version.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/core/version.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Core.Version do
@default_timeout 30_000
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/add_user_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/add_user_command.ex
index 30b55ed54c..94f2f11dac 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/add_user_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/add_user_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.AddUserCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes, Helpers, Input}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/add_vhost_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/add_vhost_command.ex
index 5158bdeedc..db1d6cbae4 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/add_vhost_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/add_vhost_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.AddVhostCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/authenticate_user_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/authenticate_user_command.ex
index cf3cccb963..df0b557a6d 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/authenticate_user_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/authenticate_user_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.AuthenticateUserCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes, Input}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/autocomplete_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/autocomplete_command.ex
index 053603e2a1..6bf553c5e2 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/autocomplete_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/autocomplete_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.AutocompleteCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/await_online_nodes_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/await_online_nodes_command.ex
index 3db7980f5b..83305ba704 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/await_online_nodes_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/await_online_nodes_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.AwaitOnlineNodesCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/await_startup_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/await_startup_command.ex
index 778c6f6a5f..308bcb6246 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/await_startup_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/await_startup_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.AwaitStartupCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/cancel_sync_queue_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/cancel_sync_queue_command.ex
index 9dcdd35071..e8a8887078 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/cancel_sync_queue_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/cancel_sync_queue_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.CancelSyncQueueCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/change_cluster_node_type_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/change_cluster_node_type_command.ex
index cd2d2f3626..bf3b43e7c4 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/change_cluster_node_type_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/change_cluster_node_type_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ChangeClusterNodeTypeCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/change_password_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/change_password_command.ex
index 58e434dc76..03e2181695 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/change_password_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/change_password_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ChangePasswordCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes, Helpers, Input}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_global_parameter_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_global_parameter_command.ex
index 30b0469456..75c0c54b2d 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_global_parameter_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_global_parameter_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ClearGlobalParameterCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_operator_policy_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_operator_policy_command.ex
index 42aae9be23..e15fcad86c 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_operator_policy_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_operator_policy_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ClearOperatorPolicyCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_parameter_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_parameter_command.ex
index 602ef4068e..ef0620306f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_parameter_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_parameter_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ClearParameterCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_password_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_password_command.ex
index d26bc86d54..7f91844d1f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_password_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_password_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ClearPasswordCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_permissions_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_permissions_command.ex
index 76aebb46d6..28671aafdc 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_permissions_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_permissions_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ClearPermissionsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_policy_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_policy_command.ex
index 47e4f2ea06..f7114e4e57 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_policy_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_policy_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ClearPolicyCommand do
alias RabbitMQ.CLI.Core.{Helpers, DocGuide}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_topic_permissions_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_topic_permissions_command.ex
index 6c9f5f7002..e83e2cde8b 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_topic_permissions_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_topic_permissions_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ClearTopicPermissionsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_user_limits_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_user_limits_command.ex
index 38f4ded1e5..3264b03ce6 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_user_limits_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_user_limits_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ClearUserLimitsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_vhost_limits_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_vhost_limits_command.ex
index 8adccb63f5..e6ab0102e6 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_vhost_limits_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/clear_vhost_limits_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ClearVhostLimitsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_all_connections_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_all_connections_command.ex
index 94f58bdc59..0117035018 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_all_connections_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_all_connections_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.CloseAllConnectionsCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_all_user_connections_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_all_user_connections_command.ex
index 6bce8fb4ff..8a673a29ff 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_all_user_connections_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_all_user_connections_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.CloseAllUserConnectionsCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_connection_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_connection_command.ex
index e9db621b6b..0f34f68edd 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_connection_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/close_connection_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.CloseConnectionCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/cluster_status_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/cluster_status_command.ex
index d47e5be9e2..cdfea1bab1 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/cluster_status_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/cluster_status_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ClusterStatusCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/decode_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/decode_command.ex
index 2e4be0540b..4fca52211a 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/decode_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/decode_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
alias RabbitMQ.CLI.Core.Helpers
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_queue_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_queue_command.ex
index 4cf08bd947..9811bc2c56 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_queue_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_queue_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.DeleteQueueCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_user_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_user_command.ex
index 9ee72042fd..940c380b48 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_user_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_user_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.DeleteUserCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_vhost_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_vhost_command.ex
index 89ae26184a..faa33aef09 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_vhost_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/delete_vhost_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.DeleteVhostCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/enable_feature_flag_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/enable_feature_flag_command.ex
index be421d14a5..0530f4f96f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/enable_feature_flag_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/enable_feature_flag_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.EnableFeatureFlagCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/encode_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/encode_command.ex
index 2d53978b89..885d6fda55 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/encode_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/encode_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.EncodeCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers, Input}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/environment_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/environment_command.ex
index 649464fd2a..5e763403c9 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/environment_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/environment_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.EnvironmentCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/eval_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/eval_command.ex
index 1e46854d80..33782726e7 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/eval_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/eval_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.EvalCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ErlEval, ExitCodes, Input}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/eval_file_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/eval_file_command.ex
index f6e3e06dd1..d85c8bfef6 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/eval_file_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/eval_file_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.EvalFileCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ErlEval, ExitCodes}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/exec_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/exec_command.ex
index 69b74a7954..5d3e6eb1d8 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/exec_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/exec_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ExecCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/export_definitions_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/export_definitions_command.ex
index dffde7cf24..f0088e872d 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/export_definitions_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/export_definitions_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ExportDefinitionsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_boot_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_boot_command.ex
index 01de7f2087..3c505e3904 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_boot_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_boot_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ForceBootCommand do
alias RabbitMQ.CLI.Core.{Config, DocGuide}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_gc_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_gc_command.ex
index ca6285848c..5c3948a361 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_gc_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_gc_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ForceGcCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_reset_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_reset_command.ex
index b4aabede10..b8e87d4810 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_reset_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/force_reset_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ForceResetCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/forget_cluster_node_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/forget_cluster_node_command.ex
index 7c9e551d4c..df9b2440ae 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/forget_cluster_node_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/forget_cluster_node_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ForgetClusterNodeCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Distribution, Validators}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/help_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/help_command.ex
index 9613db213a..b39f089819 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/help_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/help_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
alias RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/hipe_compile_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/hipe_compile_command.ex
index 11d7c00b81..5fc88efbea 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/hipe_compile_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/hipe_compile_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.HipeCompileCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/import_definitions_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/import_definitions_command.ex
index 958fcbe28b..50f7463661 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/import_definitions_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/import_definitions_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ImportDefinitionsCommand do
alias RabbitMQ.CLI.Core.{Config, DocGuide, ExitCodes, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/join_cluster_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/join_cluster_command.ex
index 5dcd1e67e9..f75498831f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/join_cluster_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/join_cluster_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.JoinClusterCommand do
alias RabbitMQ.CLI.Core.{Config, DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_bindings_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_bindings_command.ex
index 3257cc2c55..c72c77df29 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_bindings_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_bindings_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListBindingsCommand do
alias RabbitMQ.CLI.Ctl.{InfoKeys, RpcStream}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_channels_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_channels_command.ex
index 2e4222e068..cebe5dfaf1 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_channels_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_channels_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
##
defmodule RabbitMQ.CLI.Ctl.Commands.ListChannelsCommand do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_ciphers_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_ciphers_command.ex
index d2390261bf..d1e820a4b4 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_ciphers_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_ciphers_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListCiphersCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_connections_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_connections_command.ex
index 02353dda5b..8dc09989cb 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_connections_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_connections_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListConnectionsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_consumers_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_consumers_command.ex
index 517936640c..913963dfbf 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_consumers_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_consumers_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListConsumersCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_exchanges_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_exchanges_command.ex
index 6bf00b8e30..7840550457 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_exchanges_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_exchanges_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListExchangesCommand do
alias RabbitMQ.CLI.Ctl.{InfoKeys, RpcStream}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_feature_flags_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_feature_flags_command.ex
index 2ab9da861e..30caba8339 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_feature_flags_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_feature_flags_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListFeatureFlagsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Validators}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_global_parameters_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_global_parameters_command.ex
index b0cda1469c..a73e7322bb 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_global_parameters_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_global_parameters_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListGlobalParametersCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_hashes_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_hashes_command.ex
index 6ddb024332..2cbf813aad 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_hashes_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_hashes_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListHashesCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_operator_policies_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_operator_policies_command.ex
index baf3c9b345..b68dc32bf3 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_operator_policies_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_operator_policies_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListOperatorPoliciesCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_parameters_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_parameters_command.ex
index 18b0db8d80..a67dba4ad7 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_parameters_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_parameters_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListParametersCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_permissions_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_permissions_command.ex
index 37b0250936..9097c96ee1 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_permissions_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_permissions_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListPermissionsCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_policies_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_policies_command.ex
index c54914fac1..692956b6b4 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_policies_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_policies_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListPoliciesCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_queues_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_queues_command.ex
index 90a12a5e2c..5788f61169 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_queues_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_queues_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListQueuesCommand do
require RabbitMQ.CLI.Ctl.InfoKeys
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_topic_permissions_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_topic_permissions_command.ex
index 93bbb16300..7b50b343ce 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_topic_permissions_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_topic_permissions_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListTopicPermissionsCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_unresponsive_queues_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_unresponsive_queues_command.ex
index 0101d462f3..b9674dd774 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_unresponsive_queues_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_unresponsive_queues_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListUnresponsiveQueuesCommand do
require RabbitMQ.CLI.Ctl.InfoKeys
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_user_permissions_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_user_permissions_command.ex
index cf4ef53a97..1060e71e8f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_user_permissions_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_user_permissions_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListUserPermissionsCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_user_topic_permissions_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_user_topic_permissions_command.ex
index 78393ff77d..abca7c900f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_user_topic_permissions_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_user_topic_permissions_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListUserTopicPermissionsCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_users_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_users_command.ex
index 247b4c6cf4..81e3180bde 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_users_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_users_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListUsersCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_vhost_limits_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_vhost_limits_command.ex
index 91fd998172..973452816b 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_vhost_limits_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_vhost_limits_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListVhostLimitsCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_vhosts_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_vhosts_command.ex
index 4e4e444647..36507eb381 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_vhosts_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_vhosts_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ListVhostsCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/node_health_check_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/node_health_check_command.ex
index 9e898dd428..a641b7be82 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/node_health_check_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/node_health_check_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.NodeHealthCheckCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/ping_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/ping_command.ex
index e949554a1b..cc250a734a 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/ping_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/ping_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.PingCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/purge_queue_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/purge_queue_command.ex
index a46fd59d1c..7343830fbb 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/purge_queue_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/purge_queue_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.PurgeQueueCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/rename_cluster_node_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/rename_cluster_node_command.ex
index 97c8d8e6db..173c355abb 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/rename_cluster_node_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/rename_cluster_node_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.RenameClusterNodeCommand do
require Integer
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/report_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/report_command.ex
index a2aada8111..008cba7f07 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/report_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/report_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ReportCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/reset_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/reset_command.ex
index 4c6d8a9d26..7331451fa7 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/reset_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/reset_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ResetCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/restart_vhost_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/restart_vhost_command.ex
index 5f654b4a2e..9b0d80268c 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/restart_vhost_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/restart_vhost_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
alias RabbitMQ.CLI.Core.ExitCodes
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/resume_listeners_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/resume_listeners_command.ex
index afa500be6d..7b0067dc12 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/resume_listeners_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/resume_listeners_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ResumeListenersCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/rotate_logs_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/rotate_logs_command.ex
index ddf295d14a..e88df859a6 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/rotate_logs_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/rotate_logs_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.RotateLogsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_cluster_name_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_cluster_name_command.ex
index 9d1e46c176..5bef54ec9d 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_cluster_name_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_cluster_name_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetClusterNameCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_disk_free_limit_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_disk_free_limit_command.ex
index f7dc8ea3a5..135cc5a939 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_disk_free_limit_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_disk_free_limit_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetDiskFreeLimitCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_global_parameter_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_global_parameter_command.ex
index a7edb7877a..e549f518b1 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_global_parameter_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_global_parameter_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetGlobalParameterCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_log_level_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_log_level_command.ex
index 972d0cd979..4f8bd83bb8 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_log_level_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_log_level_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetLogLevelCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_operator_policy_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_operator_policy_command.ex
index a612f8a7fb..c5d241b931 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_operator_policy_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_operator_policy_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetOperatorPolicyCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_parameter_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_parameter_command.ex
index 11d0a2978e..ba10ab45c0 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_parameter_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_parameter_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetParameterCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_permissions_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_permissions_command.ex
index c585aca45a..b5b5b25478 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_permissions_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_permissions_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetPermissionsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_policy_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_policy_command.ex
index 5393141346..749c1ee36d 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_policy_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_policy_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetPolicyCommand do
alias RabbitMQ.CLI.Core.{Helpers, DocGuide}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_topic_permissions_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_topic_permissions_command.ex
index 2e37a6fa12..a8089dc9fc 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_topic_permissions_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_topic_permissions_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetTopicPermissionsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_user_tags_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_user_tags_command.ex
index e166198d0b..bc43c7502c 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_user_tags_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_user_tags_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetUserTagsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vhost_limits_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vhost_limits_command.ex
index cfdbcdb735..975b4fc4c5 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vhost_limits_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vhost_limits_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetVhostLimitsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vhost_tags_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vhost_tags_command.ex
index 752e329db1..23349dbe6e 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vhost_tags_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vhost_tags_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetVhostTagsCommand do
alias RabbitMQ.CLI.Core.{DocGuide, ExitCodes, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vm_memory_high_watermark_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vm_memory_high_watermark_command.ex
index bfdbd195cb..be96e01555 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vm_memory_high_watermark_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/set_vm_memory_high_watermark_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SetVmMemoryHighWatermarkCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/shutdown_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/shutdown_command.ex
index c21cf2eb56..b51223e3e9 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/shutdown_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/shutdown_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.ShutdownCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/start_app_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/start_app_command.ex
index 70d4884162..6362c11418 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/start_app_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/start_app_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.StartAppCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/status_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/status_command.ex
index 1719a5e2b3..3ef2a4f6df 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/status_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/status_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.StatusCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/stop_app_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/stop_app_command.ex
index 87604f581a..b83c4ef7eb 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/stop_app_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/stop_app_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.StopAppCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/stop_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/stop_command.ex
index b19426d760..b0249b214f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/stop_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/stop_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.StopCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/suspend_listeners_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/suspend_listeners_command.ex
index 6fbb5b6725..93a5675384 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/suspend_listeners_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/suspend_listeners_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SuspendListenersCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/sync_queue_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/sync_queue_command.ex
index 43399973f3..f3e6a82369 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/sync_queue_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/sync_queue_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.SyncQueueCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/trace_off_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/trace_off_command.ex
index 2baf0c1002..b305214ec8 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/trace_off_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/trace_off_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.TraceOffCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/trace_on_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/trace_on_command.ex
index 3f45efc782..ec4d519c72 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/trace_on_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/trace_on_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.TraceOnCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/update_cluster_nodes_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/update_cluster_nodes_command.ex
index 1823545dcd..778d78d9bb 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/update_cluster_nodes_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/update_cluster_nodes_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.UpdateClusterNodesCommand do
alias RabbitMQ.CLI.Core.{Config, DocGuide, Helpers}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/version_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/version_command.ex
index 3d1a62704c..7f3dc6f6d6 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/version_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/version_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.VersionCommand do
alias RabbitMQ.CLI.Core.{Validators, Version}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/wait_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/wait_command.ex
index 99d69792d3..112d791131 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/wait_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/wait_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.Commands.WaitCommand do
alias RabbitMQ.CLI.Core.{Helpers, Validators}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/info_keys.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/info_keys.ex
index a52fd66cd0..e6154c0dd5 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/info_keys.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/info_keys.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.InfoKeys do
import RabbitCommon.Records
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/rpc_stream.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/rpc_stream.ex
index 0575b22bee..38044233aa 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/rpc_stream.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/rpc_stream.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Ctl.RpcStream do
alias RabbitMQ.CLI.Ctl.InfoKeys
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/default_output.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/default_output.ex
index ca4f28a67a..81199ce76a 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/default_output.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/default_output.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
alias RabbitMQ.CLI.Formatters.FormatterHelpers
defmodule RabbitMQ.CLI.DefaultOutput do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/alarms_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/alarms_command.ex
index 37f25e6879..800f85c29f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/alarms_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/alarms_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.AlarmsCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/certificates_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/certificates_command.ex
index d2fc18cba9..733492a1df 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/certificates_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/certificates_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.CertificatesCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_alarms_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_alarms_command.ex
index 2754a9a348..4130fe26d0 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_alarms_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_alarms_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.CheckAlarmsCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_certificate_expiration_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_certificate_expiration_command.ex
index 2084bb33fa..20ee83a975 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_certificate_expiration_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_certificate_expiration_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.CheckCertificateExpirationCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_local_alarms_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_local_alarms_command.ex
index 054851d1e2..d967d4379a 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_local_alarms_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_local_alarms_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.CheckLocalAlarmsCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_port_connectivity_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_port_connectivity_command.ex
index a94b01a50b..8543e1fdd0 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_port_connectivity_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_port_connectivity_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.CheckPortConnectivityCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_port_listener_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_port_listener_command.ex
index 740c046534..0552cfd1a9 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_port_listener_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_port_listener_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.CheckPortListenerCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_protocol_listener_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_protocol_listener_command.ex
index 4ddab9d43b..20ae316684 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_protocol_listener_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_protocol_listener_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.CheckProtocolListenerCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_running_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_running_command.ex
index 94d193cd64..15ff34d7f4 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_running_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_running_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.CheckRunningCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_virtual_hosts_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_virtual_hosts_command.ex
index b0b33fda0f..82733cc312 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_virtual_hosts_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/check_virtual_hosts_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.CheckVirtualHostsCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/cipher_suites_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/cipher_suites_command.ex
index 6f55c274d9..4aab0554bc 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/cipher_suites_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/cipher_suites_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.CipherSuitesCommand do
alias RabbitMQ.CLI.Core.Helpers
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/command_line_arguments_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/command_line_arguments_command.ex
index 352789ce51..10e7635e70 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/command_line_arguments_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/command_line_arguments_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.CommandLineArgumentsCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/consume_event_stream_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/consume_event_stream_command.ex
index 6a37625670..8bbd5df124 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/consume_event_stream_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/consume_event_stream_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.ConsumeEventStreamCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/disable_auth_attempt_source_tracking_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/disable_auth_attempt_source_tracking_command.ex
index 4b40a6ef09..8d1d058f30 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/disable_auth_attempt_source_tracking_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/disable_auth_attempt_source_tracking_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.DisableAuthAttemptSourceTrackingCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/discover_peers_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/discover_peers_command.ex
index e9b2848c6a..de7f732960 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/discover_peers_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/discover_peers_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.DiscoverPeersCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/enable_auth_attempt_source_tracking_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/enable_auth_attempt_source_tracking_command.ex
index 531f6815b3..323eaaa5f1 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/enable_auth_attempt_source_tracking_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/enable_auth_attempt_source_tracking_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.EnableAuthAttemptSourceTrackingCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_cookie_hash_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_cookie_hash_command.ex
index 1a3c35fbce..cdf3d02be4 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_cookie_hash_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_cookie_hash_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.ErlangCookieHashCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_cookie_sources_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_cookie_sources_command.ex
index 328dfee6e0..adc56c453b 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_cookie_sources_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_cookie_sources_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.ErlangCookieSourcesCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_version_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_version_command.ex
index 2b82fc9806..48923d5ee6 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_version_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/erlang_version_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.ErlangVersionCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/is_booting_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/is_booting_command.ex
index 53141b96b2..c1fc626c34 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/is_booting_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/is_booting_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.IsBootingCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/is_running_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/is_running_command.ex
index 7a6128ca35..65212baeec 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/is_running_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/is_running_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.IsRunningCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/list_network_interfaces_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/list_network_interfaces_command.ex
index ec58a8ff6d..54542901cb 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/list_network_interfaces_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/list_network_interfaces_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.ListNetworkInterfacesCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/list_node_auth_attempt_stats_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/list_node_auth_attempt_stats_command.ex
index 3ef829ad67..845cc224e9 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/list_node_auth_attempt_stats_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/list_node_auth_attempt_stats_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.ListNodeAuthAttemptStatsCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/listeners_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/listeners_command.ex
index 3d71f585b1..aebfaa35ea 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/listeners_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/listeners_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.ListenersCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_location_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_location_command.ex
index 321567629e..2eb66dae9b 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_location_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_location_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.LogLocationCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_tail_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_tail_command.ex
index b868d94cce..0f06ee8632 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_tail_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_tail_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.LogTailCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_tail_stream_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_tail_stream_command.ex
index 88c440111b..32f347513f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_tail_stream_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/log_tail_stream_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.LogTailStreamCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/maybe_stuck_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/maybe_stuck_command.ex
index 84ac6820fe..db1188fe66 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/maybe_stuck_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/maybe_stuck_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.MaybeStuckCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/memory_breakdown_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/memory_breakdown_command.ex
index 653989b418..2707b97cf9 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/memory_breakdown_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/memory_breakdown_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.MemoryBreakdownCommand do
alias RabbitMQ.CLI.InformationUnit, as: IU
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/observer_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/observer_command.ex
index 318864017c..5cc1af646a 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/observer_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/observer_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.ObserverCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/os_env_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/os_env_command.ex
index 2d85f993d3..cee60360f8 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/os_env_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/os_env_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.OsEnvCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/remote_shell_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/remote_shell_command.ex
index af3deb52cd..1d4726bc61 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/remote_shell_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/remote_shell_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.RemoteShellCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/reset_node_auth_attempt_metrics_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/reset_node_auth_attempt_metrics_command.ex
index f9df8be287..dda2344a6f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/reset_node_auth_attempt_metrics_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/reset_node_auth_attempt_metrics_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.ResetNodeAuthAttemptMetricsCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/resolve_hostname_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/resolve_hostname_command.ex
index a01c2165f7..1847a5b419 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/resolve_hostname_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/resolve_hostname_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.ResolveHostnameCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/resolver_info_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/resolver_info_command.ex
index ed6f13185a..9dea234c49 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/resolver_info_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/resolver_info_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.ResolverInfoCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/runtime_thread_stats_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/runtime_thread_stats_command.ex
index 79582129a4..d6116106b5 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/runtime_thread_stats_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/runtime_thread_stats_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.RuntimeThreadStatsCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/schema_info_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/schema_info_command.ex
index c828e9fd48..b59f45f577 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/schema_info_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/schema_info_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.SchemaInfoCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/server_version_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/server_version_command.ex
index a8d73f9d3a..5418dd29d1 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/server_version_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/server_version_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.ServerVersionCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/tls_versions_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/tls_versions_command.ex
index cda4bdc5f6..0e6c099e51 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/tls_versions_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/commands/tls_versions_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Commands.TlsVersionsCommand do
@behaviour RabbitMQ.CLI.CommandBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/diagnostics_helpers.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/diagnostics_helpers.ex
index 908cd7266f..a3df059bc0 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/diagnostics_helpers.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/diagnostics/diagnostics_helpers.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Diagnostics.Helpers do
def test_connection(hostname, port, timeout) do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatter_behaviour.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatter_behaviour.ex
index 3b22a9a821..684950936e 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatter_behaviour.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatter_behaviour.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Formats returned values e.g. to human-readable text or JSON.
defmodule RabbitMQ.CLI.FormatterBehaviour do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/csv.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/csv.ex
index 337a8e4f01..f8980139bf 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/csv.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/csv.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
alias RabbitMQ.CLI.Formatters.FormatterHelpers
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/erlang.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/erlang.ex
index 9d23185a04..5919512b23 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/erlang.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/erlang.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Formatters.Erlang do
@behaviour RabbitMQ.CLI.FormatterBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/formatter_helpers.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/formatter_helpers.ex
index da88db5b81..c4dfa10194 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/formatter_helpers.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/formatter_helpers.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Formatters.FormatterHelpers do
import RabbitCommon.Records
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/inspect.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/inspect.ex
index 7a792b1e6e..7cc34b2ef0 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/inspect.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/inspect.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
alias RabbitMQ.CLI.Formatters.FormatterHelpers
defmodule RabbitMQ.CLI.Formatters.Inspect do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/json.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/json.ex
index 5f048e72a4..ad46b1be9b 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/json.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/json.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Basic JSON formatter. Supports 1-level of
# collection using start/finish_collection.
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/json_stream.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/json_stream.ex
index ff965a771f..7f29998a86 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/json_stream.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/json_stream.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Basic JSON formatter. Supports 1-level of
# collection using start/finish_collection.
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/msacc.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/msacc.ex
index 3c4cc095a7..02ce7b3abd 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/msacc.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/msacc.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Formatters.Msacc do
@behaviour RabbitMQ.CLI.FormatterBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/plugins.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/plugins.ex
index 4f9792b8db..19411b86f8 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/plugins.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/plugins.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
alias RabbitMQ.CLI.Formatters.FormatterHelpers
defmodule RabbitMQ.CLI.Formatters.Plugins do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/pretty_table.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/pretty_table.ex
index f0cf036173..9351bcc269 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/pretty_table.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/pretty_table.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Formatters.PrettyTable do
@behaviour RabbitMQ.CLI.FormatterBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/report.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/report.ex
index d8079415c2..345284f31f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/report.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/report.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Formatters.Report do
alias RabbitMQ.CLI.Formatters.FormatterHelpers
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/string.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/string.ex
index 9830735d75..2631e08742 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/string.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/string.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
## Prints values from a command as strings(if possible)
defmodule RabbitMQ.CLI.Formatters.String do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/string_per_line.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/string_per_line.ex
index 6749a79a9c..56da194aee 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/string_per_line.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/string_per_line.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Formatters.StringPerLine do
@doc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/table.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/table.ex
index c880977fe6..44cd8d9612 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/table.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/table.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
alias RabbitMQ.CLI.Formatters.FormatterHelpers
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/information_unit.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/information_unit.ex
index fa548c8fe1..ceced30d4a 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/information_unit.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/information_unit.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.InformationUnit do
require MapSet
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/directories_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/directories_command.ex
index 66869f4adf..b1df771646 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/directories_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/directories_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Plugins.Commands.DirectoriesCommand do
alias RabbitMQ.CLI.Plugins.Helpers, as: PluginHelpers
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/disable_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/disable_command.ex
index c529d12573..4c4ae384fa 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/disable_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/disable_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Plugins.Commands.DisableCommand do
alias RabbitMQ.CLI.Plugins.Helpers, as: PluginHelpers
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/enable_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/enable_command.ex
index 54c856acab..9f687df4f0 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/enable_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/enable_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Plugins.Commands.EnableCommand do
alias RabbitMQ.CLI.Plugins.Helpers, as: PluginHelpers
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/is_enabled.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/is_enabled.ex
index 1133cf59ce..a18037720f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/is_enabled.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/is_enabled.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Plugins.Commands.IsEnabledCommand do
alias RabbitMQ.CLI.Plugins.Helpers, as: PluginHelpers
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/list_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/list_command.ex
index 0930e30781..632b64c432 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/list_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/list_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Plugins.Commands.ListCommand do
import RabbitCommon.Records
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/set_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/set_command.ex
index aa295ad1be..42ed68c0c7 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/set_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/commands/set_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Plugins.Commands.SetCommand do
alias RabbitMQ.CLI.Plugins.Helpers, as: PluginHelpers
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/error_output.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/error_output.ex
index 770a8dc30a..ad21bb6866 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/error_output.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/error_output.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
# Default output implementation for plugin commands
defmodule RabbitMQ.CLI.Plugins.ErrorOutput do
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/plugins_helpers.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/plugins_helpers.ex
index 8ad66d0fdc..fa0ac9ddb4 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/plugins_helpers.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/plugins/plugins_helpers.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Plugins.Helpers do
import RabbitMQ.CLI.Core.DataCoercion
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/printer_behaviour.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/printer_behaviour.ex
index af51400310..e8bf9425e8 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/printer_behaviour.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/printer_behaviour.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.PrinterBehaviour do
@callback init(options :: map()) :: {:ok, printer_state :: any} | {:error, error :: any}
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/printers/file.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/printers/file.ex
index cc0333c928..498e2039b9 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/printers/file.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/printers/file.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Printers.File do
@behaviour RabbitMQ.CLI.PrinterBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/printers/std_io.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/printers/std_io.ex
index b8154a0438..5fbe53407f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/printers/std_io.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/printers/std_io.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Printers.StdIO do
@behaviour RabbitMQ.CLI.PrinterBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/printers/std_io_raw.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/printers/std_io_raw.ex
index 9b24d4035e..df95e5c116 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/printers/std_io_raw.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/printers/std_io_raw.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Printers.StdIORaw do
@behaviour RabbitMQ.CLI.PrinterBehaviour
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/add_member_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/add_member_command.ex
index 3026a3dec5..afc0770a99 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/add_member_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/add_member_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Queues.Commands.AddMemberCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/check_if_node_is_mirror_sync_critical_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/check_if_node_is_mirror_sync_critical_command.ex
index ae599f467d..47081be131 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/check_if_node_is_mirror_sync_critical_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/check_if_node_is_mirror_sync_critical_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Queues.Commands.CheckIfNodeIsMirrorSyncCriticalCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/check_if_node_is_quorum_critical_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/check_if_node_is_quorum_critical_command.ex
index aef86bc2d6..a54e424451 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/check_if_node_is_quorum_critical_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/check_if_node_is_quorum_critical_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Queues.Commands.CheckIfNodeIsQuorumCriticalCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/delete_member_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/delete_member_command.ex
index 4fe9d77b52..e965e3ad3d 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/delete_member_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/delete_member_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Queues.Commands.DeleteMemberCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/grow_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/grow_command.ex
index fac6da0b3d..46aaf5b988 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/grow_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/grow_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Queues.Commands.GrowCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/peek_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/peek_command.ex
index b79b71f0fa..524a8547f6 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/peek_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/peek_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Queues.Commands.PeekCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/quorum_status_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/quorum_status_command.ex
index 2bbaa3ed9b..58f1fd543c 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/quorum_status_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/quorum_status_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Queues.Commands.QuorumStatusCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/rebalance_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/rebalance_command.ex
index 0837db8857..7ced1b3298 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/rebalance_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/rebalance_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Queues.Commands.RebalanceCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/reclaim_quorum_memory_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/reclaim_quorum_memory_command.ex
index 2e81dffe1b..03e7457f13 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/reclaim_quorum_memory_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/reclaim_quorum_memory_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Queues.Commands.ReclaimQuorumMemoryCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/shrink_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/shrink_command.ex
index f7ed1b716a..85cf539db3 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/shrink_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/queues/commands/shrink_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Queues.Commands.ShrinkCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/add_replica_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/add_replica_command.ex
index 5586461081..ec065e6eaf 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/add_replica_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/add_replica_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Streams.Commands.AddReplicaCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/delete_replica_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/delete_replica_command.ex
index 9f0c2213a3..f0064834f8 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/delete_replica_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/delete_replica_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Streams.Commands.DeleteReplicaCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/restart_stream_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/restart_stream_command.ex
new file mode 100644
index 0000000000..2ea682c05d
--- /dev/null
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/restart_stream_command.ex
@@ -0,0 +1,74 @@
+## This Source Code Form is subject to the terms of the Mozilla Public
+## License, v. 2.0. If a copy of the MPL was not distributed with this
+## file, You can obtain one at https://mozilla.org/MPL/2.0/.
+##
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
+
+defmodule RabbitMQ.CLI.Streams.Commands.RestartStreamCommand do
+ alias RabbitMQ.CLI.Core.DocGuide
+ import RabbitMQ.CLI.Core.DataCoercion
+
+ @behaviour RabbitMQ.CLI.CommandBehaviour
+
+ def merge_defaults(args, opts) do
+ {args, Map.merge(%{vhost: "/"}, opts)}
+ end
+
+ def switches() do
+ [preferred_leader_node: :string]
+ end
+
+ use RabbitMQ.CLI.Core.AcceptsOnePositionalArgument
+ use RabbitMQ.CLI.Core.RequiresRabbitAppRunning
+
+ def run([name], %{vhost: vhost, node: node_name} = switches) do
+ preferred = Map.get(switches, :preferred_leader_node, :undefined)
+
+ options = %{preferred_leader_node: to_atom(preferred)}
+
+ case :rabbit_misc.rpc_call(node_name, :rabbit_stream_queue, :restart_stream, [
+ vhost,
+ name,
+ options
+ ]) do
+ {:error, :classic_queue_not_supported} ->
+ {:error, "Cannot restart a classic queue"}
+
+ {:error, :quorum_queue_not_supported} ->
+ {:error, "Cannot restart a quorum queue"}
+
+ {:ok, LeaderNode} ->
+ LeaderNode
+
+ other ->
+ other
+ end
+ end
+
+ use RabbitMQ.CLI.DefaultOutput
+
+ def usage, do: "restart_stream [--vhost <vhost>] <stream> [--preferred-leader-node <node>]"
+
+ def usage_additional do
+ [
+ ["<stream>", "stream name"],
+ ["--preferred-leader-node", "preferred leader node"]
+ ]
+ end
+
+ def usage_doc_guides() do
+ [
+ DocGuide.streams()
+ ]
+ end
+
+ def help_section, do: :replication
+
+ def description, do: "Restarts a stream."
+
+ def banner([name], _) do
+ [
+ "Restarting stream #{name}..."
+ ]
+ end
+end
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/set_stream_retention_policy_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/set_stream_retention_policy_command.ex
index 2878e29a9f..319709516a 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/set_stream_retention_policy_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/set_stream_retention_policy_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Streams.Commands.SetStreamRetentionPolicyCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/stream_status_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/stream_status_command.ex
index e87c5295ce..4011525a04 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/stream_status_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/streams/commands/stream_status_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Streams.Commands.StreamStatusCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/time_unit.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/time_unit.ex
index c26b7c17bb..96d86b2c10 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/time_unit.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/time_unit.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.TimeUnit do
require MapSet
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/await_online_quorum_plus_one_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/await_online_quorum_plus_one_command.ex
index fd541d6e02..fe1f3dbc4a 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/await_online_quorum_plus_one_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/await_online_quorum_plus_one_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Upgrade.Commands.AwaitOnlineQuorumPlusOneCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/await_online_synchronized_mirror_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/await_online_synchronized_mirror_command.ex
index 7396a31f00..306fde2e4f 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/await_online_synchronized_mirror_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/await_online_synchronized_mirror_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Upgrade.Commands.AwaitOnlineSynchronizedMirrorCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/drain_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/drain_command.ex
index 79fe903803..31a2d15b0b 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/drain_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/drain_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Upgrade.Commands.DrainCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/post_upgrade_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/post_upgrade_command.ex
index d0cb57a569..89913cb48c 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/post_upgrade_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/post_upgrade_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Upgrade.Commands.PostUpgradeCommand do
alias RabbitMQ.CLI.Core.DocGuide
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/revive_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/revive_command.ex
index ea663ba538..af95294270 100644
--- a/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/revive_command.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/upgrade/commands/revive_command.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQ.CLI.Upgrade.Commands.ReviveCommand do
@moduledoc """
diff --git a/deps/rabbitmq_cli/lib/rabbitmqctl.ex b/deps/rabbitmq_cli/lib/rabbitmqctl.ex
index 41d18da13f..179c44d002 100644
--- a/deps/rabbitmq_cli/lib/rabbitmqctl.ex
+++ b/deps/rabbitmq_cli/lib/rabbitmqctl.ex
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule RabbitMQCtl do
alias RabbitMQ.CLI.Core.{
diff --git a/deps/rabbitmq_cli/test/ctl/clear_global_parameter_command_test.exs b/deps/rabbitmq_cli/test/ctl/clear_global_parameter_command_test.exs
index 1907359ef1..2da739efd0 100644
--- a/deps/rabbitmq_cli/test/ctl/clear_global_parameter_command_test.exs
+++ b/deps/rabbitmq_cli/test/ctl/clear_global_parameter_command_test.exs
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule ClearGlobalParameterCommandTest do
use ExUnit.Case, async: false
diff --git a/deps/rabbitmq_cli/test/ctl/clear_policy_command_test.exs b/deps/rabbitmq_cli/test/ctl/clear_policy_command_test.exs
index 66287127d6..ee25666234 100644
--- a/deps/rabbitmq_cli/test/ctl/clear_policy_command_test.exs
+++ b/deps/rabbitmq_cli/test/ctl/clear_policy_command_test.exs
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule ClearPolicyCommandTest do
use ExUnit.Case, async: false
diff --git a/deps/rabbitmq_cli/test/ctl/close_all_user_connections_command_test.exs b/deps/rabbitmq_cli/test/ctl/close_all_user_connections_command_test.exs
index 11c55f7a63..0a870a2ad0 100644
--- a/deps/rabbitmq_cli/test/ctl/close_all_user_connections_command_test.exs
+++ b/deps/rabbitmq_cli/test/ctl/close_all_user_connections_command_test.exs
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule CloseAllUserConnectionsCommandTest do
use ExUnit.Case, async: false
diff --git a/deps/rabbitmq_cli/test/ctl/decode_command_test.exs b/deps/rabbitmq_cli/test/ctl/decode_command_test.exs
index e7d5224b73..197b3dcf79 100644
--- a/deps/rabbitmq_cli/test/ctl/decode_command_test.exs
+++ b/deps/rabbitmq_cli/test/ctl/decode_command_test.exs
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule DecodeCommandTest do
use ExUnit.Case, async: false
diff --git a/deps/rabbitmq_cli/test/ctl/encode_command_test.exs b/deps/rabbitmq_cli/test/ctl/encode_command_test.exs
index a9cacd73ec..36dbb2be0a 100644
--- a/deps/rabbitmq_cli/test/ctl/encode_command_test.exs
+++ b/deps/rabbitmq_cli/test/ctl/encode_command_test.exs
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
defmodule EncodeCommandTest do
use ExUnit.Case, async: false
diff --git a/deps/rabbitmq_cli/test/ctl/resume_listeners_command_test.exs b/deps/rabbitmq_cli/test/ctl/resume_listeners_command_test.exs
index c7b8ea3499..7c9db72cc9 100644
--- a/deps/rabbitmq_cli/test/ctl/resume_listeners_command_test.exs
+++ b/deps/rabbitmq_cli/test/ctl/resume_listeners_command_test.exs
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
##
defmodule ResumeListenersCommandTest do
diff --git a/deps/rabbitmq_cli/test/ctl/suspend_listeners_command_test.exs b/deps/rabbitmq_cli/test/ctl/suspend_listeners_command_test.exs
index 9b2c238078..1779f3c28a 100644
--- a/deps/rabbitmq_cli/test/ctl/suspend_listeners_command_test.exs
+++ b/deps/rabbitmq_cli/test/ctl/suspend_listeners_command_test.exs
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
##
defmodule SuspendListenersCommandTest do
diff --git a/deps/rabbitmq_cli/test/streams/add_replica_command_test.exs b/deps/rabbitmq_cli/test/streams/add_replica_command_test.exs
index 8f82f6214e..cdba4a07d7 100644
--- a/deps/rabbitmq_cli/test/streams/add_replica_command_test.exs
+++ b/deps/rabbitmq_cli/test/streams/add_replica_command_test.exs
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
##
defmodule RabbitMQ.CLI.Streams.Commands.AddReplicaCommandTest do
diff --git a/deps/rabbitmq_cli/test/streams/delete_replica_command_test.exs b/deps/rabbitmq_cli/test/streams/delete_replica_command_test.exs
index 215797517a..83bf7d636d 100644
--- a/deps/rabbitmq_cli/test/streams/delete_replica_command_test.exs
+++ b/deps/rabbitmq_cli/test/streams/delete_replica_command_test.exs
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
##
defmodule RabbitMQ.CLI.Streams.Commands.DeleteReplicaCommandTest do
diff --git a/deps/rabbitmq_cli/test/streams/set_stream_retention_policy_command_test.exs b/deps/rabbitmq_cli/test/streams/set_stream_retention_policy_command_test.exs
index 146dfbce09..6a9a47f089 100644
--- a/deps/rabbitmq_cli/test/streams/set_stream_retention_policy_command_test.exs
+++ b/deps/rabbitmq_cli/test/streams/set_stream_retention_policy_command_test.exs
@@ -2,7 +2,7 @@
## License, v. 2.0. If a copy of the MPL was not distributed with this
## file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
-## Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+## Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
##
defmodule RabbitMQ.CLI.Streams.Commands.SetStreamRetentionPolicyCommandTest do
diff --git a/deps/rabbitmq_consistent_hash_exchange/src/Elixir.RabbitMQ.CLI.Diagnostics.Commands.ConsistentHashExchangeRingStateCommand.erl b/deps/rabbitmq_consistent_hash_exchange/src/Elixir.RabbitMQ.CLI.Diagnostics.Commands.ConsistentHashExchangeRingStateCommand.erl
index 81a06270ae..3f9935693b 100644
--- a/deps/rabbitmq_consistent_hash_exchange/src/Elixir.RabbitMQ.CLI.Diagnostics.Commands.ConsistentHashExchangeRingStateCommand.erl
+++ b/deps/rabbitmq_consistent_hash_exchange/src/Elixir.RabbitMQ.CLI.Diagnostics.Commands.ConsistentHashExchangeRingStateCommand.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module('Elixir.RabbitMQ.CLI.Diagnostics.Commands.ConsistentHashExchangeRingStateCommand').
diff --git a/deps/rabbitmq_consistent_hash_exchange/src/rabbit_exchange_type_consistent_hash.erl b/deps/rabbitmq_consistent_hash_exchange/src/rabbit_exchange_type_consistent_hash.erl
index 9d0a541d2b..ab660ef29b 100644
--- a/deps/rabbitmq_consistent_hash_exchange/src/rabbit_exchange_type_consistent_hash.erl
+++ b/deps/rabbitmq_consistent_hash_exchange/src/rabbit_exchange_type_consistent_hash.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange_type_consistent_hash).
diff --git a/deps/rabbitmq_consistent_hash_exchange/test/rabbit_exchange_type_consistent_hash_SUITE.erl b/deps/rabbitmq_consistent_hash_exchange/test/rabbit_exchange_type_consistent_hash_SUITE.erl
index 5b140c2bac..b8891f9fd3 100644
--- a/deps/rabbitmq_consistent_hash_exchange/test/rabbit_exchange_type_consistent_hash_SUITE.erl
+++ b/deps/rabbitmq_consistent_hash_exchange/test/rabbit_exchange_type_consistent_hash_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange_type_consistent_hash_SUITE).
diff --git a/deps/rabbitmq_ct_client_helpers/src/rabbit_ct_client_helpers.erl b/deps/rabbitmq_ct_client_helpers/src/rabbit_ct_client_helpers.erl
index 2658b53af9..17301b555d 100644
--- a/deps/rabbitmq_ct_client_helpers/src/rabbit_ct_client_helpers.erl
+++ b/deps/rabbitmq_ct_client_helpers/src/rabbit_ct_client_helpers.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ct_client_helpers).
diff --git a/deps/rabbitmq_ct_helpers/src/rabbit_control_helper.erl b/deps/rabbitmq_ct_helpers/src/rabbit_control_helper.erl
index 37b5aa3db8..e484da32e8 100644
--- a/deps/rabbitmq_ct_helpers/src/rabbit_control_helper.erl
+++ b/deps/rabbitmq_ct_helpers/src/rabbit_control_helper.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_control_helper).
diff --git a/deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl b/deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl
index 0518ca8c23..43002d34e3 100644
--- a/deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl
+++ b/deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ct_broker_helpers).
diff --git a/deps/rabbitmq_ct_helpers/src/rabbit_ct_config_schema.erl b/deps/rabbitmq_ct_helpers/src/rabbit_ct_config_schema.erl
index 96d42ba987..dced3bd6ff 100644
--- a/deps/rabbitmq_ct_helpers/src/rabbit_ct_config_schema.erl
+++ b/deps/rabbitmq_ct_helpers/src/rabbit_ct_config_schema.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ct_config_schema).
diff --git a/deps/rabbitmq_ct_helpers/src/rabbit_ct_helpers.erl b/deps/rabbitmq_ct_helpers/src/rabbit_ct_helpers.erl
index 7c68ae7622..984a33b22a 100644
--- a/deps/rabbitmq_ct_helpers/src/rabbit_ct_helpers.erl
+++ b/deps/rabbitmq_ct_helpers/src/rabbit_ct_helpers.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ct_helpers).
diff --git a/deps/rabbitmq_ct_helpers/src/rabbit_ct_proper_helpers.erl b/deps/rabbitmq_ct_helpers/src/rabbit_ct_proper_helpers.erl
index aed1eff84a..f7e2e1f777 100644
--- a/deps/rabbitmq_ct_helpers/src/rabbit_ct_proper_helpers.erl
+++ b/deps/rabbitmq_ct_helpers/src/rabbit_ct_proper_helpers.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ct_proper_helpers).
diff --git a/deps/rabbitmq_ct_helpers/src/rabbit_ct_vm_helpers.erl b/deps/rabbitmq_ct_helpers/src/rabbit_ct_vm_helpers.erl
index d6ac3855f1..cddf47d5d3 100644
--- a/deps/rabbitmq_ct_helpers/src/rabbit_ct_vm_helpers.erl
+++ b/deps/rabbitmq_ct_helpers/src/rabbit_ct_vm_helpers.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ct_vm_helpers).
diff --git a/deps/rabbitmq_ct_helpers/src/rabbit_mgmt_test_util.erl b/deps/rabbitmq_ct_helpers/src/rabbit_mgmt_test_util.erl
index 289c17685e..2dde68900a 100644
--- a/deps/rabbitmq_ct_helpers/src/rabbit_mgmt_test_util.erl
+++ b/deps/rabbitmq_ct_helpers/src/rabbit_mgmt_test_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_test_util).
diff --git a/deps/rabbitmq_ct_helpers/test/terraform_SUITE.erl b/deps/rabbitmq_ct_helpers/test/terraform_SUITE.erl
index 461eaf3125..aed801e4b8 100644
--- a/deps/rabbitmq_ct_helpers/test/terraform_SUITE.erl
+++ b/deps/rabbitmq_ct_helpers/test/terraform_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(terraform_SUITE).
diff --git a/deps/rabbitmq_event_exchange/src/rabbit_event_exchange_decorator.erl b/deps/rabbitmq_event_exchange/src/rabbit_event_exchange_decorator.erl
index a3c01eca84..a0d5c24425 100644
--- a/deps/rabbitmq_event_exchange/src/rabbit_event_exchange_decorator.erl
+++ b/deps/rabbitmq_event_exchange/src/rabbit_event_exchange_decorator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_event_exchange_decorator).
diff --git a/deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl b/deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl
index 1901e42172..8bbfb058b8 100644
--- a/deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl
+++ b/deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange_type_event).
diff --git a/deps/rabbitmq_event_exchange/test/config_schema_SUITE.erl b/deps/rabbitmq_event_exchange/test/config_schema_SUITE.erl
index 08b3f57af3..ad54ac209a 100644
--- a/deps/rabbitmq_event_exchange/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_event_exchange/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_event_exchange/test/system_SUITE.erl b/deps/rabbitmq_event_exchange/test/system_SUITE.erl
index f8e883e518..1fbc84550e 100644
--- a/deps/rabbitmq_event_exchange/test/system_SUITE.erl
+++ b/deps/rabbitmq_event_exchange/test/system_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(system_SUITE).
diff --git a/deps/rabbitmq_event_exchange/test/unit_SUITE.erl b/deps/rabbitmq_event_exchange/test/unit_SUITE.erl
index f02177e5ed..af1da497e5 100644
--- a/deps/rabbitmq_event_exchange/test/unit_SUITE.erl
+++ b/deps/rabbitmq_event_exchange/test/unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_SUITE).
diff --git a/deps/rabbitmq_federation/include/rabbit_federation.hrl b/deps/rabbitmq_federation/include/rabbit_federation.hrl
index 995c34c0ce..249ec2dd06 100644
--- a/deps/rabbitmq_federation/include/rabbit_federation.hrl
+++ b/deps/rabbitmq_federation/include/rabbit_federation.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-record(upstream, {uris,
diff --git a/deps/rabbitmq_federation/src/Elixir.RabbitMQ.CLI.Ctl.Commands.FederationStatusCommand.erl b/deps/rabbitmq_federation/src/Elixir.RabbitMQ.CLI.Ctl.Commands.FederationStatusCommand.erl
index d3c1fb3101..c6370e2d07 100644
--- a/deps/rabbitmq_federation/src/Elixir.RabbitMQ.CLI.Ctl.Commands.FederationStatusCommand.erl
+++ b/deps/rabbitmq_federation/src/Elixir.RabbitMQ.CLI.Ctl.Commands.FederationStatusCommand.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.FederationStatusCommand').
diff --git a/deps/rabbitmq_federation/src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartFederationLinkCommand.erl b/deps/rabbitmq_federation/src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartFederationLinkCommand.erl
index 877c525a5d..fc6ae93bca 100644
--- a/deps/rabbitmq_federation/src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartFederationLinkCommand.erl
+++ b/deps/rabbitmq_federation/src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartFederationLinkCommand.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.RestartFederationLinkCommand').
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_app.erl b/deps/rabbitmq_federation/src/rabbit_federation_app.erl
index a827020cfa..d5c9e500fd 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_app.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_app).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_db.erl b/deps/rabbitmq_federation/src/rabbit_federation_db.erl
index 1a8c5c0b82..83d3d851e0 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_db.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_db.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_db).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_event.erl b/deps/rabbitmq_federation/src/rabbit_federation_event.erl
index e3679f6e64..943aa8b5a0 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_event.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_event.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_event).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_exchange.erl b/deps/rabbitmq_federation/src/rabbit_federation_exchange.erl
index 75e50e4b38..68b0c4067a 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_exchange.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_exchange.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% TODO rename this
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_exchange_link.erl b/deps/rabbitmq_federation/src/rabbit_federation_exchange_link.erl
index fbc1944a3d..c31efa2b99 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_exchange_link.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_exchange_link.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_exchange_link).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_exchange_link_sup_sup.erl b/deps/rabbitmq_federation/src/rabbit_federation_exchange_link_sup_sup.erl
index 8351def6d6..b91203af10 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_exchange_link_sup_sup.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_exchange_link_sup_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_exchange_link_sup_sup).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_link_sup.erl b/deps/rabbitmq_federation/src/rabbit_federation_link_sup.erl
index a16e038465..63f5ee31e7 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_link_sup.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_link_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_link_sup).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_link_util.erl b/deps/rabbitmq_federation/src/rabbit_federation_link_util.erl
index 25d2b7e80a..ed1a53e03e 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_link_util.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_link_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_link_util).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_parameters.erl b/deps/rabbitmq_federation/src/rabbit_federation_parameters.erl
index 1683dcce9f..253f533884 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_parameters.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_parameters.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_parameters).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_pg.erl b/deps/rabbitmq_federation/src/rabbit_federation_pg.erl
index 09f6bfc61c..c8415058db 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_pg.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_pg.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_pg).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_queue.erl b/deps/rabbitmq_federation/src/rabbit_federation_queue.erl
index 3b2265f1ea..ac9f5c32df 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_queue.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_queue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_queue).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_queue_link.erl b/deps/rabbitmq_federation/src/rabbit_federation_queue_link.erl
index 06ebfe464f..bc920deffa 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_queue_link.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_queue_link.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_queue_link).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_queue_link_sup_sup.erl b/deps/rabbitmq_federation/src/rabbit_federation_queue_link_sup_sup.erl
index 7719199694..eae61ba01e 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_queue_link_sup_sup.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_queue_link_sup_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_queue_link_sup_sup).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_status.erl b/deps/rabbitmq_federation/src/rabbit_federation_status.erl
index d555f6e066..67427cf31a 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_status.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_status.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_status).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_sup.erl b/deps/rabbitmq_federation/src/rabbit_federation_sup.erl
index 256eb23857..7376400010 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_sup.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_sup).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_upstream.erl b/deps/rabbitmq_federation/src/rabbit_federation_upstream.erl
index ed30e70ccc..de724f8e6d 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_upstream.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_upstream.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_upstream).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_upstream_exchange.erl b/deps/rabbitmq_federation/src/rabbit_federation_upstream_exchange.erl
index 37b33b4a02..e7f5a4b186 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_upstream_exchange.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_upstream_exchange.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_upstream_exchange).
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_util.erl b/deps/rabbitmq_federation/src/rabbit_federation_util.erl
index 1eb71481b9..ba19a3cf85 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_util.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_util).
diff --git a/deps/rabbitmq_federation/test/exchange_SUITE.erl b/deps/rabbitmq_federation/test/exchange_SUITE.erl
index 7fd51434a1..ec048fa9f3 100644
--- a/deps/rabbitmq_federation/test/exchange_SUITE.erl
+++ b/deps/rabbitmq_federation/test/exchange_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(exchange_SUITE).
diff --git a/deps/rabbitmq_federation/test/federation_status_command_SUITE.erl b/deps/rabbitmq_federation/test/federation_status_command_SUITE.erl
index 8b4bdfb4d2..990bd159ea 100644
--- a/deps/rabbitmq_federation/test/federation_status_command_SUITE.erl
+++ b/deps/rabbitmq_federation/test/federation_status_command_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(federation_status_command_SUITE).
diff --git a/deps/rabbitmq_federation/test/queue_SUITE.erl b/deps/rabbitmq_federation/test/queue_SUITE.erl
index 62e51febd9..f0b696e8f2 100644
--- a/deps/rabbitmq_federation/test/queue_SUITE.erl
+++ b/deps/rabbitmq_federation/test/queue_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(queue_SUITE).
diff --git a/deps/rabbitmq_federation/test/rabbit_federation_status_SUITE.erl b/deps/rabbitmq_federation/test/rabbit_federation_status_SUITE.erl
index 03c01b9093..c2319f61c6 100644
--- a/deps/rabbitmq_federation/test/rabbit_federation_status_SUITE.erl
+++ b/deps/rabbitmq_federation/test/rabbit_federation_status_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_status_SUITE).
diff --git a/deps/rabbitmq_federation/test/rabbit_federation_test_util.erl b/deps/rabbitmq_federation/test/rabbit_federation_test_util.erl
index 4bec2d700d..f92e65d7e7 100644
--- a/deps/rabbitmq_federation/test/rabbit_federation_test_util.erl
+++ b/deps/rabbitmq_federation/test/rabbit_federation_test_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_test_util).
diff --git a/deps/rabbitmq_federation/test/restart_federation_link_command_SUITE.erl b/deps/rabbitmq_federation/test/restart_federation_link_command_SUITE.erl
index 1b77ec91cd..c91a206027 100644
--- a/deps/rabbitmq_federation/test/restart_federation_link_command_SUITE.erl
+++ b/deps/rabbitmq_federation/test/restart_federation_link_command_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(restart_federation_link_command_SUITE).
diff --git a/deps/rabbitmq_federation/test/unit_SUITE.erl b/deps/rabbitmq_federation/test/unit_SUITE.erl
index f63ab62edc..4f56d45249 100644
--- a/deps/rabbitmq_federation/test/unit_SUITE.erl
+++ b/deps/rabbitmq_federation/test/unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_SUITE).
diff --git a/deps/rabbitmq_federation/test/unit_inbroker_SUITE.erl b/deps/rabbitmq_federation/test/unit_inbroker_SUITE.erl
index f0a53ec381..50f7c24af4 100644
--- a/deps/rabbitmq_federation/test/unit_inbroker_SUITE.erl
+++ b/deps/rabbitmq_federation/test/unit_inbroker_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_inbroker_SUITE).
diff --git a/deps/rabbitmq_federation_management/src/rabbit_federation_mgmt.erl b/deps/rabbitmq_federation_management/src/rabbit_federation_mgmt.erl
index a1d2dd6997..cc51a87a32 100644
--- a/deps/rabbitmq_federation_management/src/rabbit_federation_mgmt.erl
+++ b/deps/rabbitmq_federation_management/src/rabbit_federation_mgmt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_federation_mgmt).
diff --git a/deps/rabbitmq_federation_management/test/federation_mgmt_SUITE.erl b/deps/rabbitmq_federation_management/test/federation_mgmt_SUITE.erl
index e1a96795b1..216c5e7b14 100644
--- a/deps/rabbitmq_federation_management/test/federation_mgmt_SUITE.erl
+++ b/deps/rabbitmq_federation_management/test/federation_mgmt_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(federation_mgmt_SUITE).
diff --git a/deps/rabbitmq_jms_topic_exchange/src/rabbit_jms_topic_exchange.erl b/deps/rabbitmq_jms_topic_exchange/src/rabbit_jms_topic_exchange.erl
index 1d18e816ad..088f07f02b 100644
--- a/deps/rabbitmq_jms_topic_exchange/src/rabbit_jms_topic_exchange.erl
+++ b/deps/rabbitmq_jms_topic_exchange/src/rabbit_jms_topic_exchange.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2012-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2012-2023 VMware, Inc. or its affiliates. All rights reserved.
%% -----------------------------------------------------------------------------
%% JMS on Rabbit Selector Exchange plugin
diff --git a/deps/rabbitmq_jms_topic_exchange/src/sjx_evaluator.erl b/deps/rabbitmq_jms_topic_exchange/src/sjx_evaluator.erl
index 5304ae9501..1a9f1cd157 100644
--- a/deps/rabbitmq_jms_topic_exchange/src/sjx_evaluator.erl
+++ b/deps/rabbitmq_jms_topic_exchange/src/sjx_evaluator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2012-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2012-2023 VMware, Inc. or its affiliates. All rights reserved.
%% -----------------------------------------------------------------------------
%% Derived from works which were:
%% Copyright (c) 2002, 2012 Tim Watson (watson.timothy@gmail.com)
diff --git a/deps/rabbitmq_jms_topic_exchange/test/rjms_topic_selector_SUITE.erl b/deps/rabbitmq_jms_topic_exchange/test/rjms_topic_selector_SUITE.erl
index 4616bb9829..5d90249efb 100644
--- a/deps/rabbitmq_jms_topic_exchange/test/rjms_topic_selector_SUITE.erl
+++ b/deps/rabbitmq_jms_topic_exchange/test/rjms_topic_selector_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2013-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2013-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rjms_topic_selector_SUITE).
diff --git a/deps/rabbitmq_jms_topic_exchange/test/rjms_topic_selector_unit_SUITE.erl b/deps/rabbitmq_jms_topic_exchange/test/rjms_topic_selector_unit_SUITE.erl
index 21c8c4d1b5..cb0befc113 100644
--- a/deps/rabbitmq_jms_topic_exchange/test/rjms_topic_selector_unit_SUITE.erl
+++ b/deps/rabbitmq_jms_topic_exchange/test/rjms_topic_selector_unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2012-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2012-2023 VMware, Inc. or its affiliates. All rights reserved.
%% -----------------------------------------------------------------------------
%% Unit test file for RJMS Topic Selector plugin
diff --git a/deps/rabbitmq_management/include/rabbit_mgmt.hrl b/deps/rabbitmq_management/include/rabbit_mgmt.hrl
index 1877c84736..a9a7a44217 100644
--- a/deps/rabbitmq_management/include/rabbit_mgmt.hrl
+++ b/deps/rabbitmq_management/include/rabbit_mgmt.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(AUTH_REALM, "Basic realm=\"RabbitMQ Management\"").
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_app.erl b/deps/rabbitmq_management/src/rabbit_mgmt_app.erl
index cee979869c..1462b4a520 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_app.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_app).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_cors.erl b/deps/rabbitmq_management/src/rabbit_mgmt_cors.erl
index 990fbc0d02..12d1237286 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_cors.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_cors.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% Useful documentation about CORS:
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_csp.erl b/deps/rabbitmq_management/src/rabbit_mgmt_csp.erl
index 65b44d3281..7939acb97b 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_csp.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_csp.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% Sets CSP header(s) on the response if configured,
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_db.erl b/deps/rabbitmq_management/src/rabbit_mgmt_db.erl
index 1ef6e3fd2e..36caef6693 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_db.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_db.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_db).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_db_cache.erl b/deps/rabbitmq_management/src/rabbit_mgmt_db_cache.erl
index 31dfec36ff..39e7ee6201 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_db_cache.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_db_cache.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(rabbit_mgmt_db_cache).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_db_cache_sup.erl b/deps/rabbitmq_management/src/rabbit_mgmt_db_cache_sup.erl
index 39576fddb8..9a8d4a62a8 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_db_cache_sup.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_db_cache_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(rabbit_mgmt_db_cache_sup).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_dispatcher.erl b/deps/rabbitmq_management/src/rabbit_mgmt_dispatcher.erl
index b5763e3150..ba89bf1404 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_dispatcher.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_dispatcher.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_dispatcher).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_extension.erl b/deps/rabbitmq_management/src/rabbit_mgmt_extension.erl
index 108fac0b2d..b481e95a74 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_extension.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_extension.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_extension).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_headers.erl b/deps/rabbitmq_management/src/rabbit_mgmt_headers.erl
index 76785cfcfd..ab51fe28b8 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_headers.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_headers.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This module contains helper functions that control
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_hsts.erl b/deps/rabbitmq_management/src/rabbit_mgmt_hsts.erl
index ba4dce23dc..7954397ed5 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_hsts.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_hsts.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% Sets HSTS header(s) on the response if configured,
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_load_definitions.erl b/deps/rabbitmq_management/src/rabbit_mgmt_load_definitions.erl
index d423bdd7d8..1cfcba764e 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_load_definitions.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_load_definitions.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_load_definitions).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_reset_handler.erl b/deps/rabbitmq_management/src/rabbit_mgmt_reset_handler.erl
index 2d6badc391..9d45fddb79 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_reset_handler.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_reset_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% When management extensions are enabled and/or disabled at runtime, the
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_stats.erl b/deps/rabbitmq_management/src/rabbit_mgmt_stats.erl
index 9592d49ff0..3d839f9ef3 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_stats.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_stats.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_stats).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_sup.erl b/deps/rabbitmq_management/src/rabbit_mgmt_sup.erl
index 4e1f20e64d..4a23c58ebe 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_sup.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_sup).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_sup_sup.erl b/deps/rabbitmq_management/src/rabbit_mgmt_sup_sup.erl
index fc6a4511e5..cfda761e4b 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_sup_sup.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_sup_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_sup_sup).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_util.erl b/deps/rabbitmq_management/src/rabbit_mgmt_util.erl
index d522612d36..dc9fb5f252 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_util.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_util).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_aliveness_test.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_aliveness_test.erl
index a945c10994..04a691fc6a 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_aliveness_test.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_aliveness_test.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_aliveness_test).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_auth.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_auth.erl
index 817e34dae0..2069074d3b 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_auth.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_auth.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_auth).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_auth_attempts.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_auth_attempts.erl
index bcbf71c3e2..ad2b66651b 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_auth_attempts.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_auth_attempts.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_auth_attempts).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_binding.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_binding.erl
index 806abce7c4..e4a2fb5c3e 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_binding.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_binding.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_binding).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_bindings.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_bindings.erl
index 4d74326d3b..79bcd6ebba 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_bindings.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_bindings.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_bindings).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_channel.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_channel.erl
index 0c18640c8a..97b5317af0 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_channel.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_channel.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_channel).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels.erl
index 895a84c12f..cb30ac819e 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_channels).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels_vhost.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels_vhost.erl
index c60b05b85d..7cf2f7758f 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels_vhost.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels_vhost.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_channels_vhost).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_cluster_name.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_cluster_name.erl
index bd02d7d832..4dc68945aa 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_cluster_name.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_cluster_name.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_cluster_name).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection.erl
index 1c212937bb..5e14eb7104 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_connection).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_channels.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_channels.erl
index a5052574e9..f9d84c44bb 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_channels.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_channels.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_connection_channels).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_user_name.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_user_name.erl
index ee8d8c243f..148e5f6306 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_user_name.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_user_name.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_connection_user_name).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections.erl
index 65785c3421..0b3764f353 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_connections).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections_vhost.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections_vhost.erl
index a67049ca2e..9aff6b318c 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections_vhost.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections_vhost.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_connections_vhost).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_consumers.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_consumers.erl
index 15a3814141..50af76a032 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_consumers.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_consumers.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(rabbit_mgmt_wm_consumers).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl
index b95b3621a3..729bf9947d 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_definitions).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_environment.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_environment.erl
index 53be047cc9..58e2e635ef 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_environment.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_environment.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_environment).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange.erl
index 1f848a6620..8aad0217e6 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_exchange).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange_publish.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange_publish.erl
index 0f97fac993..fcdca19ae5 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange_publish.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange_publish.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_exchange_publish).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchanges.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchanges.erl
index 11e9af1895..3b1b875b26 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchanges.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchanges.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_exchanges).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_extensions.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_extensions.erl
index abc319e6ce..ca615a762d 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_extensions.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_extensions.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_extensions).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_feature_flag_enable.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_feature_flag_enable.erl
index e33f9c3915..60f044d83b 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_feature_flag_enable.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_feature_flag_enable.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_feature_flag_enable).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_feature_flags.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_feature_flags.erl
index 73667356f3..84376a082f 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_feature_flags.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_feature_flags.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_feature_flags).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameter.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameter.erl
index d566237985..c7b464b150 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameter.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameter.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_global_parameter).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameters.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameters.erl
index 5bf892edae..fcdc07496b 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameters.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameters.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_global_parameters).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_alarms.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_alarms.erl
index d67481359d..78bc368485 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_alarms.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_alarms.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% An HTTP API counterpart of 'rabbitmq-diagnostics check_alarms'
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_certificate_expiration.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_certificate_expiration.erl
index 0cad2fedac..b1d8a7a333 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_certificate_expiration.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_certificate_expiration.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% An HTTP API counterpart of 'rabbitmq-diagnostics check_certificate_expiration'
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_local_alarms.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_local_alarms.erl
index 341c8c778c..a8f5ed36c7 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_local_alarms.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_local_alarms.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% An HTTP API counterpart of 'rabbitmq-dignoastics check_local_alarms'
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_node_is_mirror_sync_critical.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_node_is_mirror_sync_critical.erl
index d456512c8f..eea5c6f8dc 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_node_is_mirror_sync_critical.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_node_is_mirror_sync_critical.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% An HTTP API counterpart of 'rabbitmq-diagnostics check_if_node_is_quorum_critical'
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_node_is_quorum_critical.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_node_is_quorum_critical.erl
index ae4163172f..72ad20e022 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_node_is_quorum_critical.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_node_is_quorum_critical.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% An HTTP API counterpart of 'rabbitmq-diagnostics check_if_node_is_quorum_critical'
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_port_listener.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_port_listener.erl
index 1ea2c96a63..b2a0fb303a 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_port_listener.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_port_listener.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% An HTTP API counterpart of 'rabbitmq-diagnostics check_port_listener'
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_protocol_listener.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_protocol_listener.erl
index 7d16836618..1da87bb4b6 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_protocol_listener.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_protocol_listener.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% An HTTP API counterpart of 'rabbitmq-diagnostics check_protocol_listener'
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_virtual_hosts.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_virtual_hosts.erl
index 8c5e38b974..3e6d1d005c 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_virtual_hosts.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_virtual_hosts.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% An HTTP API counterpart of 'rabbitmq-diagnostics check_virtual_hosts'
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_healthchecks.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_healthchecks.erl
index f84dd9a8fc..91d17dc9de 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_healthchecks.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_healthchecks.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This original One True Health Check™ has been deprecated as too coarse-grained,
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_limit.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_limit.erl
index 71da9fddc5..fc32660ad9 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_limit.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_limit.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_limit).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_limits.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_limits.erl
index b7dc21fcaf..9d9568538f 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_limits.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_limits.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_limits).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_login.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_login.erl
index be80058263..03477224df 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_login.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_login.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_login).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_node.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_node.erl
index 6ba1404b7b..69d31d1543 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_node.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_node.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_node).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory.erl
index fc7128ce0f..4b4fd022eb 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_node_memory).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory_ets.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory_ets.erl
index 4e4d5d2d30..cd602226ee 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory_ets.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory_ets.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_node_memory_ets).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_nodes.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_nodes.erl
index 02bf12fedb..7ecd34eae1 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_nodes.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_nodes.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_nodes).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_operator_policies.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_operator_policies.erl
index ea13f4d126..48979cc662 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_operator_policies.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_operator_policies.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_operator_policies).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_operator_policy.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_operator_policy.erl
index f5b4329f22..e4a1f5cb25 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_operator_policy.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_operator_policy.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_operator_policy).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_overview.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_overview.erl
index d3b717928b..b408fca3c9 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_overview.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_overview.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_overview).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameter.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameter.erl
index 3fd9ca61a2..2fd769f954 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameter.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameter.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_parameter).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameters.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameters.erl
index dcf1870b52..e88a179657 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameters.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameters.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_parameters).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permission.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permission.erl
index 5d4b36a919..64885d623e 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permission.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permission.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_permission).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions.erl
index f5cd2c7447..f39744a5bf 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_permissions).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_user.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_user.erl
index 32059f0194..f08f5e0f18 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_user.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_user.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_permissions_user).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_vhost.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_vhost.erl
index 6a90cc270e..1253585df0 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_vhost.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_vhost.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_permissions_vhost).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_policies.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_policies.erl
index ca4dbb910f..0f9a788bee 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_policies.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_policies.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_policies).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_policy.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_policy.erl
index 6226106afa..467f6f6f14 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_policy.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_policy.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_policy).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue.erl
index f81628d59c..57ee56b03c 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_queue).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_actions.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_actions.erl
index bf8877d56e..5f464da1fa 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_actions.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_actions.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_queue_actions).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_get.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_get.erl
index 6229c12473..d5562e9fb9 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_get.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_get.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_queue_get).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_purge.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_purge.erl
index 679233c401..79da2455d8 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_purge.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_purge.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_queue_purge).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queues.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queues.erl
index 4f9219dc6e..858750d49d 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queues.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queues.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_queues).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_rebalance_queues.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_rebalance_queues.erl
index 2772d9d81b..087145f896 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_rebalance_queues.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_rebalance_queues.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_rebalance_queues).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_redirect.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_redirect.erl
index 91baf9712d..cf54b24122 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_redirect.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_redirect.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_redirect).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_reset.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_reset.erl
index a0eb1e7efc..c16d92ec74 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_reset.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_reset.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_reset).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_static.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_static.erl
index 19451b3b1e..7b9b104987 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_static.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_static.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2010-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2010-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% Alias for cowboy_static that accepts a list of directories
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permission.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permission.erl
index 39ab5828d3..a1a527d27e 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permission.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permission.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_topic_permission).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions.erl
index ea3c7fb4d4..9fe2285d61 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_topic_permissions).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions_user.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions_user.erl
index 40c742d3fb..8428bbef33 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions_user.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions_user.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_topic_permissions_user).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions_vhost.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions_vhost.erl
index 5232e14540..bff931332c 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions_vhost.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_topic_permissions_vhost.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_topic_permissions_vhost).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_user.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_user.erl
index 5e1de82aa6..9b900a4ee0 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_user.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_user.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_user).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_user_limit.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_user_limit.erl
index b7ea68780a..271ffb61f2 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_user_limit.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_user_limit.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_user_limit).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_user_limits.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_user_limits.erl
index 136699540e..1dc8aa9881 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_user_limits.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_user_limits.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_user_limits).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_users.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_users.erl
index 49d5934b93..1f8cfc8ca0 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_users.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_users.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_users).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_users_bulk_delete.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_users_bulk_delete.erl
index 8a519255a9..dc293dd6f7 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_users_bulk_delete.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_users_bulk_delete.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_users_bulk_delete).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost.erl
index 1c51d0aa03..4597f4aa5a 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_vhost).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost_restart.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost_restart.erl
index 13893c2a50..42469908c1 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost_restart.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost_restart.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2011-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2011-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_vhost_restart).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhosts.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhosts.erl
index 187e014707..52c13d164a 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhosts.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhosts.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_vhosts).
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_whoami.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_whoami.erl
index bb39b8b32e..8193da0417 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_whoami.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_whoami.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_wm_whoami).
diff --git a/deps/rabbitmq_management/test/cache_SUITE.erl b/deps/rabbitmq_management/test/cache_SUITE.erl
index d4e1832293..f1491a8ea6 100644
--- a/deps/rabbitmq_management/test/cache_SUITE.erl
+++ b/deps/rabbitmq_management/test/cache_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(cache_SUITE).
diff --git a/deps/rabbitmq_management/test/clustering_SUITE.erl b/deps/rabbitmq_management/test/clustering_SUITE.erl
index 6749f9adea..4ca39e3c21 100644
--- a/deps/rabbitmq_management/test/clustering_SUITE.erl
+++ b/deps/rabbitmq_management/test/clustering_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(clustering_SUITE).
diff --git a/deps/rabbitmq_management/test/clustering_prop_SUITE.erl b/deps/rabbitmq_management/test/clustering_prop_SUITE.erl
index 332d180881..c4b9c60245 100644
--- a/deps/rabbitmq_management/test/clustering_prop_SUITE.erl
+++ b/deps/rabbitmq_management/test/clustering_prop_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(clustering_prop_SUITE).
diff --git a/deps/rabbitmq_management/test/config_schema_SUITE.erl b/deps/rabbitmq_management/test/config_schema_SUITE.erl
index ae974b4963..a62e34c7be 100644
--- a/deps/rabbitmq_management/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_management/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_management/test/listener_config_SUITE.erl b/deps/rabbitmq_management/test/listener_config_SUITE.erl
index f07c6ef5e9..2f70310cf1 100644
--- a/deps/rabbitmq_management/test/listener_config_SUITE.erl
+++ b/deps/rabbitmq_management/test/listener_config_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(listener_config_SUITE).
diff --git a/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl b/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl
index 486548fdfb..65450f5d44 100644
--- a/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl
+++ b/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_http_SUITE).
diff --git a/deps/rabbitmq_management/test/rabbit_mgmt_http_health_checks_SUITE.erl b/deps/rabbitmq_management/test/rabbit_mgmt_http_health_checks_SUITE.erl
index 85d9491730..a39968324f 100644
--- a/deps/rabbitmq_management/test/rabbit_mgmt_http_health_checks_SUITE.erl
+++ b/deps/rabbitmq_management/test/rabbit_mgmt_http_health_checks_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_http_health_checks_SUITE).
diff --git a/deps/rabbitmq_management/test/rabbit_mgmt_only_http_SUITE.erl b/deps/rabbitmq_management/test/rabbit_mgmt_only_http_SUITE.erl
index 2383295484..4fd227b20d 100644
--- a/deps/rabbitmq_management/test/rabbit_mgmt_only_http_SUITE.erl
+++ b/deps/rabbitmq_management/test/rabbit_mgmt_only_http_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_only_http_SUITE).
diff --git a/deps/rabbitmq_management/test/rabbit_mgmt_rabbitmqadmin_SUITE.erl b/deps/rabbitmq_management/test/rabbit_mgmt_rabbitmqadmin_SUITE.erl
index 7fddea0ebe..abaa42d3b7 100644
--- a/deps/rabbitmq_management/test/rabbit_mgmt_rabbitmqadmin_SUITE.erl
+++ b/deps/rabbitmq_management/test/rabbit_mgmt_rabbitmqadmin_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_rabbitmqadmin_SUITE).
diff --git a/deps/rabbitmq_management/test/rabbit_mgmt_runtime_parameters_util.erl b/deps/rabbitmq_management/test/rabbit_mgmt_runtime_parameters_util.erl
index d6ef89db64..32cabc157f 100644
--- a/deps/rabbitmq_management/test/rabbit_mgmt_runtime_parameters_util.erl
+++ b/deps/rabbitmq_management/test/rabbit_mgmt_runtime_parameters_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_runtime_parameters_util).
diff --git a/deps/rabbitmq_management/test/rabbit_mgmt_stats_SUITE.erl b/deps/rabbitmq_management/test/rabbit_mgmt_stats_SUITE.erl
index 030fe56a72..33edb6d490 100644
--- a/deps/rabbitmq_management/test/rabbit_mgmt_stats_SUITE.erl
+++ b/deps/rabbitmq_management/test/rabbit_mgmt_stats_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_stats_SUITE).
diff --git a/deps/rabbitmq_management/test/rabbit_mgmt_test_db_SUITE.erl b/deps/rabbitmq_management/test/rabbit_mgmt_test_db_SUITE.erl
index 9303d8f858..21f28de2c7 100644
--- a/deps/rabbitmq_management/test/rabbit_mgmt_test_db_SUITE.erl
+++ b/deps/rabbitmq_management/test/rabbit_mgmt_test_db_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_test_db_SUITE).
diff --git a/deps/rabbitmq_management/test/rabbit_mgmt_test_unit_SUITE.erl b/deps/rabbitmq_management/test/rabbit_mgmt_test_unit_SUITE.erl
index 0d60155f6c..ca187c9cab 100644
--- a/deps/rabbitmq_management/test/rabbit_mgmt_test_unit_SUITE.erl
+++ b/deps/rabbitmq_management/test/rabbit_mgmt_test_unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_test_unit_SUITE).
diff --git a/deps/rabbitmq_management/test/stats_SUITE.erl b/deps/rabbitmq_management/test/stats_SUITE.erl
index 83dffed2c3..703f49e6e5 100644
--- a/deps/rabbitmq_management/test/stats_SUITE.erl
+++ b/deps/rabbitmq_management/test/stats_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(stats_SUITE).
diff --git a/deps/rabbitmq_management_agent/include/rabbit_mgmt_agent.hrl b/deps/rabbitmq_management_agent/include/rabbit_mgmt_agent.hrl
index 07588e349b..77222e0437 100644
--- a/deps/rabbitmq_management_agent/include/rabbit_mgmt_agent.hrl
+++ b/deps/rabbitmq_management_agent/include/rabbit_mgmt_agent.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(MANAGEMENT_PG_SCOPE, rabbitmq_management).
diff --git a/deps/rabbitmq_management_agent/include/rabbit_mgmt_metrics.hrl b/deps/rabbitmq_management_agent/include/rabbit_mgmt_metrics.hrl
index 2208dd9723..92d20fdb6b 100644
--- a/deps/rabbitmq_management_agent/include/rabbit_mgmt_metrics.hrl
+++ b/deps/rabbitmq_management_agent/include/rabbit_mgmt_metrics.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-type(event_type() :: queue_stats | queue_exchange_stats | vhost_stats
diff --git a/deps/rabbitmq_management_agent/include/rabbit_mgmt_records.hrl b/deps/rabbitmq_management_agent/include/rabbit_mgmt_records.hrl
index 15a3ab2ea8..2ccc067cdc 100644
--- a/deps/rabbitmq_management_agent/include/rabbit_mgmt_records.hrl
+++ b/deps/rabbitmq_management_agent/include/rabbit_mgmt_records.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-record(context, {user,
diff --git a/deps/rabbitmq_management_agent/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ResetStatsDbCommand.erl b/deps/rabbitmq_management_agent/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ResetStatsDbCommand.erl
index 817291097d..9896542ed9 100644
--- a/deps/rabbitmq_management_agent/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ResetStatsDbCommand.erl
+++ b/deps/rabbitmq_management_agent/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ResetStatsDbCommand.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.ResetStatsDbCommand').
diff --git a/deps/rabbitmq_management_agent/src/exometer_slide.erl b/deps/rabbitmq_management_agent/src/exometer_slide.erl
index 09283d16fa..b4c6d3e8a1 100644
--- a/deps/rabbitmq_management_agent/src/exometer_slide.erl
+++ b/deps/rabbitmq_management_agent/src/exometer_slide.erl
@@ -44,7 +44,7 @@
%% @end
%%
%%
-%% All modifications are (C) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% All modifications are (C) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%% The Initial Developer of the Original Code is Basho Technologies, Inc.
-module(exometer_slide).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_app.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_app.erl
index 6a7fd254fc..8de60f9a0d 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_app.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_agent_app).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_config.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_config.erl
index df215ef903..8f9a9c25c6 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_config.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_config.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_agent_config).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup.erl
index 96a70c5db4..0b99566000 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_agent_sup).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup_sup.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup_sup.erl
index 176188c822..5a167d7247 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup_sup.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_agent_sup_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_agent_sup_sup).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_data.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_data.erl
index d84951846f..2abac2b099 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_data.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_data.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_data).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_data_compat.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_data_compat.erl
index fb154cbe0d..324c469732 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_data_compat.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_data_compat.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_data_compat).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_db_handler.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_db_handler.erl
index ee618fb62b..11be45cb34 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_db_handler.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_db_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_db_handler).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_external_stats.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_external_stats.erl
index a61a7a3b44..7e14c02e94 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_external_stats.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_external_stats.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_external_stats).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_ff.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_ff.erl
index ffd739653a..9f0edee30f 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_ff.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_ff.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2018-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2018-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_ff).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_format.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_format.erl
index 765040360c..20db8c837f 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_format.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_format.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_format).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_gc.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_gc.erl
index ff99b9f94c..bb86b97374 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_gc.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_gc.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_gc).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_collector.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_collector.erl
index 23d4e20f47..c5de5b4998 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_collector.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_collector.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_metrics_collector).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_gc.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_gc.erl
index 58bb023c57..3f5b48d7c6 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_gc.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_gc.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_metrics_gc).
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_storage.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_storage.erl
index ec8e231074..a962503124 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_storage.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_storage.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_storage).
-behaviour(gen_server2).
diff --git a/deps/rabbitmq_management_agent/test/exometer_slide_SUITE.erl b/deps/rabbitmq_management_agent/test/exometer_slide_SUITE.erl
index f973f44826..58252309f1 100644
--- a/deps/rabbitmq_management_agent/test/exometer_slide_SUITE.erl
+++ b/deps/rabbitmq_management_agent/test/exometer_slide_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(exometer_slide_SUITE).
diff --git a/deps/rabbitmq_management_agent/test/metrics_SUITE.erl b/deps/rabbitmq_management_agent/test/metrics_SUITE.erl
index 8806e1e38e..36729aa236 100644
--- a/deps/rabbitmq_management_agent/test/metrics_SUITE.erl
+++ b/deps/rabbitmq_management_agent/test/metrics_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(metrics_SUITE).
-compile(export_all).
diff --git a/deps/rabbitmq_management_agent/test/rabbit_mgmt_gc_SUITE.erl b/deps/rabbitmq_management_agent/test/rabbit_mgmt_gc_SUITE.erl
index 278df90d3c..a7a2dff54b 100644
--- a/deps/rabbitmq_management_agent/test/rabbit_mgmt_gc_SUITE.erl
+++ b/deps/rabbitmq_management_agent/test/rabbit_mgmt_gc_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_gc_SUITE).
diff --git a/deps/rabbitmq_management_agent/test/rabbit_mgmt_slide_SUITE.erl b/deps/rabbitmq_management_agent/test/rabbit_mgmt_slide_SUITE.erl
index 20efd4cf8c..002691028b 100644
--- a/deps/rabbitmq_management_agent/test/rabbit_mgmt_slide_SUITE.erl
+++ b/deps/rabbitmq_management_agent/test/rabbit_mgmt_slide_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mgmt_slide_SUITE).
diff --git a/deps/rabbitmq_mqtt/include/mqtt_machine.hrl b/deps/rabbitmq_mqtt/include/mqtt_machine.hrl
index fa625f31d1..b4c9eb2cdd 100644
--- a/deps/rabbitmq_mqtt/include/mqtt_machine.hrl
+++ b/deps/rabbitmq_mqtt/include/mqtt_machine.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-record(machine_state, {client_ids = #{},
diff --git a/deps/rabbitmq_mqtt/include/mqtt_machine_v0.hrl b/deps/rabbitmq_mqtt/include/mqtt_machine_v0.hrl
index bad074794f..53c8af3ed7 100644
--- a/deps/rabbitmq_mqtt/include/mqtt_machine_v0.hrl
+++ b/deps/rabbitmq_mqtt/include/mqtt_machine_v0.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-record(machine_state, {client_ids = #{}}).
diff --git a/deps/rabbitmq_mqtt/include/rabbit_mqtt.hrl b/deps/rabbitmq_mqtt/include/rabbit_mqtt.hrl
index b8edb8605d..e75786db15 100644
--- a/deps/rabbitmq_mqtt/include/rabbit_mqtt.hrl
+++ b/deps/rabbitmq_mqtt/include/rabbit_mqtt.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(CLIENT_ID_MAXLEN, 23).
diff --git a/deps/rabbitmq_mqtt/include/rabbit_mqtt_frame.hrl b/deps/rabbitmq_mqtt/include/rabbit_mqtt_frame.hrl
index e7b1728c48..82917560cb 100644
--- a/deps/rabbitmq_mqtt/include/rabbit_mqtt_frame.hrl
+++ b/deps/rabbitmq_mqtt/include/rabbit_mqtt_frame.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(PROTOCOL_NAMES, [{3, "MQIsdp"}, {4, "MQTT"}]).
diff --git a/deps/rabbitmq_mqtt/include/rabbit_mqtt_retained_msg_store.hrl b/deps/rabbitmq_mqtt/include/rabbit_mqtt_retained_msg_store.hrl
index 83811446bd..278336b3b7 100644
--- a/deps/rabbitmq_mqtt/include/rabbit_mqtt_retained_msg_store.hrl
+++ b/deps/rabbitmq_mqtt/include/rabbit_mqtt_retained_msg_store.hrl
@@ -2,5 +2,5 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
diff --git a/deps/rabbitmq_mqtt/src/Elixir.RabbitMQ.CLI.Ctl.Commands.DecommissionMqttNodeCommand.erl b/deps/rabbitmq_mqtt/src/Elixir.RabbitMQ.CLI.Ctl.Commands.DecommissionMqttNodeCommand.erl
index 9031cce907..fc50cd38bc 100644
--- a/deps/rabbitmq_mqtt/src/Elixir.RabbitMQ.CLI.Ctl.Commands.DecommissionMqttNodeCommand.erl
+++ b/deps/rabbitmq_mqtt/src/Elixir.RabbitMQ.CLI.Ctl.Commands.DecommissionMqttNodeCommand.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.DecommissionMqttNodeCommand').
diff --git a/deps/rabbitmq_mqtt/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListMqttConnectionsCommand.erl b/deps/rabbitmq_mqtt/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListMqttConnectionsCommand.erl
index bf96446433..1aca58265f 100644
--- a/deps/rabbitmq_mqtt/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListMqttConnectionsCommand.erl
+++ b/deps/rabbitmq_mqtt/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListMqttConnectionsCommand.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.ListMqttConnectionsCommand').
diff --git a/deps/rabbitmq_mqtt/src/mqtt_machine.erl b/deps/rabbitmq_mqtt/src/mqtt_machine.erl
index b2d245f036..67ad705983 100644
--- a/deps/rabbitmq_mqtt/src/mqtt_machine.erl
+++ b/deps/rabbitmq_mqtt/src/mqtt_machine.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(mqtt_machine).
-behaviour(ra_machine).
diff --git a/deps/rabbitmq_mqtt/src/mqtt_machine_v0.erl b/deps/rabbitmq_mqtt/src/mqtt_machine_v0.erl
index f3526adb73..2f558e6fba 100644
--- a/deps/rabbitmq_mqtt/src/mqtt_machine_v0.erl
+++ b/deps/rabbitmq_mqtt/src/mqtt_machine_v0.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(mqtt_machine_v0).
-behaviour(ra_machine).
diff --git a/deps/rabbitmq_mqtt/src/mqtt_node.erl b/deps/rabbitmq_mqtt/src/mqtt_node.erl
index 91066095a5..607e7b6d73 100644
--- a/deps/rabbitmq_mqtt/src/mqtt_node.erl
+++ b/deps/rabbitmq_mqtt/src/mqtt_node.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(mqtt_node).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt.erl
index d2353bc4e9..dee18859f4 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_collector.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_collector.erl
index d5d05474d2..28c0506ef7 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_collector.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_collector.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_collector).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_connection_info.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_connection_info.erl
index 1dd6f3de0d..2beb99b439 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_connection_info.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_connection_info.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2017-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2017-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_connection_info).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_connection_sup.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_connection_sup.erl
index 898adc7657..5238d75ec2 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_connection_sup.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_connection_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_connection_sup).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_frame.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_frame.erl
index 7b67199312..b79d0bc458 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_frame.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_frame.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_frame).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_internal_event_handler.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_internal_event_handler.erl
index 31498721dc..6209bb3218 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_internal_event_handler.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_internal_event_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_internal_event_handler).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_processor.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_processor.erl
index d082d8ed25..3a3fdf1f79 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_processor.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_processor.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_processor).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_reader.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_reader.erl
index a760b1c447..6192a9382b 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_reader.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_reader.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_reader).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store.erl
index e146756a86..70b18881f0 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_retained_msg_store).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_dets.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_dets.erl
index 92e3617e17..4cfc11279b 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_dets.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_dets.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_retained_msg_store_dets).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_ets.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_ets.erl
index c8a060bc1f..c25c9f2098 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_ets.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_ets.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_retained_msg_store_ets).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_noop.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_noop.erl
index db2dc5df6d..79cb74d7d9 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_noop.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_retained_msg_store_noop.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_retained_msg_store_noop).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_retainer.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_retainer.erl
index 84e07dd705..3f103916b2 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_retainer.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_retainer.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_retainer).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_retainer_sup.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_retainer_sup.erl
index 7122e7c08f..09a3402855 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_retainer_sup.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_retainer_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_retainer_sup).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_sup.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_sup.erl
index 50b077810f..09e881b3a4 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_sup.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_sup).
diff --git a/deps/rabbitmq_mqtt/src/rabbit_mqtt_util.erl b/deps/rabbitmq_mqtt/src/rabbit_mqtt_util.erl
index 6866f8d980..c711250b03 100644
--- a/deps/rabbitmq_mqtt/src/rabbit_mqtt_util.erl
+++ b/deps/rabbitmq_mqtt/src/rabbit_mqtt_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_mqtt_util).
diff --git a/deps/rabbitmq_mqtt/test/auth_SUITE.erl b/deps/rabbitmq_mqtt/test/auth_SUITE.erl
index 007b0c2b4d..aa56ee8af9 100644
--- a/deps/rabbitmq_mqtt/test/auth_SUITE.erl
+++ b/deps/rabbitmq_mqtt/test/auth_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(auth_SUITE).
-compile([export_all,
diff --git a/deps/rabbitmq_mqtt/test/cluster_SUITE.erl b/deps/rabbitmq_mqtt/test/cluster_SUITE.erl
index 78324fa1bf..510557285b 100644
--- a/deps/rabbitmq_mqtt/test/cluster_SUITE.erl
+++ b/deps/rabbitmq_mqtt/test/cluster_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(cluster_SUITE).
-compile([export_all, nowarn_export_all]).
diff --git a/deps/rabbitmq_mqtt/test/command_SUITE.erl b/deps/rabbitmq_mqtt/test/command_SUITE.erl
index 1c09d48d7d..0b3301a952 100644
--- a/deps/rabbitmq_mqtt/test/command_SUITE.erl
+++ b/deps/rabbitmq_mqtt/test/command_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(command_SUITE).
diff --git a/deps/rabbitmq_mqtt/test/config_schema_SUITE.erl b/deps/rabbitmq_mqtt/test/config_schema_SUITE.erl
index e87e796f48..c3f3d867c4 100644
--- a/deps/rabbitmq_mqtt/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_mqtt/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_mqtt/test/java_SUITE.erl b/deps/rabbitmq_mqtt/test/java_SUITE.erl
index c9bc77ce2c..e0038a796c 100644
--- a/deps/rabbitmq_mqtt/test/java_SUITE.erl
+++ b/deps/rabbitmq_mqtt/test/java_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(java_SUITE).
diff --git a/deps/rabbitmq_mqtt/test/java_SUITE_data/src/test/java/com/rabbitmq/mqtt/test/MqttTest.java b/deps/rabbitmq_mqtt/test/java_SUITE_data/src/test/java/com/rabbitmq/mqtt/test/MqttTest.java
index 9160d4f1db..b5d9848e8b 100644
--- a/deps/rabbitmq_mqtt/test/java_SUITE_data/src/test/java/com/rabbitmq/mqtt/test/MqttTest.java
+++ b/deps/rabbitmq_mqtt/test/java_SUITE_data/src/test/java/com/rabbitmq/mqtt/test/MqttTest.java
@@ -2,7 +2,7 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
//
-// Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+// Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
//
package com.rabbitmq.mqtt.test;
diff --git a/deps/rabbitmq_mqtt/test/processor_SUITE.erl b/deps/rabbitmq_mqtt/test/processor_SUITE.erl
index 614a742513..310c2a8cdb 100644
--- a/deps/rabbitmq_mqtt/test/processor_SUITE.erl
+++ b/deps/rabbitmq_mqtt/test/processor_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(processor_SUITE).
diff --git a/deps/rabbitmq_mqtt/test/proxy_protocol_SUITE.erl b/deps/rabbitmq_mqtt/test/proxy_protocol_SUITE.erl
index ac7dcb7cfc..06ffb5930e 100644
--- a/deps/rabbitmq_mqtt/test/proxy_protocol_SUITE.erl
+++ b/deps/rabbitmq_mqtt/test/proxy_protocol_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(proxy_protocol_SUITE).
-compile([export_all]).
diff --git a/deps/rabbitmq_mqtt/test/rabbit_auth_backend_mqtt_mock.erl b/deps/rabbitmq_mqtt/test/rabbit_auth_backend_mqtt_mock.erl
index bc666a169b..69fea6c221 100644
--- a/deps/rabbitmq_mqtt/test/rabbit_auth_backend_mqtt_mock.erl
+++ b/deps/rabbitmq_mqtt/test/rabbit_auth_backend_mqtt_mock.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2019-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2019-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% A mock authn/authz that records information during calls. For testing purposes only.
diff --git a/deps/rabbitmq_mqtt/test/reader_SUITE.erl b/deps/rabbitmq_mqtt/test/reader_SUITE.erl
index 11edde2024..c71f688c1f 100644
--- a/deps/rabbitmq_mqtt/test/reader_SUITE.erl
+++ b/deps/rabbitmq_mqtt/test/reader_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(reader_SUITE).
-compile([export_all,
diff --git a/deps/rabbitmq_mqtt/test/retainer_SUITE.erl b/deps/rabbitmq_mqtt/test/retainer_SUITE.erl
index 09bafe559c..6001f8cfe2 100644
--- a/deps/rabbitmq_mqtt/test/retainer_SUITE.erl
+++ b/deps/rabbitmq_mqtt/test/retainer_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(retainer_SUITE).
-compile([export_all]).
diff --git a/deps/rabbitmq_mqtt/test/util_SUITE.erl b/deps/rabbitmq_mqtt/test/util_SUITE.erl
index 22fdb5f535..c15eb1dee4 100644
--- a/deps/rabbitmq_mqtt/test/util_SUITE.erl
+++ b/deps/rabbitmq_mqtt/test/util_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(util_SUITE).
-compile([export_all]).
diff --git a/deps/rabbitmq_peer_discovery_aws/README.md b/deps/rabbitmq_peer_discovery_aws/README.md
index 1382786c0d..744bace156 100644
--- a/deps/rabbitmq_peer_discovery_aws/README.md
+++ b/deps/rabbitmq_peer_discovery_aws/README.md
@@ -53,4 +53,4 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md) and our [development process overview](
## Copyright
-(c) 2007-2022 VMware, Inc. or its affiliates.
+(c) 2007-2023 VMware, Inc. or its affiliates.
diff --git a/deps/rabbitmq_peer_discovery_aws/priv/schema/rabbitmq_peer_discovery_aws.schema b/deps/rabbitmq_peer_discovery_aws/priv/schema/rabbitmq_peer_discovery_aws.schema
index a3238e270d..5fd3df547a 100644
--- a/deps/rabbitmq_peer_discovery_aws/priv/schema/rabbitmq_peer_discovery_aws.schema
+++ b/deps/rabbitmq_peer_discovery_aws/priv/schema/rabbitmq_peer_discovery_aws.schema
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% region
diff --git a/deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl b/deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl
index d56216deb6..a4643d5dc3 100644
--- a/deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl
+++ b/deps/rabbitmq_peer_discovery_aws/src/rabbit_peer_discovery_aws.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_aws).
diff --git a/deps/rabbitmq_peer_discovery_aws/src/rabbitmq_peer_discovery_aws.erl b/deps/rabbitmq_peer_discovery_aws/src/rabbitmq_peer_discovery_aws.erl
index ce88eb644e..fc4f1f0267 100644
--- a/deps/rabbitmq_peer_discovery_aws/src/rabbitmq_peer_discovery_aws.erl
+++ b/deps/rabbitmq_peer_discovery_aws/src/rabbitmq_peer_discovery_aws.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This module exists as an alias for rabbit_peer_discovery_aws.
diff --git a/deps/rabbitmq_peer_discovery_aws/test/aws_ecs_util.erl b/deps/rabbitmq_peer_discovery_aws/test/aws_ecs_util.erl
index 6cef7bc260..9f6213c1aa 100644
--- a/deps/rabbitmq_peer_discovery_aws/test/aws_ecs_util.erl
+++ b/deps/rabbitmq_peer_discovery_aws/test/aws_ecs_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(aws_ecs_util).
diff --git a/deps/rabbitmq_peer_discovery_aws/test/config_schema_SUITE.erl b/deps/rabbitmq_peer_discovery_aws/test/config_schema_SUITE.erl
index f43ae02ac8..993df18072 100644
--- a/deps/rabbitmq_peer_discovery_aws/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_peer_discovery_aws/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_peer_discovery_aws/test/integration_SUITE.erl b/deps/rabbitmq_peer_discovery_aws/test/integration_SUITE.erl
index e98f56cc43..26309e8f8d 100644
--- a/deps/rabbitmq_peer_discovery_aws/test/integration_SUITE.erl
+++ b/deps/rabbitmq_peer_discovery_aws/test/integration_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(integration_SUITE).
diff --git a/deps/rabbitmq_peer_discovery_aws/test/unit_SUITE.erl b/deps/rabbitmq_peer_discovery_aws/test/unit_SUITE.erl
index 60b7af47ad..52d31090d4 100644
--- a/deps/rabbitmq_peer_discovery_aws/test/unit_SUITE.erl
+++ b/deps/rabbitmq_peer_discovery_aws/test/unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_SUITE).
diff --git a/deps/rabbitmq_peer_discovery_common/include/rabbit_peer_discovery.hrl b/deps/rabbitmq_peer_discovery_common/include/rabbit_peer_discovery.hrl
index ffd8f32757..67bbf51268 100644
--- a/deps/rabbitmq_peer_discovery_common/include/rabbit_peer_discovery.hrl
+++ b/deps/rabbitmq_peer_discovery_common/include/rabbit_peer_discovery.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-include_lib("rabbit_common/include/logging.hrl").
diff --git a/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_cleanup.erl b/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_cleanup.erl
index 9e3fe44770..6b86f507bd 100644
--- a/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_cleanup.erl
+++ b/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_cleanup.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_cleanup).
diff --git a/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_common_app.erl b/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_common_app.erl
index 0f04ed2cbd..8b57358230 100644
--- a/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_common_app.erl
+++ b/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_common_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_common_app).
diff --git a/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_common_sup.erl b/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_common_sup.erl
index f5ece1af5d..3a3cf8c92c 100644
--- a/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_common_sup.erl
+++ b/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_common_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_common_sup).
diff --git a/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_config.erl b/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_config.erl
index 17ba0ae225..0b4c6194ca 100644
--- a/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_config.erl
+++ b/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_config.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_config).
diff --git a/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_httpc.erl b/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_httpc.erl
index 7eb8f49c4d..dfbda32c49 100644
--- a/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_httpc.erl
+++ b/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_httpc.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_httpc).
diff --git a/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_util.erl b/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_util.erl
index 772a4fa0fe..5c471bf9b7 100644
--- a/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_util.erl
+++ b/deps/rabbitmq_peer_discovery_common/src/rabbit_peer_discovery_util.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_util).
diff --git a/deps/rabbitmq_peer_discovery_common/test/config_schema_SUITE.erl b/deps/rabbitmq_peer_discovery_common/test/config_schema_SUITE.erl
index 0cf3a58f5c..797d6df475 100644
--- a/deps/rabbitmq_peer_discovery_common/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_peer_discovery_common/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_peer_discovery_consul/include/rabbit_peer_discovery_consul.hrl b/deps/rabbitmq_peer_discovery_consul/include/rabbit_peer_discovery_consul.hrl
index fffbbaec9a..45ef9e2073 100644
--- a/deps/rabbitmq_peer_discovery_consul/include/rabbit_peer_discovery_consul.hrl
+++ b/deps/rabbitmq_peer_discovery_consul/include/rabbit_peer_discovery_consul.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(BACKEND_CONFIG_KEY, peer_discovery_consul).
diff --git a/deps/rabbitmq_peer_discovery_consul/src/rabbit_peer_discovery_consul.erl b/deps/rabbitmq_peer_discovery_consul/src/rabbit_peer_discovery_consul.erl
index 28055eb3d9..953bba1b49 100644
--- a/deps/rabbitmq_peer_discovery_consul/src/rabbit_peer_discovery_consul.erl
+++ b/deps/rabbitmq_peer_discovery_consul/src/rabbit_peer_discovery_consul.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_consul).
diff --git a/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul.erl b/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul.erl
index c1a64488ef..169716b943 100644
--- a/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul.erl
+++ b/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmq_peer_discovery_consul).
diff --git a/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_app.erl b/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_app.erl
index 4014f34542..65ba8ac57c 100644
--- a/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_app.erl
+++ b/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmq_peer_discovery_consul_app).
diff --git a/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_health_check_helper.erl b/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_health_check_helper.erl
index be939f9e3e..7a5243c560 100644
--- a/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_health_check_helper.erl
+++ b/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_health_check_helper.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This gen_server starts a periodic timer on behalf of
diff --git a/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_sup.erl b/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_sup.erl
index 9385739a47..9074ba4f56 100644
--- a/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_sup.erl
+++ b/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmq_peer_discovery_consul_sup).
diff --git a/deps/rabbitmq_peer_discovery_consul/test/config_schema_SUITE.erl b/deps/rabbitmq_peer_discovery_consul/test/config_schema_SUITE.erl
index 0c36e01a14..2bc2c5173b 100644
--- a/deps/rabbitmq_peer_discovery_consul/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_peer_discovery_consul/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_peer_discovery_consul/test/rabbitmq_peer_discovery_consul_SUITE.erl b/deps/rabbitmq_peer_discovery_consul/test/rabbitmq_peer_discovery_consul_SUITE.erl
index 215ea1ce55..75d3b8bf25 100644
--- a/deps/rabbitmq_peer_discovery_consul/test/rabbitmq_peer_discovery_consul_SUITE.erl
+++ b/deps/rabbitmq_peer_discovery_consul/test/rabbitmq_peer_discovery_consul_SUITE.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmq_peer_discovery_consul_SUITE).
diff --git a/deps/rabbitmq_peer_discovery_etcd/include/rabbit_peer_discovery_etcd.hrl b/deps/rabbitmq_peer_discovery_etcd/include/rabbit_peer_discovery_etcd.hrl
index 0f3a7cd23e..20455ef5ab 100644
--- a/deps/rabbitmq_peer_discovery_etcd/include/rabbit_peer_discovery_etcd.hrl
+++ b/deps/rabbitmq_peer_discovery_etcd/include/rabbit_peer_discovery_etcd.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(BACKEND_CONFIG_KEY, peer_discovery_etcd).
diff --git a/deps/rabbitmq_peer_discovery_etcd/src/rabbit_peer_discovery_etcd.erl b/deps/rabbitmq_peer_discovery_etcd/src/rabbit_peer_discovery_etcd.erl
index b5b4d53f81..fde6ff6c25 100644
--- a/deps/rabbitmq_peer_discovery_etcd/src/rabbit_peer_discovery_etcd.erl
+++ b/deps/rabbitmq_peer_discovery_etcd/src/rabbit_peer_discovery_etcd.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_etcd).
diff --git a/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd.erl b/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd.erl
index 2fa0b1e82c..e3dc786af7 100644
--- a/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd.erl
+++ b/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmq_peer_discovery_etcd).
diff --git a/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_app.erl b/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_app.erl
index c3c60a0d56..dbc48cf129 100644
--- a/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_app.erl
+++ b/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmq_peer_discovery_etcd_app).
diff --git a/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_sup.erl b/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_sup.erl
index 7addc41c8d..190d75ed29 100644
--- a/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_sup.erl
+++ b/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmq_peer_discovery_etcd_sup).
diff --git a/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_v3_client.erl b/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_v3_client.erl
index 405d4c0af4..bf91cd8b84 100644
--- a/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_v3_client.erl
+++ b/deps/rabbitmq_peer_discovery_etcd/src/rabbitmq_peer_discovery_etcd_v3_client.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmq_peer_discovery_etcd_v3_client).
diff --git a/deps/rabbitmq_peer_discovery_etcd/test/config_schema_SUITE.erl b/deps/rabbitmq_peer_discovery_etcd/test/config_schema_SUITE.erl
index 85caa87cb7..53fb7ef8e4 100644
--- a/deps/rabbitmq_peer_discovery_etcd/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_peer_discovery_etcd/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_peer_discovery_etcd/test/config_schema_SUITE_data/rabbitmq_peer_discovery_etcd.snippets b/deps/rabbitmq_peer_discovery_etcd/test/config_schema_SUITE_data/rabbitmq_peer_discovery_etcd.snippets
index 829ae3b2df..f6e035fa79 100644
--- a/deps/rabbitmq_peer_discovery_etcd/test/config_schema_SUITE_data/rabbitmq_peer_discovery_etcd.snippets
+++ b/deps/rabbitmq_peer_discovery_etcd/test/config_schema_SUITE_data/rabbitmq_peer_discovery_etcd.snippets
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
[
diff --git a/deps/rabbitmq_peer_discovery_etcd/test/system_SUITE.erl b/deps/rabbitmq_peer_discovery_etcd/test/system_SUITE.erl
index 569102002c..91341ff3d1 100644
--- a/deps/rabbitmq_peer_discovery_etcd/test/system_SUITE.erl
+++ b/deps/rabbitmq_peer_discovery_etcd/test/system_SUITE.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(system_SUITE).
diff --git a/deps/rabbitmq_peer_discovery_etcd/test/unit_SUITE.erl b/deps/rabbitmq_peer_discovery_etcd/test/unit_SUITE.erl
index 6cef145a20..21b4c256bd 100644
--- a/deps/rabbitmq_peer_discovery_etcd/test/unit_SUITE.erl
+++ b/deps/rabbitmq_peer_discovery_etcd/test/unit_SUITE.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_SUITE).
diff --git a/deps/rabbitmq_peer_discovery_k8s/include/rabbit_peer_discovery_k8s.hrl b/deps/rabbitmq_peer_discovery_k8s/include/rabbit_peer_discovery_k8s.hrl
index b963d0d2ae..725a79cc10 100644
--- a/deps/rabbitmq_peer_discovery_k8s/include/rabbit_peer_discovery_k8s.hrl
+++ b/deps/rabbitmq_peer_discovery_k8s/include/rabbit_peer_discovery_k8s.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(CONFIG_MODULE, rabbit_peer_discovery_config).
diff --git a/deps/rabbitmq_peer_discovery_k8s/src/rabbit_peer_discovery_k8s.erl b/deps/rabbitmq_peer_discovery_k8s/src/rabbit_peer_discovery_k8s.erl
index a96c5ad7ca..3dc3b407e8 100644
--- a/deps/rabbitmq_peer_discovery_k8s/src/rabbit_peer_discovery_k8s.erl
+++ b/deps/rabbitmq_peer_discovery_k8s/src/rabbit_peer_discovery_k8s.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_peer_discovery_k8s).
diff --git a/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s.erl b/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s.erl
index b6edfda467..809cc1d52e 100644
--- a/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s.erl
+++ b/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This module exists as an alias for rabbit_peer_discovery_k8s.
diff --git a/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_app.erl b/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_app.erl
index f8033d9dbc..413e73224a 100644
--- a/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_app.erl
+++ b/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmq_peer_discovery_k8s_app).
diff --git a/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_node_monitor.erl b/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_node_monitor.erl
index 7c309f6bce..f6bd3abbdd 100644
--- a/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_node_monitor.erl
+++ b/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_node_monitor.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% This gen_server receives node monitoring events from net_kernel
diff --git a/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_sup.erl b/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_sup.erl
index 11af79b46c..b08897d0ee 100644
--- a/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_sup.erl
+++ b/deps/rabbitmq_peer_discovery_k8s/src/rabbitmq_peer_discovery_k8s_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmq_peer_discovery_k8s_sup).
diff --git a/deps/rabbitmq_peer_discovery_k8s/test/config_schema_SUITE.erl b/deps/rabbitmq_peer_discovery_k8s/test/config_schema_SUITE.erl
index d84d781c57..06baabcad5 100644
--- a/deps/rabbitmq_peer_discovery_k8s/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_peer_discovery_k8s/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_peer_discovery_k8s/test/config_schema_SUITE_data/rabbitmq_peer_discovery_k8s.snippets b/deps/rabbitmq_peer_discovery_k8s/test/config_schema_SUITE_data/rabbitmq_peer_discovery_k8s.snippets
index 00b4b67ef7..958a8a645d 100644
--- a/deps/rabbitmq_peer_discovery_k8s/test/config_schema_SUITE_data/rabbitmq_peer_discovery_k8s.snippets
+++ b/deps/rabbitmq_peer_discovery_k8s/test/config_schema_SUITE_data/rabbitmq_peer_discovery_k8s.snippets
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
[
diff --git a/deps/rabbitmq_peer_discovery_k8s/test/rabbitmq_peer_discovery_k8s_SUITE.erl b/deps/rabbitmq_peer_discovery_k8s/test/rabbitmq_peer_discovery_k8s_SUITE.erl
index aa908375be..94621c59a3 100644
--- a/deps/rabbitmq_peer_discovery_k8s/test/rabbitmq_peer_discovery_k8s_SUITE.erl
+++ b/deps/rabbitmq_peer_discovery_k8s/test/rabbitmq_peer_discovery_k8s_SUITE.erl
@@ -4,7 +4,7 @@
%%
%% The Initial Developer of the Original Code is AWeber Communications.
%% Copyright (c) 2015-2016 AWeber Communications
-%% Copyright (c) 2016-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2016-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbitmq_peer_discovery_k8s_SUITE).
diff --git a/deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_alarm_metrics_collector.erl b/deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_alarm_metrics_collector.erl
index e17f058570..1a9f2af4fd 100644
--- a/deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_alarm_metrics_collector.erl
+++ b/deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_alarm_metrics_collector.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(prometheus_rabbitmq_alarm_metrics_collector).
diff --git a/deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_core_metrics_collector.erl b/deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_core_metrics_collector.erl
index b526a540c0..71ed9eede2 100644
--- a/deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_core_metrics_collector.erl
+++ b/deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_core_metrics_collector.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(prometheus_rabbitmq_core_metrics_collector).
-export([register/0,
diff --git a/deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_global_metrics_collector.erl b/deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_global_metrics_collector.erl
index 00be888f48..f1341116a4 100644
--- a/deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_global_metrics_collector.erl
+++ b/deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_global_metrics_collector.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(prometheus_rabbitmq_global_metrics_collector).
diff --git a/deps/rabbitmq_prometheus/src/rabbit_prometheus_app.erl b/deps/rabbitmq_prometheus/src/rabbit_prometheus_app.erl
index d365768059..743d43aedc 100644
--- a/deps/rabbitmq_prometheus/src/rabbit_prometheus_app.erl
+++ b/deps/rabbitmq_prometheus/src/rabbit_prometheus_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_prometheus_app).
diff --git a/deps/rabbitmq_prometheus/src/rabbit_prometheus_dispatcher.erl b/deps/rabbitmq_prometheus/src/rabbit_prometheus_dispatcher.erl
index 53ec9db410..8125ddcc4b 100644
--- a/deps/rabbitmq_prometheus/src/rabbit_prometheus_dispatcher.erl
+++ b/deps/rabbitmq_prometheus/src/rabbit_prometheus_dispatcher.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_prometheus_dispatcher).
diff --git a/deps/rabbitmq_prometheus/src/rabbit_prometheus_handler.erl b/deps/rabbitmq_prometheus/src/rabbit_prometheus_handler.erl
index 48d4612c07..b0541ca0fa 100644
--- a/deps/rabbitmq_prometheus/src/rabbit_prometheus_handler.erl
+++ b/deps/rabbitmq_prometheus/src/rabbit_prometheus_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_prometheus_handler).
diff --git a/deps/rabbitmq_prometheus/test/config_schema_SUITE.erl b/deps/rabbitmq_prometheus/test/config_schema_SUITE.erl
index 7f8e94f2c6..a66fdecca8 100644
--- a/deps/rabbitmq_prometheus/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_prometheus/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_prometheus/test/rabbit_prometheus_http_SUITE.erl b/deps/rabbitmq_prometheus/test/rabbit_prometheus_http_SUITE.erl
index 0ff94a91f6..8157681f3e 100644
--- a/deps/rabbitmq_prometheus/test/rabbit_prometheus_http_SUITE.erl
+++ b/deps/rabbitmq_prometheus/test/rabbit_prometheus_http_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_prometheus_http_SUITE).
diff --git a/deps/rabbitmq_random_exchange/src/rabbit_exchange_type_random.erl b/deps/rabbitmq_random_exchange/src/rabbit_exchange_type_random.erl
index b90c542915..0970684e54 100644
--- a/deps/rabbitmq_random_exchange/src/rabbit_exchange_type_random.erl
+++ b/deps/rabbitmq_random_exchange/src/rabbit_exchange_type_random.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_exchange_type_random).
diff --git a/deps/rabbitmq_recent_history_exchange/include/rabbit_recent_history.hrl b/deps/rabbitmq_recent_history_exchange/include/rabbit_recent_history.hrl
index 8b6adf81f9..d127d0853c 100644
--- a/deps/rabbitmq_recent_history_exchange/include/rabbit_recent_history.hrl
+++ b/deps/rabbitmq_recent_history_exchange/include/rabbit_recent_history.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(KEEP_NB, 20).
diff --git a/deps/rabbitmq_recent_history_exchange/src/rabbit_exchange_type_recent_history.erl b/deps/rabbitmq_recent_history_exchange/src/rabbit_exchange_type_recent_history.erl
index cdc6d996bf..3001875630 100644
--- a/deps/rabbitmq_recent_history_exchange/src/rabbit_exchange_type_recent_history.erl
+++ b/deps/rabbitmq_recent_history_exchange/src/rabbit_exchange_type_recent_history.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(rabbit_exchange_type_recent_history).
diff --git a/deps/rabbitmq_recent_history_exchange/test/system_SUITE.erl b/deps/rabbitmq_recent_history_exchange/test/system_SUITE.erl
index f87d6d9d1f..e02fd34e02 100644
--- a/deps/rabbitmq_recent_history_exchange/test/system_SUITE.erl
+++ b/deps/rabbitmq_recent_history_exchange/test/system_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
-module(system_SUITE).
diff --git a/deps/rabbitmq_sharding/src/rabbit_sharding_exchange_decorator.erl b/deps/rabbitmq_sharding/src/rabbit_sharding_exchange_decorator.erl
index 0b3d17b651..8770c1913e 100644
--- a/deps/rabbitmq_sharding/src/rabbit_sharding_exchange_decorator.erl
+++ b/deps/rabbitmq_sharding/src/rabbit_sharding_exchange_decorator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_sharding_exchange_decorator).
diff --git a/deps/rabbitmq_sharding/src/rabbit_sharding_exchange_type_modulus_hash.erl b/deps/rabbitmq_sharding/src/rabbit_sharding_exchange_type_modulus_hash.erl
index 567c31eee4..051ad39e73 100644
--- a/deps/rabbitmq_sharding/src/rabbit_sharding_exchange_type_modulus_hash.erl
+++ b/deps/rabbitmq_sharding/src/rabbit_sharding_exchange_type_modulus_hash.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_sharding_exchange_type_modulus_hash).
diff --git a/deps/rabbitmq_sharding/src/rabbit_sharding_interceptor.erl b/deps/rabbitmq_sharding/src/rabbit_sharding_interceptor.erl
index e4de32e112..41050f3fb8 100644
--- a/deps/rabbitmq_sharding/src/rabbit_sharding_interceptor.erl
+++ b/deps/rabbitmq_sharding/src/rabbit_sharding_interceptor.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_sharding_interceptor).
diff --git a/deps/rabbitmq_sharding/src/rabbit_sharding_policy_validator.erl b/deps/rabbitmq_sharding/src/rabbit_sharding_policy_validator.erl
index a991f6c1ae..2a82e4d824 100644
--- a/deps/rabbitmq_sharding/src/rabbit_sharding_policy_validator.erl
+++ b/deps/rabbitmq_sharding/src/rabbit_sharding_policy_validator.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_sharding_policy_validator).
diff --git a/deps/rabbitmq_sharding/src/rabbit_sharding_shard.erl b/deps/rabbitmq_sharding/src/rabbit_sharding_shard.erl
index 43911667a3..59b372e1d1 100644
--- a/deps/rabbitmq_sharding/src/rabbit_sharding_shard.erl
+++ b/deps/rabbitmq_sharding/src/rabbit_sharding_shard.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_sharding_shard).
diff --git a/deps/rabbitmq_sharding/src/rabbit_sharding_util.erl b/deps/rabbitmq_sharding/src/rabbit_sharding_util.erl
index c5b4d99c54..6f0e98764c 100644
--- a/deps/rabbitmq_sharding/src/rabbit_sharding_util.erl
+++ b/deps/rabbitmq_sharding/src/rabbit_sharding_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_sharding_util).
diff --git a/deps/rabbitmq_sharding/test/rabbit_hash_exchange_SUITE.erl b/deps/rabbitmq_sharding/test/rabbit_hash_exchange_SUITE.erl
index 23de157fcf..899405bb9e 100644
--- a/deps/rabbitmq_sharding/test/rabbit_hash_exchange_SUITE.erl
+++ b/deps/rabbitmq_sharding/test/rabbit_hash_exchange_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_hash_exchange_SUITE).
diff --git a/deps/rabbitmq_sharding/test/rabbit_sharding_SUITE.erl b/deps/rabbitmq_sharding/test/rabbit_sharding_SUITE.erl
index bd933b4245..aaf96636de 100644
--- a/deps/rabbitmq_sharding/test/rabbit_sharding_SUITE.erl
+++ b/deps/rabbitmq_sharding/test/rabbit_sharding_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_sharding_SUITE).
diff --git a/deps/rabbitmq_shovel/include/rabbit_shovel.hrl b/deps/rabbitmq_shovel/include/rabbit_shovel.hrl
index 7518aa6871..c82e26ae29 100644
--- a/deps/rabbitmq_shovel/include/rabbit_shovel.hrl
+++ b/deps/rabbitmq_shovel/include/rabbit_shovel.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-record(endpoint,
diff --git a/deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteShovelCommand.erl b/deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteShovelCommand.erl
index 48c2b30c0a..687025f4c1 100644
--- a/deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteShovelCommand.erl
+++ b/deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteShovelCommand.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteShovelCommand').
diff --git a/deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartShovelCommand.erl b/deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartShovelCommand.erl
index 14fc0b2e5d..44284a99d0 100644
--- a/deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartShovelCommand.erl
+++ b/deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartShovelCommand.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.RestartShovelCommand').
diff --git a/deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ShovelStatusCommand.erl b/deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ShovelStatusCommand.erl
index 43034e51f2..1ddd581606 100644
--- a/deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ShovelStatusCommand.erl
+++ b/deps/rabbitmq_shovel/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ShovelStatusCommand.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.ShovelStatusCommand').
diff --git a/deps/rabbitmq_shovel/src/rabbit_amqp091_shovel.erl b/deps/rabbitmq_shovel/src/rabbit_amqp091_shovel.erl
index 25b3587ecf..62cec0d9fc 100644
--- a/deps/rabbitmq_shovel/src/rabbit_amqp091_shovel.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_amqp091_shovel.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp091_shovel).
diff --git a/deps/rabbitmq_shovel/src/rabbit_amqp10_shovel.erl b/deps/rabbitmq_shovel/src/rabbit_amqp10_shovel.erl
index 6bc64b375e..3ca66839c7 100644
--- a/deps/rabbitmq_shovel/src/rabbit_amqp10_shovel.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_amqp10_shovel.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_amqp10_shovel).
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel.erl b/deps/rabbitmq_shovel/src/rabbit_shovel.erl
index 649fd89d57..02a4882833 100644
--- a/deps/rabbitmq_shovel/src/rabbit_shovel.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_shovel.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel).
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_behaviour.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_behaviour.erl
index 3c99d85cab..f6c1479279 100644
--- a/deps/rabbitmq_shovel/src/rabbit_shovel_behaviour.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_shovel_behaviour.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_behaviour).
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_config.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_config.erl
index bc294569df..2003897b16 100644
--- a/deps/rabbitmq_shovel/src/rabbit_shovel_config.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_shovel_config.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_config).
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup.erl
index ad3c894f89..f19a526ab1 100644
--- a/deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_dyn_worker_sup).
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup_sup.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup_sup.erl
index c971c0b5f1..901dca94b4 100644
--- a/deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup_sup.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_dyn_worker_sup_sup).
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_locks.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_locks.erl
index f768cc88c5..c377f2f2c2 100644
--- a/deps/rabbitmq_shovel/src/rabbit_shovel_locks.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_shovel_locks.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_locks).
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_parameters.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_parameters.erl
index c39c90eb1f..a46ac96202 100644
--- a/deps/rabbitmq_shovel/src/rabbit_shovel_parameters.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_shovel_parameters.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_parameters).
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_status.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_status.erl
index b14af6a64c..dcee07acaf 100644
--- a/deps/rabbitmq_shovel/src/rabbit_shovel_status.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_shovel_status.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_status).
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_sup.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_sup.erl
index 5a55ad7982..34190158eb 100644
--- a/deps/rabbitmq_shovel/src/rabbit_shovel_sup.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_shovel_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_sup).
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_util.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_util.erl
index 2ea5908916..7cd0fb5985 100644
--- a/deps/rabbitmq_shovel/src/rabbit_shovel_util.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_shovel_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_util).
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_worker.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_worker.erl
index 57c81b9821..d73c4ede18 100644
--- a/deps/rabbitmq_shovel/src/rabbit_shovel_worker.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_shovel_worker.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_worker).
diff --git a/deps/rabbitmq_shovel/src/rabbit_shovel_worker_sup.erl b/deps/rabbitmq_shovel/src/rabbit_shovel_worker_sup.erl
index a05a9b8d36..f3e44cf63d 100644
--- a/deps/rabbitmq_shovel/src/rabbit_shovel_worker_sup.erl
+++ b/deps/rabbitmq_shovel/src/rabbit_shovel_worker_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_worker_sup).
diff --git a/deps/rabbitmq_shovel/test/amqp10_SUITE.erl b/deps/rabbitmq_shovel/test/amqp10_SUITE.erl
index eaa23944ef..941adc96a5 100644
--- a/deps/rabbitmq_shovel/test/amqp10_SUITE.erl
+++ b/deps/rabbitmq_shovel/test/amqp10_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_SUITE).
diff --git a/deps/rabbitmq_shovel/test/amqp10_dynamic_SUITE.erl b/deps/rabbitmq_shovel/test/amqp10_dynamic_SUITE.erl
index e913adaba1..543ec45193 100644
--- a/deps/rabbitmq_shovel/test/amqp10_dynamic_SUITE.erl
+++ b/deps/rabbitmq_shovel/test/amqp10_dynamic_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_dynamic_SUITE).
diff --git a/deps/rabbitmq_shovel/test/amqp10_shovel_SUITE.erl b/deps/rabbitmq_shovel/test/amqp10_shovel_SUITE.erl
index 41d088fdcf..eff2cede72 100644
--- a/deps/rabbitmq_shovel/test/amqp10_shovel_SUITE.erl
+++ b/deps/rabbitmq_shovel/test/amqp10_shovel_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp10_shovel_SUITE).
diff --git a/deps/rabbitmq_shovel/test/config_SUITE.erl b/deps/rabbitmq_shovel/test/config_SUITE.erl
index df43e8f7c1..61fccfa779 100644
--- a/deps/rabbitmq_shovel/test/config_SUITE.erl
+++ b/deps/rabbitmq_shovel/test/config_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_SUITE).
diff --git a/deps/rabbitmq_shovel/test/configuration_SUITE.erl b/deps/rabbitmq_shovel/test/configuration_SUITE.erl
index 59ff7500e8..17b9634f55 100644
--- a/deps/rabbitmq_shovel/test/configuration_SUITE.erl
+++ b/deps/rabbitmq_shovel/test/configuration_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(configuration_SUITE).
diff --git a/deps/rabbitmq_shovel/test/delete_shovel_command_SUITE.erl b/deps/rabbitmq_shovel/test/delete_shovel_command_SUITE.erl
index 230f4a9171..cec919fe88 100644
--- a/deps/rabbitmq_shovel/test/delete_shovel_command_SUITE.erl
+++ b/deps/rabbitmq_shovel/test/delete_shovel_command_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(delete_shovel_command_SUITE).
diff --git a/deps/rabbitmq_shovel/test/dynamic_SUITE.erl b/deps/rabbitmq_shovel/test/dynamic_SUITE.erl
index 9959cbeb18..0a33cd9161 100644
--- a/deps/rabbitmq_shovel/test/dynamic_SUITE.erl
+++ b/deps/rabbitmq_shovel/test/dynamic_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(dynamic_SUITE).
diff --git a/deps/rabbitmq_shovel/test/parameters_SUITE.erl b/deps/rabbitmq_shovel/test/parameters_SUITE.erl
index b083aba048..837faea7bc 100644
--- a/deps/rabbitmq_shovel/test/parameters_SUITE.erl
+++ b/deps/rabbitmq_shovel/test/parameters_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(parameters_SUITE).
diff --git a/deps/rabbitmq_shovel/test/shovel_status_command_SUITE.erl b/deps/rabbitmq_shovel/test/shovel_status_command_SUITE.erl
index f278b9ff93..8b80d8013b 100644
--- a/deps/rabbitmq_shovel/test/shovel_status_command_SUITE.erl
+++ b/deps/rabbitmq_shovel/test/shovel_status_command_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(shovel_status_command_SUITE).
diff --git a/deps/rabbitmq_shovel/test/shovel_test_utils.erl b/deps/rabbitmq_shovel/test/shovel_test_utils.erl
index 5a93ade264..dd11ffdd78 100644
--- a/deps/rabbitmq_shovel/test/shovel_test_utils.erl
+++ b/deps/rabbitmq_shovel/test/shovel_test_utils.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(shovel_test_utils).
diff --git a/deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt.erl b/deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt.erl
index c413ace89e..67e8db861b 100644
--- a/deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt.erl
+++ b/deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_mgmt).
diff --git a/deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt.hrl b/deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt.hrl
index 8565ab9724..de13c5a616 100644
--- a/deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt.hrl
+++ b/deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(SHOVEL_CALLS_TIMEOUT_MS, 25000). \ No newline at end of file
diff --git a/deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt_util.erl b/deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt_util.erl
index 5565d66fbd..2439ab4417 100644
--- a/deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt_util.erl
+++ b/deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_shovel_mgmt_util).
diff --git a/deps/rabbitmq_shovel_management/test/http_SUITE.erl b/deps/rabbitmq_shovel_management/test/http_SUITE.erl
index 0882c8eafd..1714e1198e 100644
--- a/deps/rabbitmq_shovel_management/test/http_SUITE.erl
+++ b/deps/rabbitmq_shovel_management/test/http_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(http_SUITE).
diff --git a/deps/rabbitmq_stomp/include/rabbit_stomp.hrl b/deps/rabbitmq_stomp/include/rabbit_stomp.hrl
index 7d8a476e79..388f1f6b13 100644
--- a/deps/rabbitmq_stomp/include/rabbit_stomp.hrl
+++ b/deps/rabbitmq_stomp/include/rabbit_stomp.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-record(stomp_configuration, {default_login,
diff --git a/deps/rabbitmq_stomp/include/rabbit_stomp_frame.hrl b/deps/rabbitmq_stomp/include/rabbit_stomp_frame.hrl
index 7e1461699e..47e1f9c977 100644
--- a/deps/rabbitmq_stomp/include/rabbit_stomp_frame.hrl
+++ b/deps/rabbitmq_stomp/include/rabbit_stomp_frame.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-record(stomp_frame, {command, headers, body_iolist}).
diff --git a/deps/rabbitmq_stomp/include/rabbit_stomp_headers.hrl b/deps/rabbitmq_stomp/include/rabbit_stomp_headers.hrl
index 0528642525..8c675d3d64 100644
--- a/deps/rabbitmq_stomp/include/rabbit_stomp_headers.hrl
+++ b/deps/rabbitmq_stomp/include/rabbit_stomp_headers.hrl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-define(HEADER_ACCEPT_VERSION, "accept-version").
diff --git a/deps/rabbitmq_stomp/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStompConnectionsCommand.erl b/deps/rabbitmq_stomp/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStompConnectionsCommand.erl
index 4c8e15585f..c675247126 100644
--- a/deps/rabbitmq_stomp/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStompConnectionsCommand.erl
+++ b/deps/rabbitmq_stomp/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStompConnectionsCommand.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.ListStompConnectionsCommand').
diff --git a/deps/rabbitmq_stomp/src/rabbit_stomp.erl b/deps/rabbitmq_stomp/src/rabbit_stomp.erl
index 68ae2ba480..e2507e90d1 100644
--- a/deps/rabbitmq_stomp/src/rabbit_stomp.erl
+++ b/deps/rabbitmq_stomp/src/rabbit_stomp.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stomp).
diff --git a/deps/rabbitmq_stomp/src/rabbit_stomp_client_sup.erl b/deps/rabbitmq_stomp/src/rabbit_stomp_client_sup.erl
index 924b284040..3aabe4d613 100644
--- a/deps/rabbitmq_stomp/src/rabbit_stomp_client_sup.erl
+++ b/deps/rabbitmq_stomp/src/rabbit_stomp_client_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stomp_client_sup).
diff --git a/deps/rabbitmq_stomp/src/rabbit_stomp_connection_info.erl b/deps/rabbitmq_stomp/src/rabbit_stomp_connection_info.erl
index 1129e1ad1d..ce5ffe4477 100644
--- a/deps/rabbitmq_stomp/src/rabbit_stomp_connection_info.erl
+++ b/deps/rabbitmq_stomp/src/rabbit_stomp_connection_info.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stomp_connection_info).
diff --git a/deps/rabbitmq_stomp/src/rabbit_stomp_frame.erl b/deps/rabbitmq_stomp/src/rabbit_stomp_frame.erl
index 845cef368c..5fe08e81ef 100644
--- a/deps/rabbitmq_stomp/src/rabbit_stomp_frame.erl
+++ b/deps/rabbitmq_stomp/src/rabbit_stomp_frame.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stomp_frame).
diff --git a/deps/rabbitmq_stomp/src/rabbit_stomp_internal_event_handler.erl b/deps/rabbitmq_stomp/src/rabbit_stomp_internal_event_handler.erl
index 3cc1034a57..1caad4455e 100644
--- a/deps/rabbitmq_stomp/src/rabbit_stomp_internal_event_handler.erl
+++ b/deps/rabbitmq_stomp/src/rabbit_stomp_internal_event_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stomp_internal_event_handler).
diff --git a/deps/rabbitmq_stomp/src/rabbit_stomp_processor.erl b/deps/rabbitmq_stomp/src/rabbit_stomp_processor.erl
index 8c62595b5a..2a6f02c0ce 100644
--- a/deps/rabbitmq_stomp/src/rabbit_stomp_processor.erl
+++ b/deps/rabbitmq_stomp/src/rabbit_stomp_processor.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stomp_processor).
diff --git a/deps/rabbitmq_stomp/src/rabbit_stomp_reader.erl b/deps/rabbitmq_stomp/src/rabbit_stomp_reader.erl
index 261e60d4db..16dcd032f8 100644
--- a/deps/rabbitmq_stomp/src/rabbit_stomp_reader.erl
+++ b/deps/rabbitmq_stomp/src/rabbit_stomp_reader.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stomp_reader).
diff --git a/deps/rabbitmq_stomp/src/rabbit_stomp_sup.erl b/deps/rabbitmq_stomp/src/rabbit_stomp_sup.erl
index 23789e8faa..901f89b4a0 100644
--- a/deps/rabbitmq_stomp/src/rabbit_stomp_sup.erl
+++ b/deps/rabbitmq_stomp/src/rabbit_stomp_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stomp_sup).
diff --git a/deps/rabbitmq_stomp/src/rabbit_stomp_util.erl b/deps/rabbitmq_stomp/src/rabbit_stomp_util.erl
index 5800b7d85a..06141371b8 100644
--- a/deps/rabbitmq_stomp/src/rabbit_stomp_util.erl
+++ b/deps/rabbitmq_stomp/src/rabbit_stomp_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stomp_util).
diff --git a/deps/rabbitmq_stomp/test/command_SUITE.erl b/deps/rabbitmq_stomp/test/command_SUITE.erl
index bb9f8cc6f1..f736593d64 100644
--- a/deps/rabbitmq_stomp/test/command_SUITE.erl
+++ b/deps/rabbitmq_stomp/test/command_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(command_SUITE).
diff --git a/deps/rabbitmq_stomp/test/config_schema_SUITE.erl b/deps/rabbitmq_stomp/test/config_schema_SUITE.erl
index 69a92954c7..2565be2b26 100644
--- a/deps/rabbitmq_stomp/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_stomp/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_stomp/test/connections_SUITE.erl b/deps/rabbitmq_stomp/test/connections_SUITE.erl
index 5f9bd218ed..dbd6aa3d12 100644
--- a/deps/rabbitmq_stomp/test/connections_SUITE.erl
+++ b/deps/rabbitmq_stomp/test/connections_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(connections_SUITE).
diff --git a/deps/rabbitmq_stomp/test/frame_SUITE.erl b/deps/rabbitmq_stomp/test/frame_SUITE.erl
index 55c20f6c61..e2a78d8823 100644
--- a/deps/rabbitmq_stomp/test/frame_SUITE.erl
+++ b/deps/rabbitmq_stomp/test/frame_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(frame_SUITE).
diff --git a/deps/rabbitmq_stomp/test/proxy_protocol_SUITE.erl b/deps/rabbitmq_stomp/test/proxy_protocol_SUITE.erl
index d924588f29..9d74ea36a7 100644
--- a/deps/rabbitmq_stomp/test/proxy_protocol_SUITE.erl
+++ b/deps/rabbitmq_stomp/test/proxy_protocol_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(proxy_protocol_SUITE).
diff --git a/deps/rabbitmq_stomp/test/python_SUITE.erl b/deps/rabbitmq_stomp/test/python_SUITE.erl
index b044ace342..c76f3172a2 100644
--- a/deps/rabbitmq_stomp/test/python_SUITE.erl
+++ b/deps/rabbitmq_stomp/test/python_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(python_SUITE).
diff --git a/deps/rabbitmq_stomp/test/src/rabbit_stomp_client.erl b/deps/rabbitmq_stomp/test/src/rabbit_stomp_client.erl
index 10f24b51dc..e1c1b44137 100644
--- a/deps/rabbitmq_stomp/test/src/rabbit_stomp_client.erl
+++ b/deps/rabbitmq_stomp/test/src/rabbit_stomp_client.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
%% The stupidest client imaginable, just for testing.
diff --git a/deps/rabbitmq_stomp/test/src/rabbit_stomp_publish_test.erl b/deps/rabbitmq_stomp/test/src/rabbit_stomp_publish_test.erl
index 0d5c8c4fc4..5dbe5f8e38 100644
--- a/deps/rabbitmq_stomp/test/src/rabbit_stomp_publish_test.erl
+++ b/deps/rabbitmq_stomp/test/src/rabbit_stomp_publish_test.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stomp_publish_test).
diff --git a/deps/rabbitmq_stomp/test/system_SUITE.erl b/deps/rabbitmq_stomp/test/system_SUITE.erl
index dfed1cb7c2..d38824af43 100644
--- a/deps/rabbitmq_stomp/test/system_SUITE.erl
+++ b/deps/rabbitmq_stomp/test/system_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(system_SUITE).
diff --git a/deps/rabbitmq_stomp/test/topic_SUITE.erl b/deps/rabbitmq_stomp/test/topic_SUITE.erl
index 281fb8a2c9..a167f63e54 100644
--- a/deps/rabbitmq_stomp/test/topic_SUITE.erl
+++ b/deps/rabbitmq_stomp/test/topic_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(topic_SUITE).
diff --git a/deps/rabbitmq_stomp/test/util_SUITE.erl b/deps/rabbitmq_stomp/test/util_SUITE.erl
index 0b04d9183c..ca97486ff7 100644
--- a/deps/rabbitmq_stomp/test/util_SUITE.erl
+++ b/deps/rabbitmq_stomp/test/util_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(util_SUITE).
diff --git a/deps/rabbitmq_stream/README.adoc b/deps/rabbitmq_stream/README.adoc
index c0013a4fd8..3da81ce058 100644
--- a/deps/rabbitmq_stream/README.adoc
+++ b/deps/rabbitmq_stream/README.adoc
@@ -27,4 +27,4 @@ Released under the link:LICENSE-MPL-RabbitMQ[MPL 2.0].
== Copyright
-(c) 2020-2022 VMware, Inc. or its affiliates.
+(c) 2020-2023 VMware, Inc. or its affiliates.
diff --git a/deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConnectionsCommand.erl b/deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConnectionsCommand.erl
index 052ea084d2..bbc9b39fac 100644
--- a/deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConnectionsCommand.erl
+++ b/deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConnectionsCommand.erl
@@ -11,7 +11,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is GoPivotal, Inc.
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
-module('Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConnectionsCommand').
diff --git a/deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumerGroupsCommand.erl b/deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumerGroupsCommand.erl
new file mode 100644
index 0000000000..92c7101004
--- /dev/null
+++ b/deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumerGroupsCommand.erl
@@ -0,0 +1,114 @@
+%% The contents of this file are subject to the Mozilla Public License
+%% Version 2.0 (the "License"); you may not use this file except in
+%% compliance with the License. You may obtain a copy of the License
+%% at https://www.mozilla.org/MPL/
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and
+%% limitations under the License.
+%%
+%% The Original Code is RabbitMQ.
+%%
+%% The Initial Developer of the Original Code is GoPivotal, Inc.
+%% Copyright (c) 2023 VMware, Inc. or its affiliates. All rights reserved.
+
+-module('Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumerGroupsCommand').
+
+-include_lib("rabbitmq_stream_common/include/rabbit_stream.hrl").
+
+-behaviour('Elixir.RabbitMQ.CLI.CommandBehaviour').
+
+-export([formatter/0,
+ scopes/0,
+ switches/0,
+ aliases/0,
+ usage/0,
+ usage_additional/0,
+ usage_doc_guides/0,
+ banner/2,
+ validate/2,
+ merge_defaults/2,
+ run/2,
+ output/2,
+ description/0,
+ help_section/0]).
+
+formatter() ->
+ 'Elixir.RabbitMQ.CLI.Formatters.PrettyTable'.
+
+scopes() ->
+ [ctl, diagnostics, streams].
+
+switches() ->
+ [{verbose, boolean}].
+
+aliases() ->
+ [{'V', verbose}].
+
+description() ->
+ <<"Lists groups of stream single active consumers "
+ "for a vhost">>.
+
+help_section() ->
+ {plugin, stream}.
+
+validate(Args, _) ->
+ case 'Elixir.RabbitMQ.CLI.Ctl.InfoKeys':validate_info_keys(Args,
+ ?CONSUMER_GROUP_INFO_ITEMS)
+ of
+ {ok, _} ->
+ ok;
+ Error ->
+ Error
+ end.
+
+merge_defaults([], Opts) ->
+ merge_defaults([rabbit_data_coercion:to_binary(Item)
+ || Item <- ?CONSUMER_GROUP_INFO_ITEMS],
+ Opts);
+merge_defaults(Args, Opts) ->
+ {Args, maps:merge(#{verbose => false, vhost => <<"/">>}, Opts)}.
+
+usage() ->
+ <<"list_stream_consumer_groups [--vhost <vhost>] "
+ "[<column> ...]">>.
+
+usage_additional() ->
+ Prefix = <<" must be one of ">>,
+ InfoItems =
+ 'Elixir.Enum':join(
+ lists:usort(?CONSUMER_GROUP_INFO_ITEMS), <<", ">>),
+ [{<<"<column>">>, <<Prefix/binary, InfoItems/binary>>}].
+
+usage_doc_guides() ->
+ [?STREAM_GUIDE_URL].
+
+run(Args,
+ #{node := NodeName,
+ vhost := VHost,
+ timeout := Timeout,
+ verbose := Verbose}) ->
+ InfoKeys =
+ case Verbose of
+ true ->
+ ?CONSUMER_GROUP_INFO_ITEMS;
+ false ->
+ 'Elixir.RabbitMQ.CLI.Ctl.InfoKeys':prepare_info_keys(Args)
+ end,
+
+ rabbit_misc:rpc_call(NodeName,
+ rabbit_stream_sac_coordinator,
+ consumer_groups,
+ [VHost, InfoKeys],
+ Timeout).
+
+banner(_, _) ->
+ <<"Listing stream consumer groups ...">>.
+
+output({ok, []}, _Opts) ->
+ ok;
+output([], _Opts) ->
+ ok;
+output(Result, _Opts) ->
+ 'Elixir.RabbitMQ.CLI.DefaultOutput':output(Result).
diff --git a/deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamGroupConsumersCommand.erl b/deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamGroupConsumersCommand.erl
new file mode 100644
index 0000000000..6aae45d4b5
--- /dev/null
+++ b/deps/rabbitmq_stream/src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamGroupConsumersCommand.erl
@@ -0,0 +1,122 @@
+%% The contents of this file are subject to the Mozilla Public License
+%% Version 2.0 (the "License"); you may not use this file except in
+%% compliance with the License. You may obtain a copy of the License
+%% at https://www.mozilla.org/MPL/
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and
+%% limitations under the License.
+%%
+%% The Original Code is RabbitMQ.
+%%
+%% The Initial Developer of the Original Code is GoPivotal, Inc.
+%% Copyright (c) 2023 VMware, Inc. or its affiliates. All rights reserved.
+
+-module('Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamGroupConsumersCommand').
+
+-include_lib("rabbitmq_stream_common/include/rabbit_stream.hrl").
+
+-behaviour('Elixir.RabbitMQ.CLI.CommandBehaviour').
+
+-export([formatter/0,
+ scopes/0,
+ switches/0,
+ aliases/0,
+ usage/0,
+ usage_additional/0,
+ usage_doc_guides/0,
+ banner/2,
+ validate/2,
+ merge_defaults/2,
+ run/2,
+ output/2,
+ description/0,
+ help_section/0]).
+
+formatter() ->
+ 'Elixir.RabbitMQ.CLI.Formatters.PrettyTable'.
+
+scopes() ->
+ [ctl, diagnostics, streams].
+
+switches() ->
+ [{verbose, boolean}, {stream, string}, {reference, string}].
+
+aliases() ->
+ [{'V', verbose}].
+
+description() ->
+ <<"Lists consumers of a stream consumer group in "
+ "a vhost">>.
+
+help_section() ->
+ {plugin, stream}.
+
+validate(Args, #{stream := _, reference := _}) ->
+ case 'Elixir.RabbitMQ.CLI.Ctl.InfoKeys':validate_info_keys(Args,
+ ?GROUP_CONSUMER_INFO_ITEMS)
+ of
+ {ok, _} ->
+ ok;
+ Error ->
+ Error
+ end;
+validate(_, _) ->
+ {validation_failure, not_enough_args}.
+
+merge_defaults([], Opts) ->
+ merge_defaults([rabbit_data_coercion:to_binary(Item)
+ || Item <- ?GROUP_CONSUMER_INFO_ITEMS],
+ Opts);
+merge_defaults(Args, Opts) ->
+ {Args, maps:merge(#{verbose => false, vhost => <<"/">>}, Opts)}.
+
+usage() ->
+ <<"list_stream_group_consumers --stream <stream> "
+ "--reference <reference> [--vhost <vhost>] [<column> "
+ "...]">>.
+
+usage_additional() ->
+ Prefix = <<" must be one of ">>,
+ InfoItems =
+ 'Elixir.Enum':join(
+ lists:usort(?GROUP_CONSUMER_INFO_ITEMS), <<", ">>),
+ [{<<"<column>">>, <<Prefix/binary, InfoItems/binary>>}].
+
+usage_doc_guides() ->
+ [?STREAM_GUIDE_URL].
+
+run(Args,
+ #{node := NodeName,
+ vhost := VHost,
+ stream := Stream,
+ reference := Reference,
+ timeout := Timeout,
+ verbose := Verbose}) ->
+ InfoKeys =
+ case Verbose of
+ true ->
+ ?GROUP_CONSUMER_INFO_ITEMS;
+ false ->
+ 'Elixir.RabbitMQ.CLI.Ctl.InfoKeys':prepare_info_keys(Args)
+ end,
+
+ rabbit_misc:rpc_call(NodeName,
+ rabbit_stream_sac_coordinator,
+ group_consumers,
+ [VHost, Stream, Reference, InfoKeys],
+ Timeout).
+
+banner(_, _) ->
+ <<"Listing group consumers ...">>.
+
+output({ok, []}, _Opts) ->
+ ok;
+output([], _Opts) ->
+ ok;
+output({error, not_found}, _Opts) ->
+ 'Elixir.RabbitMQ.CLI.DefaultOutput':output({error_string,
+ <<"The group does not exist">>});
+output(Result, _Opts) ->
+ 'Elixir.RabbitMQ.CLI.DefaultOutput':output(Result).
diff --git a/deps/rabbitmq_stream/src/rabbit_stream.erl b/deps/rabbitmq_stream/src/rabbit_stream.erl
index f90f6d9aaa..d22faea1e3 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream.erl
@@ -11,7 +11,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is Pivotal Software, Inc.
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream).
diff --git a/deps/rabbitmq_stream/src/rabbit_stream_connection_sup.erl b/deps/rabbitmq_stream/src/rabbit_stream_connection_sup.erl
index cf68aa307c..23f8977414 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream_connection_sup.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream_connection_sup.erl
@@ -11,7 +11,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is Pivotal Software, Inc.
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_connection_sup).
diff --git a/deps/rabbitmq_stream/src/rabbit_stream_manager.erl b/deps/rabbitmq_stream/src/rabbit_stream_manager.erl
index 4402868698..29478d3bfe 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream_manager.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream_manager.erl
@@ -11,7 +11,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is Pivotal Software, Inc.
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_manager).
diff --git a/deps/rabbitmq_stream/src/rabbit_stream_metrics.erl b/deps/rabbitmq_stream/src/rabbit_stream_metrics.erl
index 5096f6500d..d74b21e5eb 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream_metrics.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream_metrics.erl
@@ -11,7 +11,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is Pivotal Software, Inc.
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_metrics).
diff --git a/deps/rabbitmq_stream/src/rabbit_stream_metrics_gc.erl b/deps/rabbitmq_stream/src/rabbit_stream_metrics_gc.erl
index 5a14b8a1e2..147cc1bb82 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream_metrics_gc.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream_metrics_gc.erl
@@ -11,7 +11,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is Pivotal Software, Inc.
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_metrics_gc).
diff --git a/deps/rabbitmq_stream/src/rabbit_stream_reader.erl b/deps/rabbitmq_stream/src/rabbit_stream_reader.erl
index a30d126e1c..9d76a833dc 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream_reader.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream_reader.erl
@@ -9,7 +9,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is Pivotal Software, Inc.
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_reader).
diff --git a/deps/rabbitmq_stream/src/rabbit_stream_sup.erl b/deps/rabbitmq_stream/src/rabbit_stream_sup.erl
index 32f69d2433..15e4996a6b 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream_sup.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream_sup.erl
@@ -11,7 +11,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is Pivotal Software, Inc.
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_sup).
diff --git a/deps/rabbitmq_stream/src/rabbit_stream_utils.erl b/deps/rabbitmq_stream/src/rabbit_stream_utils.erl
index 67fb15ceff..3e2a502421 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream_utils.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream_utils.erl
@@ -11,7 +11,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is Pivotal Software, Inc.
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_utils).
diff --git a/deps/rabbitmq_stream/test/commands_SUITE.erl b/deps/rabbitmq_stream/test/commands_SUITE.erl
index 9df1ea72e0..83adbc24a0 100644
--- a/deps/rabbitmq_stream/test/commands_SUITE.erl
+++ b/deps/rabbitmq_stream/test/commands_SUITE.erl
@@ -2,7 +2,11 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
+<<<<<<< HEAD
%% Copyright (c) 2007-2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+=======
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
+>>>>>>> ec4f1dba7d ((c) year bump: 2022 => 2023)
%%
-module(commands_SUITE).
diff --git a/deps/rabbitmq_stream/test/config_schema_SUITE.erl b/deps/rabbitmq_stream/test/config_schema_SUITE.erl
index d4995d5220..f1b0c3057c 100644
--- a/deps/rabbitmq_stream/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_stream/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_stream/test/rabbit_stream_SUITE.erl b/deps/rabbitmq_stream/test/rabbit_stream_SUITE.erl
index 4f5d442b4e..39be04a767 100644
--- a/deps/rabbitmq_stream/test/rabbit_stream_SUITE.erl
+++ b/deps/rabbitmq_stream/test/rabbit_stream_SUITE.erl
@@ -11,7 +11,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is Pivotal Software, Inc.
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_SUITE).
diff --git a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/ClusterSizeTest.java b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/ClusterSizeTest.java
index f8a7e72399..7817fdccec 100644
--- a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/ClusterSizeTest.java
+++ b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/ClusterSizeTest.java
@@ -11,7 +11,7 @@
// The Original Code is RabbitMQ.
//
// The Initial Developer of the Original Code is Pivotal Software, Inc.
-// Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+// Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
//
package com.rabbitmq.stream;
diff --git a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/FailureTest.java b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/FailureTest.java
index a31e49123a..4d28511400 100644
--- a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/FailureTest.java
+++ b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/FailureTest.java
@@ -11,7 +11,7 @@
// The Original Code is RabbitMQ.
//
// The Initial Developer of the Original Code is Pivotal Software, Inc.
-// Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+// Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
//
package com.rabbitmq.stream;
diff --git a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/Host.java b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/Host.java
index 1b4b5bd970..9fdf41617e 100644
--- a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/Host.java
+++ b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/Host.java
@@ -11,7 +11,7 @@
// The Original Code is RabbitMQ.
//
// The Initial Developer of the Original Code is Pivotal Software, Inc.
-// Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+// Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
//
package com.rabbitmq.stream;
diff --git a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/LeaderLocatorTest.java b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/LeaderLocatorTest.java
index f888a48296..43bba765d1 100644
--- a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/LeaderLocatorTest.java
+++ b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/LeaderLocatorTest.java
@@ -11,7 +11,7 @@
// The Original Code is RabbitMQ.
//
// The Initial Developer of the Original Code is Pivotal Software, Inc.
-// Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+// Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
//
package com.rabbitmq.stream;
diff --git a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/StreamTest.java b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/StreamTest.java
index 1f09809b8e..cc1464382b 100644
--- a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/StreamTest.java
+++ b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/StreamTest.java
@@ -11,7 +11,7 @@
// The Original Code is RabbitMQ.
//
// The Initial Developer of the Original Code is Pivotal Software, Inc.
-// Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+// Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
//
package com.rabbitmq.stream;
diff --git a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/TestUtils.java b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/TestUtils.java
index 10b51e78d2..3ddb695f4b 100644
--- a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/TestUtils.java
+++ b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/src/test/java/com/rabbitmq/stream/TestUtils.java
@@ -11,7 +11,7 @@
// The Original Code is RabbitMQ.
//
// The Initial Developer of the Original Code is Pivotal Software, Inc.
-// Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+// Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
//
package com.rabbitmq.stream;
diff --git a/deps/rabbitmq_stream/test/rabbit_stream_manager_SUITE.erl b/deps/rabbitmq_stream/test/rabbit_stream_manager_SUITE.erl
index 529d78220b..f60ffb5283 100644
--- a/deps/rabbitmq_stream/test/rabbit_stream_manager_SUITE.erl
+++ b/deps/rabbitmq_stream/test/rabbit_stream_manager_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_manager_SUITE).
diff --git a/deps/rabbitmq_stream_common/README.adoc b/deps/rabbitmq_stream_common/README.adoc
index 96fe3d9b01..843a23f870 100644
--- a/deps/rabbitmq_stream_common/README.adoc
+++ b/deps/rabbitmq_stream_common/README.adoc
@@ -20,4 +20,4 @@ Released under the link:LICENSE-MPL-RabbitMQ[MPL 2.0].
== Copyright
-(c) 2020-2022 VMware, Inc. or its affiliates. \ No newline at end of file
+(c) 2020-2023 VMware, Inc. or its affiliates. \ No newline at end of file
diff --git a/deps/rabbitmq_stream_management/README.adoc b/deps/rabbitmq_stream_management/README.adoc
index 88f6258b70..6f2738c26c 100644
--- a/deps/rabbitmq_stream_management/README.adoc
+++ b/deps/rabbitmq_stream_management/README.adoc
@@ -20,4 +20,4 @@ Released under the link:LICENSE-MPL-RabbitMQ[MPL 2.0].
== Copyright
-(c) 2020-2022 VMware, Inc. or its affiliates. \ No newline at end of file
+(c) 2020-2023 VMware, Inc. or its affiliates. \ No newline at end of file
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_connection_consumers_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_connection_consumers_mgmt.erl
index f6f4e182db..b44cd0b961 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_connection_consumers_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_connection_consumers_mgmt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_connection_consumers_mgmt).
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_connection_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_connection_mgmt.erl
index 344647a882..db1a3e4a51 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_connection_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_connection_mgmt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_connection_mgmt).
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_connection_publishers_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_connection_publishers_mgmt.erl
index 53f7ed1609..4858223ea8 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_connection_publishers_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_connection_publishers_mgmt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_connection_publishers_mgmt).
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_connections_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_connections_mgmt.erl
index 724336d0de..90672eeaae 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_connections_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_connections_mgmt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_connections_mgmt).
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_connections_vhost_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_connections_vhost_mgmt.erl
index e7b08ef262..c0207a1208 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_connections_vhost_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_connections_vhost_mgmt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_connections_vhost_mgmt).
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_consumers_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_consumers_mgmt.erl
index e3ad89f522..d0284e12a3 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_consumers_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_consumers_mgmt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_consumers_mgmt).
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_management_utils.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_management_utils.erl
index 0cd504202e..dd52a7bc96 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_management_utils.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_management_utils.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_management_utils).
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_mgmt_db.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_mgmt_db.erl
index b895c538e3..ea748a4681 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_mgmt_db.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_mgmt_db.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_mgmt_db).
diff --git a/deps/rabbitmq_stream_management/src/rabbit_stream_publishers_mgmt.erl b/deps/rabbitmq_stream_management/src/rabbit_stream_publishers_mgmt.erl
index ae1eba1c5b..6d878462f2 100644
--- a/deps/rabbitmq_stream_management/src/rabbit_stream_publishers_mgmt.erl
+++ b/deps/rabbitmq_stream_management/src/rabbit_stream_publishers_mgmt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_publishers_mgmt).
diff --git a/deps/rabbitmq_stream_management/test/http_SUITE.erl b/deps/rabbitmq_stream_management/test/http_SUITE.erl
index 50d0bbe0f3..ba1cbccb28 100644
--- a/deps/rabbitmq_stream_management/test/http_SUITE.erl
+++ b/deps/rabbitmq_stream_management/test/http_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(http_SUITE).
diff --git a/deps/rabbitmq_stream_management/test/http_SUITE_data/src/test/java/com/rabbitmq/stream/TestUtils.java b/deps/rabbitmq_stream_management/test/http_SUITE_data/src/test/java/com/rabbitmq/stream/TestUtils.java
index 170a3a9984..0e3ab66a5d 100644
--- a/deps/rabbitmq_stream_management/test/http_SUITE_data/src/test/java/com/rabbitmq/stream/TestUtils.java
+++ b/deps/rabbitmq_stream_management/test/http_SUITE_data/src/test/java/com/rabbitmq/stream/TestUtils.java
@@ -11,7 +11,7 @@
// The Original Code is RabbitMQ.
//
// The Initial Developer of the Original Code is Pivotal Software, Inc.
-// Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
+// Copyright (c) 2020-2023 VMware, Inc. or its affiliates. All rights reserved.
//
package com.rabbitmq.stream;
diff --git a/deps/rabbitmq_top/src/rabbit_top_app.erl b/deps/rabbitmq_top/src/rabbit_top_app.erl
index 9964a6104a..b94e43b3f0 100644
--- a/deps/rabbitmq_top/src/rabbit_top_app.erl
+++ b/deps/rabbitmq_top/src/rabbit_top_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_top_app).
diff --git a/deps/rabbitmq_top/src/rabbit_top_extension.erl b/deps/rabbitmq_top/src/rabbit_top_extension.erl
index 8b8ff87626..c4c8d4eca9 100644
--- a/deps/rabbitmq_top/src/rabbit_top_extension.erl
+++ b/deps/rabbitmq_top/src/rabbit_top_extension.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_top_extension).
diff --git a/deps/rabbitmq_top/src/rabbit_top_sup.erl b/deps/rabbitmq_top/src/rabbit_top_sup.erl
index 5fe322503c..e220cac259 100644
--- a/deps/rabbitmq_top/src/rabbit_top_sup.erl
+++ b/deps/rabbitmq_top/src/rabbit_top_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_top_sup).
diff --git a/deps/rabbitmq_top/src/rabbit_top_util.erl b/deps/rabbitmq_top/src/rabbit_top_util.erl
index af6dc046b0..703d23e2af 100644
--- a/deps/rabbitmq_top/src/rabbit_top_util.erl
+++ b/deps/rabbitmq_top/src/rabbit_top_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_top_util).
diff --git a/deps/rabbitmq_top/src/rabbit_top_wm_ets_tables.erl b/deps/rabbitmq_top/src/rabbit_top_wm_ets_tables.erl
index 666f178acc..8524674096 100644
--- a/deps/rabbitmq_top/src/rabbit_top_wm_ets_tables.erl
+++ b/deps/rabbitmq_top/src/rabbit_top_wm_ets_tables.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_top_wm_ets_tables).
diff --git a/deps/rabbitmq_top/src/rabbit_top_wm_process.erl b/deps/rabbitmq_top/src/rabbit_top_wm_process.erl
index 01d5e6a80a..a7e37cb870 100644
--- a/deps/rabbitmq_top/src/rabbit_top_wm_process.erl
+++ b/deps/rabbitmq_top/src/rabbit_top_wm_process.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_top_wm_process).
diff --git a/deps/rabbitmq_top/src/rabbit_top_wm_processes.erl b/deps/rabbitmq_top/src/rabbit_top_wm_processes.erl
index dca88a29d7..c75ce4a4b5 100644
--- a/deps/rabbitmq_top/src/rabbit_top_wm_processes.erl
+++ b/deps/rabbitmq_top/src/rabbit_top_wm_processes.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_top_wm_processes).
diff --git a/deps/rabbitmq_top/src/rabbit_top_worker.erl b/deps/rabbitmq_top/src/rabbit_top_worker.erl
index c44b38ef33..c4e21e7d99 100644
--- a/deps/rabbitmq_top/src/rabbit_top_worker.erl
+++ b/deps/rabbitmq_top/src/rabbit_top_worker.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_top_worker).
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_app.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_app.erl
index c07ac114c2..cdbbf01740 100644
--- a/deps/rabbitmq_tracing/src/rabbit_tracing_app.erl
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_app).
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_consumer.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_consumer.erl
index 34bac119e0..bb8f4cfc23 100644
--- a/deps/rabbitmq_tracing/src/rabbit_tracing_consumer.erl
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_consumer.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_consumer).
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_consumer_sup.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_consumer_sup.erl
index 7b77751b57..376af2763e 100644
--- a/deps/rabbitmq_tracing/src/rabbit_tracing_consumer_sup.erl
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_consumer_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_consumer_sup).
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_files.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_files.erl
index e21c9b9cfb..6eee5966f3 100644
--- a/deps/rabbitmq_tracing/src/rabbit_tracing_files.erl
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_files.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_files).
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_mgmt.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_mgmt.erl
index c439c04ae1..b24e65fc5a 100644
--- a/deps/rabbitmq_tracing/src/rabbit_tracing_mgmt.erl
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_mgmt.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_mgmt).
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_sup.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_sup.erl
index 609ded4da6..1253934d56 100644
--- a/deps/rabbitmq_tracing/src/rabbit_tracing_sup.erl
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_sup).
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_traces.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_traces.erl
index 6478cc1e0f..0debf0d0db 100644
--- a/deps/rabbitmq_tracing/src/rabbit_tracing_traces.erl
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_traces.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_traces).
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_util.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_util.erl
index 4324b994b9..6b5cd820f0 100644
--- a/deps/rabbitmq_tracing/src/rabbit_tracing_util.erl
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_util).
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_file.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_file.erl
index 613b387c3f..6dfeea841d 100644
--- a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_file.erl
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_file.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_wm_file).
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_files.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_files.erl
index b584c567a3..580a47c5c2 100644
--- a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_files.erl
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_files.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_wm_files).
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_trace.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_trace.erl
index 73f23a0ae6..0b7e36d4a0 100644
--- a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_trace.erl
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_trace.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_wm_trace).
diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_traces.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_traces.erl
index 6fa1262827..a67b386da8 100644
--- a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_traces.erl
+++ b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_traces.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_wm_traces).
diff --git a/deps/rabbitmq_tracing/test/rabbit_tracing_SUITE.erl b/deps/rabbitmq_tracing/test/rabbit_tracing_SUITE.erl
index 34b440173a..172848d312 100644
--- a/deps/rabbitmq_tracing/test/rabbit_tracing_SUITE.erl
+++ b/deps/rabbitmq_tracing/test/rabbit_tracing_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_tracing_SUITE).
diff --git a/deps/rabbitmq_trust_store/src/rabbit_trust_store.erl b/deps/rabbitmq_trust_store/src/rabbit_trust_store.erl
index 48aac12d4b..eb2790193e 100644
--- a/deps/rabbitmq_trust_store/src/rabbit_trust_store.erl
+++ b/deps/rabbitmq_trust_store/src/rabbit_trust_store.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_trust_store).
diff --git a/deps/rabbitmq_trust_store/src/rabbit_trust_store_app.erl b/deps/rabbitmq_trust_store/src/rabbit_trust_store_app.erl
index 40d8ea7669..1c16e6fe4c 100644
--- a/deps/rabbitmq_trust_store/src/rabbit_trust_store_app.erl
+++ b/deps/rabbitmq_trust_store/src/rabbit_trust_store_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_trust_store_app).
diff --git a/deps/rabbitmq_trust_store/src/rabbit_trust_store_certificate_provider.erl b/deps/rabbitmq_trust_store/src/rabbit_trust_store_certificate_provider.erl
index 9f13adac8a..4fb8c29490 100644
--- a/deps/rabbitmq_trust_store/src/rabbit_trust_store_certificate_provider.erl
+++ b/deps/rabbitmq_trust_store/src/rabbit_trust_store_certificate_provider.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_trust_store_certificate_provider).
diff --git a/deps/rabbitmq_trust_store/src/rabbit_trust_store_file_provider.erl b/deps/rabbitmq_trust_store/src/rabbit_trust_store_file_provider.erl
index 14ecf843cf..d904224c89 100644
--- a/deps/rabbitmq_trust_store/src/rabbit_trust_store_file_provider.erl
+++ b/deps/rabbitmq_trust_store/src/rabbit_trust_store_file_provider.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_trust_store_file_provider).
diff --git a/deps/rabbitmq_trust_store/src/rabbit_trust_store_http_provider.erl b/deps/rabbitmq_trust_store/src/rabbit_trust_store_http_provider.erl
index 8d841a1fec..064ecc23b5 100644
--- a/deps/rabbitmq_trust_store/src/rabbit_trust_store_http_provider.erl
+++ b/deps/rabbitmq_trust_store/src/rabbit_trust_store_http_provider.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_trust_store_http_provider).
diff --git a/deps/rabbitmq_trust_store/src/rabbit_trust_store_sup.erl b/deps/rabbitmq_trust_store/src/rabbit_trust_store_sup.erl
index ed74c57828..9c00cdaa8d 100644
--- a/deps/rabbitmq_trust_store/src/rabbit_trust_store_sup.erl
+++ b/deps/rabbitmq_trust_store/src/rabbit_trust_store_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_trust_store_sup).
diff --git a/deps/rabbitmq_trust_store/test/config_schema_SUITE.erl b/deps/rabbitmq_trust_store/test/config_schema_SUITE.erl
index a495b37789..6c49ea2529 100644
--- a/deps/rabbitmq_trust_store/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_trust_store/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_trust_store/test/system_SUITE.erl b/deps/rabbitmq_trust_store/test/system_SUITE.erl
index 2299dd980b..66607f73e4 100644
--- a/deps/rabbitmq_trust_store/test/system_SUITE.erl
+++ b/deps/rabbitmq_trust_store/test/system_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(system_SUITE).
diff --git a/deps/rabbitmq_web_dispatch/src/rabbit_cowboy_middleware.erl b/deps/rabbitmq_web_dispatch/src/rabbit_cowboy_middleware.erl
index be4b600afb..5e54d673ad 100644
--- a/deps/rabbitmq_web_dispatch/src/rabbit_cowboy_middleware.erl
+++ b/deps/rabbitmq_web_dispatch/src/rabbit_cowboy_middleware.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_cowboy_middleware).
diff --git a/deps/rabbitmq_web_dispatch/src/rabbit_cowboy_redirect.erl b/deps/rabbitmq_web_dispatch/src/rabbit_cowboy_redirect.erl
index ea4a3ad295..95db3c8dcb 100644
--- a/deps/rabbitmq_web_dispatch/src/rabbit_cowboy_redirect.erl
+++ b/deps/rabbitmq_web_dispatch/src/rabbit_cowboy_redirect.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_cowboy_redirect).
diff --git a/deps/rabbitmq_web_dispatch/src/rabbit_cowboy_stream_h.erl b/deps/rabbitmq_web_dispatch/src/rabbit_cowboy_stream_h.erl
index fb6bb95a3c..4a2c6c31c9 100644
--- a/deps/rabbitmq_web_dispatch/src/rabbit_cowboy_stream_h.erl
+++ b/deps/rabbitmq_web_dispatch/src/rabbit_cowboy_stream_h.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_cowboy_stream_h).
diff --git a/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch.erl b/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch.erl
index 5d3ab9b6af..5c0348d770 100644
--- a/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch.erl
+++ b/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_dispatch).
diff --git a/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_app.erl b/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_app.erl
index d8f83f8223..c66ff7e0cd 100644
--- a/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_app.erl
+++ b/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_dispatch_app).
diff --git a/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_listing_handler.erl b/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_listing_handler.erl
index 0080e2904a..fda1d08a27 100644
--- a/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_listing_handler.erl
+++ b/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_listing_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_dispatch_listing_handler).
diff --git a/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_registry.erl b/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_registry.erl
index 47f9a8bbb5..7a5a5fc7f3 100644
--- a/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_registry.erl
+++ b/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_registry.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_dispatch_registry).
diff --git a/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_sup.erl b/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_sup.erl
index d4aa5e1be5..eee55a89d0 100644
--- a/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_sup.erl
+++ b/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_dispatch_sup).
diff --git a/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_util.erl b/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_util.erl
index cf6fe24026..9295fad8d2 100644
--- a/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_util.erl
+++ b/deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_dispatch_util).
diff --git a/deps/rabbitmq_web_dispatch/test/rabbit_web_dispatch_SUITE.erl b/deps/rabbitmq_web_dispatch/test/rabbit_web_dispatch_SUITE.erl
index 3a3fe0fef7..1d7eb65b0d 100644
--- a/deps/rabbitmq_web_dispatch/test/rabbit_web_dispatch_SUITE.erl
+++ b/deps/rabbitmq_web_dispatch/test/rabbit_web_dispatch_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_dispatch_SUITE).
diff --git a/deps/rabbitmq_web_dispatch/test/rabbit_web_dispatch_unit_SUITE.erl b/deps/rabbitmq_web_dispatch/test/rabbit_web_dispatch_unit_SUITE.erl
index 17fabb840b..c24a558570 100644
--- a/deps/rabbitmq_web_dispatch/test/rabbit_web_dispatch_unit_SUITE.erl
+++ b/deps/rabbitmq_web_dispatch/test/rabbit_web_dispatch_unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_dispatch_unit_SUITE).
diff --git a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl
index 1c2c1a7d0e..4d8ab1dd39 100644
--- a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl
+++ b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_mqtt_app).
diff --git a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_connection_info.erl b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_connection_info.erl
index 853759afc0..9e0c17d171 100644
--- a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_connection_info.erl
+++ b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_connection_info.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_mqtt_connection_info).
diff --git a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_connection_sup.erl b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_connection_sup.erl
index 51e8a41c02..20d282f235 100644
--- a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_connection_sup.erl
+++ b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_connection_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_mqtt_connection_sup).
diff --git a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_handler.erl b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_handler.erl
index cf1da98911..d3a820d1fa 100644
--- a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_handler.erl
+++ b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_mqtt_handler).
diff --git a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_middleware.erl b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_middleware.erl
index 3d887f0188..23cfa04f16 100644
--- a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_middleware.erl
+++ b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_middleware.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_mqtt_middleware).
diff --git a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_stream_handler.erl b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_stream_handler.erl
index b57dbd7e74..68d6ad2f29 100644
--- a/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_stream_handler.erl
+++ b/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_stream_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_mqtt_stream_handler).
diff --git a/deps/rabbitmq_web_mqtt/test/config_schema_SUITE.erl b/deps/rabbitmq_web_mqtt/test/config_schema_SUITE.erl
index 0a1476216d..ec256f4421 100644
--- a/deps/rabbitmq_web_mqtt/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_web_mqtt/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_web_mqtt/test/proxy_protocol_SUITE.erl b/deps/rabbitmq_web_mqtt/test/proxy_protocol_SUITE.erl
index cd7540d8a3..bd49cec10d 100644
--- a/deps/rabbitmq_web_mqtt/test/proxy_protocol_SUITE.erl
+++ b/deps/rabbitmq_web_mqtt/test/proxy_protocol_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(proxy_protocol_SUITE).
diff --git a/deps/rabbitmq_web_mqtt/test/src/rabbit_ws_test_util.erl b/deps/rabbitmq_web_mqtt/test/src/rabbit_ws_test_util.erl
index 7bcf99dc39..697370c583 100644
--- a/deps/rabbitmq_web_mqtt/test/src/rabbit_ws_test_util.erl
+++ b/deps/rabbitmq_web_mqtt/test/src/rabbit_ws_test_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ws_test_util).
diff --git a/deps/rabbitmq_web_mqtt/test/src/rfc6455_client.erl b/deps/rabbitmq_web_mqtt/test/src/rfc6455_client.erl
index 433d80c5de..06a1b951fe 100644
--- a/deps/rabbitmq_web_mqtt/test/src/rfc6455_client.erl
+++ b/deps/rabbitmq_web_mqtt/test/src/rfc6455_client.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rfc6455_client).
diff --git a/deps/rabbitmq_web_mqtt/test/system_SUITE.erl b/deps/rabbitmq_web_mqtt/test/system_SUITE.erl
index f835d6c317..e4216d96cc 100644
--- a/deps/rabbitmq_web_mqtt/test/system_SUITE.erl
+++ b/deps/rabbitmq_web_mqtt/test/system_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(system_SUITE).
diff --git a/deps/rabbitmq_web_mqtt_examples/src/rabbit_web_mqtt_examples_app.erl b/deps/rabbitmq_web_mqtt_examples/src/rabbit_web_mqtt_examples_app.erl
index 3abbdba0f0..8c4f4f7f91 100644
--- a/deps/rabbitmq_web_mqtt_examples/src/rabbit_web_mqtt_examples_app.erl
+++ b/deps/rabbitmq_web_mqtt_examples/src/rabbit_web_mqtt_examples_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_mqtt_examples_app).
diff --git a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_app.erl b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_app.erl
index 0e1aa68a29..f18ed36480 100644
--- a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_app.erl
+++ b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_stomp_app).
diff --git a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_connection_sup.erl b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_connection_sup.erl
index 6de898b247..e37408ff45 100644
--- a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_connection_sup.erl
+++ b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_connection_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_stomp_connection_sup).
diff --git a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_handler.erl b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_handler.erl
index 2a4e1635f5..b6c02f667a 100644
--- a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_handler.erl
+++ b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_stomp_handler).
diff --git a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_internal_event_handler.erl b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_internal_event_handler.erl
index 18d1c82f81..16c97cb53f 100644
--- a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_internal_event_handler.erl
+++ b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_internal_event_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_stomp_internal_event_handler).
diff --git a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl
index 17c6268827..02b19bda49 100644
--- a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl
+++ b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_stomp_listener).
diff --git a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_middleware.erl b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_middleware.erl
index 119205e21c..affa3c9441 100644
--- a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_middleware.erl
+++ b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_middleware.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_stomp_middleware).
diff --git a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_stream_handler.erl b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_stream_handler.erl
index 13c3df27d5..99b3b34dbb 100644
--- a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_stream_handler.erl
+++ b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_stream_handler.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_stomp_stream_handler).
diff --git a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_sup.erl b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_sup.erl
index e900ccaf2e..d73eec7c64 100644
--- a/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_sup.erl
+++ b/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_sup.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_stomp_sup).
diff --git a/deps/rabbitmq_web_stomp/test/amqp_stomp_SUITE.erl b/deps/rabbitmq_web_stomp/test/amqp_stomp_SUITE.erl
index 6d7320ba2c..95bf438960 100644
--- a/deps/rabbitmq_web_stomp/test/amqp_stomp_SUITE.erl
+++ b/deps/rabbitmq_web_stomp/test/amqp_stomp_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(amqp_stomp_SUITE).
diff --git a/deps/rabbitmq_web_stomp/test/config_schema_SUITE.erl b/deps/rabbitmq_web_stomp/test/config_schema_SUITE.erl
index 6872099a96..81f44292c1 100644
--- a/deps/rabbitmq_web_stomp/test/config_schema_SUITE.erl
+++ b/deps/rabbitmq_web_stomp/test/config_schema_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(config_schema_SUITE).
diff --git a/deps/rabbitmq_web_stomp/test/cowboy_websocket_SUITE.erl b/deps/rabbitmq_web_stomp/test/cowboy_websocket_SUITE.erl
index 2844bd897c..cbe0e3fe0d 100644
--- a/deps/rabbitmq_web_stomp/test/cowboy_websocket_SUITE.erl
+++ b/deps/rabbitmq_web_stomp/test/cowboy_websocket_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(cowboy_websocket_SUITE).
diff --git a/deps/rabbitmq_web_stomp/test/proxy_protocol_SUITE.erl b/deps/rabbitmq_web_stomp/test/proxy_protocol_SUITE.erl
index c140751b6e..43d8cc8c84 100644
--- a/deps/rabbitmq_web_stomp/test/proxy_protocol_SUITE.erl
+++ b/deps/rabbitmq_web_stomp/test/proxy_protocol_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(proxy_protocol_SUITE).
diff --git a/deps/rabbitmq_web_stomp/test/raw_websocket_SUITE.erl b/deps/rabbitmq_web_stomp/test/raw_websocket_SUITE.erl
index 0facdd0985..2e685bae07 100644
--- a/deps/rabbitmq_web_stomp/test/raw_websocket_SUITE.erl
+++ b/deps/rabbitmq_web_stomp/test/raw_websocket_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(raw_websocket_SUITE).
diff --git a/deps/rabbitmq_web_stomp/test/src/rabbit_ws_test_util.erl b/deps/rabbitmq_web_stomp/test/src/rabbit_ws_test_util.erl
index 1c553fd179..c2df34dcd3 100644
--- a/deps/rabbitmq_web_stomp/test/src/rabbit_ws_test_util.erl
+++ b/deps/rabbitmq_web_stomp/test/src/rabbit_ws_test_util.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_ws_test_util).
diff --git a/deps/rabbitmq_web_stomp/test/src/rfc6455_client.erl b/deps/rabbitmq_web_stomp/test/src/rfc6455_client.erl
index 50ec1f2fa2..1ac002442a 100644
--- a/deps/rabbitmq_web_stomp/test/src/rfc6455_client.erl
+++ b/deps/rabbitmq_web_stomp/test/src/rfc6455_client.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rfc6455_client).
diff --git a/deps/rabbitmq_web_stomp/test/src/stomp.erl b/deps/rabbitmq_web_stomp/test/src/stomp.erl
index 1428965df2..bba9dff54f 100644
--- a/deps/rabbitmq_web_stomp/test/src/stomp.erl
+++ b/deps/rabbitmq_web_stomp/test/src/stomp.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(stomp).
diff --git a/deps/rabbitmq_web_stomp/test/unit_SUITE.erl b/deps/rabbitmq_web_stomp/test/unit_SUITE.erl
index 65d6dd7c84..6cd449e347 100644
--- a/deps/rabbitmq_web_stomp/test/unit_SUITE.erl
+++ b/deps/rabbitmq_web_stomp/test/unit_SUITE.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(unit_SUITE).
diff --git a/deps/rabbitmq_web_stomp_examples/src/rabbit_web_stomp_examples_app.erl b/deps/rabbitmq_web_stomp_examples/src/rabbit_web_stomp_examples_app.erl
index 8fff8c1f5b..27110b7541 100644
--- a/deps/rabbitmq_web_stomp_examples/src/rabbit_web_stomp_examples_app.erl
+++ b/deps/rabbitmq_web_stomp_examples/src/rabbit_web_stomp_examples_app.erl
@@ -2,7 +2,7 @@
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
-%% Copyright (c) 2007-2022 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2007-2023 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_web_stomp_examples_app).