X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fbackup%2FSimpleBackupPurge.java;h=33b5b5ebee1c971f594d963fcbf94d2f35999938;hb=36c14000ab482f558a9679f75ac7bfb0953171f4;hp=64d749beefed4583cad326a3d85c381acb3708a6;hpb=0a63088e055dcd5ff397ce4e98d008c62c84dc98;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/backup/SimpleBackupPurge.java b/org.argeo.cms/src/org/argeo/cms/internal/backup/SimpleBackupPurge.java index 64d749bee..33b5b5ebe 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/backup/SimpleBackupPurge.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/backup/SimpleBackupPurge.java @@ -16,6 +16,9 @@ package org.argeo.cms.internal.backup; import java.text.DateFormat; +import java.time.Period; +import java.time.ZoneId; +import java.time.ZonedDateTime; import java.util.Date; import java.util.SortedMap; import java.util.TreeMap; @@ -26,9 +29,7 @@ import org.apache.commons.vfs2.FileObject; import org.apache.commons.vfs2.FileSystemManager; import org.apache.commons.vfs2.FileSystemOptions; import org.apache.commons.vfs2.Selectors; -import org.argeo.ArgeoException; -import org.joda.time.DateTime; -import org.joda.time.Period; +import org.argeo.cms.CmsException; /** Simple backup purge which keeps backups only for a given number of days */ public class SimpleBackupPurge implements BackupPurge { @@ -37,14 +38,13 @@ public class SimpleBackupPurge implements BackupPurge { private Integer daysKept = 30; @Override - public void purge(FileSystemManager fileSystemManager, String base, - String name, DateFormat dateFormat, FileSystemOptions opts) { + public void purge(FileSystemManager fileSystemManager, String base, String name, DateFormat dateFormat, + FileSystemOptions opts) { try { - DateTime nowDt = new DateTime(); - FileObject baseFo = fileSystemManager.resolveFile( - base + '/' + name, opts); + ZonedDateTime nowDt = ZonedDateTime.now(); + FileObject baseFo = fileSystemManager.resolveFile(base + '/' + name, opts); - SortedMap toDelete = new TreeMap(); + SortedMap toDelete = new TreeMap(); int backupCount = 0; // make sure base dir exists @@ -55,9 +55,9 @@ public class SimpleBackupPurge implements BackupPurge { String backupName = backupFo.getName().getBaseName(); Date backupDate = dateFormat.parse(backupName); backupCount++; - - DateTime backupDt = new DateTime(backupDate.getTime()); - Period sinceThen = new Period(backupDt, nowDt); + ZonedDateTime backupDt = ZonedDateTime.ofInstant(backupDate.toInstant(), ZoneId.systemDefault()); + Period sinceThen = Period.between(backupDt.toLocalDate(), nowDt.toLocalDate()); + // new Period(backupDt, nowDt); int days = sinceThen.getDays(); // int days = sinceThen.getMinutes(); if (days > daysKept) { @@ -68,11 +68,9 @@ public class SimpleBackupPurge implements BackupPurge { if (toDelete.size() != 0 && toDelete.size() == backupCount) { // all backups would be deleted // but we want to keep at least one - DateTime lastBackupDt = toDelete.firstKey(); + ZonedDateTime lastBackupDt = toDelete.firstKey(); FileObject keptFo = toDelete.remove(lastBackupDt); - log.warn("Backup " + keptFo - + " kept although it is older than " + daysKept - + " days."); + log.warn("Backup " + keptFo + " kept although it is older than " + daysKept + " days."); } // delete old backups @@ -82,7 +80,7 @@ public class SimpleBackupPurge implements BackupPurge { log.debug("Deleted backup " + backupFo); } } catch (Exception e) { - throw new ArgeoException("Could not purge previous backups", e); + throw new CmsException("Could not purge previous backups", e); } }