Scout/Concepts/F2

From Eclipsepedia

< Scout‎ | Concepts
Revision as of 06:30, 26 November 2013 by Asc.bsiag.com (Talk | contribs)

Jump to: navigation, search

Contents

F2 Updater

F2 is a simple update manager for Eclipse or Java based applications. The F2 update manager has been designed to minimize the network load for consecutive application updates and updates are executed with transactional safety.

F2 has no dependencies to eclipse scout or any other library. However the installation of f2 is supported by the technology checkbox in Scout SDK (since 3.10).

If you are new to f2, check out the tutorial first.

Where do I find F2

F2 is available on the eclipse marketplace.

It can also be installed with the Scout SDK (since 3.10)


Design Goals

  • Minimal network load for live updates.
  • Move cpu/memory load to "Create" of the updatesite and away from the client "Update"
  • Transactional safety for updates, e.g. commit or rollback
  • No lenience: The update is either done with byte by byte equality or not
  • Support for Windows 7 UAC security
  • Support for multiple platforms such as win32, macosx, etc.
  • Complete automation of updatesite creation and update handling
  • Very easy zip file handling and command line processing


Parameter Overview

command line config.ini Description Default
-url f2.url URL of the updatesite
-name f2.name Name of the updatesite
-http.user f2.http.user Username for HTTP Basic Authentication
-http.pass f2.http.pass Password for HTTP Basic Authentication
-uac f2.uac Option for Windows 7 UAC (user access control) true if the client zip contains the f2 plug-in, false otherwise
-checkhash f2.checkhash Option to enable/disable content hash check on delta updates false
-checksize f2.checksize Option to enable/disable file size check additionally to crc false
-version f2.version Only update up to a limited version (e.g. -version example_1.2.0)
-temp f2.temp Option to use specific temp directory
-verbose for detailed logging
-silent for sparse logging
-versionsToKeep f2.versionsToKeep Keep only a specific number of application versions when creating the updatesite All

FAQ

How do I enable/disable Windows 7 UAC?

UAC is automatically enabled if the platform is win32 and the client zip contains the f2 plug-in jar. Not that uac mode is only possible when the client zip contains the f2 plug-in jar.

From java code: If the call is

F2Updater.update()

change it to

HashMap<F2Parameter, String> optionMap=new HashMap<F2Parameter, String>();
optionMap.put(F2Parameter.WindowsUAC ,false);//or true
F2Updater.update(null/*default strategy*/, options, null/*default user agent*/)

From command line: add the -uac true or -uac false option

How do I disable verbose mode on command line?

Use -verbose or -silent

How do I disable that the client checks the zip hashon updates?

The zip hash check on the client may tike some long time depending on client hardware. If the crc check of the delta/full zip is sufficient for your client (customer) you might disable the additional content hash check. The probability that the zip is corrupt after a delta update is relatively small. However disabling the content hash check (at least theoretically) eliminates the transactional acid condition.

In java:

HashMap<F2Parameter, String> optionMap=new HashMap<F2Parameter, String>();
optionMap.put(F2Parameter.WindowsUAC ,false);
F2Updater.update(null/*default strategy*/, options, null/*default user agent*/)

How do I use my own progress monitor when updating?

UpdateResult result=F2Updater.update(null,null,null,monitor);
if(result!=UpdateResult.NothingToDo){
  //...
}

How do I prevent my CI server from running out of space?

Use the parameter -versionsToKeep to limit the number of version to keep on the build server (i.e. CI deployment).

See also