ImageJUpdater imagej-ui-swing 0.22.0, imagej-updater 0.9.3 (simplified) ┌─────────────┐ ┌──────────────┐ ┌───────────────┐ ┌─────────────┐ │ImageJUpdater│ │AvailableSites│ │FilesCollection│ │XMLFileReader│ └──────┬──────┘ └───────┬──────┘ └───────┬───────┘ └──────┬──────┘ │────┐ │ │ │ │ │ some prep checks │ │ │ │<───┘ │ │ │ │ create │ │ │───────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ 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│ │AvailableSites│ │FilesCollection│ │XMLFileReader│ └─────────────┘ └──────────────┘ └───────────────┘ └─────────────┘