What this guide is all about?
This is a hands-on guide to learn the Eclipse internals. You are expected to follow along with your own installation of Eclipse. We start off by taking a classic download of Eclipse and then getting a minimal set of plug-ins from it – the smallest running instance of Eclipse along with a GUI (around 30 MB). Once we have a small running instance we start learning the Eclipse internals by running it in debug mode from within another complete instance of Eclipse.
Why do you want a minimal install?
Having a minimal install helps eliminate noise. This will help us study the Eclipse workbench, without unnecessary plug-ins interfering our observations.
What this guide is not
This guide is not for those who are new to Eclipse. It assumes you have a decent knowledge of Eclipse – you understand the concept of views, perspectives and workspace.
Getting a minimal install
This section helps you get a small working installation of Eclipse. This will help you examine and learn about Eclipse without wondering if the behavior you see is because of some plug-in that you should not have bothered about in the first place.
The steps here although cumbersome help you learn some of the parts of Eclipse. You will see how flexible Eclipse is and the fact that the plug-ins that come with the classic install do not have any special privileges and are like any other plug-in.
If you don’t want to go through these cumbersome steps, but still want to learn the Eclipse internals, you could use the next best – the Platform Runtime Binary available here: http://download.eclipse.org/eclipse/downloads/drops/R-3.3.1.1-200710231652/ and continue here: Examining the experimental Eclipse. However it is strongly advised that you try the initial steps.
Getting a minimal install
Getting Things Ready
Playing with the configuration
Tweaking the configuration
Changing the product feature
Disabling unnecessary platform plugins
Examining Eclipse
Examining the experimental Eclipse
Winding Up
Getting Things Ready
Initial instructions – very important
- To begin with, have a clean installation of Eclipse. I suggest you begin with the most minimal installation that is available here: http://www.eclipse.org/downloads/. Since most of you have the classic Eclipse installation, I started with the Eclipse Classic 3.3.1.1 but any of them should be fine.
- Whenever the instruction says, “backup your work”, make a copy of the installation.
- The instructions below are for Linux, but it should be very similar for Windows as well.
Ensure that you have a clean installation of Eclipse, an experimental copy and a backup
- Create a directory called Eclipse.
gautham@ubuntu:~$ mkdir eclipse gautham@ubuntu:~$ cd eclipse
- Copy the Eclipse archive to the directory
gautham@ubuntu:~/eclipse$ cp (download-location)/eclipse-SDK-3.3.1.1-linux-gtk.tar.gz .
- Create the following sub-directories – original, experimental, backup
gautham@ubuntu:~/eclipse$ mkdir original gautham@ubuntu:~/eclipse$ mkdir experimental gautham@ubuntu:~/eclipse$ mkdir backup gautham@ubuntu:~/eclipse$ ls backup eclipse-SDK-3.3.1.1-linux-gtk.tar.gz experimental original
- Extract the zip
gautham@ubuntu:~/eclipse$ gzip -dc eclipse-SDK-3.3.1.1-linux-gtk.tar.gz | tar xf - gautham@ubuntu:~/eclipse$
- Copy the extracted contents to the original and experimental directories
gautham@ubuntu:~/eclipse$ ls backup eclipse eclipse-SDK-3.3.1.1-linux-gtk.tar.gz experimental original gautham@ubuntu:~/eclipse$ cp eclipse original/ -r gautham@ubuntu:~/eclipse$ mv eclipse/ experimental/
- You can now remove the zip
gautham@ubuntu:~/eclipse$ rm eclipse-SDK-3.3.1.1-linux-gtk.tar.gz gautham@ubuntu:~/eclipse$ ls backup experimental original
Although the original and experimental directories have the same contents now, over time the contents of all 3 directories will be very different. We will be mainly working on the directory ‘experimental’ and backing up the contents periodically in ‘backup’. ‘original’ will remain untouched.
- During the dissection, your Eclipse installation might stop working at any time. In order to keep suspicion to the minimum, ensure that you have no problems to begin with. Just to convince yourself, run your instance of Eclipse and ensure that you don’t have any issues regarding JVM etc.
gautham@ubuntu:~/eclipse$ cd experimental/eclipse/ gautham@ubuntu:~/eclipse/experimental/eclipse$ ./eclipse & [1] 10058
Remember to use ./ because there could be some other ‘eclipse’ in your path. Once you execute this command, Eclipse would show the splash screen followed by a dialog asking for the workspace. Just press ‘OK’. We will be creating a different workspace later. This step is only to ensure that your Eclipse extract does not have any issues.
If everything is fine, you should see Eclipse as shown below:
Go to Help -> Software Updates -> Manage Configuration
As you can see, Eclipse is running with the core platform plugins, along with JDT, PDE and CVS plugins.
Exit from Eclipse.
- Look for the features, plugins and configuration directories in your Eclipse install directory.
gautham@ubuntu:~/eclipse/experimental/eclipse$ ls about_files configuration eclipse.ini features libcairo-swt.so plugins about.html eclipse epl-v10.html icon.xpm notice.html readme
- Learn the Eclipse command line arguments
The details on the command line arguments are given in this eclipse.org page.
Give particular importance to the following arguments: clean, configuration, consolelog, data and debug.
Execute the following command
gautham@ubuntu:~/eclipse/experimental/eclipse$ ./eclipse -clean -debug -consolelog & [1] 10731 gautham@ubuntu:~/eclipse/experimental/eclipse$ Start VM: -Xms40m -Xmx256m -Djava.class.path=/home/gautham/eclipse/experimental/eclipse/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20070828.jar -os linux -ws gtk -arch x86 -showsplash /home/gautham/eclipse/experimental/eclipse//plugins/org.eclipse.platform_3.3.2.R33x_v20071022/splash.bmp -launcher /home/gautham/eclipse/experimental/eclipse/eclipse -name Eclipse --launcher.library /home/gautham/eclipse/experimental/eclipse/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.2.R331_v20071019/eclipse_1021.so -startup /home/gautham/eclipse/experimental/eclipse/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20070828.jar -clean -debug -consolelog -vm /usr/lib/jvm/java-1.5.0-sun-1.5.0.11/jre/bin/../lib/i386/client/libjvm.so -vmargs -Xms40m -Xmx256m -Djava.class.path=/home/gautham/eclipse/experimental/eclipse/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20070828.jar Install location: file:/home/gautham/eclipse/experimental/eclipse/ Configuration file: file:/home/gautham/eclipse/experimental/eclipse/configuration/config.ini loaded Configuration location: file:/home/gautham/eclipse/experimental/eclipse/configuration/ Framework located: file:/home/gautham/eclipse/experimental/eclipse/plugins/org.eclipse.osgi_3.3.1.R33x_v20070828.jar Framework classpath: file:/home/gautham/eclipse/experimental/eclipse/plugins/org.eclipse.osgi_3.3.1.R33x_v20070828.jar Splash location: /home/gautham/eclipse/experimental/eclipse//plugins/org.eclipse.platform_3.3.2.R33x_v20071022/splash.bmp
Now that you have a clean installation of Eclipse and also know how to use the command line arguments, let’s move to the next step.
gautham@ubuntu:~/eclipse/experimental/eclipse$ ls -l | grep configuration drwxr-xr-x 8 gautham gautham 4096 2008-02-17 00:21 configuration
But this need not be. We can as well move the configuration to a different location. In fact we can have multiple configurations if we need to. Let’s see how.
- Create a config directory in the directory ‘experimental’. Move the ‘configuration’ directory from experimental/eclipse to the config directory.
gautham@ubuntu:~/eclipse/experimental/eclipse$ cd .. gautham@ubuntu:~/eclipse/experimental$ ls eclipse gautham@ubuntu:~/eclipse/experimental$ mkdir config gautham@ubuntu:~/eclipse/experimental$ ls config eclipse gautham@ubuntu:~/eclipse/experimental$ mv eclipse/configuration/ config/
- Let’s now start Eclipse as before (expect to see an error)
gautham@ubuntu:~/eclipse/experimental$ cd eclipse/ gautham@ubuntu:~/eclipse/experimental/eclipse$ ./eclipse
gautham@ubuntu:~/eclipse/experimental/eclipse$ cat configuration/1203188225591.log !SESSION 2008-02-17 00:27:05.319 ----------------------------------------------- eclipse.buildId=unknown java.version=1.5.0_11 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US Command-line arguments: -os linux -ws gtk -arch x86 !ENTRY org.eclipse.osgi 4 0 2008-02-17 00:27:05.880 !MESSAGE Application error !STACK 1 java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini). at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:72) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447) at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
- The configuration directory was created afresh. So I am just going to delete it.
gautham@ubuntu:~/eclipse/experimental/eclipse$ rm -rf configuration/
- Let’s now try to run Eclipse, by making it point to the new location of the configuration.
gautham@ubuntu:~/eclipse/experimental/eclipse$ ./eclipse -configuration ../config/configuration/ & [1] 11113
No problems now!
Basically, what we did was to ask Eclipse to look for the configuration directory in a different location. Would it work if I rename the configuration directory? Let’s try that.
gautham@ubuntu:~/eclipse/experimental/eclipse$ cd ../config/ gautham@ubuntu:~/eclipse/experimental/config$ mv configuration/ classic gautham@ubuntu:~/eclipse/experimental/config$ cd ../eclipse/ gautham@ubuntu:~/eclipse/experimental/eclipse$ ./eclipse -configuration ../config/classic/ & [1] 11192
No issues. Eclipse runs as if nothing has changed.
Let’s now move on to: Tweaking the configuration
- Let’s now make a copy of the configuration.
gautham@ubuntu:~/eclipse/experimental/config$ cd ../config/ gautham@ubuntu:~/eclipse/experimental/config$ cp classic/ minimal -r gautham@ubuntu:~/eclipse/experimental/config$ ls classic minimal
- cd to the directory minimal/org.eclipse.update
gautham@ubuntu:~/eclipse/experimental/config$ cd minimal/org.eclipse.update/ gautham@ubuntu:~/eclipse/experimental/config/minimal/org.eclipse.update$ ls bookmarks.xml history install.log last.config.stamp platform.xml
- View the contents of platform.xml.
gautham@ubuntu:~/eclipse/experimental/config/minimal/org.eclipse.update$ less platform.xml
(Press ‘q’ when done)
Do you notice anything?
When you are running Eclipse, if you go to Help -> Software Updates -> Manage Configuration, you will see the same contents as what you see in platform.xml.
Eclipse uses the contents of this file to determine the features needed to run Eclipse. Would it work if I add or delete entries from this file?
Let’s try that.
- Use your favorite editor to remove the ‘feature’ elements related to jdt, pde, cvs and also the source related features from platform.xml. (An ‘element’ is content from the start tag<feature> to the end tag</feature>.)
Once done you should see the following contents:
gautham@ubuntu:~/eclipse/experimental/config/minimal/org.eclipse.update$ cat platform.xml <?xml version="1.0" encoding="UTF-8"?> <config date="1203187807180" transient="false" version="3.0"> <site enabled="true" policy="USER-EXCLUDE" updateable="true" url="platform:/base/"> <feature id="org.eclipse.platform" url="features/org.eclipse.platform_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz/" version="3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz"> </feature> <feature id="org.eclipse.rcp" url="features/org.eclipse.rcp_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS/" version="3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS"> </feature> <feature id="org.eclipse.sdk" url="features/org.eclipse.sdk_3.3.2.R33x_r20071022-7M7J7C_Mu2gop0b_GAwplOBhyuKO/" version="3.3.2.R33x_r20071022-7M7J7C_Mu2gop0b_GAwplOBhyuKO"> </feature> </site> </config>
- Ok, let’s run Eclipse now. (This is really exciting!)
Do NOT use -clean to run Eclipse.
gautham@ubuntu:~/eclipse/experimental/config/minimal/org.eclipse.update$ cd ../../../eclipse/ gautham@ubuntu:~/eclipse/experimental/eclipse$ ./eclipse -configuration ../config/minimal/ & [1] 11506
Eclipse seems to run fine. But surprisingly, the Java and other ‘disabled’ features are still there. 🙁
Let’s inspect the Help -> Software Updates -> Manage Configuration.
Click on Eclipse Project SDK 3.3.2… and then click on Show Properties. Click on Status.
Although there is an error, Eclipse comes up without any issues. However, the JDT, PDE and CVS plugins are still active.
Let’s remove this error now
Look for the feature.xml in features/org.eclipse.sdk… and remove the jdt, pde, cvs and source entries from it:
gautham@ubuntu:~/eclipse/experimental/eclipse$ cd features/org.eclipse.sdk_3.3.2.R33x_r20071022-7M7J7C_Mu2gop0b_GAwplOBhyuKO/ gautham@ubuntu:~/eclipse/experimental/eclipse/features/org.eclipse.sdk_3.3.2.R33x_r20071022-7M7J7C_Mu2gop0b_GAwplOBhyuKO$ (edit feature.xml) gautham@ubuntu:~/eclipse/experimental/eclipse/features/org.eclipse.sdk_3.3.2.R33x_r20071022-7M7J7C_Mu2gop0b_GAwplOBhyuKO$ cat feature.xml <?xml version="1.0" encoding="UTF-8"?> <feature id="org.eclipse.sdk" label="%featureName" version="3.3.2.R33x_r20071022-7M7J7C_Mu2gop0b_GAwplOBhyuKO" provider-name="%providerName" image="eclipse_update_120.jpg"> <description> %description </description> <copyright> %copyright </copyright> <license url="%licenseURL"> %license </license> <url> <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/> <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/> <discovery label="%secondaryUpdateSiteName" url="http://download.eclipse.org/releases/europa"/> </url> <includes id="org.eclipse.platform" version="3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz"/> <plugin id="org.eclipse.sdk" download-size="0" install-size="0" version="3.3.2.R33x_v20071022"/> </feature> gautham@ubuntu:~/eclipse/experimental/eclipse/features/org.eclipse.sdk_3.3.2.R33x_r20071022-7M7J7C_Mu2gop0b_GAwplOBhyuKO$ cd ../../
Now delete the jdt, pde, cvs and source features:
gautham@ubuntu:~/eclipse/experimental/eclipse$ ls features/ org.eclipse.cvs_1.0.1.R33x_r20070802-7C79_9_KKG-mDM9e3H5D org.eclipse.cvs.source_1.0.1.R33x_r20070802-7C79_9_KKG-mDM9e3H5D org.eclipse.jdt_3.3.1.r331_v20070629-7o7jE72EDlXAbqAcnbmyg1rf8RIL org.eclipse.jdt.source_3.3.1.r331_v20070629-7o7jE72EDlXAbqAcnbmyg1rf8RIL org.eclipse.pde_3.3.2.R33x_r20071022-7N7M4CYWLBCz-yHkMIuHN org.eclipse.pde.source_3.3.2.R33x_r20071022-7N7M4CYWLBCz-yHkMIuHN org.eclipse.platform_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz org.eclipse.platform.source_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz org.eclipse.rcp_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS org.eclipse.rcp.source_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS org.eclipse.sdk_3.3.2.R33x_r20071022-7M7J7C_Mu2gop0b_GAwplOBhyuKO gautham@ubuntu:~/eclipse/experimental/eclipse$ cd features gautham@ubuntu:~/eclipse/experimental/eclipse/features$ rm org.eclipse.jdt* org.eclipse.cvs* org.eclipse.pde* org.eclipse*.source* -rf gautham@ubuntu:~/eclipse/experimental/eclipse/features$ ls org.eclipse.platform_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz org.eclipse.rcp_3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS org.eclipse.sdk_3.3.2.R33x_r20071022-7M7J7C_Mu2gop0b_GAwplOBhyuKO gautham@ubuntu:~/eclipse/experimental/eclipse/features$ cd .. gautham@ubuntu:~/eclipse/experimental/eclipse$ ./eclipse -clean -configuration ../config/minimal/ &
Go to: Help -> Software Updates -> Manage Configuration
You should not see any errors:
Ok, now let’s see if we can delete the jdt, pde, cvs and source plugins and still run Eclipse without issues.
gautham@ubuntu:~/eclipse/experimental/eclipse$ cd plugins gautham@ubuntu:~/eclipse/experimental/eclipse/plugins$ rm -rf org.eclipse.jdt* org.eclipse.pde* org.eclipse.cvs* org.eclipse*.source* gautham@ubuntu:~/eclipse/experimental/eclipse/plugins$ cd .. gautham@ubuntu:~/eclipse/experimental/eclipse$ ./eclipse -clean -configuration ../config/minimal/ & [3] 11853
Eclipse displays an error saying there is some problem in restoring the workbench layout, but it comes up without any issues.
Wow!
What’s the disk usage like?
gautham@ubuntu:~/eclipse/experimental/eclipse$ cd ../../ gautham@ubuntu:~/eclipse$ du -hs original/ 159M original/ gautham@ubuntu:~/eclipse$ du -hs experimental/ 88M experimental/
Although this is considerable, we can do a lot better than that. Let’s continue with:
Changing the product feature
gautham@ubuntu:~/eclipse$ cp experimental/* backup/ -r gautham@ubuntu:~/eclipse$
We can gain some additional space by making a small tweak right away.
- Go to config.ini in config/minimal and change the product to org.eclipse.platform.ide.
gautham@ubuntu:~/eclipse$ cd experimental/config/minimal/
config.ini
... # The product to run. A given Eclipse configuration may contain many products. # The product identified will supply the branding (window icons, title bar text) etc # as well as define the default application to run. eclipse.product=org.eclipse.platform.ide ...
gautham@ubuntu:~/eclipse/experimental/config/minimal$ cd ../../eclipse/features/ gautham@ubuntu:~/eclipse/experimental/eclipse/features$ rm -rf org.eclipse.sdk_3.3.2.R33x_r20071022-7M7J7C_Mu2gop0b_GAwplOBhyuKO/ gautham@ubuntu:~/eclipse/experimental/eclipse/features$ cd ../ gautham@ubuntu:~/eclipse/experimental/eclipse$ ./eclipse -clean -configuration ../config/minimal/ &
Go to: Help -> Software Updates -> Manage Configuration
Next let’s see Disabling unnecessary platform plugins
Our next target is the plugins directory. There are still a whole bunch of plugins there. But a majority of them are not required for Eclipse to come up with a UI.
First step is to remove other source files:
gautham@ubuntu:~/eclipse/experimental/eclipse/plugins$ rm -rf ./*source[._]*
But it is not possible to just delete other plug-ins. These plug-ins are referenced in the feature.xml of org.eclipse.platform….
So the way we tackle this is to understand the dependencies between plug-ins and carefully remove those plug-ins that are not quite required by the platform.
In order to learn the plug-in dependencies, let’s open the ‘experimental’ Eclipse as a Target Platform in the ‘original’ Eclipse.
Here are the steps:
- Go to the original Eclipse install directory.
- Start Eclipse with a new workspace, say ~/eclipseoriginal
gautham@ubuntu:~/eclipse/experimental/eclipse$ cd /home/gautham/eclipse/original/eclipse/ gautham@ubuntu:~/eclipse/original/eclipse$ ./eclipse &
- Go to the Plug-in Development Perspective.
- Go to Window -> Preferences -> Plug-in Development -> Target Platform. (Actually in Eclipse 3.3 you can just press Ctrl+3 and start typing ‘target platform’ and select Target Platform – Plug-in Development).
- Set Location of the target platform to the ‘experimental’ Eclipse:
/home/gautham/eclipse/experimental/eclipse
- Click on Reload.
- Finally click OK.
- Click on the Plug-ins view.
- There is no hard and fast rule on which plug-in can be removed. One hint is to look for every plug-in on which no other plug-in depends and remove them from the plug-ins directory. (However note that this need not be the case for all plug-ins.) The way I find this out is to right-click on the plug-in and then click on Open Dependencies and then click on the ‘Show Callers’ button in the toolbar in Plug-in Dependencies view.
Here are the list of plug-ins that I removed:
com.jcraft.jsch org.apache.ant org.apache.ant.ui org.apache.commons.el org.apache.jasper org.eclipse.core.boot org.eclipse.core.databinding.beans org.eclipse.core.filesystem.linux.x86 - Gives an error at the end but still works fine. org.eclipse.core.resources.compatibility org.eclipse.core.runtime.compatibility org.eclipse.core.runtime.compatibility.registry org.eclipse.debug.core org.eclipse.debug.ui org.eclipse.equinox.jsp.jasper org.eclipse.equinox.jsp.jasper.registry org.eclipse.help.webapp org.eclipse.jsch.core org.eclipse.jsch.ui org.eclipse.ltk.ui.refactoring org.eclipse.osgi.util org.eclipse.platform.doc.isv org.eclipse.platform.doc.user org.eclipse.search org.eclipse.team.cvs.core org.eclipse.team.cvs.ssh org.eclipse.team.cvs.ssh2 org.eclipse.team.cvs.ui org.eclipse.tomcat org.eclipse.ui.browser org.eclipse.ui.console org.eclipse.ui.externaltools org.eclipse.ui.net org.eclipse.ui.presentations.r21 org.eclipse.ui.workbench.compatibility org.eclipse.update.core.linux org.eclipse.update.scheduler org.junit org.junit4
If any of the above plugins are found in the file features/org.eclipse.platform… remove that entry. I am printing the contents of the feature.xml for your reference:
gautham@ubuntu:~/eclipse/experimental/eclipse/features/org.eclipse.platform_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz$ cat feature.xml <?xml version="1.0" encoding="UTF-8"?> <feature id="org.eclipse.platform" label="%featureName" version="3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz" provider-name="%providerName" image="eclipse_update_120.jpg"> <description> %description </description> <copyright> %copyright </copyright> <license url="%licenseURL"> %license </license> <url> <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/> <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.3"/> <discovery label="%secondaryUpdateSiteName" url="http://download.eclipse.org/releases/europa"/> </url> <includes id="org.eclipse.rcp" version="3.3.2.R33x_r20071022-8y8eE9CEV3FspP8HJrY1M2dS"/> <plugin id="javax.servlet" download-size="0" install-size="0" version="2.4.0.v200706111738" unpack="false"/> <plugin id="javax.servlet.jsp" download-size="0" install-size="0" version="2.0.0.v200706191603" unpack="false"/> <plugin id="org.apache.jasper" download-size="0" install-size="0" version="5.5.17.v200706111724" unpack="false"/> <plugin id="org.apache.commons.logging" download-size="0" install-size="0" version="1.0.4.v200706111724" unpack="false"/> <plugin id="org.apache.lucene" download-size="0" install-size="0" version="1.9.1.v200706111724" unpack="false"/> <plugin id="org.apache.lucene.analysis" download-size="0" install-size="0" version="1.9.1.v200706181610" unpack="false"/> <plugin id="org.eclipse.ant.core" download-size="0" install-size="0" version="3.1.200.v20070522" unpack="false"/> <plugin id="org.eclipse.compare" download-size="0" install-size="0" version="3.3.1.r33x_20070906" unpack="false"/> <plugin id="org.eclipse.core.filebuffers" download-size="0" install-size="0" version="3.3.1.r331_v20070829" unpack="false"/> <plugin id="org.eclipse.core.filesystem" download-size="0" install-size="0" version="1.1.0.v20070606" unpack="false"/> <plugin id="org.eclipse.core.net" download-size="0" install-size="0" version="1.0.1.r33x_20070709" unpack="false"/> <plugin id="org.eclipse.core.resources" download-size="0" install-size="0" version="3.3.0.v20070604" unpack="false"/> <plugin id="org.eclipse.osgi.services" download-size="0" install-size="0" version="3.1.200.v20070605" unpack="false"/> <plugin id="org.eclipse.core.variables" download-size="0" install-size="0" version="3.2.0.v20070426" unpack="false"/> <plugin id="org.eclipse.equinox.http.registry" download-size="0" install-size="0" version="1.0.0.v20070608" unpack="false"/> <plugin id="org.eclipse.equinox.http.jetty" download-size="0" install-size="0" version="1.0.1.R33x_v20070816" unpack="false"/> <plugin id="org.eclipse.equinox.http.servlet" download-size="0" install-size="0" version="1.0.1.R33x_v20070816" unpack="false"/> <plugin id="org.eclipse.help.base" download-size="0" install-size="0" version="3.3.1.v20070813_33x" unpack="false"/> <plugin id="org.eclipse.help.ui" download-size="0" install-size="0" version="3.3.1.v20070726_33x" unpack="false"/> <plugin id="org.eclipse.help.appserver" download-size="0" install-size="0" version="3.1.200.v20070510" unpack="false"/> <plugin id="org.eclipse.ltk.core.refactoring" download-size="0" install-size="0" version="3.3.1.r331_v20070829" unpack="false"/> <plugin id="org.eclipse.platform" download-size="0" install-size="0" version="3.3.2.R33x_v20071022"/> <plugin id="org.eclipse.team.core" download-size="0" install-size="0" version="3.3.1.r33x_20070807" unpack="false"/> <plugin id="org.eclipse.team.ui" download-size="0" install-size="0" version="3.3.1.r33x_20070730" unpack="false"/> <plugin id="org.eclipse.text" download-size="0" install-size="0" version="3.3.0.v20070606-0010" unpack="false"/> <plugin id="org.eclipse.jface.text" download-size="0" install-size="0" version="3.3.1.r331_v20070629" unpack="false"/> <plugin id="org.eclipse.jsch.core" download-size="0" install-size="0" version="1.0.0.I20070426" unpack="false"/> <plugin id="org.eclipse.ui.intro" download-size="0" install-size="0" version="3.2.101.v20070827_33x" unpack="false"/> <plugin id="org.eclipse.ui.intro.universal" download-size="0" install-size="0" version="3.2.100.v20070530A"/> <plugin id="org.eclipse.ui.cheatsheets" download-size="0" install-size="0" version="3.3.0.v20070507" unpack="false"/> <plugin id="org.eclipse.ui.navigator" download-size="0" install-size="0" version="3.3.2.M20071022-1600a" unpack="false"/> <plugin id="org.eclipse.ui.navigator.resources" download-size="0" install-size="0" version="3.3.1.M20070831-2000" unpack="false"/> <plugin id="org.eclipse.ui.workbench.texteditor" download-size="0" install-size="0" version="3.3.1.r331_v20070806" unpack="false"/> <plugin id="org.eclipse.ui.views" download-size="0" install-size="0" version="3.2.101.M20070910-0800b" unpack="false"/> <plugin id="org.eclipse.ui.editors" download-size="0" install-size="0" version="3.3.1.r331_v20070629" unpack="false"/> <plugin id="org.eclipse.ui.forms" download-size="0" install-size="0" version="3.3.0.v20070511" unpack="false"/> <plugin id="org.eclipse.ui.ide" download-size="0" install-size="0" version="3.3.1.M20070910-0800b" unpack="false"/> <plugin id="org.eclipse.ui.ide.application" download-size="0" install-size="0" version="1.0.0.I20070530-0100" unpack="false"/> <plugin id="org.eclipse.ui.win32" ws="win32" download-size="0" install-size="0" version="3.2.100.I20070319-0010" fragment="true" unpack="false"/> <plugin id="org.eclipse.update.core" download-size="0" install-size="0" version="3.2.101.R33x_v20070911" unpack="false"/> <plugin id="org.eclipse.update.ui" download-size="0" install-size="0" version="3.2.100.v20070615" unpack="false"/> <plugin id="org.eclipse.ui.workbench.compatibility" download-size="0" install-size="0" version="3.2.0.I20070319-0010" fragment="true"/> <plugin id="org.eclipse.core.resources.win32" os="win32" download-size="0" install-size="0" version="3.3.0.v20070226" fragment="true" unpack="false"/> <plugin id="org.eclipse.update.core.win32" os="win32" download-size="0" install-size="0" version="3.2.100.v20070615" fragment="true" unpack="false"/> <plugin id="org.eclipse.ui.views.properties.tabbed" download-size="0" install-size="0" version="3.3.1.M20070831-0800" unpack="false"/> <plugin id="org.mortbay.jetty" download-size="0" install-size="0" version="5.1.11.v200706111724" unpack="false"/> </feature> gautham@ubuntu:~/eclipse/experimental/eclipse/features/org.eclipse.platform_3.3.2.R33x_v20071022-_19UEksF-G8Yc6bUv3Dz$
Here is the list of plugins that remain
gautham@ubuntu:~/eclipse/experimental/eclipse/plugins$ ls com.ibm.icu_3.6.1.v20070906.jar javax.servlet_2.4.0.v200706111738.jar javax.servlet.jsp_2.0.0.v200706191603.jar org.apache.commons.logging_1.0.4.v200706111724.jar org.apache.lucene_1.9.1.v200706111724.jar org.apache.lucene.analysis_1.9.1.v200706181610.jar org.eclipse.ant.core_3.1.200.v20070522.jar org.eclipse.compare_3.3.1.r33x_20070906.jar org.eclipse.core.commands_3.3.0.I20070605-0010.jar org.eclipse.core.contenttype_3.2.100.v20070319.jar org.eclipse.core.databinding_1.0.1.M20070822-0800.jar org.eclipse.core.expressions_3.3.0.v20070606-0010.jar org.eclipse.core.filebuffers_3.3.1.r331_v20070829.jar org.eclipse.core.filesystem_1.1.0.v20070606.jar org.eclipse.core.jobs_3.3.1.R33x_v20070709.jar org.eclipse.core.net_1.0.1.r33x_20070709.jar org.eclipse.core.resources_3.3.0.v20070604.jar org.eclipse.core.runtime_3.3.100.v20070530.jar org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502.jar org.eclipse.core.variables_3.2.0.v20070426.jar org.eclipse.equinox.app_1.0.1.R33x_v20070828.jar org.eclipse.equinox.common_3.3.0.v20070426.jar org.eclipse.equinox.http.jetty_1.0.1.R33x_v20070816.jar org.eclipse.equinox.http.registry_1.0.0.v20070608.jar org.eclipse.equinox.http.servlet_1.0.1.R33x_v20070816.jar org.eclipse.equinox.launcher_1.0.1.R33x_v20070828.jar org.eclipse.equinox.launcher.gtk.linux.x86_1.0.2.R331_v20071019 org.eclipse.equinox.preferences_3.2.100.v20070522.jar org.eclipse.equinox.registry_3.3.1.R33x_v20070802.jar org.eclipse.help_3.3.1.v20070726_33x.jar org.eclipse.help.appserver_3.1.200.v20070510.jar org.eclipse.help.base_3.3.1.v20070813_33x.jar org.eclipse.help.ui_3.3.1.v20070726_33x.jar org.eclipse.jface_3.3.1.M20070910-0800b.jar org.eclipse.jface.databinding_1.1.1.M20070910-0800b.jar org.eclipse.jface.text_3.3.1.r331_v20070629.jar org.eclipse.ltk.core.refactoring_3.3.1.r331_v20070829.jar org.eclipse.osgi_3.3.1.R33x_v20070828.jar org.eclipse.osgi.services_3.1.200.v20070605.jar org.eclipse.platform_3.3.2.R33x_v20071022 org.eclipse.rcp_3.2.0.v20070612.jar org.eclipse.sdk_3.3.2.R33x_v20071022 org.eclipse.swt_3.3.2.v3347.jar org.eclipse.swt.gtk.linux.x86_3.3.2.v3347.jar org.eclipse.team.core_3.3.1.r33x_20070807.jar org.eclipse.team.ui_3.3.1.r33x_20070730.jar org.eclipse.text_3.3.0.v20070606-0010.jar org.eclipse.ui_3.3.1.M20070910-0800b.jar org.eclipse.ui.cheatsheets_3.3.0.v20070507.jar org.eclipse.ui.editors_3.3.1.r331_v20070629.jar org.eclipse.ui.forms_3.3.0.v20070511.jar org.eclipse.ui.ide_3.3.1.M20070910-0800b.jar org.eclipse.ui.ide.application_1.0.0.I20070530-0100.jar org.eclipse.ui.intro_3.2.101.v20070827_33x.jar org.eclipse.ui.intro.universal_3.2.100.v20070530A org.eclipse.ui.navigator_3.3.2.M20071022-1600a.jar org.eclipse.ui.navigator.resources_3.3.1.M20070831-2000.jar org.eclipse.ui.views_3.2.101.M20070910-0800b.jar org.eclipse.ui.views.properties.tabbed_3.3.1.M20070831-0800.jar org.eclipse.ui.workbench_3.3.1.M20070921-1200.jar org.eclipse.ui.workbench.texteditor_3.3.1.r331_v20070806.jar org.eclipse.update.configurator_3.2.101.R33x_v20070810.jar org.eclipse.update.core_3.2.101.R33x_v20070911.jar org.eclipse.update.ui_3.2.100.v20070615.jar org.mortbay.jetty_5.1.11.v200706111724.jar gautham@ubuntu:~/eclipse/experimental/eclipse/plugins$
What is the disk usage like?
gautham@ubuntu:~/eclipse$ du -hs experimental/ 33M experimental/
This is how it looks:
Link
Next we examine the ‘experimental’ Eclipse via the ‘original’ Eclipse.
Examining the experimental Eclipse
gautham@ubuntu:~$ cd eclipse/original/eclipse/ gautham@ubuntu:~/eclipse/original/eclipse$ ./eclipse & [1] 7817
- Switch to the Plug-in Development Perspective.
- Set the Target Platform to ~/eclipse/experimental/eclipse. The instructions for this are given here: Disabling unnecessary platform plugins.
Once we have set the Target Platform, let’s try to run the ‘experimental’ Eclipse.
- Go to Run -> Open Run Dialog.
- Right click ‘Eclipse Application’ -> Select New.
- Give the launch configuration a name like: Experimental Eclipse.
- Click Apply and then Run.
You should see your ‘experimental’ Eclipse installation coming up without any issues.
This is how it looks:
Link
As you can see in the screenshot above, there are 2 instances of Eclipse running. The host instance and the target.
- Exit the target instance.
Let’s now tweak some of the configurations.
- Open the Run Dialog as before and append the following in Arguments -> Program Arguments:
-clean -debug -consolelog
- Click Apply and Run.
The host instance would show up some log in the console as shown in the screenshot below.