launchdarkly-server-sdk 8.16.0-java → 8.17.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2ae14db1c781b4710d0d0f9487ee7eb0453c81cec33d48deff97ed189fdb864a
|
|
4
|
+
data.tar.gz: d8b6ed68295b5ca5bec082bfe6a638e9b2b840e5d72764ca3e53fd5f347a589e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 163471afe99cdb36fcba1a63cea9d7ba31cfddaa052684f16e8b0d5f847450fc4e127e88ca6d91244d68c42946d05205cf23b100dc8942ad2406004f2dfcb8c1
|
|
7
|
+
data.tar.gz: 39d3fb3d49c3506130b0cc26c8299867fa30e1c1bb946c8f961cec131b4b2f02f21d3c372bbfa6558ab26ade14ba12a9643a308434400b354b03e2d566eb2da2
|
data/lib/ldclient-rb/config.rb
CHANGED
|
@@ -362,6 +362,9 @@ module LaunchDarkly
|
|
|
362
362
|
# This payload filter key only applies to the default streaming and polling data sources. It will not affect TestData or FileData
|
|
363
363
|
# data sources, nor will it be applied to any data source provided through the {#data_source} config property.
|
|
364
364
|
#
|
|
365
|
+
# Payload filtering is not supported with the FDv2 data system, so this key has no effect on requests made by FDv2
|
|
366
|
+
# data sources.
|
|
367
|
+
#
|
|
365
368
|
attr_reader :payload_filter_key
|
|
366
369
|
|
|
367
370
|
#
|
|
@@ -54,6 +54,11 @@ module LaunchDarkly
|
|
|
54
54
|
@config = config
|
|
55
55
|
@data_system_config = data_system_config
|
|
56
56
|
@logger = config.logger
|
|
57
|
+
|
|
58
|
+
unless config.payload_filter_key.nil?
|
|
59
|
+
@logger.warn { "[LDClient] Payload filtering is not supported with the FDv2 data system; the configured payload filter has no effect on FDv2 requests" }
|
|
60
|
+
end
|
|
61
|
+
|
|
57
62
|
@synchronizer_builders = data_system_config.synchronizers || []
|
|
58
63
|
@fdv1_fallback_synchronizer_builder = data_system_config.fdv1_fallback_synchronizer
|
|
59
64
|
@disabled = @config.offline?
|
|
@@ -4,22 +4,39 @@ require "concurrent/atomics"
|
|
|
4
4
|
|
|
5
5
|
module LaunchDarkly
|
|
6
6
|
module Impl
|
|
7
|
+
#
|
|
8
|
+
# Runs a task again and again on a worker thread, with a fixed interval
|
|
9
|
+
# between runs.
|
|
10
|
+
#
|
|
11
|
+
# The worker waits on an event instead of calling `sleep`, so `stop` can
|
|
12
|
+
# wake it at once even if `stop` runs before the worker starts waiting.
|
|
13
|
+
#
|
|
14
|
+
# @private
|
|
15
|
+
#
|
|
7
16
|
class RepeatingTask
|
|
8
17
|
attr_reader :name
|
|
9
18
|
|
|
19
|
+
#
|
|
20
|
+
# @param interval [Numeric] seconds between the start of one run and the start of the next
|
|
21
|
+
# @param start_delay [Numeric, nil] seconds to wait before the first run
|
|
22
|
+
# @param task [Proc] the code to run
|
|
23
|
+
# @param logger [Logger]
|
|
24
|
+
# @param name [String] the name given to the worker thread
|
|
25
|
+
#
|
|
10
26
|
def initialize(interval, start_delay, task, logger, name)
|
|
11
27
|
@interval = interval
|
|
12
28
|
@start_delay = start_delay
|
|
13
29
|
@task = task
|
|
14
30
|
@logger = logger
|
|
15
31
|
@stopped = Concurrent::AtomicBoolean.new(false)
|
|
32
|
+
@stop_event = Concurrent::Event.new
|
|
16
33
|
@worker = nil
|
|
17
34
|
@name = name
|
|
18
35
|
end
|
|
19
36
|
|
|
20
37
|
def start
|
|
21
38
|
@worker = Thread.new do
|
|
22
|
-
|
|
39
|
+
@stop_event.wait(@start_delay) unless @start_delay.nil? || @start_delay == 0
|
|
23
40
|
|
|
24
41
|
until @stopped.value do
|
|
25
42
|
started_at = Time.now
|
|
@@ -29,19 +46,23 @@ module LaunchDarkly
|
|
|
29
46
|
Impl::Util.log_exception(@logger, "Uncaught exception from repeating task", e)
|
|
30
47
|
end
|
|
31
48
|
delta = @interval - (Time.now - started_at)
|
|
32
|
-
if delta > 0
|
|
33
|
-
sleep(delta)
|
|
34
|
-
end
|
|
49
|
+
@stop_event.wait(delta) if delta > 0
|
|
35
50
|
end
|
|
36
51
|
end
|
|
37
52
|
|
|
38
53
|
@worker.name = @name
|
|
39
54
|
end
|
|
40
55
|
|
|
56
|
+
#
|
|
57
|
+
# Stops the worker thread and waits for it to finish.
|
|
58
|
+
#
|
|
59
|
+
# This method is safe to call more than once, before `start`, and from
|
|
60
|
+
# inside the task itself.
|
|
61
|
+
#
|
|
41
62
|
def stop
|
|
42
63
|
if @stopped.make_true
|
|
64
|
+
@stop_event.set
|
|
43
65
|
if @worker && @worker.alive? && @worker != Thread.current
|
|
44
|
-
@worker.run # causes the thread to wake up if it's currently in a sleep
|
|
45
66
|
@worker.join
|
|
46
67
|
end
|
|
47
68
|
end
|
|
@@ -487,7 +487,7 @@ module LaunchDarkly
|
|
|
487
487
|
#
|
|
488
488
|
class FlagRuleBuilder
|
|
489
489
|
# @api private
|
|
490
|
-
FlagRuleClause = Struct.new(:contextKind, :attribute, :op, :values, :negate, keyword_init: true) # rubocop:disable Naming/MethodName
|
|
490
|
+
FlagRuleClause = Struct.new(:contextKind, :attribute, :op, :values, :negate, keyword_init: true) # rubocop:disable Naming/MethodName
|
|
491
491
|
|
|
492
492
|
# @api private
|
|
493
493
|
def initialize(flag_builder)
|
data/lib/ldclient-rb/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: launchdarkly-server-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 8.
|
|
4
|
+
version: 8.17.0
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- LaunchDarkly
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-09-
|
|
10
|
+
date: 2026-09-14 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: aws-sdk-dynamodb
|