summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2016-12-07 15:21:58 +0100
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2016-12-07 15:21:58 +0100
commit5e18fd1c674309c4a7aa3243955a2c29cbfae8f2 (patch)
tree71a1ec6a92827002c9d8a5828f6a62a32f4c74f1
parent07ccb1054d33a3e2d7646d7c6c42049abbd249f6 (diff)
parentb517ef26690f7a8891ccbdd013349f8baff80b05 (diff)
downloadrabbitmq-server-git-5e18fd1c674309c4a7aa3243955a2c29cbfae8f2.tar.gz
Merge branch 'stable'
-rw-r--r--Makefile123
-rw-r--r--rabbitmq-components.mk21
-rw-r--r--scripts/rabbitmq-service.bat4
-rw-r--r--src/rabbit.app.src123
-rw-r--r--src/rabbit.erl29
5 files changed, 166 insertions, 134 deletions
diff --git a/Makefile b/Makefile
index 8c2ad5518a..3c11b54020 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,126 @@
PROJECT = rabbit
-VERSION ?= $(call get_app_version,src/$(PROJECT).app.src)
+PROJECT_DESCRIPTION = RabbitMQ
+PROJECT_MOD = rabbit
+PROJECT_REGISTERED = rabbit_amqqueue_sup \
+ rabbit_direct_client_sup \
+ rabbit_log \
+ rabbit_node_monitor \
+ rabbit_router
+
+define PROJECT_ENV
+[
+ {tcp_listeners, [5672]},
+ {num_tcp_acceptors, 10},
+ {ssl_listeners, []},
+ {num_ssl_acceptors, 1},
+ {ssl_options, []},
+ {vm_memory_high_watermark, 0.4},
+ {vm_memory_high_watermark_paging_ratio, 0.5},
+ {memory_monitor_interval, 2500},
+ {disk_free_limit, 50000000}, %% 50MB
+ {msg_store_index_module, rabbit_msg_store_ets_index},
+ {backing_queue_module, rabbit_variable_queue},
+ %% 0 ("no limit") would make a better default, but that
+ %% breaks the QPid Java client
+ {frame_max, 131072},
+ {channel_max, 0},
+ {heartbeat, 60},
+ {msg_store_file_size_limit, 16777216},
+ {fhc_write_buffering, true},
+ {fhc_read_buffering, false},
+ {queue_index_max_journal_entries, 32768},
+ {queue_index_embed_msgs_below, 4096},
+ {default_user, <<"guest">>},
+ {default_pass, <<"guest">>},
+ {default_user_tags, [administrator]},
+ {default_vhost, <<"/">>},
+ {default_permissions, [<<".*">>, <<".*">>, <<".*">>]},
+ {loopback_users, [<<"guest">>]},
+ {password_hashing_module, rabbit_password_hashing_sha256},
+ {server_properties, []},
+ {collect_statistics, none},
+ {collect_statistics_interval, 5000},
+ {mnesia_table_loading_retry_timeout, 30000},
+ {mnesia_table_loading_retry_limit, 10},
+ {auth_mechanisms, ['PLAIN', 'AMQPLAIN']},
+ {auth_backends, [rabbit_auth_backend_internal]},
+ {delegate_count, 16},
+ {trace_vhosts, []},
+ {log_levels, [{connection, info}]},
+ {ssl_cert_login_from, distinguished_name},
+ {ssl_handshake_timeout, 5000},
+ {ssl_allow_poodle_attack, false},
+ {handshake_timeout, 10000},
+ {reverse_dns_lookups, false},
+ {cluster_partition_handling, ignore},
+ {cluster_keepalive_interval, 10000},
+ {tcp_listen_options, [{backlog, 128},
+ {nodelay, true},
+ {linger, {true, 0}},
+ {exit_on_close, false}
+ ]},
+ {halt_on_upgrade_failure, true},
+ {hipe_compile, false},
+ %% see bug 24513 for how this list was created
+ {hipe_modules,
+ [rabbit_reader, rabbit_channel, gen_server2, rabbit_exchange,
+ rabbit_command_assembler, rabbit_framing_amqp_0_9_1, rabbit_basic,
+ rabbit_event, lists, queue, priority_queue, rabbit_router,
+ rabbit_trace, rabbit_misc, rabbit_binary_parser,
+ rabbit_exchange_type_direct, rabbit_guid, rabbit_net,
+ rabbit_amqqueue_process, rabbit_variable_queue,
+ rabbit_binary_generator, rabbit_writer, delegate, gb_sets, lqueue,
+ sets, orddict, rabbit_amqqueue, rabbit_limiter, gb_trees,
+ rabbit_queue_index, rabbit_exchange_decorator, gen, dict, ordsets,
+ file_handle_cache, rabbit_msg_store, array,
+ rabbit_msg_store_ets_index, rabbit_msg_file,
+ rabbit_exchange_type_fanout, rabbit_exchange_type_topic, mnesia,
+ mnesia_lib, rpc, mnesia_tm, qlc, sofs, proplists, credit_flow,
+ pmon, ssl_connection, tls_connection, ssl_record, tls_record,
+ gen_fsm, ssl]},
+ {ssl_apps, [asn1, crypto, public_key, ssl]},
+ %% see rabbitmq-server#114
+ {mirroring_flow_control, true},
+ {mirroring_sync_batch_size, 4096},
+ %% see rabbitmq-server#227 and related tickets.
+ %% msg_store_credit_disc_bound only takes effect when
+ %% messages are persisted to the message store. If messages
+ %% are embedded on the queue index, then modifying this
+ %% setting has no effect because credit_flow is not used when
+ %% writing to the queue index. See the setting
+ %% queue_index_embed_msgs_below above.
+ {msg_store_credit_disc_bound, {2000, 500}},
+ {msg_store_io_batch_size, 2048},
+ %% see rabbitmq-server#143
+ %% and rabbitmq-server#949
+ {credit_flow_default_credit, {200, 100}},
+ %% see rabbitmq-server#248
+ %% and rabbitmq-server#667
+ {channel_operation_timeout, 15000},
+
+ %% see rabbitmq-server#486
+ {peer_discovery_backend, rabbit_peer_discovery_classic_config},
+ %% used by rabbit_peer_discovery_classic_config
+ {cluster_nodes, {[], disc}},
+
+ {config_entry_decoder, [{cipher, aes_cbc256},
+ {hash, sha512},
+ {iterations, 1000},
+ {passphrase, undefined}
+ ]},
+
+ %% rabbitmq-server-973
+ {lazy_queue_explicit_gc_run_operation_threshold, 250},
+ {background_gc_enabled, true},
+ {background_gc_target_interval, 60000}
+ ]
+endef
-DEPS = ranch lager rabbit_common rabbitmq_cli
+# FIXME: Remove goldrush, once rabbit_plugins.erl knows how to ignore
+# indirect dependencies of rabbit.
+LOCAL_DEPS = sasl mnesia os_mon xmerl goldrush jsx
+BUILD_DEPS = rabbitmq_cli
+DEPS = ranch lager rabbit_common
TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers amqp_client meck proper
dep_rabbitmq_cli = git_rmq rabbitmq-cli $(current_rmq_ref) $(base_rmq_ref) rabbitmq-cli-integration
diff --git a/rabbitmq-components.mk b/rabbitmq-components.mk
index ff2b1963ed..7f168d029a 100644
--- a/rabbitmq-components.mk
+++ b/rabbitmq-components.mk
@@ -5,6 +5,27 @@ ifeq ($(.DEFAULT_GOAL),)
.DEFAULT_GOAL = all
endif
+# PROJECT_VERSION defaults to:
+# 1. the version exported by rabbitmq-server-release;
+# 2. the version stored in `git-revisions.txt`, if it exists;
+# 3. a version based on git-describe(1), if it is a Git clone;
+# 4. 0.0.0
+
+PROJECT_VERSION = $(RABBITMQ_VERSION)
+
+ifeq ($(PROJECT_VERSION),)
+PROJECT_VERSION := $(shell \
+if test -f git-revisions.txt; then \
+ head -n1 git-revisions.txt | \
+ awk '{print $$$(words $(PROJECT_DESCRIPTION) version);}'; \
+else \
+ (git describe --dirty --abbrev=7 --tags --always --first-parent \
+ 2>/dev/null || echo rabbitmq_v0_0_0) | \
+ sed -e 's/^rabbitmq_v//' -e 's/^v//' -e 's/_/./g' -e 's/-/+/' \
+ -e 's/-/./g'; \
+fi)
+endif
+
# --------------------------------------------------------------------
# RabbitMQ components.
# --------------------------------------------------------------------
diff --git a/scripts/rabbitmq-service.bat b/scripts/rabbitmq-service.bat
index c9e404db46..347a5e62ae 100644
--- a/scripts/rabbitmq-service.bat
+++ b/scripts/rabbitmq-service.bat
@@ -269,6 +269,10 @@ set ERLANG_SERVICE_ARGUMENTS=!ERLANG_SERVICE_ARGUMENTS:"=\"!
-comment "Multi-protocol open source messaging broker" ^
-args "!ERLANG_SERVICE_ARGUMENTS!" > NUL
+if ERRORLEVEL 1 (
+ EXIT /B 1
+)
+
goto END
diff --git a/src/rabbit.app.src b/src/rabbit.app.src
deleted file mode 100644
index 5f3120b117..0000000000
--- a/src/rabbit.app.src
+++ /dev/null
@@ -1,123 +0,0 @@
-%% -*- erlang -*-
-{application, rabbit,
- [{description, "RabbitMQ"},
- {id, "RabbitMQ"},
- {vsn, "0.0.0"},
- {modules, []},
- {registered, [rabbit_amqqueue_sup,
- rabbit_log,
- rabbit_node_monitor,
- rabbit_router,
- rabbit_sup,
- rabbit_direct_client_sup]},
- %% FIXME: Remove goldrush, once rabbit_plugins.erl knows how to ignore
- %% indirect dependencies of rabbit.
- {applications, [kernel, stdlib, sasl, mnesia, goldrush, lager, rabbit_common, ranch, os_mon, xmerl, jsx]},
-%% we also depend on crypto, public_key and ssl but they shouldn't be
-%% in here as we don't actually want to start it
- {mod, {rabbit, []}},
- {env, [{tcp_listeners, [5672]},
- {num_tcp_acceptors, 10},
- {ssl_listeners, []},
- {num_ssl_acceptors, 1},
- {ssl_options, []},
- {vm_memory_high_watermark, 0.4},
- {vm_memory_high_watermark_paging_ratio, 0.5},
- {memory_monitor_interval, 2500},
- {disk_free_limit, 50000000}, %% 50MB
- {msg_store_index_module, rabbit_msg_store_ets_index},
- {backing_queue_module, rabbit_variable_queue},
- %% 0 ("no limit") would make a better default, but that
- %% breaks the QPid Java client
- {frame_max, 131072},
- {channel_max, 0},
- {heartbeat, 60},
- {msg_store_file_size_limit, 16777216},
- {fhc_write_buffering, true},
- {fhc_read_buffering, false},
- {queue_index_max_journal_entries, 32768},
- {queue_index_embed_msgs_below, 4096},
- {default_user, <<"guest">>},
- {default_pass, <<"guest">>},
- {default_user_tags, [administrator]},
- {default_vhost, <<"/">>},
- {default_permissions, [<<".*">>, <<".*">>, <<".*">>]},
- {loopback_users, [<<"guest">>]},
- {password_hashing_module, rabbit_password_hashing_sha256},
- {server_properties, []},
- {collect_statistics, none},
- {collect_statistics_interval, 5000},
- {mnesia_table_loading_retry_timeout, 30000},
- {mnesia_table_loading_retry_limit, 10},
- {auth_mechanisms, ['PLAIN', 'AMQPLAIN']},
- {auth_backends, [rabbit_auth_backend_internal]},
- {delegate_count, 16},
- {trace_vhosts, []},
- {log_levels, [{connection, info}]},
- {ssl_cert_login_from, distinguished_name},
- {ssl_handshake_timeout, 5000},
- {ssl_allow_poodle_attack, false},
- {handshake_timeout, 10000},
- {reverse_dns_lookups, false},
- {cluster_partition_handling, ignore},
- {cluster_keepalive_interval, 10000},
- {tcp_listen_options, [{backlog, 128},
- {nodelay, true},
- {linger, {true, 0}},
- {exit_on_close, false}]},
- {halt_on_upgrade_failure, true},
- {hipe_compile, false},
- %% see bug 24513 for how this list was created
- {hipe_modules,
- [rabbit_reader, rabbit_channel, gen_server2, rabbit_exchange,
- rabbit_command_assembler, rabbit_framing_amqp_0_9_1, rabbit_basic,
- rabbit_event, lists, queue, priority_queue, rabbit_router,
- rabbit_trace, rabbit_misc, rabbit_binary_parser,
- rabbit_exchange_type_direct, rabbit_guid, rabbit_net,
- rabbit_amqqueue_process, rabbit_variable_queue,
- rabbit_binary_generator, rabbit_writer, delegate, gb_sets, lqueue,
- sets, orddict, rabbit_amqqueue, rabbit_limiter, gb_trees,
- rabbit_queue_index, rabbit_exchange_decorator, gen, dict, ordsets,
- file_handle_cache, rabbit_msg_store, array,
- rabbit_msg_store_ets_index, rabbit_msg_file,
- rabbit_exchange_type_fanout, rabbit_exchange_type_topic, mnesia,
- mnesia_lib, rpc, mnesia_tm, qlc, sofs, proplists, credit_flow,
- pmon, ssl_connection, tls_connection, ssl_record, tls_record,
- gen_fsm, ssl]},
- {ssl_apps, [asn1, crypto, public_key, ssl]},
- %% see rabbitmq-server#114
- {mirroring_flow_control, true},
- {mirroring_sync_batch_size, 4096},
- %% see rabbitmq-server#227 and related tickets.
- %% msg_store_credit_disc_bound only takes effect when
- %% messages are persisted to the message store. If messages
- %% are embedded on the queue index, then modifying this
- %% setting has no effect because credit_flow is not used when
- %% writing to the queue index. See the setting
- %% queue_index_embed_msgs_below above.
- {msg_store_credit_disc_bound, {2000, 500}},
- {msg_store_io_batch_size, 2048},
- %% see rabbitmq-server#143
- %% and rabbitmq-server#949
- {credit_flow_default_credit, {200, 100}},
- %% see rabbitmq-server#248
- %% and rabbitmq-server#667
- {channel_operation_timeout, 15000},
-
- %% see rabbitmq-server#486
- {peer_discovery_backend, rabbit_peer_discovery_classic_config},
- %% used by rabbit_peer_discovery_classic_config
- {cluster_nodes, {[], disc}},
-
- {config_entry_decoder, [
- {cipher, aes_cbc256},
- {hash, sha512},
- {iterations, 1000},
- {passphrase, undefined}
- ]},
-
- %% rabbitmq-server-973
- {lazy_queue_explicit_gc_run_operation_threshold, 250},
- {background_gc_enabled, true},
- {background_gc_target_interval, 60000}
- ]}]}.
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 9e0a211c17..d895d57ff2 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -805,14 +805,25 @@ insert_default_data() ->
{ok, DefaultVHost} = application:get_env(default_vhost),
{ok, [DefaultConfigurePerm, DefaultWritePerm, DefaultReadPerm]} =
application:get_env(default_permissions),
- ok = rabbit_vhost:add(DefaultVHost),
- ok = rabbit_auth_backend_internal:add_user(DefaultUser, DefaultPass),
- ok = rabbit_auth_backend_internal:set_tags(DefaultUser, DefaultTags),
- ok = rabbit_auth_backend_internal:set_permissions(DefaultUser,
- DefaultVHost,
- DefaultConfigurePerm,
- DefaultWritePerm,
- DefaultReadPerm),
+
+ DefaultUserBin = rabbit_data_coercion:to_binary(DefaultUser),
+ DefaultPassBin = rabbit_data_coercion:to_binary(DefaultPass),
+ DefaultVHostBin = rabbit_data_coercion:to_binary(DefaultVHost),
+ DefaultConfigurePermBin = rabbit_data_coercion:to_binary(DefaultConfigurePerm),
+ DefaultWritePermBin = rabbit_data_coercion:to_binary(DefaultWritePerm),
+ DefaultReadPermBin = rabbit_data_coercion:to_binary(DefaultReadPerm),
+
+ ok = rabbit_vhost:add(DefaultVHostBin),
+ ok = rabbit_auth_backend_internal:add_user(
+ DefaultUserBin,
+ DefaultPassBin
+ ),
+ ok = rabbit_auth_backend_internal:set_tags(DefaultUserBin,DefaultTags),
+ ok = rabbit_auth_backend_internal:set_permissions(DefaultUserBin,
+ DefaultVHostBin,
+ DefaultConfigurePermBin,
+ DefaultWritePermBin,
+ DefaultReadPermBin),
ok.
%%---------------------------------------------------------------------------
@@ -864,7 +875,7 @@ erts_version_check() ->
end.
print_banner() ->
- {ok, Product} = application:get_key(id),
+ {ok, Product} = application:get_key(description),
{ok, Version} = application:get_key(vsn),
{LogFmt, LogLocations} = case log_locations() of
[_ | Tail] = LL ->