Commit Graph

443 Commits

Author SHA1 Message Date
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 02975c107e Replace SysPropsTest with VersionUtilTest.
As pointed out by soapyfrog, depending on info from the JVM running the
test is fragile and not a good idea.

Fixes #84.
2017-04-25 08:43:19 -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 10c43a6252 Format tweaks. 2016-09-25 10:47:08 -07:00
Michael Bayne ea316ef29f Merge pull request #71 from thokuest/fix_messages_typo
fixed typos and german translations
2016-09-25 10:46:50 -07:00
Michael Bayne 51dd1bf30e Merge pull request #70 from thokuest/use_junit_assert
Use JUnit Assert instead of the Java keyword
2016-09-25 10:44:24 -07:00
Michael Bayne 49a7e28216 Undid style changes, reduced OO boilerplate. 2016-09-25 10:42:48 -07:00
Thomas Küstermann 7f7ac709a6 fixed a bunch of typos and german translations 2016-09-20 15:04:26 +02:00
Thomas Küstermann fda9e2b1e9 Use JUnit assert instead of the java keyword 2016-09-20 14:40:44 +02:00
Thomas Küstermann 33dafbaa4a completely get rid of the "sleep" 2016-09-20 14:31:22 +02:00
Thomas Küstermann 310be0e326 further increased the time to wait before proceeding with the test 2016-09-20 14:20:07 +02:00
Thomas Küstermann 5690570f93 increase the "sleep time" 2016-09-20 13:50:52 +02: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
Michael Bayne e1c59ab6d0 Nix unused import. 2016-09-11 13:14:34 -07:00
Michael Bayne caa8a5ca16 Formatting tweaks. 2016-06-20 07:43:14 -07:00
Saeid Nourian 176cb8ca99 Avoid corrupted resources when download is interrupted
1) Download resources first into a temporary file
2) Perform verification and digest comparison with the downloaded
temporary file instead of the original if temporary file exist
3) Only when verification completes successfully rename all the
temporary files to override the original. This step can be done
automatically or manually by calling GetDown.install() which is useful
for those who want to download in background and install upon program
exit.
2016-06-17 11:03:56 -04:00
Réda Housni Alaoui 8175064600 #57 Let the user close the getdown window on error, even when hideDecorations is set to true 2016-06-09 00:51:05 +02:00
Faisal Hameed 8876725b1a Fixing bug cause by PR#51 2016-05-18 06:17:25 +05:00
Michael Bayne 51ac46797b Updated source headers.
Also shifted copyright to AUTHORS because OOO is a legal entity no more.
2016-05-15 13:01:19 -07:00
Michael Bayne 0a217cada6 MetaProgressObserver -> ProgressAggregator.
This changes the way progress is aggregated so that we can do the various
progress accumulating steps in parallel if we like.
2016-05-15 13:01:19 -07:00
Michael Bayne 949eb8d718 Some renaming and clarification. 2016-05-15 13:01:19 -07:00