Commit 30cf64b
committed
refactor: Move instance-id generation to ClientContext
Generating X-LaunchDarkly-Instance-Id inside HttpConfigurationBuilderImpl.build()
tied the value to a specific subsystem builder. Any code path that goes through
HttpConfiguration would see a value, but other subsystems built from
ClientContext (which is the canonical per-LDClient state holder) had no way to
read the same id.
Add an instanceId field, getter, and a nine-argument constructor variant to
ClientContext. The eight-argument constructor auto-generates a v4 UUID for any
caller that does not need to pass an explicit value; the copy constructor
propagates the existing value, so derived ClientContext instances stay in sync.
ClientContextImpl.fromConfig now generates the UUID once and threads it through
each of the three ClientContext variants it constructs during LDClient init.
HttpConfigurationBuilderImpl reads from ClientContext.getInstanceId() instead
of generating its own. Existing tests in DefaultFeatureRequestorTest /
LDConfigTest / StreamProcessorTest that already accounted for per-build
randomness continue to work because each `clientContext(...)` they construct
gets its own auto-generated id.
Update HttpConfigurationBuilderTest to assert the new contract: the builder
mirrors whatever id the context provides; two distinct ClientContexts produce
distinct ids; one context produces a stable id across multiple builds.
Verified locally with `./gradlew test` against lib/sdk/server: all 17 of 17
test classes pass, including 15 of 15 HttpConfigurationBuilderTest cases.1 parent 12002c0 commit 30cf64b
4 files changed
Lines changed: 111 additions & 29 deletions
File tree
- lib/sdk/server/src
- main/java/com/launchdarkly/sdk/server
- subsystems
- test/java/com/launchdarkly/sdk/server/integrations
Lines changed: 16 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
40 | | - | |
| 41 | + | |
41 | 42 | | |
42 | 43 | | |
43 | 44 | | |
| |||
79 | 80 | | |
80 | 81 | | |
81 | 82 | | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
82 | 87 | | |
83 | | - | |
| 88 | + | |
| 89 | + | |
84 | 90 | | |
85 | | - | |
| 91 | + | |
86 | 92 | | |
87 | | - | |
| 93 | + | |
| 94 | + | |
88 | 95 | | |
89 | | - | |
| 96 | + | |
90 | 97 | | |
91 | 98 | | |
92 | 99 | | |
93 | 100 | | |
94 | 101 | | |
95 | | - | |
96 | | - | |
97 | | - | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
98 | 106 | | |
99 | 107 | | |
100 | 108 | | |
| |||
Lines changed: 7 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
51 | 50 | | |
52 | 51 | | |
53 | 52 | | |
| |||
350 | 349 | | |
351 | 350 | | |
352 | 351 | | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
359 | 359 | | |
360 | 360 | | |
361 | 361 | | |
| |||
Lines changed: 62 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
11 | 13 | | |
12 | 14 | | |
13 | 15 | | |
| |||
31 | 33 | | |
32 | 34 | | |
33 | 35 | | |
| 36 | + | |
34 | 37 | | |
35 | 38 | | |
36 | 39 | | |
37 | | - | |
38 | | - | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
39 | 48 | | |
40 | 49 | | |
41 | 50 | | |
| |||
46 | 55 | | |
47 | 56 | | |
48 | 57 | | |
| 58 | + | |
49 | 59 | | |
50 | 60 | | |
51 | 61 | | |
| |||
55 | 65 | | |
56 | 66 | | |
57 | 67 | | |
58 | | - | |
| 68 | + | |
| 69 | + | |
59 | 70 | | |
60 | 71 | | |
61 | 72 | | |
| |||
65 | 76 | | |
66 | 77 | | |
67 | 78 | | |
68 | | - | |
| 79 | + | |
| 80 | + | |
69 | 81 | | |
70 | 82 | | |
71 | 83 | | |
72 | | - | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
73 | 115 | | |
74 | 116 | | |
75 | | - | |
| 117 | + | |
76 | 118 | | |
77 | 119 | | |
78 | 120 | | |
79 | 121 | | |
80 | | - | |
| 122 | + | |
| 123 | + | |
81 | 124 | | |
82 | 125 | | |
83 | 126 | | |
| |||
199 | 242 | | |
200 | 243 | | |
201 | 244 | | |
202 | | - | |
| 245 | + | |
203 | 246 | | |
204 | 247 | | |
205 | 248 | | |
206 | 249 | | |
207 | 250 | | |
208 | 251 | | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
209 | 263 | | |
210 | 264 | | |
211 | 265 | | |
| |||
Lines changed: 26 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
110 | 112 | | |
111 | | - | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
112 | 129 | | |
113 | 130 | | |
114 | 131 | | |
115 | | - | |
116 | | - | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
117 | 136 | | |
118 | 137 | | |
119 | 138 | | |
120 | 139 | | |
121 | | - | |
| 140 | + | |
| 141 | + | |
122 | 142 | | |
123 | 143 | | |
124 | 144 | | |
125 | 145 | | |
126 | 146 | | |
127 | 147 | | |
128 | | - | |
| 148 | + | |
129 | 149 | | |
130 | 150 | | |
131 | 151 | | |
| |||
0 commit comments