Eclipse
Passage Operator
is an RCP application
licensed
with Passage.
Operator uses Passage GUI facilities to address UX demands.
Employ Passage runtime
Basic steps are described in the example made of Floating License Server.
Main product licensing feature org.eclipse.passage.loc.operator.product is declared for protection in the branding plug-in.
Product key and Access Cycle configuration are located in Operator Seal plug-in.
Licensing requirements for 4 internal features reside in the Operator API plug-in as a part of API contract.
The most common task is to stop product launching if it is not licensed properly.
Operator itself allows unlicensed launching (declares org.eclipse.passage.loc.operator.product feature with warn restriction level), but pauses execution and draws user's attention to the fact of license absence.
E4LicensingAddon is the key actor which is invoked on the workbench startup and prevents unlicensed launching.
To employ E4LicensingAddon on your product startup you should plug it as an add-on to your workbench model application. You can do so, for example, by declaring extension for org.eclipse.e4.workbench.model point.
Passage Operator declares such an extension in its branding plug-in.
Notify a user there is no proper license
If a feature is somehow triggered or controlled from GUI, we can use LicensedRunnableUI or EquinoxPassageUI directly to empower license check for the feature and, if the check gets negative diagnose, notify a user and block the feature execution (if required).
Have a look how Issue Personal License trigger exploits LicensedRunnableUI: if conveys the feature name and its implementation.
Prior the implementation is executed, license coverage for the feature is checked. If it appears to be insufficient, then LicenseStatusDialog is exposed to the user.
This dialog offers a user to import a proper license. Unless license status is changed, the implementation execution is blocked (for feature declared for license protection with error restriction level).