Dear Eric, dear Dan
Our company would like to design a new application based on Eclipse RCP for managing different devices. During the last months I tried to get familiar to Eclipse and your RCPDeveloper. I learnt a lot from your book (Building Commercial-Quality Plug-ins) and from Jeff McAffer’s book (Rich Client Platform).
However for a beginner it is very hard to answer certain questions to the management after only having scratched the surface of these wide topics. This is why I try to ask you these questions and hope you can give me some assistance.
I learnt that everything in Eclipse is a plug-in. I know that my application can use other plug-in’s extensions (e.g. it uses actions, editors, views, etc.) and it can provide extension points to other plug-ins. What I do not yet understand are the underlying mechanisms of using and defining own extension points.
My RCP application should be extensible for future purposes. So one key requirement demands the extensibility of our program by the use of new plug-ins. In fact we would like to run our application as a base framework which can load and display device specific information (e.g. a view for displaying device data and an editor for changing device configurations).
- Is it possible to load and run a new plug-in (representing a new device) dynamically during runtime?
- How can I use/instantiate the provided plug-in functionality/types in my application?
- What do I have to consider about when building the interfaces for communication/data exchange between my application and the plug-ins?
- Is it possible to handle asynchronous events (e.g. state changes in an underlying communication) across several plug-ins which depend on each other (e.g. model, UI and communication layers)?
- How shall I start when trying to write a simple trial plug-in with self defined extension points? Unfortunately the code from your book in chapter 17 comes up with an error in method run() of class RemoveFavoritesContributionItem.java in my Eclipse 3.3 (The method createContextSnapshot(boolean) is undefined for the type IhandlerService)
- Now that you know the goals of my project do you think I am on a good way when I suggest to my boss to go for Eclipse RCP/Plug-ins?
Do you already have a term for the publication of a third edition of your book (e.g. for Eclipse Ganymede 3.4)?
Thank you for your help. You guys are really doing a great job! I look forward to hearing from you, soon.