Thursday, July 26, 2007

paste'n'run

JDT team is not stopping in their efforts to save our input devices so now getting working project from a snippet posted somewhere on web or newsgroup is about 13 clicks faster!



(I don't see the movie)

Friday, July 20, 2007

Compare folders on Windows

Yesterday I had two Eclipses that one worked and other didn't, it was obvious to make some diff but real pain that I had nothing like diff, cmp or compare under Windows.
But hey, Eclipse compares folders all the same as it compares our Java code.

You simply create new project, create two new linked folders, that point to somewhere in your filesystem, select, "Compare -> With Each Other" from popup and voila

Friday, July 6, 2007

How to deal with many Eclipses

Sometimes you are not only a Java, C++, Python, Ruby or web programmer. There are days when you need to deal with many technologies. And even if you are only a Java developer – remember we are in Eclipse Europe age. This means many great tools but also huge plugins set. If you are lucky then probably you will newer suffer from memory shortages or Windows Vista behavior in your Eclipse.

I want to tell you about nothing newest and noteworthy but something old and forgotten (especially at my university).

At first I will tell you how does it look now. If you need only Java you download fast and furious Eclipse from eclipse.org. But after that you needs some testing, code coverage, debugging and profiling. So EMF, TPTP flies to your plugin folder. After some time simple web application is needed – WTP. And so on and so on. Oh, I’ve forgot about Mylyn – we are task oriented ;). But with every minute (and with a workspace size) our Eclipse is slower and more space consuming.

Till today I had four Eclipses. One for C/C++ developing one for web, plugins and Java one for profiling and one for experiments ;).

But there is an option how to reuse one eclipse installation - -configuration switch. This is my solution:

Download each feature to separate location.

Choose needed features from update site. You can specify location for each feature separately.

Add locations to your product configuration

This should be already done if you followed last paragraph. But something could happen between lines. So lets assume you have only one site with CDT but you also need Mylyn.


Above is my product configuration. One this you can do is disabling the specific feature location. So if you want remove some functions temporary from your Eclipse this is option for you. To add new location use view menu

Clone product configurations

This is very easy step and can be done in two ways.

First – copy configuration dir to different location.

Second – use eclipse –initialize – configuration

Modify it to your needs

To deal with different set of features one file is needed /org.eclipse.update/platform.xml. If we have followed different locations for each feature rule we should see something similar to this code:


<?xml version="1.0" encoding="UTF-8"?>
<config date="1183550870687" transient="false" version="3.0">
<site enabled="true" policy="USER-EXCLUDE" updateable="true" url="file:../plugins/mylyn/eclipse/">
<feature id="org.eclipse.mylyn.java_feature" plugin-identifier="org.eclipse.mylyn" url="features/org.eclipse.mylyn.java_feature_2.0.0.v20070628-1000/" version="2.0.0.v20070628-1000">

</site>
<site enabled="true" policy="USER-EXCLUDE" updateable="true" url="platform:/base/">
</site>
<site enabled="true" policy="USER-EXCLUDE" updateable="true" url="file:../plugins/cdt/eclipse/">
<feature id="org.eclipse.cdt" url="features/org.eclipse.cdt_4.0.0.200706261300/" version="4.0.0.200706261300">
</feature>
</site>
</config>


You have many (in this example two ;) ) with different features. So if you need configuration for Java + profiling you choose TPTP and basic site.

That’s all now you need to start your Eclipse with suitable parameter.

It is even more useful if you work in team. Then only thing you need is to put all features to network drive. Additional advantage is that all developers have almost the same Eclipse configuration.

Hope it helps ;)