Task #2083
Mis à jour par Sebastien Jacquot il y a plus de 8 ans
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:
<pre>
// auto populate the preference node qualifier from the current bundle id
public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(PartitionDimensionsPreferences.class).getSymbolicName();
</pre>
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:
<pre>
public static final String PREFERENCES_NODE = "org.txm.statsengine.r.core";
</pre>
leads to the error and no preferences are set:
<pre>
Wed Jun 28 12:59:01 CEST 2017 - [main] Product-specified preferences called before plugin is started
</pre>
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:
<pre>
// auto populate the preference node qualifier from the current bundle id
public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(PartitionDimensionsPreferences.class).getSymbolicName();
</pre>
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:
<pre>
public static final String PREFERENCES_NODE = "org.txm.statsengine.r.core";
</pre>
leads to the error and no preferences are set:
<pre>
Wed Jun 28 12:59:01 CEST 2017 - [main] Product-specified preferences called before plugin is started
</pre>