There are several aspects to making a custom application:
- Custom Branding - splash screen, about dialog, icon
- Custom Application
- Custom Workbench Advisor - toolbar, menus
- Custom Perspective - view locations
- Packaging up into 'Features' for a Product
It should be noted that you can:
- define your own custom branding while still running the UDIGApplication and Workbench Advisor
- add custom menus without writing a new Workbench Advisor
- add new Perspectives at any time
The best source of documentation on these activities is the Eclipse online help.
The trouble is the Eclipse RCP framework is very conservative about what classes it trusts.
It has defined the following classloaders:
- (none): Just the classes from your JRE (and anything you depend on)
- ext: The classes from you JRE ext folder (ie your JRE Extentinos aka the BOOTCLASSPATH)
- (???): The system CLASSPATH environment variable
As you can see each represents more risk then the previous, a user may put anything on the CLASSPATH environmental variable and break your application. Although less likely they could also install a JRE extention that would break your will to live.
However we do need to take a little risk to make use of Java Advanced Imaging, so you will need to do the following.
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Ui Plug-in
Bundle-SymbolicName: za.co.bluesphere.sens.ui; singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: za.co.bluesphere.sens.ui.UiPlugin
Bundle-Localization: plugin
Eclipse-BuddyPolicy: ext
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.ui.intro,
net.refractions.udig.ui
Eclipse-AutoStart: true
Bundle-Vendor: Bluesphere Technologies
Export-Package: za.co.bluesphere.sens.ui
You may also find documentation that talks about this problem with respect to:
- bootclass loader command line arguments
- changes to the application config.ini file
- changes to the product
Rest assured that after wasting weeks on this problem the above solution is the least amount of hassle.
|