forked from splitio/java-client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES.txt
347 lines (259 loc) · 14.3 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
4.13.0 (Sep 13, 2024)
- Added support for Kerberos Proxy authentication.
4.12.1 (Jun 10, 2024)
- Fixed deadlock for virtual thread in Push Manager and SSE Client.
4.12.0 (May 15, 2024)
- Added support for targeting rules based on semantic versions (https://semver.org/).
- Added the logic to handle correctly when the SDK receives an unsupported Matcher type.
- Enhanced SDK Headers for Authorization Frameworks
- Cleaned unused imports and renaming some methods
- Fixed empty token handler thanks to @hpark-miovision
4.11.1 (Feb 29, 2024)
- Fixed deadlock in UniqueKeysTracker when sending Unique Keys.
4.11.0 (Jan 9, 2024)
- Added impressionsListener method in the IntegrationConfig builder to set Sync or Async Listener execution.
- Fixed localhost to read files with yml ending.
4.10.2 (Dec 1, 2023)
- Added getTreatmentsByFlagSets without attributes.
- Fixed some issues for flag sets: Not logging a warning when using flag sets that don't contain cached feature flags.
4.10.1 (Nov 8, 2023)
- Fixed handler for response http headers.
4.10.0 (Nov 2, 2023)
- Added support for Flag Sets on the SDK, which enables grouping feature flags and interacting with the group rather than individually (more details in our documentation):
- Added new variations of the get treatment methods to support evaluating flags in given flag set/s.
- getTreatmentsByFlagSet and getTreatmentsByFlagSets
- getTreatmentWithConfigByFlagSets and getTreatmentsWithConfigByFlagSets
- Added a new optional Flag Sets Filter configuration option. This allows the SDK and Split services to only synchronize the flags in the specified flag sets, avoiding unused or unwanted flags from being synced on the SDK instance, bringing all the benefits from a reduced payload.
- Note: Only applicable when the SDK is in charge of the rollout data synchronization. When not applicable, the SDK will log a warning on init.
- Updated the following SDK manager methods to expose flag sets on flag views.
- Added `defaultTreatment` property to the `SplitView` object returned by the `split` and `splits` methods of the SDK manager.
- Added new `threadFactory` property in SDK config. It allows to use of Virtual Threading.
4.9.0 (Sep 8, 2023)
- Added InputStream config for localhost mode providing a solution when the file is inside a jar.
- Fixed track impressions to send all impressions to the listener.
- Fixed SyncManager shutdown to stop SSE only when is streaming mode on.
4.8.1 (Aug 1, 2023)
- Applied linting rules to the code.
- Fixed an issue when the prefix is empty for Redis settings.
4.8.0 (Jul 18, 2023)
- Improved streaming architecture implementation to apply feature flag updates from the notification received which is now enhanced, improving efficiency and reliability of the whole update system.
- Updated `com.google.guava` dependence to 32.0.1 for fixing a vulnerability.
- Updated SegmentFetcher for better readability.
4.7.2 (May 16, 2023)
- Updated default treatment to be control for yaml and json localhost.
- Updated terminology on the SDKs codebase to be more aligned with current standard without causing a breaking change. The core change is the term split for feature flag on things like logs and javadoc comments.
4.7.1 (Apr 10, 2023)
- Added SHA for feature flag and segment fetcher in localhost json.
- Updated `org.yaml.snakeyaml` dependence to 2.0 for fixing a vulnerability.
- Fixed Redis integration, changing []dtos.Key to dtos.Key
- Fixed destroy for consumer mode.
4.7.0 (Jan 30, 2023)
- Added support to use JSON files in localhost mode.
- Improved logs to have more information.
- Made streaming connection retryable in the case goes down.
- Fixed the logs messages in SplitClientImpl.
4.6.0 (Nov 28, 2022)
- Added support redis cluster by providing JedisCluster object.
- Updated Jedis to 4.3.0 to support tls.
4.5.0 (Oct 12, 2022)
- Added a new impressions mode for the SDK called NONE, to be used in factory when there is no desire to capture impressions on an SDK factory to feed Split's analytics engine. Running NONE mode, the SDK will only capture unique keys evaluated for a particular feature flag instead of full blown impressions.
4.4.8 (Sep 16, 2022)
- Updated `org.yaml.snakeyaml` dependence to 1.32 for fixing a vulnerability.
- Improved SplitClientIntegrationTest removing ignore annotation in some test cases.
4.4.7 (Sep 14, 2022)
- Fixed fromImpression in KeyImpression to map previous time.
- Updated `org.yaml.snakeyaml` dependence to 1.31 for fixing a vulnerability.
- Fixed buildKeyWithPrefix and added CommonRedis to share it.
4.4.6 (Sep 6, 2022)
- Made junit as provided dependency.
- Fixed destroy logic to stop all the threads in execution.
- Refactored SyncManager to be able to start/stop tasks and removed that logic from destroy method.
- Updated EventTask, decoupled Storage logic, and added a new scheduler task in charge of flushing events.
4.4.5 (Jul 29, 2022)
- Fixed in Synchronizer not properly synchronizing newly referenced segments.
- Update pom files to have profiles for releases.
4.4.4 (May 24, 2022)
- Updated `com.google.code.gson` to 2.9.0 for fixing vulnerability.
4.4.3 (May 9, 2022)
- Updated shaded dependencies: `org.apache`, `org.checkerframework` and `org.yaml.snakeyaml`
- Updated `org.slf4j` to 1.7.36 for fixing vulnerability.
4.4.2 (Feb 22, 2022)
- Cleaned up log messages in segments logic.
4.4.1 (Feb 08, 2022)
- Added improvements in segment fetcher to work as threading pool.
- Fixed backoff handler for streaming auth calls due to an issue that stopped retrying after multiple subsequent errors.
- Updated snakeyaml dependencies and reorganized shaded dependencies.
4.4.0 (Jan 11, 2022)
- Added support for Redis to keep consistency across multiple SDK instances.
- Added logic to fetch multiple feature flags at once on GetTreatments/GetTreatmentsWithChanges.
4.3.0 (Oct 19, 2021)
- Added support for the SDK to run with a custom implementation of it's internal storage modules, enabling customers to implement this caching in any storage technology of choice and connect it to the SDK instance itself which will use it instead of the in-memory structures.
- Fixed a possible OOM when there were too many Streaming events being captured, applying the expected limit of 20.
- Fixed an NPE caused in a race condition on telemetry which generated noisy logs. (https://github.com/splitio/java-client/issues/251)[#251]
4.2.1 (Jun 18, 2021)
- Updated settings for httpClient instances to add stale check to more effectively manage connection pools after it was turned off by default on httpClient 5.x.x.
- Updated TelemetryRefreshRate setting default value to 3600s.
4.2.0 (Jun 7, 2021)
- Updated SDK telemetry storage, metrics and updater to be more effective and send less often.
- Improved the synchronization flow to be more reliable in the event of an edge case generating delay in cache purge propagation, keeping the SDK cache properly synced.
- Fixed issue where the SDK was validating no Feature flag had over 50 conditions (legacy code).
- Bumped guava version to 30.
4.1.6 (Apr 15, 2021)
- Updated log level and message in some messages.
4.1.5 (Apr 6, 2021)
- Updated streaming logic to use limited fetch retry attempts.
4.1.4 (Mar 19, 2021)
- Updated Internal cache structure refactor.
- Updated Streaming revamp with several bugfixes and improved log messages.
- Added Cache-Control header for on-demand requests to sdk-server.
- Updated Localhost Client revamp & bugfix for missing feature flags.
4.1.3 (Dec 2, 2020)
- Fix Issue when closing SSE Connection
- Updated log-level for some messages
4.1.2 (Nov 25, 2020)
- Updated junit from 4.12 to 4.13.1
- Updated HttpClient from 4.5.2 to 5.0.3
4.1.1 (Sep 30, 2020)
- Fixed fetch retries after received an SPLIT_CHANGE.
4.1.0 (Sep 25, 2020)
- Added `OPTIMIZED` and `DEBUG` modes in order to enabling/disabling how impressions are going to be sent into Split servers,
- `OPTIMIZED`: will send unique impressions in a timeframe in order to reduce how many times impressions are posted to Split.
- `DEBUG`: will send every impression generated to Split.
4.0.1 (Sep 4, 2020)
- Remove jersey. Use custom SSE implementation
- Bumped guava version to 29
4.0.0 (Aug 19, 2020)
- Deprecated Java 7 support. Java 8 is the minimum supported version for this and future releases.
- Added support for the new Split streaming architecture. When enabled (default), the SDK will not poll for updates but instead receive notifications every time there's a change in your environments, allowing to process those much quicker. If disabled or in the event of an issue, the SDK will fallback to the known polling mechanism to provide a seamless experience.
- Updated the default of featuresRefreshRate to 60 seconds.
3.3.4 (Jul 15, 2020)
- Added Impression observer.
3.3.3 (Apr 7, 2020)
- Fix issue regarding special characters come from feature flags/segments fetchers.
3.3.2 (Jan 24, 2020)
- Shade com.google.guava as well
3.3.1 (Nov 1, 2019)
- Allow client to disable sending the IP address & hostname.
3.3.0 (Sep 23, 2019)
- rename version.properties to splitversion.properties to avoid conflicts with other tools that use the former file name and causes this SDK to not properly report the version
- Adds New Relic Integration. Now if the New Relic agent is running, it will attach Impression data to the current transaction in New Relic,
3.2.4 (Sep 9, 2019)
- Fix small issue regarding traffic type validation on .track() calls.
3.2.3 (Aug 1, 2019)
- allow to push impressions more often than one every 30 seconds and events flush rate is now customizable
3.2.2
- log warn and not error when Feature flag doesn't exist in the environment
3.2.1 (May 29, 2019)
- Fix issue with events not forwarding the value when sending properties as well.
3.2.0 (May 24, 2019)
- Add ability to send events with properties
3.1.1 (May 2, 2019)
- Fix issue with locating localhost mode in windows
- Fix issue when user falls out of traffic allocation and has config data
3.1.0 (Apr 16, 2019)
- Add Dynamic Configurations
- Support Yaml files for localhost mode
3.0.9 (Mar 21, 2019)
- Validate feature flag names on getTreatment and manager calls
- Validate traffic type name when calling track
- Check for multiple factories instantiated
3.0.8 (Mar 7, 2019)
- Ability to disable automatic destroy() on graceful shutdowns.
3.0.7
- Removing unused thrown exceptions from build signature
- Setting feature refresh rate to 5 seconds by default
3.0.6
- Setting CookieSpec to Standard
3.0.5 (Jan 5, 2019)
- Adding input validation for fast feedback of incorrect use of the client.
3.0.4 (Dec 14, 2018)
- Fix potential race condition when segment wait for readiness before they are registered to the readiness gates
3.0.3 (Dec 12, 2018)
- Expose param to increase thread pool size for segments
3.0.2 (Dec 12, 2018)
- Fixed traffic allocation issue on 1%
3.0.1
- Fix Metric Counters when using Split Proxy.
3.0.0
- Moving block until ready out of the factory into the split client and manager client
2.3.2 (Jul 18, 2018)
- Add support for handling different relative path in the endpoints of the Split Synchronizer
2.3.1 (Apr 18, 2018)
- Added support for key overrides in localhost mode
2.3.0 (Jan 15, 2018)
- Add support for .track()
2.2.2 (Dec 22, 2017)
- Patch for localhost mode to daemonize the thread which currently prevents the JVM from exiting.
2.2.1 (Dec 22, 2017)
- Transitioning from "no rule matched" to "default rule" and from "rules not found" to "definition not found"
2.2.0 (Sep 22, 2017)
- Patch DependencyMatcherData to not error out when dependencies are used
- Default logging is less verbose now
- Add support for Proxy
2.1.0 (July 19th, 2017)
- Add support for new boolean and regular expression matchers
- Support for Dependency matcher: 'in feature flag "xxx" treatments ["xxx","yyy"]'
2.0.4 (June 2nd, 2017)
- Support to destroy all clients and background processes before shutdown via splitFactory.destroy() or splitClient.destroy()
- Define SLF4j in the root pom instead of twice.
2.0.2 (May 16th, 2017)
- Support for Set based matchers: 'has any of', 'has all of', 'is equal to', and 'is part of'
- Support for string matchers: 'starts with', 'ends with', and 'contains'
- Added ability to attach metadata to impressions for getTreatment calls
2.0.1 (May 3rd, 2017)
- Fix issue for Java 7 and compatibility with TLS1.2
2.0 (Apr 26, 2017)
- Transitioning to Murmur3 for key hashing
- Hashing Algorithm dependent on Split algo field
1.1.7 (Mar 31, 2017)
- We can now specify a percentage of traffic that can be in the Split - i.e. traffic allocation.
- You can now register your own ImpressionListener. SplitClientConfig#impressionListener.
- You can no longer set any refresh rates to be less than 30 seconds.
1.1.6 (Feb 27, 2017)
- Allowing users to set the Off-The-Grid directory
- Adding Live Reload of Split File in Off-The-Grid mode
1.1.5 (Feb 8, 2017)
- Introducing SplitClientForTest and SplitTestRunner for JUnit. More information at split.io/blog/feature-flag-testing
1.1.4 (Feb 8, 2017)
- Use less guava.
1.1.3 (Jan 9, 2017)
- Impression to include the changeNumber of the Split that served a getTreatment call.
- expose disableLabels
1.1.2 (Dec 19, 2016)
- Adding SplitManager.splitNames() support to retrieve feature names.
- Improving Java 1.7 compatibility for Hashcodes
1.1.1
- Consistently labeling Rules in messages
1.1
- Move java-client into it's own repo.
1.0.10
- The SDK now sends rule labels back to the server
1.0.9
- Introduced new API: getTreatment(Key key, String feature, Map attributes);
- Deprecated SplitClientBuilder. Clients are expected to use SplitFactoryBuilder instead.
1.0.8
- Fixed NPE in SplitManager
1.0.7
- Implement Factory pattern and expose Split manager
- Stop parsing a Feature flag when there are more than 50 conditions to prevent DDOS.
1.0.6
- Replaced Jersey with HttpComponents
- Dropped SplitClientConfig#eventsEndpoint
- Modified SplitClientConfig#endpoint to take in both sdk and events api.
- Move away from Guava cache for impressions and use an BlockingArrayList instead.
1.0.5
- shade jackson-databind to split.shade.xxxxx
- remove hamcrest and mockito from fat jar
- include only io.split, io.codigo and (shaded) guava in the fat jar
- Clean up JAVA 1.8 dependencies making sure they all are major version 51.
1.0.4
- blockUntilReady support
- impressions and metrics to events.split.io
1.0.3
- add https support
1.0.2
- corrects pom file issues
1.0.1
- add support for attributes
1.0.0
- First release