[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipse-dev] Equinox Launchers and Splash Screens in I20061219-1300


Today's 3.3 I-Build I20061219-1300, contains the new Equinox launchers.  These new launcher use JNI to start the Java VM in the same process as the launcher.  Using JNI also allows us to use SWT widgets in the splash screen.
This was done as part of the plan item to improve the launching experience (bug 154088).  See the wiki page for details: http://wiki.eclipse.org/index.php/Equinox_Launcher.

Because of the number of dependencies across multiple components, there is actually a regression in the splash screen until all the pieces are in place.  Currently only changes for the launchers, startup.jar, org.eclipse.osgi and pde.ui are in.
So with this build you will not see a progress bar and there will not be painting after the choose workspace dialog.

But if you had a splash bundle, you could do cool stuff in the splash screen :)

If the launcher knows where the splash bitmap is it can show the splash map before starting Java, in this case the splash screen can appear significantly sooner than it used to.  To see this, add the location of the splash bitmap in your eclipse.ini file by adding these 2 lines to the beginning:
        -showsplash
        plugins/org.eclipse.platform_3.2.100.v20061215/splash.bmp

Some basic changes to note:
- startup.jar is gone, it is now a bundle in the plugins directory: org.eclipse.equinox.launcher
- there are fragments for each platform: ie org.eclise.equinox.launcher.win32.win32.x86.  These contain launcher shared libraries that can be loaded in Java using JNI to show the splash screen.
- the org.eclipse.platform.launchers feature is now org.eclipse.equinox.executable

As a side note, we do not yet have creating the VM through JNI working on linux.x86_64, linux.ppc and aix.ppc.  (See bugs 168271, 168278, and 168281).  For these platforms, the old launchers are still used and in the root is a startup.jar which is a copy of the org.eclipse.equinox.launcher bundle.  Even though we are not using JNI to launch the VM on these platform, we are using JNI to load the launcher library and enable the SWT splash screen.

In getting this far, thanks go Sonia Dimitrov for all the work in switching the builds to the new shape.  Also thanks to the SWT team, particularly Silenio Quarti and Grant Gayed, as well as Wassim Melhem and Tom Watson.

-Andrew