ImageJUpdater imagej-ui-swing 0.22.0, imagej-updater 0.9.3 (simplified) ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │ImageJUpdater│ │AvailableSites│ │XMLFileReader│ └──────┬──────┘ └───────┬──────┘ └──────┬──────┘ │────┐ │ │ │ │ some prep checks │ │ │<───┘ │ │ │ │ │ │ │ │ create│ ┌───────────────┐ │ │────────────────────────────────────────────────────────────> │FilesCollection│ │ │ │ └───────┬───────┘ │ │ initializeAndAddSites ┌┴┐ │ │ │──────────────────────────────> │ │ ────┐ │ │ │ │ │ │ initializeSites │ │ │ │ │ <───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ────┐ │ │ │ │ │ │ create main update site │ │ │ │ │ <───┘ │ │ │ │ │ │ │ │ │┌┴┐ ────┐ │ │ │ ││ │ │ getAvailableSites │ │ │ ││ │ <───┘ │ │ │ ││ │ │ │ │ ││ │ │ │ │ ││ │ ─ ─ ┐ │ │ │ ││ │ | sites │ │ │ ││ │ < ─ ┘ │ │ │ ││ │ │ │ │ ╔═══════╤════════╪╪═╪══════════════════════════════════╪═════════════════╗ │ │ ║ LOOP │ over initialized sites │ ║ │ │ ╟───────┘ ││ │ │ ║ │ │ ║ ││ │ if new, addUpdateSite │ ║ │ │ ║ ││ │ ────────────────────────────────>│ ║ │ │ ╚════════════════╪╪═╪══════════════════════════════════╪═════════════════╝ │ │ │└┬┘ │ │ │ │ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ │ │ │ │ │ │ downloadIndexAndChecksum ┌┴┐ │ │───────────────────────────────────────────────────────────────────> │ │ │ │ │ │ │ │ │ │ │ │ │ │ read │ │ │ │ │ │ ───────────────────────────────────────────────────────────> │ │ │ │ │ │ │ │ │ │ │ addUpdateSite (match by name, override if already existing)│ │ │ │ │ │ <─────────────────────────────────────────────────────────── │ │ │ │ │ │ │ │ │ │ │ ────┐ │ │ │ │ │ │ │ get updates │ │ │ │ │ │ <───┘ │ │ │ │ └┬┘ │ │ │ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ │ │ │ │────┐ │ │ │ │ │ │ handle warnings, conflicts│ │ │ │ │<───┘ │ │ │ │ ┌──────┴──────┐ ┌──────│ │─────┐ ┌───────┴───────┐ ┌──────┴──────┐ │ImageJUpdater│ │Availa│ │Sites│ │FilesCollection│ │XMLFileReader│ └─────────────┘ └──────│ │─────┘ └───────────────┘ └─────────────┘ └┬┘