Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 41 additions & 14 deletions resources/sdk/purecloudjava/templates/Configuration.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;

import org.ini4j.Ini;
import org.apache.commons.configuration2.INIConfiguration;
import org.apache.commons.configuration2.SubnodeConfiguration;
import java.util.Map;
import java.util.HashSet;
import java.util.Set;

public class Configuration {
private static ApiClient defaultApiClient = null;
Expand Down Expand Up @@ -196,7 +199,7 @@ public class Configuration {
private class ConfigurationParser {
private String filePath;
private FileFormat fileFormat;
private Ini iniData;
private INIConfiguration iniData;
private Map<String, Object> jsonData;

public ConfigurationParser(String filePath) {
Expand All @@ -207,14 +210,29 @@ public class Configuration {
private boolean read() {
boolean emptyData = true;
try {
byte[] data = Files.readAllBytes(Paths.get(filePath));
String contents = new String(data).replaceAll("\\\\", "/");
InputStream stream = new ByteArrayInputStream(contents.getBytes());

iniData = new Ini(stream);

iniData = new INIConfiguration();
FileReader fileReader = new FileReader(filePath);
iniData.read(fileReader);
fileFormat = FileFormat.INI;
emptyData = iniData.isEmpty();
if (emptyData == true) {
throw new Exception("Empty Ini file");
}
Set<String> iniSections = iniData.getSections();
if (iniSections.isEmpty() == true || (iniSections.size() == 1 && iniSections.contains(null))) {
throw new Exception("Empty Ini file");
}
if (iniSections.contains(null)) {
Set<String> sectionNames = new HashSet<>();
for (String name : iniSections) {
if (name != null) {
sectionNames.add(name);
}
}
if (sectionNames.isEmpty()) {
throw new Exception("Empty Ini file");
}
}
} catch (FileNotFoundException e) {
return false;
} catch (Exception e) {
Expand Down Expand Up @@ -294,26 +312,35 @@ public class Configuration {

private String getIniString(String section, String key) {
try {
Ini.Section sectionData = iniData.get(section);
return sectionData.get(key).trim();
SubnodeConfiguration sectionData = iniData.getSection(section);
if (sectionData == null) {
return "";
}
return sectionData.getProperty(key).toString().trim();
} catch (Exception e) {
return "";
}
}

private boolean getIniBool(String section, String key) {
try {
Ini.Section sectionData = iniData.get(section);
return Boolean.parseBoolean(sectionData.get(key).trim());
SubnodeConfiguration sectionData = iniData.getSection(section);
if (sectionData == null) {
return false;
}
return Boolean.parseBoolean(sectionData.getProperty(key).toString().trim());
} catch (Exception e) {
return false;
}
}

private int getIniInt(String section, String key) {
try {
Ini.Section sectionData = iniData.get(section);
return Integer.parseInt(sectionData.get(key).trim());
SubnodeConfiguration sectionData = iniData.getSection(section);
if (sectionData == null) {
return -1;
}
return Integer.parseInt(sectionData.getProperty(key).toString().trim());
} catch (Exception e) {
return -1;
}
Expand Down
8 changes: 4 additions & 4 deletions resources/sdk/purecloudjava/templates/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -251,9 +251,9 @@
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.ini4j</groupId>
<artifactId>ini4j</artifactId>
<version>${ini4j-version}</version>
<groupId>org.apache.commons</groupId>
<artifactId>commons-configuration2</artifactId>
<version>${commons-configuration-version}</version>
</dependency>
<!-- HTTP client: apache httpclient -->
<dependency>
Expand Down Expand Up @@ -365,7 +365,7 @@
<nv-websocket-client-version>2.14</nv-websocket-client-version>
<guava-version>33.4.8-jre</guava-version>
<mockito.version>5.18.0</mockito.version>
<ini4j-version>0.5.4</ini4j-version>
<commons-configuration-version>2.12.0</commons-configuration-version>
<io-netty-version>4.2.3.Final</io-netty-version>

<name>${props.name}</name>
Expand Down