VOL-543: Provision for specifying urls where subscriber id is not at the end
Change-Id: I3aa7030ebe34f6ecaa6a761db523e0c6df7a3eb7
diff --git a/app/src/main/java/org/opencord/sadis/impl/SadisConfig.java b/app/src/main/java/org/opencord/sadis/impl/SadisConfig.java
index 42a11af..eb48fe0 100644
--- a/app/src/main/java/org/opencord/sadis/impl/SadisConfig.java
+++ b/app/src/main/java/org/opencord/sadis/impl/SadisConfig.java
@@ -81,6 +81,7 @@
private static final String SADIS_URL = "url";
private static final String SADIS_ENTRIES = "entries";
private static final String DEFAULT_CACHE_TTL = "PT0S";
+ private static final String SUBSCRIBER_ID_SUB_PATTERN = "%s";
/**
* Returns SADIS integration URL.
@@ -99,7 +100,11 @@
if (url.isMissingNode()) {
return null;
}
-
+ StringBuffer buf = new StringBuffer(SUBSCRIBER_ID_SUB_PATTERN);
+ if (!url.asText().contains(buf)) {
+ log.error("Error in url, missing {}", SUBSCRIBER_ID_SUB_PATTERN);
+ return null;
+ }
return new URL(url.asText());
}
diff --git a/app/src/main/java/org/opencord/sadis/impl/SubscriberAndDeviceInformationAdapter.java b/app/src/main/java/org/opencord/sadis/impl/SubscriberAndDeviceInformationAdapter.java
index 5085ae8..5026e66 100644
--- a/app/src/main/java/org/opencord/sadis/impl/SubscriberAndDeviceInformationAdapter.java
+++ b/app/src/main/java/org/opencord/sadis/impl/SubscriberAndDeviceInformationAdapter.java
@@ -192,14 +192,9 @@
}
} else {
// Augment URL with query parameters
- StringBuilder buf = new StringBuilder(this.url);
- if (buf.charAt(buf.length() - 1) != '/') {
- buf.append('/');
- }
+ String urlWithSubId = this.url.replaceAll("%s", id);
- buf.append(id);
-
- try (InputStream io = new URL(buf.toString()).openStream()) {
+ try (InputStream io = new URL(urlWithSubId).openStream()) {
info = mapper.readValue(io, SubscriberAndDeviceInformation.class);
local.put(id, info);
return info;
diff --git a/app/src/test/resources/RemoteConfig.json b/app/src/test/resources/RemoteConfig.json
index b708fbc..e2c798f 100644
--- a/app/src/test/resources/RemoteConfig.json
+++ b/app/src/test/resources/RemoteConfig.json
@@ -1,6 +1,6 @@
{
"integration": {
- "url": "file:src/test/resources",
+ "url": "file:src/test/resources/%s",
"cache": {
"maxsize": 50,
"ttl": "PT1m"