diff --git a/.sdk_metadata.json b/.sdk_metadata.json index 0c7130f8..1a43c3ba 100644 --- a/.sdk_metadata.json +++ b/.sdk_metadata.json @@ -15,6 +15,7 @@ "bigSegments": { "introduced": "1.0" }, "contexts": { "introduced": "4.0" }, "experimentation": { "introduced": "2.9" }, + "fdv2": { "introduced": "5.13" }, "flagChanges": { "introduced": "1.0" }, "hooks": { "introduced": "5.8" }, "inlineContextCustomEvents": { "introduced": "5.7" }, diff --git a/Makefile b/Makefile index a3ef4777..ed9965b7 100644 --- a/Makefile +++ b/Makefile @@ -18,19 +18,11 @@ run-contract-tests: @echo "Running SDK contract test v2..." @curl $${GITHUB_TOKEN:+ -H "Authorization: Token $${GITHUB_TOKEN}"} \ -s https://raw.githubusercontent.com/launchdarkly/sdk-test-harness/v2/downloader/run.sh \ - | VERSION=v2 PARAMS="-url http://localhost:8001 -host 10.0.2.2 -debug -stop-service-at-end -skip-from $(SUPPRESSION_FILE) $(TEST_HARNESS_PARAMS_V2)" sh - -# Uncomment this, update v3 version, and replace existing run-contract-tests once sdk-test-harness releases a version that includes FDv2 client contract tests. -# -# run-contract-tests: -# @echo "Running SDK contract test v2..." -# @curl $${GITHUB_TOKEN:+ -H "Authorization: Token $${GITHUB_TOKEN}"} \ -# -s https://raw.githubusercontent.com/launchdarkly/sdk-test-harness/v2/downloader/run.sh \ -# | VERSION=v2 PARAMS="-url http://localhost:8001 -host 10.0.2.2 -debug -skip-from $(SUPPRESSION_FILE) $(TEST_HARNESS_PARAMS_V2)" sh -# @echo "Running SDK contract test v3..." -# @curl $${GITHUB_TOKEN:+ -H "Authorization: Token $${GITHUB_TOKEN}"} \ -# -s https://raw.githubusercontent.com/launchdarkly/sdk-test-harness/v3.0.0-alpha.4/downloader/run.sh \ -# | VERSION=v3.0.0-alpha.4 PARAMS="-url http://localhost:8001 -host 10.0.2.2 -debug -stop-service-at-end -skip-from $(SUPPRESSION_FILE_FDV2) $(TEST_HARNESS_PARAMS_V3)" sh + | VERSION=v2 PARAMS="-url http://localhost:8001 -host 10.0.2.2 -debug -skip-from $(SUPPRESSION_FILE) $(TEST_HARNESS_PARAMS_V2)" sh + @echo "Running SDK contract test v3..." + @curl $${GITHUB_TOKEN:+ -H "Authorization: Token $${GITHUB_TOKEN}"} \ + -s https://raw.githubusercontent.com/launchdarkly/sdk-test-harness/v3.1.0-alpha.6/downloader/run.sh \ + | VERSION=v3.1.0-alpha.6 PARAMS="-url http://localhost:8001 -host 10.0.2.2 -debug -stop-service-at-end -skip-from $(SUPPRESSION_FILE_FDV2) $(TEST_HARNESS_PARAMS_V3)" sh contract-tests: build-contract-tests start-emulator start-contract-test-service run-contract-tests diff --git a/contract-tests/src/main/java/com/launchdarkly/sdk/android/InternalDataSystemAccess.java b/contract-tests/src/main/java/com/launchdarkly/sdk/android/InternalDataSystemAccess.java deleted file mode 100644 index 792a0ea2..00000000 --- a/contract-tests/src/main/java/com/launchdarkly/sdk/android/InternalDataSystemAccess.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.launchdarkly.sdk.android; - -import com.launchdarkly.sdk.android.integrations.DataSystemBuilder; - -/** - * For LaunchDarkly internal use only. Do not use this class or its methods unless - * you are maintaining LaunchDarkly-produced code for this SDK (for example the contract-tests - * harness). - *
- * Forwards to the package-private data system entry points on {@link LDConfig.Builder} and
- * {@link Components}. Application developers outside LaunchDarkly must not depend on this type;
- * it is not part of the supported public Android SDK API and will be removed in a future release.
- */
-public final class InternalDataSystemAccess {
-
- private InternalDataSystemAccess() {
- }
-
- public static DataSystemBuilder newBuilder() {
- return Components.dataSystem();
- }
-
- public static LDConfig.Builder applyToConfig(
- LDConfig.Builder builder,
- DataSystemBuilder dataSystem) {
- return builder.dataSystem(dataSystem);
- }
-}
diff --git a/contract-tests/src/main/java/com/launchdarkly/sdktest/SdkClientEntity.java b/contract-tests/src/main/java/com/launchdarkly/sdktest/SdkClientEntity.java
index 36280fb9..f9627704 100644
--- a/contract-tests/src/main/java/com/launchdarkly/sdktest/SdkClientEntity.java
+++ b/contract-tests/src/main/java/com/launchdarkly/sdktest/SdkClientEntity.java
@@ -12,7 +12,6 @@
import com.launchdarkly.sdk.android.ConnectionMode;
import com.launchdarkly.sdk.android.DataSystemComponents;
import com.launchdarkly.sdk.android.LaunchDarklyException;
-import com.launchdarkly.sdk.android.InternalDataSystemAccess;
import com.launchdarkly.sdk.android.LDClient;
import com.launchdarkly.sdk.android.LDConfig;
@@ -394,13 +393,13 @@ private LDConfig buildSdkConfig(SdkConfigParams params, LDLogAdapter logAdapter,
private void configureDataSystem(LDConfig.Builder builder, SdkConfigDataSystemParams dataSystem) {
if (Boolean.TRUE.equals(dataSystem.useDefaultDataSystem)) {
- InternalDataSystemAccess.applyToConfig(builder, InternalDataSystemAccess.newBuilder());
+ builder.dataSystem(Components.dataSystem());
return;
}
SdkConfigConnectionModeConfig connModeConfig = dataSystem.connectionModeConfig;
- DataSystemBuilder dsBuilder = InternalDataSystemAccess.newBuilder();
+ DataSystemBuilder dsBuilder = Components.dataSystem();
// at the time of writing this, we did not have contract tests that could test platform state changes,
// disabling automatic mode simplifies the behavior being tested
@@ -425,7 +424,7 @@ private void configureDataSystem(LDConfig.Builder builder, SdkConfigDataSystemPa
dsBuilder.customizeConnectionMode(ConnectionMode.STREAMING, buildConnectionModeBuilder(topLevel));
}
- InternalDataSystemAccess.applyToConfig(builder, dsBuilder);
+ builder.dataSystem(dsBuilder);
}
private static boolean hasTopLevelDataSystemPipelines(SdkConfigDataSystemParams dataSystem) {
diff --git a/launchdarkly-android-client-sdk/src/main/java/com/launchdarkly/sdk/android/Components.java b/launchdarkly-android-client-sdk/src/main/java/com/launchdarkly/sdk/android/Components.java
index f1c2aadf..20d72483 100644
--- a/launchdarkly-android-client-sdk/src/main/java/com/launchdarkly/sdk/android/Components.java
+++ b/launchdarkly-android-client-sdk/src/main/java/com/launchdarkly/sdk/android/Components.java
@@ -304,7 +304,7 @@ public static PluginsConfigurationBuilder plugins() {
* @see DataSystemComponents
* @see LDConfig.Builder#dataSystem(DataSystemBuilder)
*/
- static DataSystemBuilder dataSystem() {
+ public static DataSystemBuilder dataSystem() {
return new DataSystemBuilder();
}
diff --git a/launchdarkly-android-client-sdk/src/main/java/com/launchdarkly/sdk/android/LDConfig.java b/launchdarkly-android-client-sdk/src/main/java/com/launchdarkly/sdk/android/LDConfig.java
index d5f1af13..5b66347f 100644
--- a/launchdarkly-android-client-sdk/src/main/java/com/launchdarkly/sdk/android/LDConfig.java
+++ b/launchdarkly-android-client-sdk/src/main/java/com/launchdarkly/sdk/android/LDConfig.java
@@ -458,7 +458,7 @@ public Builder dataSource(ComponentConfigurer