From beeba9e761993764d36ccfb4840d13e27707ac29 Mon Sep 17 00:00:00 2001 From: mnoman09 Date: Thu, 27 May 2021 15:19:13 +0500 Subject: [PATCH 1/4] added SDKkey and environment in datafile added tests to verify changes --- .../ab/config/DatafileProjectConfig.java | 20 +++++++++++++++++++ .../optimizely/ab/config/ProjectConfig.java | 6 +++++- .../parser/DatafileGsonDeserializer.java | 10 +++++++++- .../parser/DatafileJacksonDeserializer.java | 12 ++++++++++- .../ab/config/parser/JsonConfigParser.java | 10 +++++++++- .../config/parser/JsonSimpleConfigParser.java | 6 +++++- .../ab/optimizelyconfig/OptimizelyConfig.java | 18 ++++++++++++++--- .../OptimizelyConfigService.java | 4 +++- .../PollingProjectConfigManagerTest.java | 4 +++- .../ab/config/ValidProjectConfigV4.java | 6 +++++- .../OptimizelyConfigServiceTest.java | 20 +++++++++++++++++-- .../OptimizelyConfigTest.java | 8 ++++++-- .../config/valid-project-config-v4.json | 2 ++ .../resources/valid-project-config-v4.json | 2 ++ 14 files changed, 113 insertions(+), 15 deletions(-) diff --git a/core-api/src/main/java/com/optimizely/ab/config/DatafileProjectConfig.java b/core-api/src/main/java/com/optimizely/ab/config/DatafileProjectConfig.java index 2bc377a29..5846f6f23 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/DatafileProjectConfig.java +++ b/core-api/src/main/java/com/optimizely/ab/config/DatafileProjectConfig.java @@ -59,6 +59,8 @@ public class DatafileProjectConfig implements ProjectConfig { private final String accountId; private final String projectId; private final String revision; + private final String sdkKey; + private final String environment; private final String version; private final boolean anonymizeIP; private final boolean sendFlagDecisions; @@ -108,6 +110,8 @@ public DatafileProjectConfig(String accountId, String projectId, String version, null, projectId, revision, + null, + null, version, attributes, audiences, @@ -127,6 +131,8 @@ public DatafileProjectConfig(String accountId, Boolean botFiltering, String projectId, String revision, + String sdkKey, + String environment, String version, List attributes, List audiences, @@ -141,6 +147,8 @@ public DatafileProjectConfig(String accountId, this.projectId = projectId; this.version = version; this.revision = revision; + this.sdkKey = sdkKey; + this.environment = environment; this.anonymizeIP = anonymizeIP; this.sendFlagDecisions = sendFlagDecisions; this.botFiltering = botFiltering; @@ -326,6 +334,16 @@ public String getRevision() { return revision; } + @Override + public String getSdkKey() { + return sdkKey; + } + + @Override + public String getEnvironment() { + return environment; + } + @Override public boolean getSendFlagDecisions() { return sendFlagDecisions; } @@ -451,6 +469,8 @@ public String toString() { "accountId='" + accountId + '\'' + ", projectId='" + projectId + '\'' + ", revision='" + revision + '\'' + + ", sdkKey='" + sdkKey + '\'' + + ", environment='" + environment + '\'' + ", version='" + version + '\'' + ", anonymizeIP=" + anonymizeIP + ", botFiltering=" + botFiltering + diff --git a/core-api/src/main/java/com/optimizely/ab/config/ProjectConfig.java b/core-api/src/main/java/com/optimizely/ab/config/ProjectConfig.java index 5a85fbd4e..943e32ada 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/ProjectConfig.java +++ b/core-api/src/main/java/com/optimizely/ab/config/ProjectConfig.java @@ -1,6 +1,6 @@ /** * - * Copyright 2016-2020, Optimizely and contributors + * Copyright 2016-2021, Optimizely and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -55,6 +55,10 @@ Experiment getExperimentForKey(@Nonnull String experimentKey, String getRevision(); + String getSdkKey(); + + String getEnvironment(); + boolean getSendFlagDecisions(); boolean getAnonymizeIP(); diff --git a/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileGsonDeserializer.java b/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileGsonDeserializer.java index 99ab71b78..2f7952861 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileGsonDeserializer.java +++ b/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileGsonDeserializer.java @@ -1,6 +1,6 @@ /** * - * Copyright 2016-2020, Optimizely and contributors + * Copyright 2016-2021, Optimizely and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -87,6 +87,8 @@ public ProjectConfig deserialize(JsonElement json, Type typeOfT, JsonDeserializa List featureFlags = null; List rollouts = null; Boolean botFiltering = null; + String sdkKey = null; + String environment = null; boolean sendFlagDecisions = false; if (datafileVersion >= Integer.parseInt(DatafileProjectConfig.Version.V4.toString())) { Type featureFlagsType = new TypeToken>() { @@ -95,6 +97,10 @@ public ProjectConfig deserialize(JsonElement json, Type typeOfT, JsonDeserializa Type rolloutsType = new TypeToken>() { }.getType(); rollouts = context.deserialize(jsonObject.get("rollouts").getAsJsonArray(), rolloutsType); + if (jsonObject.has("sdkKey")) + sdkKey = jsonObject.get("sdkKey").getAsString(); + if (jsonObject.has("environment")) + environment = jsonObject.get("environment").getAsString(); if (jsonObject.has("botFiltering")) botFiltering = jsonObject.get("botFiltering").getAsBoolean(); if (jsonObject.has("sendFlagDecisions")) @@ -108,6 +114,8 @@ public ProjectConfig deserialize(JsonElement json, Type typeOfT, JsonDeserializa botFiltering, projectId, revision, + sdkKey, + environment, version, attributes, audiences, diff --git a/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileJacksonDeserializer.java b/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileJacksonDeserializer.java index 06ae5b1a9..3a578dfeb 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileJacksonDeserializer.java +++ b/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileJacksonDeserializer.java @@ -1,6 +1,6 @@ /** * - * Copyright 2016-2020, Optimizely and contributors + * Copyright 2016-2021, Optimizely and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -63,11 +63,19 @@ public DatafileProjectConfig deserialize(JsonParser parser, DeserializationConte List featureFlags = null; List rollouts = null; + String sdkKey = null; + String environment = null; Boolean botFiltering = null; boolean sendFlagDecisions = false; if (datafileVersion >= Integer.parseInt(DatafileProjectConfig.Version.V4.toString())) { featureFlags = JacksonHelpers.arrayNodeToList(node.get("featureFlags"), FeatureFlag.class, codec); rollouts = JacksonHelpers.arrayNodeToList(node.get("rollouts"), Rollout.class, codec); + if (node.hasNonNull("sdkKey")) { + sdkKey = node.get("sdkKey").textValue(); + } + if (node.hasNonNull("environment")) { + environment = node.get("environment").textValue(); + } if (node.hasNonNull("botFiltering")) { botFiltering = node.get("botFiltering").asBoolean(); } @@ -83,6 +91,8 @@ public DatafileProjectConfig deserialize(JsonParser parser, DeserializationConte botFiltering, projectId, revision, + sdkKey, + environment, version, attributes, audiences, diff --git a/core-api/src/main/java/com/optimizely/ab/config/parser/JsonConfigParser.java b/core-api/src/main/java/com/optimizely/ab/config/parser/JsonConfigParser.java index 5f707cb69..68189af4d 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/parser/JsonConfigParser.java +++ b/core-api/src/main/java/com/optimizely/ab/config/parser/JsonConfigParser.java @@ -1,6 +1,6 @@ /** * - * Copyright 2016-2019, 2020, Optimizely and contributors + * Copyright 2016-2021, Optimizely and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -72,11 +72,17 @@ public ProjectConfig parseProjectConfig(@Nonnull String json) throws ConfigParse List featureFlags = null; List rollouts = null; + String sdkKey = null; + String environment = null; Boolean botFiltering = null; boolean sendFlagDecisions = false; if (datafileVersion >= Integer.parseInt(ProjectConfig.Version.V4.toString())) { featureFlags = parseFeatureFlags(rootObject.getJSONArray("featureFlags")); rollouts = parseRollouts(rootObject.getJSONArray("rollouts")); + if (rootObject.has("sdkKey")) + sdkKey = rootObject.getString("sdkKey"); + if (rootObject.has("environment")) + environment = rootObject.getString("environment"); if (rootObject.has("botFiltering")) botFiltering = rootObject.getBoolean("botFiltering"); if (rootObject.has("sendFlagDecisions")) @@ -90,6 +96,8 @@ public ProjectConfig parseProjectConfig(@Nonnull String json) throws ConfigParse botFiltering, projectId, revision, + sdkKey, + environment, version, attributes, audiences, diff --git a/core-api/src/main/java/com/optimizely/ab/config/parser/JsonSimpleConfigParser.java b/core-api/src/main/java/com/optimizely/ab/config/parser/JsonSimpleConfigParser.java index b5238a356..3d2cfe50c 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/parser/JsonSimpleConfigParser.java +++ b/core-api/src/main/java/com/optimizely/ab/config/parser/JsonSimpleConfigParser.java @@ -1,6 +1,6 @@ /** * - * Copyright 2016-2019, 2020, Optimizely and contributors + * Copyright 2016-2021, Optimizely and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,6 +50,8 @@ public ProjectConfig parseProjectConfig(@Nonnull String json) throws ConfigParse String accountId = (String) rootObject.get("accountId"); String projectId = (String) rootObject.get("projectId"); String revision = (String) rootObject.get("revision"); + String sdkKey = (String) rootObject.get("sdkKey"); + String environment = (String) rootObject.get("environment"); String version = (String) rootObject.get("version"); int datafileVersion = Integer.parseInt(version); @@ -97,6 +99,8 @@ public ProjectConfig parseProjectConfig(@Nonnull String json) throws ConfigParse botFiltering, projectId, revision, + sdkKey, + environment, version, attributes, audiences, diff --git a/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java b/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java index 3e1ab5d5b..86f918e81 100644 --- a/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java +++ b/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020, Optimizely, Inc. and contributors * + * Copyright 2020-2021, Optimizely, Inc. and contributors * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * @@ -26,21 +26,27 @@ public class OptimizelyConfig { private Map experimentsMap; private Map featuresMap; private String revision; + private String sdkKey; + private String environment; private String datafile; public OptimizelyConfig(Map experimentsMap, Map featuresMap, - String revision) { - this(experimentsMap, featuresMap, revision, null); + String revision, String sdkKey, String environment) { + this(experimentsMap, featuresMap, revision, sdkKey, environment, null); } public OptimizelyConfig(Map experimentsMap, Map featuresMap, String revision, + String sdkKey, + String environment, String datafile) { this.experimentsMap = experimentsMap; this.featuresMap = featuresMap; this.revision = revision; + this.sdkKey = sdkKey; + this.environment = environment; this.datafile = datafile; } @@ -56,6 +62,12 @@ public String getRevision() { return revision; } + public String getSdkKey() { return sdkKey; } + + public String getEnvironment() { + return environment; + } + public String getDatafile() { return datafile; } diff --git a/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigService.java b/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigService.java index f739ae549..27b37087a 100644 --- a/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigService.java +++ b/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigService.java @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020, Optimizely, Inc. and contributors * + * Copyright 2020-2021, Optimizely, Inc. and contributors * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * @@ -32,6 +32,8 @@ public OptimizelyConfigService(ProjectConfig projectConfig) { experimentsMap, getFeaturesMap(experimentsMap), projectConfig.getRevision(), + projectConfig.getSdkKey(), + projectConfig.getEnvironment(), projectConfig.toDatafile() ); } diff --git a/core-api/src/test/java/com/optimizely/ab/config/PollingProjectConfigManagerTest.java b/core-api/src/test/java/com/optimizely/ab/config/PollingProjectConfigManagerTest.java index 5aebc884a..60aa00d74 100644 --- a/core-api/src/test/java/com/optimizely/ab/config/PollingProjectConfigManagerTest.java +++ b/core-api/src/test/java/com/optimizely/ab/config/PollingProjectConfigManagerTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2019-2020, Optimizely and contributors + * Copyright 2019-2021, Optimizely and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -156,6 +156,8 @@ public void testSetOptimizelyConfig(){ testProjectConfigManager.setConfig(projectConfig); assertEquals("1480511547", testProjectConfigManager.getOptimizelyConfig().getRevision()); + assertEquals("ValidProjectConfigV4", testProjectConfigManager.getOptimizelyConfig().getSdkKey()); + assertEquals("production", testProjectConfigManager.getOptimizelyConfig().getEnvironment()); // cached config because project config is null testProjectConfigManager.setConfig(null); diff --git a/core-api/src/test/java/com/optimizely/ab/config/ValidProjectConfigV4.java b/core-api/src/test/java/com/optimizely/ab/config/ValidProjectConfigV4.java index 5a922452f..45872b01a 100644 --- a/core-api/src/test/java/com/optimizely/ab/config/ValidProjectConfigV4.java +++ b/core-api/src/test/java/com/optimizely/ab/config/ValidProjectConfigV4.java @@ -1,6 +1,6 @@ /** * - * Copyright 2017-2020, Optimizely and contributors + * Copyright 2017-2021, Optimizely and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,6 +36,8 @@ public class ValidProjectConfigV4 { private static final boolean BOT_FILTERING = true; private static final String PROJECT_ID = "3918735994"; private static final String REVISION = "1480511547"; + private static final String SDK_KEY = "ValidProjectConfigV4"; + private static final String ENVIRONMENT = "production"; private static final String VERSION = "4"; private static final Boolean SEND_FLAG_DECISIONS = true; @@ -1434,6 +1436,8 @@ public static ProjectConfig generateValidProjectConfigV4() { BOT_FILTERING, PROJECT_ID, REVISION, + SDK_KEY, + ENVIRONMENT, VERSION, attributes, audiences, diff --git a/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigServiceTest.java b/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigServiceTest.java index 4ceb0a67c..79001fe0d 100644 --- a/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigServiceTest.java +++ b/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigServiceTest.java @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020, Optimizely, Inc. and contributors * + * Copyright 2020-2021, Optimizely, Inc. and contributors * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * @@ -52,6 +52,18 @@ public void testRevision() { assertEquals(expectedConfig.getRevision(), revision); } + @Test + public void testSdkKey() { + String sdkKey = optimizelyConfigService.getConfig().getSdkKey(); + assertEquals(expectedConfig.getSdkKey(), sdkKey); + } + + @Test + public void testEnvironment() { + String environment = optimizelyConfigService.getConfig().getEnvironment(); + assertEquals(expectedConfig.getEnvironment(), environment); + } + @Test public void testGetFeaturesMap() { Map optimizelyExperimentMap = optimizelyConfigService.getExperimentsMap(); @@ -152,6 +164,8 @@ private ProjectConfig generateOptimizelyConfig() { true, "3918735994", "1480511547", + "ValidProjectConfigV4", + "production", "4", asList( new Attribute( @@ -510,7 +524,9 @@ OptimizelyConfig getExpectedConfig() { return new OptimizelyConfig( optimizelyExperimentMap, optimizelyFeatureMap, - "1480511547" + "1480511547", + "ValidProjectConfigV4", + "production" ); } } diff --git a/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigTest.java b/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigTest.java index 3b9848a74..4d1307704 100644 --- a/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigTest.java +++ b/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigTest.java @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020, Optimizely, Inc. and contributors * + * Copyright 2020-2021, Optimizely, Inc. and contributors * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * @@ -30,9 +30,13 @@ public void testOptimizelyConfig() { OptimizelyConfig optimizelyConfig = new OptimizelyConfig( generateExperimentMap(), generateFeatureMap(), - "101" + "101", + "testingSdkKey", + "development" ); assertEquals("101", optimizelyConfig.getRevision()); + assertEquals("testingSdkKey", optimizelyConfig.getSdkKey()); + assertEquals("development", optimizelyConfig.getEnvironment()); // verify the experiments map Map optimizelyExperimentMap = generateExperimentMap(); assertEquals(optimizelyExperimentMap.size(), optimizelyConfig.getExperimentsMap().size()); diff --git a/core-api/src/test/resources/config/valid-project-config-v4.json b/core-api/src/test/resources/config/valid-project-config-v4.json index 88b5f815b..99084e6b9 100644 --- a/core-api/src/test/resources/config/valid-project-config-v4.json +++ b/core-api/src/test/resources/config/valid-project-config-v4.json @@ -5,6 +5,8 @@ "sendFlagDecisions": true, "projectId": "3918735994", "revision": "1480511547", + "sdkKey": "ValidProjectConfigV4", + "environment": "production", "version": "4", "audiences": [ { diff --git a/core-httpclient-impl/src/test/resources/valid-project-config-v4.json b/core-httpclient-impl/src/test/resources/valid-project-config-v4.json index 4f58f4c66..a2f2724bb 100644 --- a/core-httpclient-impl/src/test/resources/valid-project-config-v4.json +++ b/core-httpclient-impl/src/test/resources/valid-project-config-v4.json @@ -4,6 +4,8 @@ "botFiltering": true, "projectId": "3918735994", "revision": "1480511547", + "sdkKey": "ValidProjectConfigV4", + "environment": "production", "version": "4", "audiences": [ { From 879cd691c780aa50ca15dcf17519d910caf8e90c Mon Sep 17 00:00:00 2001 From: "FOLIO3PK\\muhammadnoman" Date: Fri, 28 May 2021 14:22:52 +0500 Subject: [PATCH 2/4] ignore key of sdk key and environment if null --- .../com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java b/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java index 86f918e81..795c03f58 100644 --- a/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java +++ b/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java @@ -16,11 +16,14 @@ package com.optimizely.ab.optimizelyconfig; +import com.fasterxml.jackson.annotation.JsonInclude; + import java.util.*; /** * Interface for OptimizleyConfig */ +@JsonInclude(JsonInclude.Include.NON_NULL) public class OptimizelyConfig { private Map experimentsMap; From 6fa8230f04c411338900e6d5a28ccba09f6c9bc6 Mon Sep 17 00:00:00 2001 From: "FOLIO3PK\\muhammadnoman" Date: Fri, 28 May 2021 15:54:17 +0500 Subject: [PATCH 3/4] resolved spotbugs issue --- .../java/com/optimizely/ab/config/parser/JsonConfigParser.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core-api/src/main/java/com/optimizely/ab/config/parser/JsonConfigParser.java b/core-api/src/main/java/com/optimizely/ab/config/parser/JsonConfigParser.java index 68189af4d..d409a1e4e 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/parser/JsonConfigParser.java +++ b/core-api/src/main/java/com/optimizely/ab/config/parser/JsonConfigParser.java @@ -108,6 +108,8 @@ public ProjectConfig parseProjectConfig(@Nonnull String json) throws ConfigParse groups, rollouts ); + } catch (RuntimeException e) { + throw new ConfigParseException("Unable to parse datafile: " + json, e); } catch (Exception e) { throw new ConfigParseException("Unable to parse datafile: " + json, e); } From 3c49d2feff24d05146bdbecca6800c5273397495 Mon Sep 17 00:00:00 2001 From: mnoman09 Date: Tue, 1 Jun 2021 17:47:27 +0500 Subject: [PATCH 4/4] Changed environment to environmentKey --- .../ab/config/DatafileProjectConfig.java | 12 ++++++------ .../com/optimizely/ab/config/ProjectConfig.java | 2 +- .../ab/config/parser/DatafileGsonDeserializer.java | 8 ++++---- .../config/parser/DatafileJacksonDeserializer.java | 8 ++++---- .../ab/config/parser/JsonConfigParser.java | 8 ++++---- .../ab/config/parser/JsonSimpleConfigParser.java | 4 ++-- .../ab/optimizelyconfig/OptimizelyConfig.java | 14 +++++++------- .../optimizelyconfig/OptimizelyConfigService.java | 2 +- .../ab/config/PollingProjectConfigManagerTest.java | 2 +- .../optimizely/ab/config/ValidProjectConfigV4.java | 4 ++-- .../OptimizelyConfigServiceTest.java | 6 +++--- .../ab/optimizelyconfig/OptimizelyConfigTest.java | 2 +- .../resources/config/valid-project-config-v4.json | 2 +- .../test/resources/valid-project-config-v4.json | 2 +- 14 files changed, 38 insertions(+), 38 deletions(-) diff --git a/core-api/src/main/java/com/optimizely/ab/config/DatafileProjectConfig.java b/core-api/src/main/java/com/optimizely/ab/config/DatafileProjectConfig.java index 5846f6f23..0757b6d4e 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/DatafileProjectConfig.java +++ b/core-api/src/main/java/com/optimizely/ab/config/DatafileProjectConfig.java @@ -60,7 +60,7 @@ public class DatafileProjectConfig implements ProjectConfig { private final String projectId; private final String revision; private final String sdkKey; - private final String environment; + private final String environmentKey; private final String version; private final boolean anonymizeIP; private final boolean sendFlagDecisions; @@ -132,7 +132,7 @@ public DatafileProjectConfig(String accountId, String projectId, String revision, String sdkKey, - String environment, + String environmentKey, String version, List attributes, List audiences, @@ -148,7 +148,7 @@ public DatafileProjectConfig(String accountId, this.version = version; this.revision = revision; this.sdkKey = sdkKey; - this.environment = environment; + this.environmentKey = environmentKey; this.anonymizeIP = anonymizeIP; this.sendFlagDecisions = sendFlagDecisions; this.botFiltering = botFiltering; @@ -340,8 +340,8 @@ public String getSdkKey() { } @Override - public String getEnvironment() { - return environment; + public String getEnvironmentKey() { + return environmentKey; } @Override @@ -470,7 +470,7 @@ public String toString() { ", projectId='" + projectId + '\'' + ", revision='" + revision + '\'' + ", sdkKey='" + sdkKey + '\'' + - ", environment='" + environment + '\'' + + ", environmentKey='" + environmentKey + '\'' + ", version='" + version + '\'' + ", anonymizeIP=" + anonymizeIP + ", botFiltering=" + botFiltering + diff --git a/core-api/src/main/java/com/optimizely/ab/config/ProjectConfig.java b/core-api/src/main/java/com/optimizely/ab/config/ProjectConfig.java index 943e32ada..a6222e8b2 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/ProjectConfig.java +++ b/core-api/src/main/java/com/optimizely/ab/config/ProjectConfig.java @@ -57,7 +57,7 @@ Experiment getExperimentForKey(@Nonnull String experimentKey, String getSdkKey(); - String getEnvironment(); + String getEnvironmentKey(); boolean getSendFlagDecisions(); diff --git a/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileGsonDeserializer.java b/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileGsonDeserializer.java index 2f7952861..26fe47330 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileGsonDeserializer.java +++ b/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileGsonDeserializer.java @@ -88,7 +88,7 @@ public ProjectConfig deserialize(JsonElement json, Type typeOfT, JsonDeserializa List rollouts = null; Boolean botFiltering = null; String sdkKey = null; - String environment = null; + String environmentKey = null; boolean sendFlagDecisions = false; if (datafileVersion >= Integer.parseInt(DatafileProjectConfig.Version.V4.toString())) { Type featureFlagsType = new TypeToken>() { @@ -99,8 +99,8 @@ public ProjectConfig deserialize(JsonElement json, Type typeOfT, JsonDeserializa rollouts = context.deserialize(jsonObject.get("rollouts").getAsJsonArray(), rolloutsType); if (jsonObject.has("sdkKey")) sdkKey = jsonObject.get("sdkKey").getAsString(); - if (jsonObject.has("environment")) - environment = jsonObject.get("environment").getAsString(); + if (jsonObject.has("environmentKey")) + environmentKey = jsonObject.get("environmentKey").getAsString(); if (jsonObject.has("botFiltering")) botFiltering = jsonObject.get("botFiltering").getAsBoolean(); if (jsonObject.has("sendFlagDecisions")) @@ -115,7 +115,7 @@ public ProjectConfig deserialize(JsonElement json, Type typeOfT, JsonDeserializa projectId, revision, sdkKey, - environment, + environmentKey, version, attributes, audiences, diff --git a/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileJacksonDeserializer.java b/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileJacksonDeserializer.java index 3a578dfeb..4cded2ecb 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileJacksonDeserializer.java +++ b/core-api/src/main/java/com/optimizely/ab/config/parser/DatafileJacksonDeserializer.java @@ -64,7 +64,7 @@ public DatafileProjectConfig deserialize(JsonParser parser, DeserializationConte List featureFlags = null; List rollouts = null; String sdkKey = null; - String environment = null; + String environmentKey = null; Boolean botFiltering = null; boolean sendFlagDecisions = false; if (datafileVersion >= Integer.parseInt(DatafileProjectConfig.Version.V4.toString())) { @@ -73,8 +73,8 @@ public DatafileProjectConfig deserialize(JsonParser parser, DeserializationConte if (node.hasNonNull("sdkKey")) { sdkKey = node.get("sdkKey").textValue(); } - if (node.hasNonNull("environment")) { - environment = node.get("environment").textValue(); + if (node.hasNonNull("environmentKey")) { + environmentKey = node.get("environmentKey").textValue(); } if (node.hasNonNull("botFiltering")) { botFiltering = node.get("botFiltering").asBoolean(); @@ -92,7 +92,7 @@ public DatafileProjectConfig deserialize(JsonParser parser, DeserializationConte projectId, revision, sdkKey, - environment, + environmentKey, version, attributes, audiences, diff --git a/core-api/src/main/java/com/optimizely/ab/config/parser/JsonConfigParser.java b/core-api/src/main/java/com/optimizely/ab/config/parser/JsonConfigParser.java index d409a1e4e..c33f30a68 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/parser/JsonConfigParser.java +++ b/core-api/src/main/java/com/optimizely/ab/config/parser/JsonConfigParser.java @@ -73,7 +73,7 @@ public ProjectConfig parseProjectConfig(@Nonnull String json) throws ConfigParse List featureFlags = null; List rollouts = null; String sdkKey = null; - String environment = null; + String environmentKey = null; Boolean botFiltering = null; boolean sendFlagDecisions = false; if (datafileVersion >= Integer.parseInt(ProjectConfig.Version.V4.toString())) { @@ -81,8 +81,8 @@ public ProjectConfig parseProjectConfig(@Nonnull String json) throws ConfigParse rollouts = parseRollouts(rootObject.getJSONArray("rollouts")); if (rootObject.has("sdkKey")) sdkKey = rootObject.getString("sdkKey"); - if (rootObject.has("environment")) - environment = rootObject.getString("environment"); + if (rootObject.has("environmentKey")) + environmentKey = rootObject.getString("environmentKey"); if (rootObject.has("botFiltering")) botFiltering = rootObject.getBoolean("botFiltering"); if (rootObject.has("sendFlagDecisions")) @@ -97,7 +97,7 @@ public ProjectConfig parseProjectConfig(@Nonnull String json) throws ConfigParse projectId, revision, sdkKey, - environment, + environmentKey, version, attributes, audiences, diff --git a/core-api/src/main/java/com/optimizely/ab/config/parser/JsonSimpleConfigParser.java b/core-api/src/main/java/com/optimizely/ab/config/parser/JsonSimpleConfigParser.java index 3d2cfe50c..751e651ca 100644 --- a/core-api/src/main/java/com/optimizely/ab/config/parser/JsonSimpleConfigParser.java +++ b/core-api/src/main/java/com/optimizely/ab/config/parser/JsonSimpleConfigParser.java @@ -51,7 +51,7 @@ public ProjectConfig parseProjectConfig(@Nonnull String json) throws ConfigParse String projectId = (String) rootObject.get("projectId"); String revision = (String) rootObject.get("revision"); String sdkKey = (String) rootObject.get("sdkKey"); - String environment = (String) rootObject.get("environment"); + String environmentKey = (String) rootObject.get("environmentKey"); String version = (String) rootObject.get("version"); int datafileVersion = Integer.parseInt(version); @@ -100,7 +100,7 @@ public ProjectConfig parseProjectConfig(@Nonnull String json) throws ConfigParse projectId, revision, sdkKey, - environment, + environmentKey, version, attributes, audiences, diff --git a/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java b/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java index 795c03f58..c1640ff44 100644 --- a/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java +++ b/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfig.java @@ -30,26 +30,26 @@ public class OptimizelyConfig { private Map featuresMap; private String revision; private String sdkKey; - private String environment; + private String environmentKey; private String datafile; public OptimizelyConfig(Map experimentsMap, Map featuresMap, - String revision, String sdkKey, String environment) { - this(experimentsMap, featuresMap, revision, sdkKey, environment, null); + String revision, String sdkKey, String environmentKey) { + this(experimentsMap, featuresMap, revision, sdkKey, environmentKey, null); } public OptimizelyConfig(Map experimentsMap, Map featuresMap, String revision, String sdkKey, - String environment, + String environmentKey, String datafile) { this.experimentsMap = experimentsMap; this.featuresMap = featuresMap; this.revision = revision; this.sdkKey = sdkKey; - this.environment = environment; + this.environmentKey = environmentKey; this.datafile = datafile; } @@ -67,8 +67,8 @@ public String getRevision() { public String getSdkKey() { return sdkKey; } - public String getEnvironment() { - return environment; + public String getEnvironmentKey() { + return environmentKey; } public String getDatafile() { diff --git a/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigService.java b/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigService.java index 27b37087a..af1965ce1 100644 --- a/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigService.java +++ b/core-api/src/main/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigService.java @@ -33,7 +33,7 @@ public OptimizelyConfigService(ProjectConfig projectConfig) { getFeaturesMap(experimentsMap), projectConfig.getRevision(), projectConfig.getSdkKey(), - projectConfig.getEnvironment(), + projectConfig.getEnvironmentKey(), projectConfig.toDatafile() ); } diff --git a/core-api/src/test/java/com/optimizely/ab/config/PollingProjectConfigManagerTest.java b/core-api/src/test/java/com/optimizely/ab/config/PollingProjectConfigManagerTest.java index 60aa00d74..390c9b874 100644 --- a/core-api/src/test/java/com/optimizely/ab/config/PollingProjectConfigManagerTest.java +++ b/core-api/src/test/java/com/optimizely/ab/config/PollingProjectConfigManagerTest.java @@ -157,7 +157,7 @@ public void testSetOptimizelyConfig(){ testProjectConfigManager.setConfig(projectConfig); assertEquals("1480511547", testProjectConfigManager.getOptimizelyConfig().getRevision()); assertEquals("ValidProjectConfigV4", testProjectConfigManager.getOptimizelyConfig().getSdkKey()); - assertEquals("production", testProjectConfigManager.getOptimizelyConfig().getEnvironment()); + assertEquals("production", testProjectConfigManager.getOptimizelyConfig().getEnvironmentKey()); // cached config because project config is null testProjectConfigManager.setConfig(null); diff --git a/core-api/src/test/java/com/optimizely/ab/config/ValidProjectConfigV4.java b/core-api/src/test/java/com/optimizely/ab/config/ValidProjectConfigV4.java index 45872b01a..f8ea02231 100644 --- a/core-api/src/test/java/com/optimizely/ab/config/ValidProjectConfigV4.java +++ b/core-api/src/test/java/com/optimizely/ab/config/ValidProjectConfigV4.java @@ -37,7 +37,7 @@ public class ValidProjectConfigV4 { private static final String PROJECT_ID = "3918735994"; private static final String REVISION = "1480511547"; private static final String SDK_KEY = "ValidProjectConfigV4"; - private static final String ENVIRONMENT = "production"; + private static final String ENVIRONMENT_KEY = "production"; private static final String VERSION = "4"; private static final Boolean SEND_FLAG_DECISIONS = true; @@ -1437,7 +1437,7 @@ public static ProjectConfig generateValidProjectConfigV4() { PROJECT_ID, REVISION, SDK_KEY, - ENVIRONMENT, + ENVIRONMENT_KEY, VERSION, attributes, audiences, diff --git a/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigServiceTest.java b/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigServiceTest.java index 79001fe0d..52bc06181 100644 --- a/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigServiceTest.java +++ b/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigServiceTest.java @@ -59,9 +59,9 @@ public void testSdkKey() { } @Test - public void testEnvironment() { - String environment = optimizelyConfigService.getConfig().getEnvironment(); - assertEquals(expectedConfig.getEnvironment(), environment); + public void testEnvironmentKey() { + String environmentKey = optimizelyConfigService.getConfig().getEnvironmentKey(); + assertEquals(expectedConfig.getEnvironmentKey(), environmentKey); } @Test diff --git a/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigTest.java b/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigTest.java index 4d1307704..13b703799 100644 --- a/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigTest.java +++ b/core-api/src/test/java/com/optimizely/ab/optimizelyconfig/OptimizelyConfigTest.java @@ -36,7 +36,7 @@ public void testOptimizelyConfig() { ); assertEquals("101", optimizelyConfig.getRevision()); assertEquals("testingSdkKey", optimizelyConfig.getSdkKey()); - assertEquals("development", optimizelyConfig.getEnvironment()); + assertEquals("development", optimizelyConfig.getEnvironmentKey()); // verify the experiments map Map optimizelyExperimentMap = generateExperimentMap(); assertEquals(optimizelyExperimentMap.size(), optimizelyConfig.getExperimentsMap().size()); diff --git a/core-api/src/test/resources/config/valid-project-config-v4.json b/core-api/src/test/resources/config/valid-project-config-v4.json index 99084e6b9..01c927a5c 100644 --- a/core-api/src/test/resources/config/valid-project-config-v4.json +++ b/core-api/src/test/resources/config/valid-project-config-v4.json @@ -6,7 +6,7 @@ "projectId": "3918735994", "revision": "1480511547", "sdkKey": "ValidProjectConfigV4", - "environment": "production", + "environmentKey": "production", "version": "4", "audiences": [ { diff --git a/core-httpclient-impl/src/test/resources/valid-project-config-v4.json b/core-httpclient-impl/src/test/resources/valid-project-config-v4.json index a2f2724bb..5d46cbbb5 100644 --- a/core-httpclient-impl/src/test/resources/valid-project-config-v4.json +++ b/core-httpclient-impl/src/test/resources/valid-project-config-v4.json @@ -5,7 +5,7 @@ "projectId": "3918735994", "revision": "1480511547", "sdkKey": "ValidProjectConfigV4", - "environment": "production", + "environmentKey": "production", "version": "4", "audiences": [ {