Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
11ada43
Gradle update
gthea Jul 14, 2025
168243c
Credentials provider & SSL context factory
gthea Jul 14, 2025
3ba8b46
Clean up
gthea Jul 14, 2025
ba8cbdb
Fix visibility
gthea Jul 14, 2025
4f21600
Renaming
gthea Jul 14, 2025
653d1ab
Full rename
gthea Jul 14, 2025
0d206c9
HttpResponse adapter
gthea Jul 15, 2025
844f153
Raw response parser
gthea Jul 15, 2025
b52e780
Tunnel establishment
gthea Jul 16, 2025
dad59ec
Additional test
gthea Jul 16, 2025
ead5823
Additional tests
gthea Jul 16, 2025
f8bf076
HttpOverTunnelExecutor
gthea Jul 16, 2025
b932905
Remove logs
gthea Jul 16, 2025
16bb170
ProxyCacertConnectionHandler integration
gthea Jul 16, 2025
9be445b
Cleanup request helper
gthea Jul 16, 2025
7a87c9d
Remaining classes
gthea Jul 16, 2025
a7f2a8c
Fix HttpProxy constructor
gthea Jul 17, 2025
e16ad94
Close sockets
gthea Jul 17, 2025
8b9e072
Additional tests
gthea Jul 17, 2025
f0d4f6a
OutputStream capabilities in connection adapter
gthea Jul 17, 2025
84e967a
Close all io streams on disconnect
gthea Jul 17, 2025
4674e27
Public proxy config
gthea Jul 18, 2025
42d6869
New proxy config integration
gthea Jul 18, 2025
9a938a8
Fix
gthea Jul 18, 2025
79317ce
Member visibility
gthea Jul 18, 2025
2814b86
External timeout
gthea Jul 18, 2025
0ae1017
Fix
gthea Jul 18, 2025
babe568
Remove parameter in call
gthea Jul 18, 2025
6b109e4
Remove nullability check
gthea Jul 18, 2025
c166499
Match streaming connection timeout
gthea Jul 18, 2025
9ad69f0
Consistent errors
gthea Jul 19, 2025
1ef7e16
Merge pull request #780 from splitio/FME-7171-ssl-factory
gthea Jul 21, 2025
a8bfde6
Merge pull request #781 from splitio/FME-7172-response-parse
gthea Jul 21, 2025
921b8e5
Merge pull request #782 from splitio/FME-7172-response-parse-2
gthea Jul 21, 2025
e65ff44
Merge pull request #783 from splitio/FME-7173-ssl-tunnel
gthea Jul 21, 2025
6f29a95
Merge pull request #784 from splitio/FME-7173-ssl-tunnel-2
gthea Jul 21, 2025
e557f16
Merge pull request #785 from splitio/FME-7173-ssl-tunnel-3
gthea Jul 21, 2025
eef5409
Merge pull request #786 from splitio/FME-7176-proxy-config
gthea Jul 21, 2025
711c605
Remove unnecessary catch
gthea Jul 21, 2025
b694d7d
Streaming socket fix
gthea Jul 22, 2025
2fff9cd
WIP
gthea Jul 22, 2025
3648707
WIP
gthea Jul 22, 2025
02fdc58
Continued clean up and hostname verification
gthea Jul 23, 2025
9a80d20
Fix timeout
gthea Jul 23, 2025
499c671
androidTest compilation fixes
gthea Jul 23, 2025
ccc04c4
Add correct log message
gthea Jul 23, 2025
2a819f4
Testable config
gthea Jul 23, 2025
308af08
Add unimplemented methods
gthea Jul 23, 2025
9f555f4
Merge pull request #787 from splitio/FME-7176-proxy-config-2
gthea Jul 23, 2025
58b4273
Improve logging
gthea Jul 23, 2025
89e5275
Trust all hostname verifier in tests
gthea Jul 23, 2025
71070d2
Refactor
gthea Jul 23, 2025
1dc92da
Additional tests
gthea Jul 23, 2025
641dbb6
Additional tests
gthea Jul 23, 2025
d16fed2
Fix naming in interface
gthea Jul 24, 2025
c500a4a
Merge pull request #788 from splitio/FME-8173-proxy-fixes
gthea Jul 25, 2025
6e5e34e
Cipher & proxy property in GeneralInfoStorage
gthea Jul 25, 2025
909dadc
Tests
gthea Jul 25, 2025
c1867e9
Additional condition
gthea Jul 25, 2025
9c79b45
Fix
gthea Jul 25, 2025
d8a9820
Proxy data serialization
gthea Jul 25, 2025
e00691a
Creation of HttpProxy in SplitWorker
gthea Jul 25, 2025
4f68331
Extract to helper class
gthea Jul 25, 2025
7a98b7b
Fix tests
gthea Jul 25, 2025
3bfef03
HttpClientProvider test
gthea Jul 25, 2025
c4419f9
Tests
gthea Jul 25, 2025
db92f99
Restore commented out code
gthea Jul 25, 2025
7d74941
Fix test
gthea Jul 25, 2025
030dbfe
Merge pull request #789 from splitio/FME-8229-proxy-bgsync
gthea Jul 28, 2025
f80a868
Merge pull request #790 from splitio/FME-8229-proxy-bgsync-2
gthea Jul 28, 2025
cb70383
Fix bad merge
gthea Jul 28, 2025
82f34f4
FT data models (#801)
gthea Aug 22, 2025
4de6cff
FT Sanitizer (#802)
gthea Aug 25, 2025
cc5542d
FT calculator (#803)
gthea Aug 27, 2025
dff0160
Label prefixing in FT calculator (#804)
gthea Aug 29, 2025
91f7555
Fallback sanitizer update (#805)
gthea Aug 29, 2025
3e64028
FT integration (#806)
gthea Aug 29, 2025
5addd46
End to end tests for Fallback Treatments (#807)
gthea Aug 29, 2025
ee7d5fd
Change FT sanitizer log level and message (#808)
gthea Sep 1, 2025
a1ed994
Merge branch 'development' into FME-4353-proxy_baseline
gthea Sep 2, 2025
fc69328
Merge branch 'master' into FME-4353-proxy_baseline
gthea Sep 2, 2025
c677a27
New RC version
gthea Sep 2, 2025
6cf705c
Fix test compilation
gthea Sep 2, 2025
66d6c7b
Fix NPE
gthea Sep 2, 2025
5694938
Update WMWrapper test
gthea Sep 3, 2025
a64856f
FME proxy support
gthea Sep 3, 2025
4379423
FT simplified configuration (#809)
gthea Sep 3, 2025
a8c38ca
String only methods for FT (#810)
gthea Sep 4, 2025
81020a4
Merge branch 'development' into FME-8434-fallback_baseline
gthea Sep 5, 2025
7491e54
Fix merge
gthea Sep 5, 2025
27faac7
Fallback treatments (#812)
gthea Sep 5, 2025
b236d25
Version 5.4.0-rc2
gthea Sep 5, 2025
9ed383e
Support TLS proxy without custom cert
gthea Sep 11, 2025
9363bba
Version 5.4.0-rc3
gthea Sep 11, 2025
047a784
Version 5.4.0
gthea Sep 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
5.4.0 (Sep 12, 2025)
- Added new configuration for Fallback Treatments, which allows setting a treatment value and optional config to be returned in place of "control", either globally or by flag. Read more in our docs.
- Added ProxyConfiguration parameter to support proxies, including Harness Forward Proxy, allowing also for more secured authentication options: MTLS, Bearer token and user/password authentication. Read more in our docs.

5.3.2 (Aug 20, 2025)
- Fixed issue with uncaught exception on flags preloading.

Expand Down
5 changes: 1 addition & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ apply from: 'spec.gradle'
apply from: 'jacoco.gradle'

ext {
splitVersion = '5.3.2'
splitVersion = '5.4.0'
jacocoVersion = '0.8.8'
}

Expand Down Expand Up @@ -284,6 +284,3 @@ tasks.withType(Test) {
forkEvery = 100
maxHeapSize = "1024m"
}



9 changes: 6 additions & 3 deletions src/androidTest/java/fake/HttpResponseMock.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package fake;

import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.util.concurrent.BlockingQueue;
import java.security.cert.Certificate;

import io.split.android.client.network.BaseHttpResponseImpl;
import io.split.android.client.network.HttpResponse;
Expand All @@ -25,4 +23,9 @@ public HttpResponseMock(int status, String data) {
public String getData() {
return data;
}

@Override
public Certificate[] getServerCertificates() {
return new Certificate[0];
}
}
7 changes: 7 additions & 0 deletions src/androidTest/java/fake/HttpResponseStub.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package fake;

import java.security.cert.Certificate;

import io.split.android.client.network.BaseHttpResponseImpl;
import io.split.android.client.network.HttpResponse;

Expand Down Expand Up @@ -29,4 +31,9 @@ public boolean isSuccess() {
public String getData() {
return data;
}

@Override
public Certificate[] getServerCertificates() {
return new Certificate[0];
}
}
18 changes: 17 additions & 1 deletion src/androidTest/java/helper/TestableSplitConfigBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@
import io.split.android.client.ServiceEndpoints;
import io.split.android.client.SplitClientConfig;
import io.split.android.client.SyncConfig;
import io.split.android.client.fallback.FallbackTreatmentsConfiguration;
import io.split.android.client.impressions.ImpressionListener;
import io.split.android.client.network.CertificatePinningConfiguration;
import io.split.android.client.network.DevelopmentSslConfig;
import io.split.android.client.network.ProxyConfiguration;
import io.split.android.client.network.SplitAuthenticator;
import io.split.android.client.service.ServiceConstants;
import io.split.android.client.service.impressions.ImpressionsMode;
Expand Down Expand Up @@ -66,6 +68,8 @@ public class TestableSplitConfigBuilder {
private CertificatePinningConfiguration mCertificatePinningConfiguration;
private long mImpressionsDedupeTimeInterval = ServiceConstants.DEFAULT_IMPRESSIONS_DEDUPE_TIME_INTERVAL;
private RolloutCacheConfiguration mRolloutCacheConfiguration = RolloutCacheConfiguration.builder().build();
private FallbackTreatmentsConfiguration mFallbackTreatments;
private ProxyConfiguration mProxyConfiguration = null;

public TestableSplitConfigBuilder() {
mServiceEndpoints = ServiceEndpoints.builder().build();
Expand Down Expand Up @@ -281,6 +285,16 @@ public TestableSplitConfigBuilder rolloutCacheConfiguration(RolloutCacheConfigur
return this;
}

public TestableSplitConfigBuilder fallbackTreatments(FallbackTreatmentsConfiguration fallbackTreatments) {
this.mFallbackTreatments = fallbackTreatments;
return this;
}

public TestableSplitConfigBuilder logger(ProxyConfiguration proxyConfiguration) {
this.mProxyConfiguration = proxyConfiguration;
return this;
}

public SplitClientConfig build() {
Constructor constructor = SplitClientConfig.class.getDeclaredConstructors()[0];
constructor.setAccessible(true);
Expand Down Expand Up @@ -337,7 +351,9 @@ public SplitClientConfig build() {
mObserverCacheExpirationPeriod,
mCertificatePinningConfiguration,
mImpressionsDedupeTimeInterval,
mRolloutCacheConfiguration);
mRolloutCacheConfiguration,
mProxyConfiguration,
mFallbackTreatments);

Logger.instance().setLevel(mLogLevel);
return config;
Expand Down
Loading
Loading