Verbesserung
Top-Thema
Detail
Wichtig
Detail
Detail
#25801
NamedConfiguration und NamedConfigMandatory muss @Abstract sein
Alle direkten Verwendungen müssen duch konkrete Ableitungen der Interfaces ersetzt werden. Ansonsten erhält man komplett sinnlose Auswahlen immer dann wenn ein deklaratives Formular ein Property von fraglichem Typ enthält.
Code-Migration
Die Typen NamedConfiguration und NamedConfigMandatory dürfen nicht mehr direkt als Typen von Properties auftauchen. Stattdessen muss eine Ableitung genutzt werden.
Besser ist es, den Property-Typ auf String zu ändern:
#!patch @@ -181,7 +181,8 @@ * The database modules. */ @Name(MODULES_NAME) - List<NamedConfigMandatory> getModules(); + @ListBinding(attribute = "name") + List<String> getModules(); /** * The algorithm that is used to encrypt temporary files.
Die Werte, die von Properties mit der @MapBinding oder @ListBinding Annotation geliefert werden sind jetzt nicht mehr modifizierbar. Dies verhindert Überraschungen, wenn man versucht Konfigurationen mit solchen intern modifizierten Werten zu speichern (solche Properties werden nämlich nicht geschrieben).
Test
Refactoring, kein Test.