UpdaterV1

Revision as of 14:41, 28 May 2019 by Frauzufall (talk | contribs) (Created page with "= Updater V1 technical details = I'll use this page to document the changes made to the ImageJ Updater in the about to be released version called V1. == What's different ==...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Updater V1 technical details

I'll use this page to document the changes made to the ImageJ Updater in the about to be released version called V1.

What's different

  • Added a check whether Java supports the HTTPS certificate of the imagej.net server
  • Depending on what's supported, the updater will use HTTPS or HTTP links for the update sites on imagej.net (and throw a warning in case HTTPS is not supported)
  • Uploading via HTTPS is working now, both basic and digest authentication supported
  • The updater is smarter about updating URLs of official sites (= listed on the list of available update sites) in case they change remotely
  • There is an interface to review updates to the URLs of active update sites

Update Check on Startup [src]

     ┌────────────────────┐          ┌───────────────┐          ┌────────┐                                           ┌────────────┐          ┌──────────────┐
     │DefaultUpdateService│          │CheckForUpdates│          │UpToDate│                                           │ProtocolUtil│          │AvailableSites│
     └─────────┬──────────┘          └───────┬───────┘          └───┬────┘                                           └─────┬──────┘          └──────┬───────┘
               │             run             │                      │                                                      │                        │        
               │ ───────────────────────────>│                      │                                                      │                        │        
               │                             │                      │                                                      │                        │        
               │                             │       check         ┌┴┐                                                     │                        │        
               │                             │────────────────────>│ │                                                     │                        │        
               │                             │                     │ │                                                     │                        │        
               │                             │                     │ │────┐                                                │                        │        
               │                             │                     │ │    │ neverRemind                                    │                        │        
               │                             │                     │ │<───┘                                                │                        │        
               │                             │                     │ │                                                     │                        │        
               │                             │  CHECK_TURNED_OFF   │ │                                                     │                        │        
               │                             │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │                                                     │                        │        
               │                             │                     │ │                                                     │                        │        
               │                             │                     │ │────┐                                                │                        │        
               │                             │                     │ │    │ shouldRemindLater                              │                        │        
               │                             │                     │ │<───┘                                                │                        │        
               │                             │                     │ │                                                     │                        │        
               │                             │    REMIND_LATER     │ │                                                     │                        │        
               │                             │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │                                                     │                        │        
               │                             │                     │ │                                                     │                        │        
               │                             │                     │ │────┐                                                │                        │        
               │                             │                     │ │    │ canWrite                                       │                        │        
               │                             │                     │ │<───┘                                                │                        │        
               │                             │                     │ │                                                     │                        │        
               │                             │     READ_ONLY       │ │                                                     │                        │        
               │                             │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │                                                     │                        │        
               │                             │                     │ │                                                     │                        │        
               │                             │                     │ │────┐                                                │                        │        
               │                             │                     │ │    │ isProtectedLocation                            │                        │        
               │                             │                     │ │<───┘                                                │                        │        
               │                             │                     │ │                                                     │                        │        
               │                             │ PROTECTED_LOCATION  │ │                                                     │                        │        
               │                             │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │                                                     │                        │        
               │                             │                     │ │                                                     │                        │        
               │                             │                     │ │────┐                                                │                        │        
               │                             │                     │ │    │ isDeveloper                                    │                        │        
               │                             │                     │ │<───┘                                                │                        │        
               │                             │                     │ │                                                     │                        │        
               │                             │     DEVELOPER       │ │                                                     │                        │        
               │                             │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │                                                     │                        │        
               │                             │                     │ │                                                     │                        │        
               │                             │                     │ │────┐                                                │                        │        
               │                             │                     │ │    │ haveNetworkConnection                          │                        │        
               │                             │                     │ │<───┘                                                │                        │        
               │                             │                     │ │                                                     │                        │        
               │                             │      OFFLINE        │ │                                                     │                        │        
               │                             │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │                            │                        │                        │        
               │                             │                     │ │                            │                        │                        │        
               │                             │                     │ │       create       ┌───────────────┐                │                        │        
               │                             │                     │ │ ──────────────────>│FilesCollection│                │                        │        
               │                             │                     │ │                    └───────┬───────┘                │                        │        
               │                             │                     │ │            read            │                        │                        │        
               │                             │                     │ │ ──────────────────────────>│                        │                        │        
               │                             │                     │ │                            │                        │                        │        
               │                             │                     │ │                  checkHTTPSSupport                  │                        │        
               │                             │                     │ │ ────────────────────────────────────────────────────>                        │        
               │                             │                     │ │                            │                        │                        │        
               │                             │                     │ │                            hasUpdateSiteURLUpdates  │                        │        
               │                             │                     │ │ ─────────────────────────────────────────────────────────────────────────────>        
               │                             │                     └┬┘                            │                        │                        │        
               │                             │     UPDATEABLE       │                             │                        │                        │        
               │                             │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│                             │                        │                        │        
     ┌─────────┴──────────┐          ┌───────┴───────┐          ┌───┴────┐                ┌───────┴───────┐          ┌─────┴──────┐          ┌──────┴───────┐
     │DefaultUpdateService│          │CheckForUpdates│          │UpToDate│                │FilesCollection│          │ProtocolUtil│          │AvailableSites│
     └────────────────────┘          └───────────────┘          └────────┘                └───────────────┘          └────────────┘          └──────────────┘

Manually add update site and edit URL [src]

                                                                                            
     ┌───────────┐          ┌───────────────┐                                               
     │SitesDialog│          │FilesCollection│                                               
     └─────┬─────┘          └───────┬───────┘                                               
           │     addUpdateSite      │                                                       
           │───────────────────────>│                       │                               
           │                        │                       │                               
           │                        │     create       ┌──────────┐                         
           │                        │────────────────> │UpdateSite│                 │       
           │                        │                  └────┬─────┘                 │       
           │                        │                       │     create     ┌─────────────┐
           │                        │                       │ ──────────────>│UpdateSiteURL│
           │                        │                       │                └──────┬──────┘
           │                    setURL                      │                       │       
           │───────────────────────────────────────────────>│                       │       
           │                        │                       │                       │       
           │                        │                       │     setDefaultURL     │       
           │                        │                       │ ─────────────────────>│       
           │                        │                       │                       │       
           │                    getURL                      │                       │       
           │───────────────────────────────────────────────>│                       │       
           │                        │                       │                       │       
           │                        │                       │     getDefaultURL     │       
           │                        │                       │ ─────────────────────>│       
           │                        │                       │                       │       
           │                        │     defaultURL        │                       │       
           │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│       
     ┌─────┴─────┐          ┌───────┴───────┐          ┌────┴─────┐          ┌──────┴──────┐
     │SitesDialog│          │FilesCollection│          │UpdateSite│          │UpdateSiteURL│
     └───────────┘          └───────────────┘          └──────────┘          └─────────────┘


Relevant PRs / issues