Merge branch 'RED-8650-fix' into 'master'

RED-8650 - Fix date_formats path

Closes RED-8650

See merge request redactmanager/redaction-service!374
This commit is contained in:
Andrei Isvoran 2024-04-16 16:19:32 +02:00
commit 65fe05be79

View File

@ -13,11 +13,9 @@ import java.time.format.DateTimeParseException;
import java.time.format.ResolverStyle; import java.time.format.ResolverStyle;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
@ -33,7 +31,7 @@ public class DateConverter {
public Optional<Date> parseDate(String dateAsString) { public Optional<Date> parseDate(String dateAsString) {
DateTimeFormatter formatter = getDateTimeFormatter("date_formats.txt"); DateTimeFormatter formatter = getDateTimeFormatter();
String cleanDate = dateAsString.trim(); String cleanDate = dateAsString.trim();
cleanDate = removeTrailingDot(cleanDate); cleanDate = removeTrailingDot(cleanDate);
try { try {
@ -55,20 +53,19 @@ public class DateConverter {
} }
private DateTimeFormatter getDateTimeFormatter(String resourcePath) { private DateTimeFormatter getDateTimeFormatter() {
if (DATE_TIME_FORMATTER == null) { if (DATE_TIME_FORMATTER == null) {
DATE_TIME_FORMATTER = createFormatterFromResource(resourcePath); DATE_TIME_FORMATTER = createFormatterFromResource();
} }
return DATE_TIME_FORMATTER; return DATE_TIME_FORMATTER;
} }
private DateTimeFormatter createFormatterFromResource(String resourcePath) { private DateTimeFormatter createFormatterFromResource() {
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder(); DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
Resource resource = new ClassPathResource(resourcePath); try (BufferedReader reader = new BufferedReader(new InputStreamReader(Objects.requireNonNull(DateConverter.class.getResourceAsStream("/date_formats.txt"))))) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(resource.getInputStream()))) {
String line; String line;
while ((line = reader.readLine()) != null) { while ((line = reader.readLine()) != null) {
builder.appendOptional(DateTimeFormatter.ofPattern(line.trim(), Locale.ENGLISH)); builder.appendOptional(DateTimeFormatter.ofPattern(line.trim(), Locale.ENGLISH));