tushev / aojdk-updatewatcher

Automatic update tool for AdoptOpenJDK, Eclipse Temurin™ and/or IBM® Semeru® Open Edition releases
https://github.com/tushev/aojdk-updatewatcher/wiki
MIT License
122 stars 2 forks source link
adoptium adoptopenjdk adoptopenjdk-api adoptopenjdk-releases adoptopenjdk-updates openjdk semeru update update-checker updater

Update Watcher for AdoptOpenJDK *                  CodeFactor¹

GitHub license Maintenance Language GitHub release Github all releases FOSSA Status

Automatic update tool for Eclipse Temurin™, IBM® Semeru® Open Edition                                     ⬇ Download
and AdoptOpenJDK releases

ℹ The AdoptOpenJDK project is moving to the Eclipse Foundation

Please check Eclipse Adoptium Slack for more information about the transition or Adoptium project in general.
Please do not hesitate to open an issue if you've encountered a problem with the updater or have a suggestion.

💡 Key ideas

Update Dialog Config Dialog

When this app launches, it gets versions for your local installations of JDK/JRE (either from Windows Registry or from release file). Then it queries AdoptOpenJDK API to check if there are versions newer than yours. If there is, you will be notified. Otherwise app quits without showing any windows or alerts.

Configuration window will appear only on first run or if something goes wrong or if you have explicitly called it by the corresponding shortcut (or -config argument).

This app is designed to run on Windows startup. I recommend to turn on Check for AdoptOpenJDK updates on Logon setting in configuration. If you want another schedule, turn this on and press Edit task to configure it as desired.

🔃 New in v. 2.0.5:

Changelog:

New in v. 2.0.4 ### 🔃 New in v. 2.0.4: * Fix for recent changes in Temurin that affected auto-detection: * Added "Eclipse Adoptium" registry root (thanks to @mcpower for #35 !) * Added more supported values to `IMPLEMENTOR` field in `RELEASE` file * Updated dependencies
New in v. 2.0.4 ### 🔃 New in v. 2.0.3: * Adds support for Eclipse Temurin™ and IBM® Semeru® Open Edition builds, especially auto-detection (#28) * NEW! The updater detects whether the old installation was not removed during the update (can be caused by 4-th digit MSI updates, vendor change etc) and suggests to disable checking for updates for that entry. Fixes #9 :) * Makes **skip release** functionality more easy-to-find - this may be useful in case you encounter an update loop. * If MSI's installation process was cancelled or interrupted, the corresponding entry will remain in 'New versions available' window * Bugfix for version comparison algorithm (versions with the same MSI revisions could be compared incorrectly) * Release name and vendor are now available in the UI (update dialog) * Improved auto-detection algorithms * Updated dependencies * Added 'Open in Explorer' context menu: ![image](https://user-images.githubusercontent.com/18406797/128934782-ff6f450c-9975-4157-88a5-e14fcfb66b69.png)
New in v. 2.0.2 ### 🔃 New in v. 2.0.2: * **UX: Easily override any auto-discovered instance with context menu**. Disabling an auto-discovered instance is way simpler now. * **Proxy support**: AJUpdateWatcher now uses HTTP proxy - if it is configured in Windows **Settings**. * 'Immediate check' shortcut now performs check with GUI * Improved command line handling * Other minor changes and fixes, updated dependencies
New in v. 2.0.1 ### 🔃 New in v. 2.0.1: * Added support for recently introduced changes in AdoptOpenJDK API and versioning scheme. This allows to receive `patch` and `AdoptBuild` updates for AdoptOpenJDK. * Switched to [MSI](https://github.com/tushev/aojdk-updatewatcher/wiki/MSI-Installation) for installers. *No more false positives on VirusTotal!* * Added support for post-install scripts/triggers (#5). * Redesigned self-update UI, added an option to view new release name *(+ release notes on hover)* * Added [many new command line arguments](https://github.com/tushev/aojdk-updatewatcher/wiki/Command-Line-Arguments) * Added .cmd file to open Configuration for installer-free version (#4) * Fix for a bug during background check when autodiscovery was set to off * Other minor changes and fixes
New in v. 2.0.0 ### 🔃 New in v. 2.0.0: * Support for multiple AdoptOpenJDK installations * Automatic discovery of installations via Windows Registry * Redesigned UI/UX * App warns if `N` last *consecutive* background update checks were unsuccessful *(default N=10)* * Limited support for `Most recent`/ `Most recent LTS` options * Other improvements, perfomance optimisations etc.

