Last week I ran into the problem of Custom Branding an Eclipse application. Let’s say you are writing an application on top of Eclipse, which comprises of a bunch of Eclipse plugins. When you package your application, you bundle all the required plugins with the ones you write and provide a single download. Now you want to show your splash screen, your application name in the Title Bar, and your text in the About Box.
If you search around Eclipse website and the newsgroups, you’ll find mention of multiple ways to do it. Most don’t work at all. Took me a while to figure this out, but here’s a very simple way to do it.

  • Create a splash screen (500×330 bmp), and a two icons (16×16 and 32×32. gif will do). We’ll call these splash.bmp, icon.gif and icon32.gif respectively.
  • Create a new directory in plugins directory. Lets call it branding_1.0.0 and copy splash.bmp, icon.gif and icon32.gif to this dir.
  • Create plugin.xml in the branding_1.0.0 dir with these contents

    <?xml version="1.0" encoding="UTF-8"?>
    <?eclipse version="3.0"?>
       name="Branding Plug-in"
        <extension id="ide" point="org.eclipse.core.runtime.products"> 
            <product name="%productName" application="myProduct" description="%productBlurb"> 
                <property name="windowImages" value="icon.gif,icon32.gif"/> 
                <property name="aboutImage" value="splash.bmp"/> 
                <property name="aboutText" value="%productBlurb"/> 
                <property name="appName" value="myProduct"/> 
                <property name="preferenceCustomization" value="plugin_customization.ini"/> 
  • Create in the branding_1.0.0 dir with these contents (set your own values)

    providerName=My Company
    productName=My Product
    productBlurb=My Product
  • Edit config.ini to modify line osgi.splashPath = platform:/base/plugins/org.eclipse.platform to
    osgi.splashPath = platform:/base/plugins/branding

That’s it. You are done. Launch using this command line eclipse -product branding.ide -application org.eclipse.ui.ide.workbench. If things don’t work as expected, use -consoleLog option to see the log.
Here’s a screen shot