Skip to content

Commit 20cbec9

Browse files
authored
DEBUG-3568 DRY transport adapter registration (#4438)
1 parent 374e22a commit 20cbec9

File tree

5 files changed

+53
-58
lines changed

5 files changed

+53
-58
lines changed

lib/datadog/core/remote/transport/http.rb

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
# frozen_string_literal: true
22

3-
require 'uri'
4-
53
require_relative '../../environment/container'
64
require_relative '../../environment/ext'
75
require_relative '../../transport/ext'
8-
require_relative '../../transport/http/builder'
9-
require_relative '../../transport/http/adapters/net'
10-
require_relative '../../transport/http/adapters/unix_socket'
11-
require_relative '../../transport/http/adapters/test'
6+
require_relative '../../transport/http'
127

138
# TODO: Improve negotiation to allow per endpoint selection
149
#
@@ -36,7 +31,7 @@ module HTTP
3631

3732
# Builds a new Transport::HTTP::Client
3833
def new(klass, &block)
39-
Core::Transport::HTTP::Builder.new(
34+
Core::Transport::HTTP.build(
4035
api_instance_class: API::Instance, &block
4136
).to_transport(klass)
4237
end
@@ -116,20 +111,6 @@ def default_headers
116111
def default_adapter
117112
Datadog::Core::Configuration::Ext::Agent::HTTP::ADAPTER
118113
end
119-
120-
# Add adapters to registry
121-
Core::Transport::HTTP::Builder::REGISTRY.set(
122-
Datadog::Core::Transport::HTTP::Adapters::Net,
123-
Datadog::Core::Configuration::Ext::Agent::HTTP::ADAPTER
124-
)
125-
Core::Transport::HTTP::Builder::REGISTRY.set(
126-
Datadog::Core::Transport::HTTP::Adapters::Test,
127-
Datadog::Core::Transport::Ext::Test::ADAPTER
128-
)
129-
Core::Transport::HTTP::Builder::REGISTRY.set(
130-
Datadog::Core::Transport::HTTP::Adapters::UnixSocket,
131-
Datadog::Core::Configuration::Ext::Agent::UnixSocket::ADAPTER
132-
)
133114
end
134115
end
135116
end

lib/datadog/core/transport/http.rb

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# frozen_string_literal: true
2+
3+
require_relative 'http/builder'
4+
require_relative 'http/adapters/net'
5+
require_relative 'http/adapters/unix_socket'
6+
require_relative 'http/adapters/test'
7+
8+
module Datadog
9+
module Core
10+
module Transport
11+
# HTTP transport
12+
module HTTP
13+
# Add adapters to registry
14+
Builder::REGISTRY.set(
15+
Transport::HTTP::Adapters::Net,
16+
Core::Configuration::Ext::Agent::HTTP::ADAPTER
17+
)
18+
Builder::REGISTRY.set(
19+
Transport::HTTP::Adapters::Test,
20+
Transport::Ext::Test::ADAPTER
21+
)
22+
Builder::REGISTRY.set(
23+
Transport::HTTP::Adapters::UnixSocket,
24+
Transport::Ext::UnixSocket::ADAPTER
25+
)
26+
27+
module_function
28+
29+
# Helper function that delegates to Builder.new
30+
# but is under HTTP namespace so that client code requires this file
31+
# to get the adapters configured, and not the builder directly.
32+
def build(api_instance_class:, &block)
33+
Builder.new(api_instance_class: api_instance_class, &block)
34+
end
35+
end
36+
end
37+
end
38+
end

lib/datadog/di/transport/http.rb

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,10 @@
55
require_relative '../../core/environment/container'
66
require_relative '../../core/environment/ext'
77
require_relative '../../core/transport/ext'
8-
require_relative '../../core/transport/http/adapters/net'
9-
require_relative '../../core/transport/http/adapters/test'
10-
require_relative '../../core/transport/http/adapters/unix_socket'
118
require_relative 'diagnostics'
129
require_relative 'input'
1310
require_relative 'http/api'
14-
require_relative '../../core/transport/http/builder'
11+
require_relative '../../core/transport/http'
1512
require_relative '../../../datadog/version'
1613

1714
module Datadog
@@ -23,7 +20,7 @@ module HTTP
2320

2421
# Builds a new Transport::HTTP::Client
2522
def new(klass, &block)
26-
Core::Transport::HTTP::Builder.new(
23+
Core::Transport::HTTP.build(
2724
api_instance_class: API::Instance, &block
2825
).to_transport(klass)
2926
end
@@ -102,17 +99,6 @@ def default_headers
10299
def default_adapter
103100
Datadog::Core::Configuration::Ext::Agent::HTTP::ADAPTER
104101
end
105-
106-
# Add adapters to registry
107-
Datadog::Core::Transport::HTTP::Builder::REGISTRY.set(
108-
Datadog::Core::Transport::HTTP::Adapters::Net,
109-
Datadog::Core::Configuration::Ext::Agent::HTTP::ADAPTER
110-
)
111-
Datadog::Core::Transport::HTTP::Builder::REGISTRY.set(Datadog::Core::Transport::HTTP::Adapters::Test, Datadog::Core::Transport::Ext::Test::ADAPTER)
112-
Datadog::Core::Transport::HTTP::Builder::REGISTRY.set(
113-
Datadog::Core::Transport::HTTP::Adapters::UnixSocket,
114-
Datadog::Core::Transport::Ext::UnixSocket::ADAPTER
115-
)
116102
end
117103
end
118104
end

lib/datadog/tracing/transport/http.rb

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
# frozen_string_literal: true
22

3-
require 'uri'
4-
53
require_relative '../../core/environment/container'
64
require_relative '../../core/environment/ext'
75
require_relative '../../core/transport/ext'
8-
require_relative '../../core/transport/http/adapters/net'
9-
require_relative '../../core/transport/http/adapters/test'
10-
require_relative '../../core/transport/http/adapters/unix_socket'
11-
require_relative '../../core/transport/http/builder'
6+
require_relative '../../core/transport/http'
127
require_relative 'http/api'
138
require_relative '../../../datadog/version'
149

@@ -21,7 +16,7 @@ module HTTP
2116

2217
# Builds a new Transport::HTTP::Client
2318
def new(klass, &block)
24-
Core::Transport::HTTP::Builder.new(
19+
Core::Transport::HTTP.build(
2520
api_instance_class: API::Instance, &block
2621
).to_transport(klass)
2722
end
@@ -76,20 +71,6 @@ def default_headers
7671
def default_adapter
7772
Datadog::Core::Configuration::Ext::Agent::HTTP::ADAPTER
7873
end
79-
80-
# Add adapters to registry
81-
Core::Transport::HTTP::Builder::REGISTRY.set(
82-
Datadog::Core::Transport::HTTP::Adapters::Net,
83-
Datadog::Core::Configuration::Ext::Agent::HTTP::ADAPTER
84-
)
85-
Core::Transport::HTTP::Builder::REGISTRY.set(
86-
Datadog::Core::Transport::HTTP::Adapters::Test,
87-
Datadog::Core::Transport::Ext::Test::ADAPTER
88-
)
89-
Core::Transport::HTTP::Builder::REGISTRY.set(
90-
Datadog::Core::Transport::HTTP::Adapters::UnixSocket,
91-
Datadog::Core::Transport::Ext::UnixSocket::ADAPTER
92-
)
9374
end
9475
end
9576
end
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module Datadog
2+
module Core
3+
module Transport
4+
module HTTP
5+
def self?.build: (api_instance_class: untyped) ?{ (untyped) -> untyped } -> HTTP::Builder
6+
end
7+
end
8+
end
9+
end

0 commit comments

Comments
 (0)