Twitter github

New Target Platform Preference

To give plug-in developers out there a heads up… I want to say that there will be a new preference available to you when working with target platforms in 3.4M7:

What does this preference do?

Well, first, let me tell you about how PDE goes to build your target platform. By build, I mean what PDE does when you point it to a location and you get a target platform out of it. There has always been a little magic inside that operation. The magic involves PDE analyzing your target platform location and looking to see if it can find a configuration of plug-ins installed. How did PDE do this? In the the era of before p2, there was a platform.xml file that was kept by Update that listed the set of recognized plug-ins. In the era after p2, there is a file called bundles.info which serves a similar purpose. These files were there so the runtime can make smart decisions on what to actually run when started. For example, you could have 10 versions of plug-in A on disk, but only one version listed in one of those configuration files so when Eclipse is ran, the runtime only knows about what is listed in the configuration file (see a sample bundles.info below).

So if PDE found one of these “configuration files” it would construct your target platform to reflect what would actually be running in your target. If it didn’t find one of these configuration files, it will then just manually scan the file system and build a target platform with what plug-ins PDE found on disk. In the 10 versions of plug-in A case, it would populate the target platform with all 10 versions if it couldn’t find a target “configuration file.”

When p2 was introduced in the SDK (3.4M6), the bundles.info file was always around and caused confusion for people when they grabbed the SDK, unzipped something like WTP and all their dependencies, and pointed their target platform to the location to only see the SDK set of bundles. PDE was almost being too smart here… it’s analysis of the target platform was correct, ie., only the SDK set of bundles have been discovered by p2 and since the target hasn’t been launched, the unzipped set of bundles (WTP) haven’t been discovered yet.

To not break people’s existing workflows, PDE added this preference to the target platform preference page with some smart initialization. If you’re target == host, we will attempt to build the target platform using the target’s configuration. If your target != host, PDE will revert to manually scanning for plug-ins on the file system to build your target platform. It seems 99.9% of the Eclipse plug-in development community has been spoiled by that workflow so PDE needs to adapt. However, if you wish to change this behavior, the preference will allow you to do that based on your needs.

I hope this clarifies things for some people who have been experiencing growing pains with the 3.4M6 version of Eclipse. It pains me to expose this preference, but it seems it may be a good thing in the long run. The important thing to take away here is that an unzipped plug-in != installed plug-in.

Related bugs:
[bug 226037] – initialization policy for target platform should be different based on location
[bug 225148] – P2 PDE target doesn’t work, easily

Eclipse T-Shirt Back in Stock!

For those who missed out on the deal last time, one of my favorite Eclipse t-shirts is back in stock:

Enjoy!

Fly the Good Times

I finally made it back from Eclipse Forum India. I think I have had enough Kingfisher beer to last another year and I also found my new favorite Indian-based airline, Kingfisher airlines. The airline has the awesome motto of “fly the good times” 🙂

On a serious note, I’m pleased to report that the conference was very enjoyable with enthusiastic attendees curious about Eclipse technology. If I were to change one thing, I would love to see an Eclipse-specific conference in India by 2010. What I mean by that is we currently have the well-organized EclipseCon 2008 and Eclipse Summit Europe conferences… why not expand into Asia a bit with an Eclipse Summit India :)?

Oh, if anyone has recommendations for in-ear headphones… let me know… I’m currently looking at the Shure E3c and Etymotic ER6i. My old pair of headphones has finally bit the dust and I’m looking for an upgrade 🙂

links for 4-8-08

The jetlag is causing blogger’s writing block for me so I will post links instead 🙂

eRCP in OSGi Standardization?

For those of you who don’t pay attention to mailing lists closely… there’s been a request for feedback on standardizing eRCP in OSGi. Yes you read that right, there are people wanting to standardize eRCP in OSGi to help with adoption. There are some large backers for this proposal… Sprint, ProSyst, Nokia, and IBM.

What are my thoughts? Well, besides the quirks of reverse-specing something… it seems like a good idea. However, I’m still a bit uneasy with where the control lies… does this specification imply that the OSGi community gets to dictate what is in eRCP from now on? What impact does this have on the RCP stack controlled by the Eclipse community? Does the eRCP project in Eclipse become the reference implementation, similar to how Equinox is the reference implementation for OSGi?

Cool stuff… it’s amazing to see the excitement around OSGi and eRCP these days!

Eclipse Hyperlink Magic

All I can say, thank you for whoever put this little feature in for 3.4M6:

I didn’t notice this mentioned in the New and Noteworthy, but this little feature alone will save me a ton of time since I need to jump to properties files quite a bit. In the past, this was time consuming… you’d jump to the declaration and then do some fishing to find the properties file entry.

Thanks!

Eclipse Regional Communities, Austin Edition

I finally got around to starting an Austin Eclipse Regional Community. Forgive me for taking so long. If you’re in Austin, please sign up on the mailing list!

In the small group of Eclipse Platform committers based Austin, we tend to go for an “Eclipse lunch” on Wednesday or every other Wednesday. We are opening up this fine tradition of Eclipse luncheons to the public in Austin. We will be doing these Eclipse luncheons every other Wednesday, with the first one starting tomorrow at Mandola’s Market @ noon. It’s a fairly central location to try to accommodate everyone… it should even be close enough for those cool Nokia people who have a nice office downtown.

Since I’m a big fan of beer and talk to Germans frequently, I plan on doing a monthly “Eclipse Stammtisch” in Austin. I still have yet to plan that one… but expect it to be towards the end of the month at a place with a lot of beer on tap.

So if you have time tomorrow, come to the Eclipse luncheon to chat and eat some food! If you’re not in Austin, how about starting your own Eclipse regional community?

Open-source Natural Selection

The Eclipse project ecosystem is an interesting place… it’s like a large playground with monkey bars, tether ball and swing sets. This playground is also full of diverse participants. However, what happens when two children in this playground fight? For example, two children both want to play in the same sandbox but there’s only room for one due to their egos or some political reasons. Does one kid push the other out of the sandbox, do both go blind by kicking sand in each others eyes or do they just happily play together?

I bring this issue up (and cheesy metaphor) because we will have another case of this type of competition soon within the Eclipse project ecosystem… and I just wanted to hear people’s opinions.

In the past, we had this happen with two Subversion projects (Subclipse and Subversive)… one was left standing… and in the end, were we better off with this type of competition? Did the community win or lose on this one? You decide 🙂

Personally, I’ve always been a big fan of natural selection and Darwinian evolution:

I say, let open-source projects figure things out as long as they don’t kick sand in the eyes of people living outside their sandbox. In the end, the better project should win or the competing projects will find a way to work together.

Adieu Eclipse, Hello Microsoft

The handsome Sam Ramji at EclipseCon convinced me to head over the OSS Lab at Microsoft.

How can you say no to such a “center of excellence” and some cute penguins:

Adieu Eclipse.

Hello Microsoft open-source innovation, interoperability and technology research.

3.4M6 is out!

Check out the impressive list of New and Noteworthy items.

I recommend “bleeding-edge” developers adopt this build as soon as possible to allow for feedback on some of the new stuff that was dropped (e.g., p2, api tools). The Platform team deserves a lot of credit for getting this out the door considering, updating, building, launching, self-hosting, exporting etc… all had to be reworked for the new provisioning story.

Cheers!