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│ └─────────────┘ └──────│ │─────┘ └───────────────┘ └─────────────┘ └┬┘