From 758d61b7b19131c245b7e3f6c19ed1800cf2b34c Mon Sep 17 00:00:00 2001 From: reeshika-h Date: Thu, 4 Sep 2025 16:18:21 +0530 Subject: [PATCH 1/2] Release version 4.1.0: Added support for Australian region and updated CHANGELOG. --- CHANGELOG.md | 8 +++++++- contentstack/build.gradle | 2 +- .../com/contentstack/sdk/AssetTestCase.java | 17 +++++++++++++++++ .../main/java/com/contentstack/sdk/Config.java | 12 +++++++++++- .../main/java/com/contentstack/sdk/Stack.java | 18 +++++++++++------- 5 files changed, 47 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b3b585b..83882ab3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,14 @@ # CHANGELOG +## Version 4.1.0 + +### Date: 15-Sept-2025 + +- Added support for Australian (AU) region and GCP-EU region + ## Version 4.0.1 -### Date: 06-June-2024 +### Date: 06-June-2025 - Integration tests added - Global fields support added diff --git a/contentstack/build.gradle b/contentstack/build.gradle index 0d23213f..decfc052 100755 --- a/contentstack/build.gradle +++ b/contentstack/build.gradle @@ -10,7 +10,7 @@ android.buildFeatures.buildConfig true mavenPublishing { publishToMavenCentral(SonatypeHost.DEFAULT) signAllPublications() - coordinates("com.contentstack.sdk", "android", "4.0.1") + coordinates("com.contentstack.sdk", "android", "4.1.0") pom { name = "contentstack-android" diff --git a/contentstack/src/androidTest/java/com/contentstack/sdk/AssetTestCase.java b/contentstack/src/androidTest/java/com/contentstack/sdk/AssetTestCase.java index 8d5847a4..ce358ec1 100644 --- a/contentstack/src/androidTest/java/com/contentstack/sdk/AssetTestCase.java +++ b/contentstack/src/androidTest/java/com/contentstack/sdk/AssetTestCase.java @@ -16,6 +16,8 @@ import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNotNull; +import static java.lang.String.*; + import androidx.test.InstrumentationRegistry; import androidx.test.core.app.ApplicationProvider; @@ -149,6 +151,20 @@ public void test_AZURE_NA() throws Exception { config.setRegion(Config.ContentstackRegion.AZURE_NA); Context appContext = InstrumentationRegistry.getTargetContext(); stack = Contentstack.stack(appContext, DEFAULT_API_KEY, DEFAULT_DELIVERY_TOKEN, DEFAULT_ENV, config); + assertEquals("azure-na-cdn.contentstack.com", config.getHost()); + } + + @Test + public void test_AU() throws Exception { + Config config = new Config(); + String DEFAULT_API_KEY = BuildConfig.APIKey; + String DEFAULT_DELIVERY_TOKEN = BuildConfig.deliveryToken; + String DEFAULT_ENV = BuildConfig.environment; + config.setRegion(Config.ContentstackRegion.AU); + // Host will be set based on region + Context appContext = InstrumentationRegistry.getTargetContext(); + stack = Contentstack.stack(appContext, DEFAULT_API_KEY, DEFAULT_DELIVERY_TOKEN, DEFAULT_ENV, config); + assertEquals("au-cdn.contentstack.com", config.getHost()); } @Test @@ -162,6 +178,7 @@ public void test_GCP_NA() throws Exception { config.setRegion(Config.ContentstackRegion.GCP_NA); Context appContext = InstrumentationRegistry.getTargetContext(); stack = Contentstack.stack(appContext, DEFAULT_API_KEY, DEFAULT_DELIVERY_TOKEN, DEFAULT_ENV, config); + assertEquals("gcp-na-cdn.contentstack.com", config.getHost()); } @Test diff --git a/contentstack/src/main/java/com/contentstack/sdk/Config.java b/contentstack/src/main/java/com/contentstack/sdk/Config.java index f55a2203..0cd845ee 100755 --- a/contentstack/src/main/java/com/contentstack/sdk/Config.java +++ b/contentstack/src/main/java/com/contentstack/sdk/Config.java @@ -86,7 +86,17 @@ public Config earlyAccess(String[] earlyAccess) { return this; } - public enum ContentstackRegion {US, EU, AZURE_NA, AZURE_EU, GCP_NA} + /** + * Represents the available Contentstack regions. + * US: United States region (default) + * EU: European region + * AU: Australian region + * AZURE_NA: Azure North America region + * AZURE_EU: Azure European region + * GCP_NA: Google Cloud Platform North America region + * GCP_EU: Google Cloud Platform European region + */ + public enum ContentstackRegion {US, EU, AU, AZURE_NA, AZURE_EU, GCP_NA, GCP_EU} /** * Config constructor diff --git a/contentstack/src/main/java/com/contentstack/sdk/Stack.java b/contentstack/src/main/java/com/contentstack/sdk/Stack.java index 1bfcd7e3..b3cc5ce5 100755 --- a/contentstack/src/main/java/com/contentstack/sdk/Stack.java +++ b/contentstack/src/main/java/com/contentstack/sdk/Stack.java @@ -78,27 +78,31 @@ protected void setConfig(Config config) { if (!TextUtils.isEmpty(config.environment)) { setHeader("environment", config.environment); } + // Handle region setting first before any host overrides if (!config.region.name().isEmpty()) { String region = config.region.name().toLowerCase(); if (!region.equalsIgnoreCase("us")) { - if (URL.equalsIgnoreCase("cdn.contentstack.io")) { - URL = "cdn.contentstack.com"; - } if (region.equalsIgnoreCase("azure_na")) { - URL = "azure-na-cdn.contentstack.com"; + config.setHost("azure-na-cdn.contentstack.com"); } else if (region.equalsIgnoreCase("azure_eu")) { - URL = "azure-eu-cdn.contentstack.com"; + config.setHost("azure-eu-cdn.contentstack.com"); } else if (region.equalsIgnoreCase("gcp_na")) { - URL = "gcp-na-cdn.contentstack.com"; + config.setHost("gcp-na-cdn.contentstack.com"); + } else if (region.equalsIgnoreCase("gcp_eu")) { + config.setHost("gcp-eu-cdn.contentstack.com"); + } else if (region.equalsIgnoreCase("au")) { + config.setHost("au-cdn.contentstack.com"); } else { - URL = region + "-" + URL; + config.setHost(region + "-cdn.contentstack.io"); } } } String endpoint = config.PROTOCOL + config.URL; this.config.setEndpoint(endpoint); + System.out.println("Endpoint:" + endpoint); client(endpoint); + } private void client(String endpoint) { From 3a1673b507750e73ad15b444fe937679e4cc4f54 Mon Sep 17 00:00:00 2001 From: reeshika-h Date: Fri, 5 Sep 2025 15:43:29 +0530 Subject: [PATCH 2/2] Remove debug print statement for endpoint in Stack class --- contentstack/src/main/java/com/contentstack/sdk/Stack.java | 1 - 1 file changed, 1 deletion(-) diff --git a/contentstack/src/main/java/com/contentstack/sdk/Stack.java b/contentstack/src/main/java/com/contentstack/sdk/Stack.java index b3cc5ce5..eda16a25 100755 --- a/contentstack/src/main/java/com/contentstack/sdk/Stack.java +++ b/contentstack/src/main/java/com/contentstack/sdk/Stack.java @@ -99,7 +99,6 @@ protected void setConfig(Config config) { } String endpoint = config.PROTOCOL + config.URL; this.config.setEndpoint(endpoint); - System.out.println("Endpoint:" + endpoint); client(endpoint);