Skip to content

Commit 869e947

Browse files
committed
feat (dispatcher): clean up old config file references
1 parent 1efc31b commit 869e947

10 files changed

Lines changed: 7 additions & 179 deletions

File tree

hub/dispatcher/src/main/java/com/hubsante/hub/config/HubConfiguration.java

Lines changed: 5 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,12 @@
1818
import com.hubsante.hub.service.ClientPropertiesRegistry;
1919
import com.hubsante.model.EdxlHandler;
2020
import com.hubsante.model.Validator;
21-
import com.univocity.parsers.common.ParsingContext;
22-
import com.univocity.parsers.common.processor.ObjectRowProcessor;
23-
import com.univocity.parsers.csv.CsvParser;
24-
import com.univocity.parsers.csv.CsvParserSettings;
2521
import io.micrometer.core.aop.TimedAspect;
2622
import io.micrometer.core.instrument.MeterRegistry;
2723
import jakarta.annotation.PostConstruct;
2824
import java.io.*;
2925
import java.nio.charset.StandardCharsets;
3026
import java.util.*;
31-
import java.util.stream.Collectors;
3227
import lombok.extern.slf4j.Slf4j;
3328
import org.springframework.beans.factory.annotation.Autowired;
3429
import org.springframework.beans.factory.annotation.Value;
@@ -40,15 +35,9 @@
4035
@Configuration
4136
public class HubConfiguration {
4237

43-
private static final int ROW_LENGTH = 11;
4438
private static final String DATA_DIVIDER = ",";
4539
private static final String COLUMN_DIVIDER = ";";
4640

47-
private static final StructuredLogger structuredLog = new StructuredLogger(log);
48-
49-
@Value("${client.preferences.file}")
50-
private File configFile;
51-
5241
@Value("${supported.messages.file}")
5342
private File supportedMessagesFile;
5443

@@ -62,105 +51,19 @@ public class HubConfiguration {
6251

6352
@Autowired private ClientPropertiesRegistry clientPropertiesRegistry;
6453

65-
private Map<String, Map<String, String>> clientsPerimeterAndVersions = new HashMap<>();
6654
private List<String> supportedMessages;
6755

6856
@PostConstruct
6957
public void init() throws Exception {
58+
// We first get the parameterized default message TTL
59+
defaultTTL = Long.parseLong(this.ttlProperty);
7060

71-
try {
72-
// We first get the parameterized default message TTL
73-
defaultTTL = Long.parseLong(this.ttlProperty);
74-
75-
// We explicitly set the Locale to ensure cross platform consistency
76-
Locale.setDefault(Locale.ENGLISH);
77-
78-
// We define a custom row processor to read the config file
79-
// we override the rowProcessed method on the fly to store the config in a HashMap
80-
// then we define the parser settings and parse the file
81-
ObjectRowProcessor clientPreferencesRowProcessor =
82-
new ObjectRowProcessor() {
83-
@Override
84-
public void rowProcessed(Object[] objects, ParsingContext parsingContext) {
85-
if (objects.length != ROW_LENGTH) {
86-
log.warn(
87-
"There were more than {} columns in the client preferences file, extra columns are being ignored",
88-
ROW_LENGTH);
89-
}
90-
String[] items = Arrays.asList(objects).toArray(new String[ROW_LENGTH]);
91-
}
92-
};
93-
CsvParserSettings parserSettings = new CsvParserSettings();
94-
parserSettings.getFormat().setLineSeparator("\n");
95-
parserSettings.getFormat().setDelimiter(';');
96-
parserSettings.setHeaderExtractionEnabled(true);
97-
parserSettings.setNullValue("");
98-
parserSettings.setProcessor(clientPreferencesRowProcessor);
99-
100-
CsvParser parser = new CsvParser(parserSettings);
101-
parser.parse(new BufferedReader(new FileReader(configFile, StandardCharsets.UTF_8)));
102-
clientsPerimeterAndVersions = loadClientsPerimetersAndVersions();
103-
supportedMessages = loadSupportedMessages(vhost);
104-
} catch (Exception e) {
105-
throw new Exception("Could not read config file " + configFile.getAbsolutePath(), e);
106-
}
107-
}
108-
109-
public Map<String, Map<String, String>> loadClientsPerimetersAndVersions() throws IOException {
110-
Map<String, Map<String, String>> clientsPerimeterAndVersions = new HashMap<>();
111-
BufferedReader reader =
112-
new BufferedReader(new FileReader(configFile, StandardCharsets.UTF_8));
113-
String headerLine = reader.readLine();
114-
String[] headers = headerLine.split(COLUMN_DIVIDER);
115-
int numberOfColumns = headers.length;
116-
117-
Set<String> perimeterNames =
118-
Arrays.stream(Constants.Perimeter.values())
119-
.map(Constants.Perimeter::getName)
120-
.collect(Collectors.toSet());
121-
122-
Map<String, Integer> perimeterColumnIndexes = new HashMap<>();
123-
for (int i = 0; i < numberOfColumns; i++) {
124-
if (perimeterNames.contains(headers[i])) {
125-
perimeterColumnIndexes.put(headers[i], i);
126-
}
127-
}
128-
String line;
129-
while ((line = reader.readLine()) != null) {
130-
String[] values = line.split(COLUMN_DIVIDER, -1); // -1 allows trailing empty strings
131-
132-
if (values.length < numberOfColumns) continue;
133-
134-
String clientId = values[0];
135-
Map<String, String> allPerimetersVersions = new HashMap<>();
136-
137-
for (Map.Entry<String, Integer> perimeterMatch : perimeterColumnIndexes.entrySet()) {
138-
String perimeterName = perimeterMatch.getKey();
139-
int columnIndex = perimeterMatch.getValue();
140-
allPerimetersVersions.put(perimeterName, values[columnIndex]);
141-
}
142-
143-
clientsPerimeterAndVersions.put(clientId, allPerimetersVersions);
144-
}
61+
// We explicitly set the Locale to ensure cross platform consistency
62+
Locale.setDefault(Locale.ENGLISH);
14563

146-
reader.close();
147-
return clientsPerimeterAndVersions;
64+
supportedMessages = loadSupportedMessages(vhost);
14865
}
14966

150-
// public String[] getClientVersionsForPerimeter(String clientId, String perimeterName) {
151-
// Map<String, String> clientPerimeterDefinition =
152-
// clientsPerimeterAndVersions.getOrDefault(clientId, null);
153-
// if (clientPerimeterDefinition == null) {
154-
// structuredLog.warn(
155-
// "ClientId was not found in clientsPerimeterAndVersions, or the variable is
156-
// not initialized.",
157-
// Map.of(LogConstants.RECIPIENT_ID, clientId));
158-
// return null;
159-
// }
160-
// String versions = clientPerimeterDefinition.getOrDefault(perimeterName, null);
161-
// return splitString(versions);
162-
// }
163-
16467
public List<String> loadSupportedMessages(String vhost) throws Exception {
16568
List<String> supportedMessages = new ArrayList<>();
16669
try (BufferedReader reader =

hub/dispatcher/src/main/resources/application-XXX.template.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ spring:
99
main:
1010
web-application-type: reactive
1111
client:
12-
preferences:
13-
file: "file:<PATH_TO_LOCAL_DEV_DIRECTORY>/config/values/client.preferences.csv"
12+
configuration:
13+
file: "file:<PATH_TO_LOCAL_DEV_DIRECTORY>/config/values/clients.yaml"
1414
supported:
1515
messages:
1616
file: "file:<PATH_TO_LOCAL_DEV_DIRECTORY>/dispatcher/supported.messages.csv"

hub/dispatcher/src/main/resources/application.properties

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ spring.rabbitmq.template.mandatory=true
1919
app.version=${APP_VERSION:unknown}
2020
app.model-version=${APP_MODEL_VERSION:unknown}
2121

22-
client.preferences.file=file:/config/client.preferences.csv
2322
supported.messages.file=file:/config/supported.messages.csv
2423
client.configuration.file=file:/config/clients.yaml
2524
# dispatcher.default.ttl needs to be syncd with RabbitMQ conf :

hub/dispatcher/src/test/java/com/hubsante/hub/service/ClientPropertiesRegistryTest.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,6 @@ static void registerPgProperties(DynamicPropertyRegistry propertiesRegistry) {
4848
() ->
4949
Objects.requireNonNull(
5050
classLoader.getResource("config/supported.messages.csv")));
51-
propertiesRegistry.add(
52-
"client.preferences.file",
53-
() ->
54-
Objects.requireNonNull(
55-
classLoader.getResource("config/client.preferences.csv")));
5651
propertiesRegistry.add(
5752
"client.configuration.file",
5853
() -> Objects.requireNonNull(classLoader.getResource("config/clients.yaml")));

hub/dispatcher/src/test/java/com/hubsante/hub/service/DispatcherTest.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,6 @@ static void registerPgProperties(DynamicPropertyRegistry propertiesRegistry) {
119119
() ->
120120
Objects.requireNonNull(
121121
classLoader.getResource("config/supported.messages.csv")));
122-
propertiesRegistry.add(
123-
"client.preferences.file",
124-
() ->
125-
Objects.requireNonNull(
126-
classLoader.getResource("config/client.preferences.csv")));
127122
propertiesRegistry.add(
128123
"client.configuration.file",
129124
() -> Objects.requireNonNull(classLoader.getResource("config/clients.yaml")));

hub/dispatcher/src/test/java/com/hubsante/hub/service/HubApplicationTests.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,6 @@ public void initialize(ConfigurableApplicationContext applicationContext) {
5353
+ Thread.currentThread()
5454
.getContextClassLoader()
5555
.getResource("config/certs/trustStore"),
56-
"client.preferences.file="
57-
+ Thread.currentThread()
58-
.getContextClassLoader()
59-
.getResource("config/client.preferences.csv"),
6056
"client.configuration.file="
6157
+ Thread.currentThread()
6258
.getContextClassLoader()

hub/dispatcher/src/test/java/com/hubsante/hub/service/HubConfigurationTest.java

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@
2121
import java.io.File;
2222
import java.io.FileWriter;
2323
import java.nio.charset.StandardCharsets;
24-
import java.util.HashMap;
2524
import java.util.List;
26-
import java.util.Map;
2725
import org.junit.jupiter.api.Assertions;
2826
import org.junit.jupiter.api.BeforeEach;
2927
import org.junit.jupiter.api.Test;
@@ -45,18 +43,6 @@ void setUp() throws Exception {
4543
}
4644

4745
ReflectionTestUtils.setField(hubConfig, "supportedMessagesFile", tempFile);
48-
49-
File tempConfigFile = File.createTempFile("client.preferences", ".csv");
50-
try (FileWriter writer = new FileWriter(tempConfigFile, StandardCharsets.UTF_8)) {
51-
writer.write(
52-
"client_id;useXML;directCISU;editor;lrm_test;15-15;15-nexsis;15-smur;15-gps\n");
53-
writer.write(
54-
"fr.health.samuA;false;false;default-editor;false;1.5,2.0,2.1;1.9;1.7;2.0\n");
55-
writer.write("fr.health.samuV2;false;false;default-editor;false;2.0;1.9;1.7;2.0\n");
56-
writer.write("fr.health.samuV1;false;false;default-editor;false;1.5;;;\n");
57-
}
58-
59-
ReflectionTestUtils.setField(hubConfig, "configFile", tempConfigFile);
6046
}
6147

6248
@Test
@@ -111,35 +97,4 @@ void testGetSupportedMessages_unknownHost() throws Exception {
11197
Assertions.assertTrue(supportedMessages.contains("ReferenceWrapper"));
11298
Assertions.assertTrue(supportedMessages.contains("ErrorWrapper"));
11399
}
114-
115-
@Test
116-
void testLoadPerimeterVersions() throws Exception {
117-
Map<String, Map<String, String>> clientsPerimetersAndVersions =
118-
hubConfig.loadClientsPerimetersAndVersions();
119-
Map<String, Map<String, String>> expectedMap = new HashMap<>();
120-
121-
Map<String, String> samuV1Map = new HashMap<>();
122-
samuV1Map.put("15-smur", "");
123-
samuV1Map.put("15-15", "1.5");
124-
samuV1Map.put("15-nexsis", "");
125-
samuV1Map.put("15-gps", "");
126-
expectedMap.put("fr.health.samuV1", samuV1Map);
127-
128-
Map<String, String> samuV2Map = new HashMap<>();
129-
samuV2Map.put("15-smur", "1.7");
130-
samuV2Map.put("15-15", "2.0");
131-
samuV2Map.put("15-nexsis", "1.9");
132-
samuV2Map.put("15-gps", "2.0");
133-
expectedMap.put("fr.health.samuV2", samuV2Map);
134-
135-
Map<String, String> samuAMap = new HashMap<>();
136-
samuAMap.put("15-smur", "1.7");
137-
samuAMap.put("15-15", "1.5,2.0,2.1");
138-
samuAMap.put("15-nexsis", "1.9");
139-
samuAMap.put("15-gps", "2.0");
140-
expectedMap.put("fr.health.samuA", samuAMap);
141-
System.out.println(clientsPerimetersAndVersions);
142-
143-
Assertions.assertEquals(expectedMap, clientsPerimetersAndVersions);
144-
}
145100
}

hub/dispatcher/src/test/java/com/hubsante/hub/service/LogIntegrityTest.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,6 @@ static void registerPgProperties(DynamicPropertyRegistry propertiesRegistry) {
8282
() ->
8383
Objects.requireNonNull(
8484
classLoader.getResource("config/supported.messages.csv")));
85-
propertiesRegistry.add(
86-
"client.preferences.file",
87-
() ->
88-
Objects.requireNonNull(
89-
classLoader.getResource("config/client.preferences.csv")));
9085
propertiesRegistry.add(
9186
"client.configuration.file",
9287
() -> Objects.requireNonNull(classLoader.getResource("config/clients.yaml")));

hub/dispatcher/src/test/java/com/hubsante/hub/service/RabbitIntegrationAbstract.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,6 @@ public void initialize(ConfigurableApplicationContext applicationContext) {
135135
+ Thread.currentThread()
136136
.getContextClassLoader()
137137
.getResource("config/certs/trustStore"),
138-
"client.preferences.file="
139-
+ Thread.currentThread()
140-
.getContextClassLoader()
141-
.getResource("config/client.preferences.csv"),
142138
"client.configuration.file="
143139
+ Thread.currentThread()
144140
.getContextClassLoader()

hub/dispatcher/src/test/resources/config/client.preferences.csv

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)