Skip to content

Commit 9fe425a

Browse files
committed
Improve database denormalization configuration 2.1.0 backwards compatitbility
1 parent dbdd321 commit 9fe425a

4 files changed

Lines changed: 19 additions & 6 deletions

File tree

src/main/java/com/databasepreservation/common/client/ViewerConstants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -697,7 +697,7 @@ public class ViewerConstants {
697697
*/
698698
public static final String DATABASE_STATUS_VERSION = "2.0.0";
699699
public static final String COLLECTION_STATUS_VERSION = "2.0.0";
700-
public static final String DENORMALIZATION_STATUS_VERSION = "2.0.0";
700+
public static final String DENORMALIZATION_STATUS_VERSION = "2.1.0";
701701

702702
/**
703703
* Template Engine

src/main/java/com/databasepreservation/common/client/common/visualization/browse/configuration/handler/DataTransformationUtils.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,10 @@ public static ViewerColumn getColumnBySolrName(List<ViewerColumn> columns, Strin
252252

253253
public static RelatedTablesConfiguration getRelatedTableConfiguration(
254254
List<RelatedTablesConfiguration> sourceRelatedTables, String targetTableUUID, String denormalizationDirection) {
255-
return sourceRelatedTables.stream().filter(rt -> rt.getTableUUID().equals(targetTableUUID)
256-
&& rt.getDenormalizationDirection().equals(denormalizationDirection)).findFirst().orElse(null);
255+
return sourceRelatedTables.stream()
256+
.filter(rt -> rt.getTableUUID().equals(targetTableUUID)
257+
&& (rt.getDenormalizationDirection().equals(denormalizationDirection)
258+
|| rt.getDenormalizationDirection().isEmpty()))
259+
.findFirst().orElse(null);
257260
}
258261
}

src/main/java/com/databasepreservation/common/client/models/status/denormalization/RelatedTablesConfiguration.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import java.util.List;
1414

1515
import com.databasepreservation.common.client.models.structure.ViewerColumn;
16-
import com.fasterxml.jackson.annotation.JsonIgnore;
1716

1817
/**
1918
* @author Gabriel Barros <gbarros@keep.pt>
@@ -32,7 +31,7 @@ public class RelatedTablesConfiguration implements Serializable {
3231
private String referencedTableID;
3332
private String path;
3433
private Boolean multiValue = false;
35-
private String denormalizationDirection;
34+
private String denormalizationDirection = "";
3635
private List<ReferencesConfiguration> references;
3736
private List<RelatedColumnConfiguration> columnsIncluded;
3837
private List<RelatedTablesConfiguration> relatedTables;

src/main/java/com/databasepreservation/common/server/configuration/migration/ConfigurationMigratorUtils.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,18 @@ public static boolean isFileOutdated(Path filePath, String targetSystemVersion)
3232
JsonNode versionNode = rootNode.get(VERSION_KEY);
3333
String currentVersion = (versionNode != null && !versionNode.isNull()) ? versionNode.asText() : FALLBACK_VERSION;
3434

35-
return isOlderThan(currentVersion, targetSystemVersion);
35+
return isBehindMajor(currentVersion, targetSystemVersion);
36+
}
37+
38+
public static boolean isBehindMajor(String currentVersion, String targetVersion) {
39+
try {
40+
String currentMajor = currentVersion.substring(0, currentVersion.indexOf("."));
41+
String targetMajor = targetVersion.substring(0, targetVersion.indexOf("."));
42+
return currentMajor.compareTo(targetMajor) < 0;
43+
} catch (Exception e) {
44+
LOGGER.warn("Invalid version format: '{}'. Assuming it's older than '{}'.", currentVersion, targetVersion);
45+
return true;
46+
}
3647
}
3748

3849
public static boolean isOlderThan(String currentVersion, String targetVersion) {

0 commit comments

Comments
 (0)