Task #2083

Updated by Sebastien Jacquot over 2 years ago

Check how the PreferencesInitializer are managed in a non UI environment (to run TBX as standalone).

h3. Validation tests

* after the plug-ins split is done, export org.txm.core as deployable plug-in
* add some Log outputs in plug-ins to display their preferences when the bundles are loaded
* run the main .jar and check the output of each preference is what is expected
* (at this moment the TBX can not save its preferences)

h3. Feedback

NOTE 1: NOTE: we can't use this code in the preference initializers of each plug-in:

// auto populate the preference node qualifier from the current bundle id
public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(PartitionDimensionsPreferences.class).getSymbolicName();

to auto populate the preference node qualifier if running the toolbox as standalone without an RCP Application/Product because getBundle() returns null without Equinox/OSGI.
Need to discuss about the use of an RCP Application/Product for running the TBX as standalone. Actually I think it would be better than running a .jar because we could deploy light portals or light TBX for example. Other advantage is a portal could benefit from P2 updates system to automatically updates the TBX.

NOTE 2: not using dynamic bundle symbolic name doesn't resolve the issue, for example using:

public static final String PREFERENCES_NODE = "org.txm.statsengine.r.core";

leads to the error and no preferences are set:

Wed Jun 28 12:59:01 CEST 2017 - [main] Product-specified preferences called before plugin is started