I like Eclipse product configurations. Did I say that before? I use them a lot. They are a great way to assemble your final bits. PDE Build, Buckminster and soon Tycho are able to take them and put the stuff together. You’ll get a final zip that’s ready to hand out to consumers.
There is also a way to launch them. However, what always bothered me was that this was just a fake application launch. You had to use the product editor all the time to keep the launch configs in sync. But over time I noticed some issues. Sometimes, when updating target platforms, something gets out of sync, features will be missing, whatever. Your launch is broken and the guys start to line up next to my desk.
Hmm, wouldn’t it be nice to just launch products all the time and have them 100% like they should be all the time including automatic validation of missing features (even included once) and plug-ins?
Oh yes! If you need this, just install my Patches for PDE (via Help -> Install New Software…). I published a new version in my repository (http://eclipseguru.org/). The relevant patch is attached to bug 326059.
2 thoughts on “True Product Based Launches”
I love them too! What I notice is that even if you press run from the product, the product launch can go stale. This is especially the case for start levels. Start levels are a nightmare to configure in products and they do not work after the first launch (remove the launch config and re-launch from product).
Do you have a tip if you just want to start everything like you can in a launch config but you do not want to go to the trouble of switching them on by hand?
@Wim, start levels can be tricky. PDE includes some logic to override/customize start levels during launch. This helps to ensure that certain conditions are met. However, I noticed that there are a few issues. The Eclipse Application launch configuration was initially created for launching Eclipse IDE instances. Later on it was enhanced to support RCP use cases. Today, I use it mostly for launching headless Eclipse applications (eg., servers).
I don’t like using the OSGi launch configurations because they require to set start levels and plug-ins manually. Instead, I prefer configuring only the minimum and using lazy activation (extension points, declarative services) as much as possible. In my products, I only start
equinox.simpleconfigurator. All the other stuff is started lazily through my server application (