From 9366f9c602aab6fdc088bb473ec2596c6935a032 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Fri, 22 Mar 2019 16:38:01 +0100 Subject: [PATCH] Auto-save plugin now works by periodically creating project backups in user\.diylc\autoSave directory and maintains file history, keeping the last X versions of the file. Maximum size for all backups is configurable and pre-set to 64MB --- diylc/diylc-library/lib/diylc-core.jar | Bin 277859 -> 277866 bytes diylc/diylc-swing/lib/diylc-core.jar | Bin 277859 -> 277866 bytes .../plugins/autosave/AutoSavePlugin.java | 145 ++++++++++-------- diylc/diylc-swing/update.xml | 4 + 4 files changed, 82 insertions(+), 67 deletions(-) diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 31ecf77d9ac5adb1ae34c35e1b30267af1ecb174..54ea4c0ebc66bdbf02940759cd34feff6bb0f48d 100644 GIT binary patch delta 27837 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⋘ayS(p{IG} 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 X!RCwN|2Vlrc_qPIDBreV?IZj@%m<1~ delta 27772 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 BVF3UD diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 31ecf77d9ac5adb1ae34c35e1b30267af1ecb174..54ea4c0ebc66bdbf02940759cd34feff6bb0f48d 100644 GIT binary patch delta 27837 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⋘ayS(p{IG} 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 X!RCwN|2Vlrc_qPIDBreV?IZj@%m<1~ delta 27772 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 BVF3UD diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java index e777c50c..41ecfead 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java @@ -21,86 +21,48 @@ */ package org.diylc.swing.plugins.autosave; -import java.io.File; -import java.util.Date; -import java.util.EnumSet; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -import javax.swing.SwingUtilities; - -import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.appframework.miscutils.Utils; -import org.diylc.common.EventType; -import org.diylc.common.IPlugIn; -import org.diylc.common.IPlugInPort; -import org.diylc.core.IView; -import org.diylc.presenter.Presenter; -import org.diylc.swing.gui.DummyView; +import java.io.File; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Arrays; +import java.util.Comparator; +import java.util.Date; +import java.util.EnumSet; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import org.apache.log4j.Logger; +import org.diylc.appframework.miscutils.Utils; +import org.diylc.common.EventType; +import org.diylc.common.IPlugIn; +import org.diylc.common.IPlugInPort; +import org.diylc.core.IView; public class AutoSavePlugin implements IPlugIn { - private static final String AUTO_SAVE_FILE_NAME = Utils.getUserDataDirectory("diylc") + "autoSave.diy"; + private static final String AUTO_SAVE_PATH = Utils.getUserDataDirectory("diylc") + "autoSave"; + + private static final Logger LOG = Logger.getLogger(AutoSavePlugin.class); - protected static final long autoSaveFrequency = 60 * 1000; + protected static final long autoSaveFrequencyMs = 60 * 1000; + protected static final int maxTotalSizeMb = 64; private ExecutorService executor; private IPlugInPort plugInPort; - private IView view; private long lastSave = 0; public AutoSavePlugin(IView view) { - this.view = view; executor = Executors.newSingleThreadExecutor(); } @Override public void connect(IPlugInPort plugInPort) { - this.plugInPort = plugInPort; - SwingUtilities.invokeLater(new Runnable() { - - @Override - public void run() { - boolean wasAbnormal = ConfigurationManager.getInstance().readBoolean(IPlugInPort.ABNORMAL_EXIT_KEY, false); - Date lastHeartbeat = (Date) ConfigurationManager.getInstance().readObject(IPlugInPort.HEARTBEAT, new Date()); - long msSinceHeartbeat = new Date().getTime() - lastHeartbeat.getTime(); - File autoSaved = new File(AUTO_SAVE_FILE_NAME); - if (autoSaved.exists()) - // try to figure out if another instance is running. Only pull auto-saved file if there's no recent heartbeat - if (wasAbnormal && msSinceHeartbeat > autoSaveFrequency) { - IPlugInPort testPresenter = new Presenter(new DummyView()); - testPresenter.loadProjectFromFile(AUTO_SAVE_FILE_NAME); - // Only prompt if there is something saved in the - // auto-saved file. - if (!testPresenter.getCurrentProject().getComponents().isEmpty()) { - int decision = - view.showConfirmDialog( - "It appears that application was not closed normally in the previous session. Do you want to open the last auto-saved file?", - "Auto-Save", IView.YES_NO_OPTION, IView.QUESTION_MESSAGE); - if (decision == IView.YES_OPTION) { - AutoSavePlugin.this.plugInPort.loadProjectFromFile(AUTO_SAVE_FILE_NAME); - } - } - } else - autoSaved.delete(); - // Set abnormal flag to true, GUI side of the app must flip to - // false when app closes regularly. - ConfigurationManager.getInstance().writeValue(IPlugInPort.ABNORMAL_EXIT_KEY, true); - } - }); - // write heartbeat periodically - new Thread(new Runnable() { - - @Override - public void run() { - try { - Thread.sleep(autoSaveFrequency); - } catch (InterruptedException e) { - } - ConfigurationManager.getInstance().writeValue(IPlugInPort.HEARTBEAT, new Date()); - } - }).start(); + this.plugInPort = plugInPort; + // create the directory if needed + File dir = new File(AUTO_SAVE_PATH); + if (!dir.exists()) + dir.mkdirs(); } @Override @@ -111,18 +73,67 @@ public class AutoSavePlugin implements IPlugIn { @Override public void processMessage(EventType eventType, Object... params) { if (eventType == EventType.PROJECT_MODIFIED) { - if (System.currentTimeMillis() - lastSave > autoSaveFrequency) { + if (System.currentTimeMillis() - lastSave > autoSaveFrequencyMs) { executor.execute(new Runnable() { @Override public void run() { Thread.currentThread().setPriority(Thread.MIN_PRIORITY); - lastSave = System.currentTimeMillis(); - plugInPort.saveProjectToFile(AUTO_SAVE_FILE_NAME, true); + lastSave = System.currentTimeMillis(); + String fileName = generateBackupFileName(plugInPort.getCurrentFileName()); + LOG.info("Creating backup file: " + fileName); + plugInPort.saveProjectToFile(fileName, true); + cleanupExtra(); } }); } } + } + + private String generateBackupFileName(String baseFileName) { + if (baseFileName == null) + baseFileName = "Untitled"; + File file = new File(baseFileName); + String name = file.getName(); + + // remove extension + if (name.toLowerCase().endsWith(".diy")) + name = name.substring(name.length() - 4); + + // append date and time + Date date = new Date(); + DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss"); + file = new File(AUTO_SAVE_PATH + File.separator + name + "." + dateFormat.format(date) + ".diy"); + // make sure that it doesn't already exist + int i = 2; + while (file.exists()) { + file = new File(AUTO_SAVE_PATH + File.separator + name + "." + dateFormat.format(date) + "-" + i + ".diy"); + i++; + } + return file.getAbsolutePath(); + } + + private void cleanupExtra() { + File[] files = new File(AUTO_SAVE_PATH).listFiles(); + // sort files by date + Arrays.sort(files, new Comparator() { + + @Override + public int compare(File o1, File o2) { + return new Long(o1.lastModified()).compareTo(o2.lastModified()); + } + }); + long totalSize = 0; + long maxTotalSize = maxTotalSizeMb * 1024 * 1024; + for (File f : files) + totalSize += f.length(); + int i = 0; + while (i < files.length && totalSize > maxTotalSize) { + totalSize -= files[i].length(); + LOG.info("Deleteting old backup file: " + files[i].getName()); + files[i].delete(); + i++; + } } } diff --git a/diylc/diylc-swing/update.xml b/diylc/diylc-swing/update.xml index a7cf1f65..67815ffd 100644 --- a/diylc/diylc-swing/update.xml +++ b/diylc/diylc-swing/update.xml @@ -2633,6 +2633,10 @@ NEW_FEATURE Added an optional third control point to leaded components and some schematic symbols that can be used to set component label position. This feature is off by default to keep things backwards compatible and is driven by "Movable Label" property + + + NEW_FEATURE + Auto-save plugin now works by periodically creating project backups in user\.diylc\autoSave directory and maintains file history, keeping the last X versions of the file. Maximum size for all backups is configurable and pre-set to 64MB IMPROVEMENT