Export into the Host Eclipse

Export into the Host Eclipse

In the traditional RCP development workflow, you find yourself self-hosting a lot. If you don’t know what self-hosting means, it’s simply the process of launching a new Eclipse instance and executing the bundles you were working on in your workspace. This works well as there’s no real deployment step, but what happens if you want to run what you’re working on inside your current running Eclipse (host)? Well, you could use the classic, “export, copy, paste, delete, restart” technique” but that’s not optimal and takes some time. How do we get around this? Well, in Eclipse 3.5, PDE has new functionality to directly export into your host.  To demonstrate this functionality, let’s create a sample project using the ‘Hello, World Command’ template:


Then let’s export into our host using a new option in the export wizard:


Once we export and apply changes, we should see the sample plug-in installed and running (check the toolbar):

To uninstall, simply go to the ‘Installation Details’ page via the About page:


Hope this helps! I also created a video of this workflow in case anyone is interested.

  • Posted at 10:38, 2009-04-23

    Really circumstantial with this extra export step. Would be nice if Eclipse could support
    applying the change right after accepting the code. If seen something like this in the
    Smalltalk world (changing the IDE or program while it is running). Wouldnt it be possible
    in Java too (with JRebel and friends) ?

  • Posted at 11:35, 2009-04-23

    Nice feature !!!! Thank you PDE and thank you OSGi !!!


  • Posted at 12:15, 2009-04-23

    Really cool! We’re getting closer to SmallTalk 😛

    BTW, Chris – the screenshots are rather small, at least on the Windows box I need to use currently. Did you resize them?

  • Min Idzelis
    Posted at 15:07, 2009-04-23

    Since it seems you work closely with PDE, one feature that I think is missing and would be really neat for development/debug would be a way to “re-use” workspaces for PDE launch. Right now, any changes you make to a workspace are saved and persisted. However, it would be nice if someone could give you a zipped up workspace. Then, your debugger would unzip the file to a temp location and use it. This will make it always launch in the same state. It can come in handy for debugging.

  • Posted at 18:10, 2009-04-23


  • Posted at 08:15, 2009-04-24

    You cant get closer to Smalltalk when you dont know how to spell it correctly: it’s Smalltalk not SmallTalk! 😉
    Anyway a nice feature from the PDE point of view – but still miles away from direct manipulation in dynamic systems. I’m sure there can be a solution to this even in Java …

  • Posted at 18:56, 2009-04-25

    thx chris to make this process of deploying into running host much easier then before.

  • Posted at 17:41, 2009-04-29

    This is very nice. I prototyped something like this using my Groovy Monkey plugin. In fact, this kills off one of the main selling points I have for that plugin. Thanks Chris 😉

    Still thanks to OSGi, functionality like this is almost a gimmie. I have one question though, what if you take this cool feature and proceed to shoot yourself in the foot? In other words, you do something incredibly silly and manage to lock up Eclipse? If you can’t get to the P2 UI to remove the bundle you pushed in, you are left with killing the workbench, hacking it out and then restarting with your fingers crossed.

    At least in self-hosting you just kill the self hosted plugin. Also with my prototype, Eclipse doesn’t know about the bundle in its configuration files. So the worst that happens is killing Eclipse and restarting, with the plugin automatically gone. Is there something in this feature to prevent me from hurting myself too much?

    On the other side, dangerous side that is, I can imagine putting a nature on the PDE project where it tries to reload the plugin more dynamically… you know make those old Emacs dudes one less thing to brag about….