Commit Graph

201 Commits

Author SHA1 Message Date
Michael Bayne 5917ce9329 Merge pull request #99 from tschulte/issue-94
make ucode with pack.gz work again
2018-05-11 18:30:13 -07:00
Michael Bayne 5a3e1d71bd Merge pull request #98 from tschulte/issue-93
change default Java version regex
2018-05-11 18:29:10 -07:00
Tobias Schulte 44e45cb701 set window to decorated even if error occurs during very early stage
When the window is undecorated and an error occurs very early, e.g. during
java version check, the order of the calls in the fail method is
significant. super.fail() will call setStatusAsync, which will create
the interface using EventQueue.invokeLater, if it does not exist yet.

Therefore we must first call super.fail(), and then asynchronously make
the window decorated again. Otherwise the window might not be created yet.

Closes #57
2018-05-04 09:26:59 +02:00
Tobias Schulte d64bd1c1af allow transparent splash screens
When defining a background color, it is now possible to define an alpha
value as most significant byte. E.g. `80FF0000` would define a half
transparent red background. This only works in combination with
`ui.hide_decorations = true`.

Closes #92
2018-05-04 09:26:52 +02:00
Tobias Schulte 8d57dfe1e4 make ucode with pack.gz work again
Closes #94
2018-05-04 09:12:49 +02:00
Tobias Schulte cf77b72235 change default Java version regex
Closes #93
2018-05-04 09:12:17 +02:00
Michael Bayne 5cc23397cd Use correct sig algorithm for each digest version.
Fixes #91.
2018-04-23 19:14:12 -07:00
Michael Bayne 16d8f08518 Delete harder, with a vengeance.
See comment in FileUtil.deleteHarder for rationale.
2018-04-10 12:04:38 -07:00
Michael Bayne c26f5a2468 Shutdown digester thread pool when done.
Closes #89.
2017-12-11 10:09:31 -08:00
Michael Bayne 0fd022d9cc Fix issues with installation and unpacking.
When the resource installation phase was added (downloading to _new files and
then moving them over top of the originals once they were validated), this
broke handling of unpacked resources.

Because we don't explicitly track whether a given version of a resource has
been unpacked (would be tricky) we try to piggy back on the download validation
process. But we validate before we install and we need to unpack after we
install, so for resources that are to be installed, we now also unpack and mark
as valid after the install is complete.

Closes #88.
2017-11-17 15:07:26 -08:00
Michael Bayne 065728276f Move unpackJar into Getdown's FileUtil.
Convert unpackJar and unpackPackedJar200 to throwing exceptions on failure
instead of catching, logging and returning booleans.
2017-11-17 14:59:12 -08:00
Michael Bayne 5925a6b57c Move noInstall() check into install(). 2017-11-17 13:59:17 -08:00
Michael Bayne 3b3e8be165 Order logic a little less weirdly. 2017-11-17 13:57:46 -08:00
Michael Bayne 9e95ef3ea2 Apply connect and read timeouts uniformly.
Also use a 5 second connect/read timeout when detecting a proxy, to avoid
lengthy stalls.
2017-10-23 18:13:19 -07:00
Michael Bayne 167ea2c5d5 Use some diamond operators just for kicks. 2017-09-17 10:31:58 -07:00
Michael Bayne 93f313c1d8 Fix Javadoc. 2017-09-17 10:11:41 -07:00
Michael Bayne 1f919ca9c9 Parallelize digest(2).txt computation.
Ad-hoc test on MBP with four-core i7 takes us from:

digest.txt: Computed digests [rsrcs=344, time=1055ms]
digest2.txt: Computed digests [rsrcs=344, time=2068ms]

to

digest.txt: Computed digests [rsrcs=344, time=328ms]
digest2.txt: Computed digests [rsrcs=344, time=832ms]
2017-09-17 09:52:48 -07:00
Michael Bayne dcd74f1bd9 Parallelize resource verification.
Ad-hoc testing with ~320MB of resources reduces verification time from
~2400ms to ~800ms on MBP with four-core i7.
2017-09-17 09:34:45 -07:00
Michael Bayne b39e59550f Make Resource comparable. 2017-09-17 09:29:06 -07:00
Michael Bayne 99a093a1c7 Allow any collection of resources to be downloaded. 2017-09-17 09:26:13 -07:00
Michael Bayne bc3252dbf0 Default to a 30s read timeout during downloads.
This is configurable via a system property -Dread_timeout=N.
2017-08-15 09:32:13 -07:00
Michael Bayne 19ed330a8d Always install a (valid) _new file if we have one.
Thanks to deepfreeze32 for the suggested fix.
2017-08-15 08:52:39 -07:00
Michael Bayne 454a8759af Apply strict comments to digest.txt file as well. 2017-07-03 09:21:53 -07:00
Michael Bayne b1c85ddb2e Restructure code to be less wonky. 2017-06-29 10:37:51 -07:00
Michael Bayne 1922919995 Formatting tweaks. 2017-06-29 09:31:01 -07:00
Paul-Yves Lucas e9774a0385 correcting bug when a localNew resource was here but not the local (if the app was stopped in the middle of dl for ex), it was valid and not installed, now it put in the _toBeInstalledResouces list for proper installation 2017-06-29 10:57:57 +02:00
Michael Bayne 61534b569c Added support for "strict comments".
In this mode, Getdown only treats a # as a comment starter in column zero. All
other #s are ignored. You enable it by putting:

