Skip to content

Commit 8d9ce84

Browse files
Merge pull request #9952 from rabbitmq/revert-elixir-json-switch
Revert elixir json switch
2 parents 28ad764 + 32eba98 commit 8d9ce84

19 files changed

+56
-18
lines changed

BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ exports_files([
5353
# gazelle:exclude deps/gun
5454
# gazelle:exclude deps/inet_tcp_proxy
5555
# gazelle:exclude deps/jose
56+
# gazelle:exclude deps/json
5657
# gazelle:exclude deps/meck
5758
# gazelle:exclude deps/observer_cli
5859
# gazelle:exclude deps/osiris

MODULE.bazel

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,13 @@ erlang_package.git_package(
277277
repository = "michaelklishin/erlang-jose",
278278
)
279279

280+
erlang_package.hex_package(
281+
name = "json",
282+
build_file = "@rabbitmq-server//bazel:BUILD.json",
283+
sha256 = "9abf218dbe4ea4fcb875e087d5f904ef263d012ee5ed21d46e9dbca63f053d16",
284+
version = "1.4.1",
285+
)
286+
280287
erlang_package.git_package(
281288
name = "khepri",
282289
build_file = "@rabbitmq-server//bazel:BUILD.khepri",
@@ -401,6 +408,7 @@ use_repo(
401408
"gun",
402409
"horus",
403410
"jose",
411+
"json",
404412
"khepri",
405413
"khepri_mnesia_migration",
406414
"observer_cli",

Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ XREF_EXTRA_APP_DIRS = $(filter-out deps/rabbitmq_cli/_build/dev/lib/rabbit_commo
4141
# protocols directly.
4242
XREF_IGNORE = [ \
4343
{'Elixir.CSV.Encode',impl_for,1}, \
44+
{'Elixir.JSON.Decoder',impl_for,1}, \
45+
{'Elixir.JSON.Encoder',impl_for,1}, \
4446
{'Elixir.RabbitMQ.CLI.Core.DataCoercion',impl_for,1}]
4547

4648
# Include Elixir libraries in the Xref checks.

deps/rabbitmq_cli/BUILD.bazel

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ mix_archive_build(
1717
archives = ["@hex//:archive"],
1818
)
1919

20+
mix_archive_build(
21+
name = "json_ez",
22+
srcs = ["@json//:sources"],
23+
out = "json.ez",
24+
archives = ["@hex//:archive"],
25+
)
26+
2027
# Note: All the various rabbitmq-* scripts are just copies of rabbitmqctl
2128
rabbitmqctl(
2229
name = "rabbitmqctl",
@@ -32,6 +39,7 @@ rabbitmqctl(
3239
license_files = glob(["LICENSE*"]),
3340
source_deps = {
3441
"@csv//:sources": "csv",
42+
"@json//:sources": "json",
3543
},
3644
visibility = ["//visibility:public"],
3745
deps = [
@@ -101,6 +109,7 @@ plt(
101109
],
102110
ez_deps = [
103111
":csv_ez",
112+
":json_ez",
104113
],
105114
ignore_warnings = True,
106115
libs = [":elixir"],
@@ -142,6 +151,7 @@ rabbitmqctl_test(
142151
source_deps = {
143152
"@amqp//:sources": "amqp",
144153
"@csv//:sources": "csv",
154+
"@json//:sources": "json",
145155
"@temp//:sources": "temp",
146156
"@x509//:sources": "x509",
147157
},

deps/rabbitmq_cli/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
PROJECT = rabbitmq_cli
22

33
BUILD_DEPS = rabbit_common
4-
DEPS = csv observer_cli stdout_formatter
4+
DEPS = csv json observer_cli stdout_formatter
55
TEST_DEPS = amqp amqp_client temp x509 rabbit
66

77
dep_amqp = hex 3.3.0
88
dep_csv = hex 3.2.0
9+
dep_json = hex 1.4.1
910
dep_temp = hex 0.4.7
1011
dep_x509 = hex 0.8.8
1112

deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/export_definitions_command.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ defmodule RabbitMQ.CLI.Ctl.Commands.ExportDefinitionsCommand do
159159
end)
160160
end)
161161

162-
{:ok, json} = :rabbit_json.try_encode(map)
162+
{:ok, json} = JSON.encode(map)
163163
json
164164
end
165165

deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/import_definitions_command.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ defmodule RabbitMQ.CLI.Ctl.Commands.ImportDefinitionsCommand do
166166
#
167167

168168
defp deserialise(bin, "json") do
169-
:rabbit_json.try_decode(bin)
169+
JSON.decode(bin)
170170
end
171171

172172
defp deserialise(bin, "erlang") do

deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_user_limits_command.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ defmodule RabbitMQ.CLI.Ctl.Commands.ListUserLimitsCommand do
3636

3737
val ->
3838
Enum.map(val, fn {user, val} ->
39-
{:ok, val_encoded} = :rabbit_json.try_encode(Map.new(val))
39+
{:ok, val_encoded} = JSON.encode(Map.new(val))
4040
[user: user, limits: val_encoded]
4141
end)
4242
end
@@ -56,7 +56,7 @@ defmodule RabbitMQ.CLI.Ctl.Commands.ListUserLimitsCommand do
5656
{:badrpc, node}
5757

5858
val when is_list(val) or is_map(val) ->
59-
{:ok, val_encoded} = :rabbit_json.try_encode(Map.new(val))
59+
{:ok, val_encoded} = JSON.encode(Map.new(val))
6060
val_encoded
6161
end
6262
end

deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_vhost_limits_command.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ defmodule RabbitMQ.CLI.Ctl.Commands.ListVhostLimitsCommand do
3636

3737
val ->
3838
Enum.map(val, fn {vhost, val} ->
39-
{:ok, val_encoded} = :rabbit_json.try_encode(Map.new(val))
39+
{:ok, val_encoded} = JSON.encode(Map.new(val))
4040
[vhost: vhost, limits: val_encoded]
4141
end)
4242
end
@@ -54,7 +54,7 @@ defmodule RabbitMQ.CLI.Ctl.Commands.ListVhostLimitsCommand do
5454
{:badrpc, node}
5555

5656
val when is_list(val) or is_map(val) ->
57-
:rabbit_json.try_encode(Map.new(val))
57+
JSON.encode(Map.new(val))
5858
end
5959
end
6060

deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/json.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ defmodule RabbitMQ.CLI.Formatters.Json do
1818
end
1919

2020
def format_output(output, _opts) do
21-
{:ok, json} = :rabbit_json.try_encode(keys_to_atoms(output))
21+
{:ok, json} = JSON.encode(keys_to_atoms(output))
2222
json
2323
end
2424

deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/json_stream.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ defmodule RabbitMQ.CLI.Formatters.JsonStream do
3131
end
3232

3333
def format_output(output, _opts) do
34-
{:ok, json} = :rabbit_json.try_encode(output)
34+
{:ok, json} = JSON.encode(keys_to_atoms(output))
3535
json
3636
end
3737

deps/rabbitmq_cli/lib/rabbitmqctl.ex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ defmodule RabbitMQCtl do
558558
end
559559

560560
defp format_error({:error, :check_failed, err}, %{formatter: "json"}, _) when is_map(err) do
561-
{:ok, res} = :rabbit_json.try_encode(err)
561+
{:ok, res} = JSON.encode(err)
562562
{:error, ExitCodes.exit_unavailable(), res}
563563
end
564564

@@ -578,12 +578,12 @@ defmodule RabbitMQCtl do
578578

579579
# Catch all clauses
580580
defp format_error({:error, err}, %{formatter: "json"}, _) when is_map(err) do
581-
{:ok, res} = :rabbit_json.try_encode(err)
581+
{:ok, res} = JSON.encode(err)
582582
{:error, ExitCodes.exit_unavailable(), res}
583583
end
584584

585585
defp format_error({:error, exit_code, err}, %{formatter: "json"}, _) when is_map(err) do
586-
{:ok, res} = :rabbit_json.try_encode(err)
586+
{:ok, res} = JSON.encode(err)
587587
{:error, exit_code, res}
588588
end
589589

deps/rabbitmq_cli/mix.exs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ defmodule RabbitMQCtl.MixfileBase do
2222
exclude: [
2323
CSV,
2424
CSV.Encode,
25+
JSON,
2526
:mnesia,
2627
:msacc,
2728
:observer_cli,
@@ -140,6 +141,10 @@ defmodule RabbitMQCtl.MixfileBase do
140141
is_bazel = System.get_env("IS_BAZEL") != nil
141142

142143
[
144+
{
145+
:json,
146+
path: Path.join(deps_dir, "json")
147+
},
143148
{
144149
:csv,
145150
path: Path.join(deps_dir, "csv")

deps/rabbitmq_cli/test/ctl/export_definitions_command_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ defmodule ExportDefinitionsCommandTest do
111111
{:ok, nil} = @command.run([valid_file_path()], context[:opts])
112112

113113
{:ok, bin} = File.read(valid_file_path())
114-
{:ok, map} = :rabbit_json.try_decode(bin)
114+
{:ok, map} = JSON.decode(bin)
115115
assert Map.has_key?(map, "rabbitmq_version")
116116
end
117117

@@ -128,7 +128,7 @@ defmodule ExportDefinitionsCommandTest do
128128
clear_parameter("/", "federation-upstream", "up-1")
129129

130130
{:ok, bin} = File.read(valid_file_path())
131-
{:ok, map} = :rabbit_json.try_decode(bin)
131+
{:ok, map} = JSON.decode(bin)
132132
assert Map.has_key?(map, "rabbitmq_version")
133133
params = map["parameters"]
134134
assert is_map(hd(params)["value"])

deps/rabbitmq_cli/test/ctl/set_user_limits_command_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,6 @@ defmodule SetUserLimitsCommandTest do
131131

132132
defp assert_limits(context, definition) do
133133
limits = get_user_limits(context[:user])
134-
assert {:ok, limits} == :rabbit_json.try_decode(definition)
134+
assert {:ok, limits} == JSON.decode(definition)
135135
end
136136
end

deps/rabbitmq_cli/test/ctl/set_vhost_limits_command_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,6 @@ defmodule SetVhostLimitsCommandTest do
138138

139139
defp assert_limits(context) do
140140
limits = get_vhost_limits(context[:vhost])
141-
assert {:ok, limits} == :rabbit_json.try_decode(context[:definition])
141+
assert {:ok, limits} == JSON.decode(context[:definition])
142142
end
143143
end

deps/rabbitmq_cli/test/json_formatting.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ defmodule JSONFormattingTest do
2929
error_check(command, exit_ok())
3030
end)
3131

32-
{:ok, doc} = :rabbit_json.try_decode(output)
32+
{:ok, doc} = JSON.decode(output)
3333

3434
assert Map.has_key?(doc, "memory")
3535
assert Map.has_key?(doc, "file_descriptors")
@@ -53,7 +53,7 @@ defmodule JSONFormattingTest do
5353
error_check(command, exit_ok())
5454
end)
5555

56-
{:ok, doc} = :rabbit_json.try_decode(output)
56+
{:ok, doc} = JSON.decode(output)
5757

5858
assert Enum.member?(doc["disk_nodes"], node)
5959
assert Map.has_key?(doc["listeners"], node)

deps/rabbitmq_cli/test/test_helper.exs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ true = Code.append_path(Path.join([System.get_env("DEPS_DIR"), "rabbit_common",
1919
true = Code.append_path(Path.join([System.get_env("DEPS_DIR"), "rabbit", "ebin"]))
2020

2121
true = Code.append_path(Path.join(["_build", Atom.to_string(Mix.env()), "lib", "amqp", "ebin"]))
22+
true = Code.append_path(Path.join(["_build", Atom.to_string(Mix.env()), "lib", "json", "ebin"]))
2223
true = Code.append_path(Path.join(["_build", Atom.to_string(Mix.env()), "lib", "x509", "ebin"]))
2324

2425
if function_exported?(Mix, :ensure_application!, 1) do

dist.bzl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,15 @@ def source_archive(
335335
prefix = "deps",
336336
)
337337

338+
pkg_files(
339+
name = "json-files",
340+
srcs = [
341+
"@json//:sources",
342+
],
343+
strip_prefix = "",
344+
prefix = "deps/json",
345+
)
346+
338347
pkg_files(
339348
name = "csv-files",
340349
srcs = [
@@ -349,6 +358,7 @@ def source_archive(
349358
extension = extension,
350359
srcs = [
351360
":deps-files",
361+
":json-files",
352362
":csv-files",
353363
Label("@rabbitmq-server//:root-licenses"),
354364
],

0 commit comments

Comments
 (0)