This plugin is essentially a duplicate of org.eclipse.bpel.examples.extensionPoints with the embedded editor functionality removed.
This was necessary because of breaking org.eclipse.ui API changes in Eclipse Juno.
After this feature is rewritten to work with Juno, this plugin must be removed and the plugins/pom.xml restored to its original.