ℹ Requirements

Ironically, this tool is written in C# 6 + WPF, because I am not a Java developer xD

📩 Download

There's a built-in update mechanism.

👉 📥 Download version 2.0.5 👈 from here OR install using winget:

winget install ajupdatewatcher

If you find this app useful, stars are appreciated :) GitHub stars

🛠 Installation & configuration

  1. Run the downloaded installer and run the app (internet connection highly recommended on first run :)
  2. Turn on Check for AdoptOpenJDK updates on Logon. (If you want another schedule, turn this on and press Edit task to configure it as desired).
  3. Turn on automatic discovery of AdoptOpenJDK installations.

    👉 Please note that only MSI-installed JDKs/JREs can be discovered automatically (because only MSIs add corresponding registry keys automatically). ZIP-extracted JDKs/JREs or very old MSIs cannot be autodiscovered.

    That's all! First Run

If you don't have any JDKs/JREs installed, click on Download and install new instance from the web and the app will download and install them for you:

First Run Download and install new instance from the web

💡 Philosophy

ℹ Disclaimer

The author does not provide any support related to AdoptOpenJDK / Eclipse Temurin™ / IBM® Semeru® Open Edition.

For support, please visit their corresponding websites: https://adoptopenjdk.net / https://adoptium.net / https://developer.ibm.com/languages/java/semeru-runtimes/

⚠ This (independent) software does not GUARANTEE that you will always get the lastest version of AdoptOpenJDK, Eclipse Temurin™ and/or IBM® Semeru® Open Edition.
Normally, everything works OK, and you get timely updates.
However, if something breaks or changes in AdoptOpenJDK API (api.adoptopenjdk.net), then you may or may not get the latest version.
No warranties provided (see LICENSE), use at your own risk.

THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

The author is not affiliated with or endorsed by AdoptOpenJDK project, Eclipse.org Foundation, Inc. and/or IBM Corporation.
'AdoptOpenJDK' part of the name is used on fair use conditions, as this app uses AdoptOpenJDK API for updating AdoptOpenJDK releases & its successors.

Java™ and OpenJDK™ are trademarks or registered trademarks of Oracle and/or its affiliates.
Eclipse™ and Eclipse Temurin™ are trademarks of Eclipse Foundation, Inc.
IBM® and IBM® Semeru® are registered trademarks of IBM Corporation in the United States, other countries, or both.
Other names may be trademarks of their respective owners.

⚖ License: MIT

FOSSA Status

💻 Codestyle

📝 Codestyle notes v.1.0: Please don't judge my coding style by this project, as I developed this app in less than a working day. It just works :) v.2.0: The app was refactored. However, some codestyle issues still remain - for a single-person-maintained project, they are not a major issue. My top priority is app stability and robustness. [![CodeFactor](https://www.codefactor.io/repository/github/tushev/aojdk-updatewatcher/badge)](https://www.codefactor.io/repository/github/tushev/aojdk-updatewatcher) (`¹`) Please note that _blank-line related rules_ such as `The code must not contain multiple blank lines in a row.`, `A closing curly bracket must not be preceded by a blank line.`, `An opening curly bracket must not be followed by a blank line` etc **are disabled** in CodeFactor.

🔕 Known not-a-bugs

See all 🔕 Known not-a-bugs