diff --git a/CHANGELOG.md b/CHANGELOG.md
index 381cf626..5da0f080 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
# CHANGELOG
+## v2.3.0
+
+### Date: 29-Sep-2025
+
+- GCP-EU and AU region support
+
## v2.2.0
### Date: 25-Aug-2025
diff --git a/pom.xml b/pom.xml
index 1917c51b..b533d555 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
4.0.0
com.contentstack.sdk
java
- 2.2.0
+ 2.3.0
jar
contentstack-java
Java SDK for Contentstack Content Delivery API
diff --git a/src/main/java/com/contentstack/sdk/Config.java b/src/main/java/com/contentstack/sdk/Config.java
index d9fee7ea..bc0de25b 100644
--- a/src/main/java/com/contentstack/sdk/Config.java
+++ b/src/main/java/com/contentstack/sdk/Config.java
@@ -211,7 +211,7 @@ public Config setManagementToken(@NotNull String managementToken) {
* The enum Contentstack region. for now contentstack supports [US, EU, AZURE_NA]
*/
public enum ContentstackRegion {
- US, EU, AZURE_NA, AZURE_EU, GCP_NA
+ US, EU, AZURE_NA, AZURE_EU, GCP_NA, GCP_EU, AU
}
}
diff --git a/src/main/java/com/contentstack/sdk/Stack.java b/src/main/java/com/contentstack/sdk/Stack.java
index 2174bed7..b50ccb69 100644
--- a/src/main/java/com/contentstack/sdk/Stack.java
+++ b/src/main/java/com/contentstack/sdk/Stack.java
@@ -73,6 +73,16 @@ protected void setConfig(Config config) {
urlDomain = "cdn.contentstack.com";
}
config.host = "gcp-na" + "-" + urlDomain;
+ } else if (region.equalsIgnoreCase("gcp_eu")) {
+ if (urlDomain.equalsIgnoreCase("cdn.contentstack.io")) {
+ urlDomain = "cdn.contentstack.com";
+ }
+ config.host = "gcp-eu" + "-" + urlDomain;
+ } else if (region.equalsIgnoreCase("au")) {
+ if (urlDomain.equalsIgnoreCase("cdn.contentstack.io")) {
+ urlDomain = "cdn.contentstack.com";
+ }
+ config.host = region + "-" + urlDomain;
}
}
diff --git a/src/test/java/com/contentstack/sdk/TestGcpRegion.java b/src/test/java/com/contentstack/sdk/TestGcpRegion.java
index faa1b0b5..d1894b17 100644
--- a/src/test/java/com/contentstack/sdk/TestGcpRegion.java
+++ b/src/test/java/com/contentstack/sdk/TestGcpRegion.java
@@ -33,4 +33,15 @@ void testGcpNARegionBehaviourGcpStackHost() throws IllegalAccessException {
Assertions.assertEquals("gcp-na-cdn.contentstack.com", stack.config.host);
}
+
+ @Test
+ void testGcpEURegionBehaviourGcpStack() throws IllegalAccessException {
+ Config config = new Config();
+ Config.ContentstackRegion region = Config.ContentstackRegion.GCP_EU;
+ config.setRegion(region);
+ Stack stack = Contentstack.stack("fakeApiKey", "fakeDeliveryToken", "fakeEnvironment", config);
+ Assertions.assertFalse(config.region.name().isEmpty());
+ Assertions.assertEquals("GCP_EU", stack.config.region.name());
+ Assertions.assertEquals("gcp-eu-cdn.contentstack.com", stack.config.host);
+ }
}
\ No newline at end of file
diff --git a/src/test/java/com/contentstack/sdk/TestStack.java b/src/test/java/com/contentstack/sdk/TestStack.java
index 86d40953..48ae0ec2 100644
--- a/src/test/java/com/contentstack/sdk/TestStack.java
+++ b/src/test/java/com/contentstack/sdk/TestStack.java
@@ -400,4 +400,26 @@ public void onCompletion(ResponseType responseType, Error error) {
});
}
+ @Test
+ @Order(44)
+ void testAURegionSupport() throws IllegalAccessException {
+ Config config = new Config();
+ Config.ContentstackRegion region = Config.ContentstackRegion.AU;
+ config.setRegion(region);
+ Assertions.assertFalse(config.region.name().isEmpty());
+ Assertions.assertEquals("AU", config.region.name());
+ }
+
+ @Test
+ @Order(45)
+ void testAURegionBehaviourStackHost() throws IllegalAccessException {
+ Config config = new Config();
+ Config.ContentstackRegion region = Config.ContentstackRegion.AU;
+ config.setRegion(region);
+ Stack stack = Contentstack.stack("fakeApiKey", "fakeDeliveryToken", "fakeEnvironment", config);
+ Assertions.assertFalse(config.region.name().isEmpty());
+ Assertions.assertEquals("au-cdn.contentstack.com", stack.config.host);
+
+ }
+
}