|
@@ -21,6 +21,29 @@
|
21
|
21
|
*/
|
22
|
22
|
|
23
|
23
|
/**
|
24
|
|
- * DMDirc automated updates.
|
|
24
|
+ * DMDirc's automatic updater. The {@link UpdateChecker} periodically sends
|
|
25
|
+ * a list of all enabled {@link UpdateComponent}s to the DMDirc website
|
|
26
|
+ * (using the domain updates.dmdirc.com). The website then replies with a
|
|
27
|
+ * message saying whether each component is out of date, up to date, or not
|
|
28
|
+ * known.
|
|
29
|
+ *
|
|
30
|
+ * For each update that is available, the {@link UpdateChecker} creates
|
|
31
|
+ * a new {@link Update} instance, which is responsible for parsing the full
|
|
32
|
+ * response from the DMDirc website.
|
|
33
|
+ *
|
|
34
|
+ * The status of the {@link UpdateChecker} can be monitored by registering a
|
|
35
|
+ * {@link UpdateCheckerListener} with it. This enables, for example, UI
|
|
36
|
+ * components to notify the user when updates are available. Such components
|
|
37
|
+ * can then remove certain updates (by calling
|
|
38
|
+ * {@link UpdateChecker#removeUpdate(Update)}), and have the
|
|
39
|
+ * {@link UpdateChecker} apply the updates by calling
|
|
40
|
+ * {@link UpdateChecker#applyUpdates()}.
|
|
41
|
+ *
|
|
42
|
+ * Internally, when applying updates, the {@link UpdateChecker} calls the
|
|
43
|
+ * {@link Update#doUpdate()} method on each relevant {@link Update}, which
|
|
44
|
+ * downloads the required files to a temporary location, and then has the
|
|
45
|
+ * relevant {@link UpdateComponent} perform the installation. During this time,
|
|
46
|
+ * the {@link Update} can be monitored by registering an {@link UpdateListener}
|
|
47
|
+ * with it.
|
25
|
48
|
*/
|
26
|
49
|
package com.dmdirc.updater;
|