Auto-update of native application bundles

Igor Nekrestyanov igor.nekrestyanov at oracle.com
Sat Jul 21 21:36:46 PDT 2012


Hi Dan,

thanks for pushing this effort!

On 7/21/12 5:10 PM, Daniel Zwolenski wrote:
> *Deltas*
>
> Currently only a 'full' upgrade is used, there are no 'deltas' - with one
> variation on this theme: if the JRE version has not changed then the JRE
> does not need to be included in the upgrade. So your first download (the
> 'exe') will include all the JARs and the JRE (36MB) but the subsequent
> upgrade is a zip containing just the new JARs (8MB for Ensemble - your app
> may be more or less).
>
> Igor's thinking (please correct me if I misquote you Igor!) is that this
> approach will be the recommended norm and that deltas will be much less
> frequently used.
> If your app is small or released infrequently then this is
> probably acceptable. I'd be very interested to hear people's opinion on
> this one - once we head down one road (and we are already heading down it)
> then it will get very hard to change direction.
We could support delta's.
I do not see big technical problems with "applying delta patch".

The complicated part is how developer will prepare static delta.
One option is to keep image of previous version and provide it as base 
for delta generation.
Another simple alternative (variation of app only) is to provide list of 
files to be included into update.
Then these files will be included (as full file) into update and older 
versions of these files will be replaced.
Other files will not be included into update and will be left intact.

>
>     - Since Igor's native installer does not yet install to 'program files',
Actually, recent versions of javafx ant tasks support system wide 
installation.
System wide installs are default for .msi/.dmg/.rpm/.deb. User level 
installation is default for .exe.

For .exe/.msi/.dmg you can chose whether you want system level or user 
level install using "install" attribute of fx:preferences.
For example following will request bundle with system level installation
<fx:preferences install="true"/>
and this will request user level:
<fx:preferences install="false"/>

Hopefully soon we will have better docs available for what is possible 
with current implementation,

-igor



More information about the openjfx-dev mailing list