-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/tushev/aojdk-updatewatcher
- Loading branch information
Showing
6 changed files
with
215 additions
and
138 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
--- | ||
name: Bug report | ||
about: It seems that I found an error | ||
title: '' | ||
labels: '' | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Describe the bug** | ||
A clear and concise description of what the bug is. | ||
|
||
**I'm sure that it's not a 'known-not-a-bug'** | ||
**See**: https://github.com/tushev/aojdk-updatewatcher/wiki/Known-not-a-bugs | ||
[X] Yes | ||
|
||
**To Reproduce** | ||
Steps to reproduce the behavior: | ||
1. Go to '...' | ||
2. Click on '....' | ||
3. Scroll down to '....' | ||
4. See error | ||
|
||
**Expected behavior** | ||
A clear and concise description of what you expected to happen. | ||
|
||
**Screenshots** | ||
If applicable, add screenshots to help explain your problem. | ||
|
||
**Desktop (please complete the following information):** | ||
- App Version [e.g. 2.0.0.0] | ||
|
||
|
||
**Additional context** | ||
Add any other context about the problem here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
--- | ||
name: Custom issue template | ||
about: Describe this issue template's purpose here. | ||
title: '' | ||
labels: '' | ||
assignees: '' | ||
|
||
--- | ||
|
||
**I'm sure that it's not a 'known-not-a-bug'** | ||
**See**: https://github.com/tushev/aojdk-updatewatcher/wiki/Known-not-a-bugs | ||
[X] Yes | ||
|
||
## | ||
I would like to ... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
--- | ||
name: Feature request | ||
about: Suggest an idea for this project | ||
title: '' | ||
labels: '' | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Is your feature request related to a problem? Please describe.** | ||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] | ||
|
||
**I'm sure that it's not a 'known-not-a-bug'** | ||
**See**: https://github.com/tushev/aojdk-updatewatcher/wiki/Known-not-a-bugs | ||
[X] Yes | ||
|
||
**Describe the solution you'd like** | ||
A clear and concise description of what you want to happen. | ||
|
||
**Describe alternatives you've considered** | ||
A clear and concise description of any alternative solutions or features you've considered. | ||
|
||
**Additional context** | ||
Add any other context or screenshots about the feature request here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,61 +1,103 @@ | ||
# AdoptOpenJDK Update Watcher | ||
Automatic update tool for AdoptOpenJDK releases | ||
![Update Dialog](/docs/v1/update_dialog.png?raw=true) | ||
![Config Dialog](/docs/v1/config_dialog.png?raw=true) | ||
|
||
When this app launches, it gets version from **'release'** file in your local installation of OpenJDK. | ||
Then it queries AdoptOpenJDK API to check if there is a version newer than yours. | ||
# Update Watcher for AdoptOpenJDK [![CodeFactor](https://www.codefactor.io/repository/github/tushev/aojdk-updatewatcher/badge)](https://www.codefactor.io/repository/github/tushev/aojdk-updatewatcher)[¹](#-codestyle) | ||
[![GitHub license](https://img.shields.io/github/license/tushev/aojdk-updatewatcher)](https://github.com/tushev/aojdk-updatewatcher/blob/master/LICENSE.txt) | ||
[![Maintenance](https://img.shields.io/badge/maintained%3F-yes-brightgreen.svg)](https://GitHub.com/tushev/aojdk-updatewatcher/graphs/commit-activity) | ||
![Language](https://img.shields.io/badge/lang-c%23-blue) | ||
[![GitHub release](https://img.shields.io/github/release/tushev/aojdk-updatewatcher.svg)](https://GitHub.com/tushev/aojdk-updatewatcher/releases/) | ||
[![Github all releases](https://img.shields.io/github/downloads/tushev/aojdk-updatewatcher/total.svg)](https://GitHub.com/tushev/aojdk-updatewatcher/releases/) | ||
|
||
Automatic update tool for AdoptOpenJDK releases [Download](#download) | ||
|
||
## 💡 Key ideas | ||
|
||
* The updater tries to list all AdoptOpenJDK installations on your machine - automatically | ||
* Every time it launches (i.e., scheduled on logon), it checks for updates in background | ||
* If there are new versions, you will be notified | ||
* **For advanced users:** It also provides a lot of manual controls - but they require some fine-tuning. Just read the tooltips, there are tons of them. | ||
|
||
|
||
![Update Dialog](/docs/update_dialog_838.gif?raw=true) | ||
![Config Dialog](/docs/config_dialog.png?raw=true) | ||
|
||
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 you have explicitly called it by the corresponding shortcut. | ||
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 best 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. | ||
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.0 | ||
* Support for multiple AdoptOpenJDK installations | ||
* Redesigned UI/UX | ||
* App warns if `N` last *consecutive* 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# + WPF, because I am not a Java developer xD | ||
|
||
## ℹ Requirements | ||
Ironically, this tool is written in C# 6 + WPF, because I am not a Java developer xD | ||
* Windows 10 _(earlier versions are likely to work as well, but I did not test that)_ | ||
* .NET Framework 4.7.2 _(the installer will do it for you)_ | ||
|
||
## Download | ||
[Latest release](https://github.com/tushev/aojdk-updatewatcher/releases) | ||
## 📩 Download | ||
There's a built-in update mechanism. | ||
### 👉 [Download version 2](https://github.com/tushev/aojdk-updatewatcher/releases) 👈 | ||
### If you find this app useful, stars are appreciated :) [![GitHub stars](https://img.shields.io/github/stars/tushev/aojdk-updatewatcher.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/tushev/aojdk-updatewatcher/stargazers/) | ||
* ❓ [Read the wiki](https://github.com/tushev/aojdk-updatewatcher/wiki) | ||
|
||
|
||
There's a built-in update mechanism. | ||
|
||
## Installation & configuration | ||
* Run the downloaded installer | ||
* Run the app _(make sure you are connected to the internet)_ | ||
* Set the location where the app will be looking for JDK/JRE. This may be **JAVA_HOME** environment variable _(queried at the time of check for an update)_ or a pre-defined directory | ||
* Set **Release**, **JVM Implementation** and **JVM Image type**. If not sure, read provided hints or use default values. | ||
* It is recommended to 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)._ | ||
![First Run](/docs/v1/first_run.png?raw=true) | ||
* If you don't have JDK/JRE installed, click on **Open 'new version available' dialog** and the app will download and install it for you. | ||
* I recommend turning on _JAVA_HOME feature_ during setup. | ||
|
||
## 🛠 Installation & configuration | ||
0. Run the downloaded installer and run the app _(internet connection highly recommended on first run :)_ | ||
1. **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)_. | ||
2. **Turn on automatic discovery of AdoptOpenJDK installations**. | ||
> Please note that only MSI-installed JDKs/JREs can be discovered (because only MSIs add corresponding registry keys automatically) | ||
**That's all!** | ||
![First Run](https://raw.githubusercontent.com/tushev/aojdk-updatewatcher/master/docs/first_run_config_example_cut.gif) | ||
|
||
## Philosophy | ||
* This app is silent during backround checks. If there is a problem connecting to the internet or AdoptOpenJDK API does not respond, it will be silent. There's nothing more annoyuing than suddenly rising error messages from nowhere. | ||
## | ||
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](/docs/first_run.png?raw=true) | ||
![Download and install new instance from the web](/docs/download_new_1.png?raw=true) | ||
|
||
## 💡 Philosophy | ||
* This app is silent during background checks. If there is a problem connecting to the internet or AdoptOpenJDK API does not respond, it will be silent, unless `N` *consecutive* update checks were unsuccessful *(default N=10)* | ||
* However, it will not be silent in UI. | ||
* There are some Easter Eggs in UI. | ||
* I'm not going to actively develop this app, it's mostly 'fire-and-forget' thing. However, some functionality may be added in future, there's a built-in update mechanism. | ||
|
||
## Disclaimer | ||
The author does not provide any support related to AdoptOpenJDK or OpenJDK. | ||
For support, please visit their corresponding websites. | ||
## ℹ Disclaimer | ||
The author does not provide any support related to AdoptOpenJDK. | ||
|
||
The author is not affiliated with or endorsed by AdoptOpenJDK or OpenJDK projects. | ||
'AdoptOpenJDK' part of the name is used on fair use conditions, as this app works with AdoptOpenJDK releases. | ||
For support, please visit https://github.com/AdoptOpenJDK/openjdk-support/issues or their corresponding website - https://adoptopenjdk.net | ||
|
||
**THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,** | ||
**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. | ||
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. | ||
'AdoptOpenJDK' part of the name is used on fair use conditions, as this app updates AdoptOpenJDK releases. | ||
|
||
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. | ||
Other names may be trademarks of their respective owners. | ||
|
||
## ⚖ License: MIT | ||
|
||
## 💻 Codestyle | ||
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. | ||
|
||
## License: MIT | ||
[![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. | ||
|
||
## Codestyle | ||
Please don't judge my coding style by this project, as I developed this app in less than a working day. It just works :) | ||
|
||
## 🔕 Known not-a-bugs | ||
* **JAVA_HOME** value is updated when the *app is launched* (either in configuration mode or during background check). If you change JAVA_HOME value while running configuration screen, the value will not be updated in the app. However, you can close the configuration window safely: when the next background check occurs, actual value of JAVA_HOME at that time will be used | ||
* ⚠ Please keep in mind that if **JAVA_HOME** installation significantly changes (i.e., 8 → 11, or JRE → JDK), you should update API parameters manually _(because the app cannot decide whether this is intended or not)._<br> You can use `Detect (reset) API settings for selected` button to do it. | ||
* If the configuration app **continiously** reminds you to turn on scheduled task (even if you opted out before), this happens because you have not either added some installations manually, or turned auto-discovery on. Once you set at least one of these, the app will consider itself as 'configured' and will remember your opt-out. | ||
* For **manually** added installations that were released prior to Sep 16 2020, it may be not always possible to detect build number. **Thus you may miss an update**, say, from `8.0.265+1` to `8.0.265+2` - but only for manually added installations _(custom path or JAVA_HOME)_. **It is highly recommended to use automatic discovery** (which detects build numbers) for releases downloaded and installed prior to 16 September 2020. | ||
|
||
## Known not-a-bugs | ||
* JAVA_HOME value is updated when the app is launched. If you changed its value while running configuration screen, the value will not be updated in the app. However, you can close the configuration window safely: when the next backround check occurs, actual value of JAVA_HOME at that time will be used | ||
* If the configuration app **continiously** reminds you to turn on scheduled task, this happens because you have not specified your local installation of JDK/JRE and *Release*, *JVM Implementation* and *JVM Image* to watch for. Once you set these, the app will consider itself as 'configured' and will remember your choice. | ||
[See all 🔕 Known not-a-bugs](https://github.com/tushev/aojdk-updatewatcher/wiki/Known-not-a-bugs) |
Oops, something went wrong.