strict_comments = true

in your getdown.txt file. Yes the same file that has to be parsed with or
without strict comments. If we see that, we reparse the file with strict
comments.
2017-06-28 17:58:17 -07:00
Michael Bayne e66b8fc2eb Fix error parsing code_cache_retention_days.
Fixes #82.
2017-04-10 14:03:01 -07:00
Michael Bayne 9e23a426a6 Fix backward logic re: use of code cache. 2017-02-22 08:45:20 -08:00
Michael Bayne 4ac9990785 Apparently jspawnhelper moved. 2017-02-14 11:01:44 -08:00
Michael Bayne e60b95cf2d Install the local JVM resource before unpacking.
Fixes #78.
2017-02-12 09:20:58 -08:00
Michael Bayne 0b5c82a116 Get the absolute path to a local VM to avoid CWD problems. 2017-02-12 09:20:22 -08:00
Michael Bayne 1da36ace83 Added override_appbase system property.
This can be used to completely override the appbase via the installer in
situations where you want to build a deployment once, but then potentially
serve it from some other webserver.
2017-02-12 08:47:57 -08:00
Michael Bayne 8a36b101bb Fix javadoc error. 2017-02-12 07:46:51 -08:00
Michael Bayne 84af080b0d Encode paths for download more robustly. 2017-02-12 07:38:30 -08:00
Michael Bayne a5ad6edf3c Bias pair parsing toward key in digest.txt.
In that file we have:

filename = hex_encoded_hash

The hex_encoded_hash will never contain = but the filename could
conceivably contain =, so for that file we split on the last = instead
of the first.

Everywhere else we continue to split on the first = because that makes
more sense.
2017-02-02 19:24:16 -08:00
Paul-Yves Lucas b1c41b5e70 Merge remote-tracking branch 'artelysGithub/master' 2016-12-06 14:16:22 +01:00
Paul-Yves Lucas 256e0933aa correcting bug in progressaggregator where progress event updated the _sizes array instead of globabl _progress array (progressbar now progress more fluidly) 2016-12-06 14:09:30 +01:00
Michael Bayne 1053a11c46 Mark jspawnhelper as executable.
Closes #74.
2016-11-11 07:57:36 -08:00
Michael Bayne d802d2e296 Fix Javadoc. 2016-11-05 07:07:08 -07:00
Michael Bayne 41c59d7e1b Upgrade signing algorithm & digest algo.
Since we're upping the protocol version, we can do all this too at the
same time. So v2 digest will use SHA256, sign using SHA256withRSA and
will include the contents of META-INF in the digests. Upgrades++!

This also includes the code from pull request #73 to allow a .crt file
to be included with the app to allow for signature verification of
standalone apps (we already did this for applets via the applet
parameters).
2016-11-04 19:38:39 -07:00
Michael Bayne d75d5a7a69 Create a separate digest.txt file for each "protocol version".
Right now there's only two versions of the digester protocol, so I just
always generate both of them. If we evolve the protocol further, we
could conceivably allow you to specify a "minimum" protocol version,
once you were confident that all of your clients had upgraded to a
version of Getdown that used that minimum version.
2016-11-04 18:51:17 -07:00
Michael Bayne 7c651fbd73 Tidy up new resources stuff a bit.
The one major change here is that Getdown.isUpdateAvailable/install()
are no longer static.

GetdownApp has a start() method that you can call if you want to get the
Getdown reference back. You can call isUpdateAvailable() on that. It was
super weird that you would call GetdownApp.main() and then just call
some static methods after that.
2016-11-04 17:45:51 -07:00
Michael Bayne 345f64d62d Merge pull request #60 from runiter/master
Avoid corrupted resources when download is interrupted
2016-11-04 16:54:26 -07:00
Michael Bayne fc9b6d3c89 Include the META-INF files in the digest.
We used to ignore them for some reason but I think that whatever
benefits that yielded have long been overshadowed by detriments.
2016-11-04 16:41:37 -07:00
Saeid Nourian 51a34e4ccc Merge branch 'master' of https://github.com/threerings/getdown.git 2016-10-11 15:59:14 -04:00
Saeid Nourian d7ec0f05e9 Allow checking to see if update is downloaded and ready for install 2016-10-11 15:47:23 -04:00
Michael Bayne ba5b31300e Demote verbose logging to debug. 2016-09-25 10:47:08 -07:00
Michael Bayne 49a7e28216 Undid style changes, reduced OO boilerplate. 2016-09-25 10:42:48 -07:00
Thomas Küstermann 0a34632c0a Issue #64 introduced a code cache to support multiple app instances
Whenever 'use_code_cache' is set to 'true' the application's code
resources are copied to a cache directory prior to launching the
application. This is done in order to support multiple open application
instances of different versions.
2016-09-20 13:22:19 +02:00