Under testkjøring av Nikita, så la jeg merke til at filene opprettet under kjøring av runtest ble værende igjen på disken selv om tilhørende dokumentobjekt ble slettet. Dette virker uheldig å ha løsrevede filer blandet sammen med arkivfiler.
Hva bør skje med filene på disken ved sletting? Bør de flyttes til en arkivområde og slettes der etter hvert eller slettes øyeblikkelig? Jeg mistenker det siste er mest fornuftig, og har forsøkt implementert det i dette utestede endringsforslaget.
diff --git a/src/main/java/app/service/noark5/DocumentObjectService.java b/src/main/java/app/service/noark5/DocumentObjectService.java index 98f33a51f..d688ad0f4 100644 --- a/src/main/java/app/service/noark5/DocumentObjectService.java +++ b/src/main/java/app/service/noark5/DocumentObjectService.java @@ -487,7 +489,12 @@ public class DocumentObjectService @Override @Transactional public void deleteEntity(@NotNull final UUID systemId) { + DocumentObject documentObject = getDocumentObjectOrThrow(systemId); + Path path = getToFile(documentObject); + Files.deleteIfExists(path); deleteEntity(getDocumentObjectOrThrow(systemId)); + // FIXME Log that the file on disk was deleted? Move deleted + // files into staging area first instead? }
/** @@ -496,6 +503,7 @@ public class DocumentObjectService @Override @Transactional public long deleteAll() { + // FIXME make sure to delete files too return documentObjectRepository.deleteByOwnedBy(getOrganisation()); }
[Petter Reinholdtsen]
Under testkjøring av Nikita, så la jeg merke til at filene opprettet under kjøring av runtest ble værende igjen på disken selv om tilhørende dokumentobjekt ble slettet. Dette virker uheldig å ha løsrevede filer blandet sammen med arkivfiler.
Jeg har laget en delvis implementasjon som bygger og ikke feiler i test i <URL: https://gitlab.com/OsloMet-ABI/nikita-noark5-core/-/commits/documentobject-d... >. Jeg antar deleteAll() også bør slette filer, og dette er ikke implementert.