Skip to content

Commit df6727c

Browse files
Read Tyler versions from config files (#376)
Instead of hardcoding Tyler API versions(#218) in TylerClients.java, versions are now read from the existing application.stage.properties and application.prod.properties files in the config/ directory - Added Tyler version keys to config/application.stage.properties and config/application.prod.properties - Updated TylerClients.getVersion() to load versions from the config file instead of hardcoded version maps
1 parent 242a1dd commit df6727c

7 files changed

Lines changed: 60 additions & 35 deletions

File tree

TylerEfmClient/src/main/java/edu/suffolk/litlab/efsp/tyler/TylerClients.java

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,55 @@
11
package edu.suffolk.litlab.efsp.tyler;
22

33
import edu.suffolk.litlab.efsp.Jurisdiction;
4+
import java.io.IOException;
45
import java.net.URL;
6+
import java.util.EnumMap;
57
import java.util.Map;
68
import java.util.Optional;
9+
import java.util.Properties;
710
import org.slf4j.Logger;
811
import org.slf4j.LoggerFactory;
912
import tyler.efm.EfmFirmService;
1013
import tyler.efm.EfmUserService;
1114

1215
public class TylerClients {
1316
private static final Logger log = LoggerFactory.getLogger(TylerClients.class);
14-
1517
private static final String USER_WSDL = "-EFMUserServiceSingle.svc.wsdl";
1618
private static final String FIRM_WSDL = "-EFMFirmServiceSingle.svc.wsdl";
19+
private static final String VERSION_KEY_PREFIX = "edu.suffolk.litlab.efsp.tyler.version.";
1720

1821
private static final Map<Jurisdiction, TylerVersion> STAGE_VERSION_MAP =
19-
Map.of(
20-
Jurisdiction.CALIFORNIA, TylerVersion.v2024_6,
21-
Jurisdiction.ILLINOIS, TylerVersion.v2024_6,
22-
Jurisdiction.INDIANA, TylerVersion.v2024_6,
23-
Jurisdiction.MASSACHUSETTS, TylerVersion.v2025_0,
24-
Jurisdiction.TEXAS, TylerVersion.v2024_6,
25-
Jurisdiction.VERMONT, TylerVersion.v2024_6);
26-
22+
loadVersionMap(TylerEnv.STAGE);
2723
private static final Map<Jurisdiction, TylerVersion> PROD_VERSION_MAP =
28-
Map.of(
29-
Jurisdiction.ILLINOIS, TylerVersion.v2024_6,
30-
Jurisdiction.MASSACHUSETTS, TylerVersion.v2022_1);
24+
loadVersionMap(TylerEnv.PROD);
25+
26+
private static Map<Jurisdiction, TylerVersion> loadVersionMap(TylerEnv env) {
27+
String propertiesFile = "application." + env.getName() + ".properties";
28+
var props = new Properties();
29+
try (var is = TylerClients.class.getClassLoader().getResourceAsStream(propertiesFile)) {
30+
if (is == null) {
31+
throw new RuntimeException("Could not find properties file: " + propertiesFile);
32+
}
33+
props.load(is);
34+
} catch (IOException e) {
35+
throw new RuntimeException("Failed to load properties file: " + propertiesFile, e);
36+
}
37+
var map = new EnumMap<Jurisdiction, TylerVersion>(Jurisdiction.class);
38+
for (Jurisdiction jurisdiction : Jurisdiction.values()) {
39+
String key = VERSION_KEY_PREFIX + jurisdiction.getName();
40+
String value = props.getProperty(key);
41+
if (value != null) {
42+
try {
43+
map.put(jurisdiction, TylerVersion.valueOf(value.trim()));
44+
} catch (IllegalArgumentException e) {
45+
throw new RuntimeException(
46+
"Unknown TylerVersion value '" + value.trim() + "' for key '" + key + "'");
47+
}
48+
}
49+
}
50+
return map;
51+
}
3152

32-
/**
33-
* Gets the EfmUserService from the individual jursdiction and env arguments.
34-
*
35-
* @param domain e.g. Jurisdiction.ILLINOIS, TylerEnv.STAGE.
36-
*/
3753
public static Optional<TylerUserFactory> getEfmUserFactory(TylerDomain domain) {
3854
var version = getVersion(domain);
3955
return version.flatMap(
@@ -52,14 +68,6 @@ public static Optional<TylerFirmFactory> getEfmFirmFactory(TylerDomain domain) {
5268
});
5369
}
5470

55-
/**
56-
* Gets Tyler server's root URL for a given jurisdiction / Tyler Env (i.e. california stage).
57-
*
58-
* <p>TODO(brycew): turn this into a URL type? Find where it's used.
59-
*
60-
* @param domain
61-
* @return
62-
*/
6371
public static String getTylerServerRootUrl(TylerDomain domain) {
6472
if (domain.jurisdiction() == Jurisdiction.CALIFORNIA) {
6573
return "https://california-efm-" + domain.env().getName() + ".tylertech.cloud/";
@@ -73,15 +81,10 @@ public static String getTylerServerRootUrl(TylerDomain domain) {
7381
public static Optional<TylerVersion> getVersion(TylerDomain domain) {
7482
Map<Jurisdiction, TylerVersion> versionMap =
7583
switch (domain.env()) {
76-
case TylerEnv.STAGE -> STAGE_VERSION_MAP;
77-
case TylerEnv.PROD -> PROD_VERSION_MAP;
84+
case STAGE -> STAGE_VERSION_MAP;
85+
case PROD -> PROD_VERSION_MAP;
7886
};
79-
80-
if (!versionMap.containsKey(domain.jurisdiction())) {
81-
return Optional.empty();
82-
}
83-
84-
return Optional.of(versionMap.get(domain.jurisdiction()));
87+
return Optional.ofNullable(versionMap.get(domain.jurisdiction()));
8588
}
8689

8790
private static Optional<URL> createLocalWsdlUrl(
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
edu.suffolk.litlab.efsp.tyler.version.illinois = v2024_6
2+
edu.suffolk.litlab.efsp.tyler.version.massachusetts = v2022_1
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
edu.suffolk.litlab.efsp.tyler.version.california = v2024_6
2+
edu.suffolk.litlab.efsp.tyler.version.illinois = v2024_6
3+
edu.suffolk.litlab.efsp.tyler.version.indiana = v2024_6
4+
edu.suffolk.litlab.efsp.tyler.version.massachusetts = v2025_0
5+
edu.suffolk.litlab.efsp.tyler.version.texas = v2024_6
6+
edu.suffolk.litlab.efsp.tyler.version.vermont = v2024_6

config/application.prod.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
edu.suffolk.litlab.efsp.codeUpdateTime = 02:13
2-
2+
edu.suffolk.litlab.efsp.tyler.version.illinois = v2024_6
3+
edu.suffolk.litlab.efsp.tyler.version.massachusetts = v2022_1
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
11
edu.suffolk.litlab.efsp.codeUpdateTime = 19:35
2-
2+
edu.suffolk.litlab.efsp.tyler.version.california = v2024_6
3+
edu.suffolk.litlab.efsp.tyler.version.illinois = v2024_6
4+
edu.suffolk.litlab.efsp.tyler.version.indiana = v2024_6
5+
edu.suffolk.litlab.efsp.tyler.version.massachusetts = v2025_0
6+
edu.suffolk.litlab.efsp.tyler.version.texas = v2024_6
7+
edu.suffolk.litlab.efsp.tyler.version.vermont = v2024_6
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
edu.suffolk.litlab.efsp.tyler.version.illinois = v2024_6
2+
edu.suffolk.litlab.efsp.tyler.version.massachusetts = v2022_1
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
edu.suffolk.litlab.efsp.tyler.version.california = v2024_6
2+
edu.suffolk.litlab.efsp.tyler.version.illinois = v2024_6
3+
edu.suffolk.litlab.efsp.tyler.version.indiana = v2024_6
4+
edu.suffolk.litlab.efsp.tyler.version.massachusetts = v2025_0
5+
edu.suffolk.litlab.efsp.tyler.version.texas = v2024_6
6+
edu.suffolk.litlab.efsp.tyler.version.vermont = v2024_6

0 commit comments

Comments
 (0)