Add basic module lifecycle service

Description

We need a basic module lifecycle service so that applications developed against SNAP engine APIs can start and stop module on which they depend.

Use cases for the lifecycle service: install/uninstall/update auxdata, detect configuration/preferences changes and react, start/stop services & components (which are not using the service provider API).

NetBeans provides such services already (@OnStart, @OnStop annotations) but we don't want NetBeans platform dependencies in SNAP engine. The lifecycle API is best implemented using the JAR service provider API which can easily be used in NetBeans. For non-NetBeans applications (e.g. server-side apps, CLI apps), we need some static methods that collect all lifecycle service registrations and call start / stop on start / stop of the app.

Environment

None

GitHub Work

None

Activity

Show:

Olga Faber 16 November 2015 at 09:23

ok

Norman Fomferra 25 August 2015 at 10:40

Added org.esa.snap.runtime.Activator interface

Norman Fomferra 21 July 2015 at 05:06

Dropped priority from critical to major, as there are (inelegant) workarounds, e.g. static class initializers.

Fixed

Details

Assignee

Reporter

Fix versions

Components

Priority

Created 25 February 2015 at 14:13
Updated 16 November 2015 at 09:23
Resolved 25 August 2015 at 10:39

Flag notifications