1 package fr.ifremer.tutti.ui.swing.update.module;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import fr.ifremer.tutti.TuttiConfiguration;
28 import fr.ifremer.tutti.TuttiConfigurationOption;
29 import fr.ifremer.tutti.ui.swing.TuttiUIContext;
30 import fr.ifremer.tutti.ui.swing.updater.UpdateModule;
31 import org.apache.commons.logging.Log;
32 import org.apache.commons.logging.LogFactory;
33 import org.nuiton.jaxx.application.ApplicationIOUtil;
34 import org.nuiton.updater.ApplicationInfo;
35 import org.nuiton.version.Version;
36 import org.nuiton.version.Versions;
37
38 import java.io.File;
39
40 import static org.nuiton.i18n.I18n.t;
41
42
43
44
45
46
47
48 public class TuttiModuleUpdater extends ModuleUpdaterSupport {
49
50
51 private static final Log log = LogFactory.getLog(TuttiModuleUpdater.class);
52
53 public TuttiModuleUpdater() {
54 super(UpdateModule.tutti);
55 }
56
57 @Override
58 protected void onUpdateToDo(TuttiUIContext context, ApplicationInfo info) {
59
60 if (info != null) {
61 if (log.isInfoEnabled()) {
62 log.info("Find a updatable module : " + updateModule);
63 }
64 }
65 }
66
67 @Override
68 public void onUpdateDone(TuttiUIContext context, ApplicationInfo info) {
69
70 if (log.isInfoEnabled()) {
71 log.info(String.format(
72 "A tutti update was downloaded (oldVersion: %s, newVersion: %s), will restart application to use it",
73 info.oldVersion, info.newVersion));
74 }
75
76 TuttiConfiguration config = context.getConfig();
77
78
79 File cacheDirectory = config.getCacheDirectory();
80 ApplicationIOUtil.forceDeleteOnExit(
81 cacheDirectory,
82 t("tutti.applicationUpdater.updateDone.deleteDirectory.caches.error", cacheDirectory)
83 );
84
85 Version oldVersion = Versions.valueOf(info.oldVersion);
86
87 if (config.isFullLaunchMode() && oldVersion.before(Versions.valueOf("3.7.1"))) {
88
89
90 if (log.isInfoEnabled()) {
91 log.info("Remove from configuration tutti.update.application.url: " + config.getUpdateApplicationUrl());
92 }
93 config.getApplicationConfig().setOption(TuttiConfigurationOption.UPDATE_APPLICATION_URL.getKey(), "");
94 config.save();
95
96 }
97
98 }
99
100 @Override
101 public String getLabel() {
102 return t("tutti.update.tutti");
103 }
104
105 }