As per usual, EclipseCon was full of interesting new technologies, people using older technology in new ways, and a lot of social (mostly because of the Free Beer) engineers. I thought I'd offer an overview of the areas I was the most intrigued by this year.
On the first day, I went to a talk (that was actually more of a tutorial) to learn about a new test framework from Xored called Q7. Q7 will be a commercial product (sometime in the next 6 months most likely), but also have a community version. The tooling allows you to script tests in a similar way to how Rational Tester used to do it, but has hooks directly into the Eclipse platform UI bits so it doesn't need to rely (except in certain cases) on screen locations. They've even gone so far as to integrate it with Maven & Tycho for automatically triggering tests as part of the build.
They offer a free evaluation version that was released for EclipseCon here: http://docs.xored.com/display/Q7E/Home
The differences between Q7 and SWTBot are quite large. The biggest of those differences being the ability to explicitly test pre-conditions (i.e. clean workspace with two projects, a few preferences changed, etc.) between tests. That alone makes this a compelling new product in the Eclipse test space and something we should seriously look into as opposed to continuing with SWTBot. They just released tentative pricing details here (http://docs.xored.com/display/Q7E/Pricing+%28Tentative%29) and I'd encourage Jiri and his team to check it out.
On the second day was the "Spy on your Models" talk that discussed the MoDisco EMF Model Browser. The MoDisco project (http://wiki.eclipse.org/MoDisco/Components/v0.9) offers a variety of tools to help navigate the EMF model hierarchy within the Eclipse tooling. Once you have that, you can execute queries and other interesting things in a SQL-like language that also has possibilities. I plan on downloading and playing with it in their Indigo release (http://download.eclipse.org/modeling/mdt/modisco/updates/release/).
EMF and GWT
After that I saw a talk by Ed Merks on "Building Web Applications with EMF and GWT," which showed on the fly how EMF can build a quick GWT app that runs on the Google App Server merely by tweaking a few genmodel settings. It might not have been a great editor, but as something quick and easy to develop for the web it offers some interesting possibilities.
What not to do with p2
One of the more entertaining talks was "p2, your savior or your achilles heel? Everything an Eclipse team needs to know about p2." The pair giving the talk offered 10 things NOT to do when using P2. Hopefully they will release the slides at some point, but here are the top 10:
- Don't move or remove files on disk. Let p2 and the p2 garbage collector manage your install. Otherwise your metadata gets out of whack.
- Don't unzip your plug-in files over Eclipse. Instead, use a p2 repository (downloadable or online).
- Don't replace published content. The version/ID pair is immutable, so bad things occur when you overwrite plug-ins directly by name.
- Don't alter a released repository. People depend on those. Instead, specify a retention policy and create additional repositories.
- Don't NOT categorize features.
- Don't ignore version ranges.
- Use APIs, NOT internals.
- Don't use the metadata generator, use the publisher instead.
- Don't use legacy update sites or expect a long lag time when installing.
- Don't spell it P2 - it's a lower case p2.
I missed the Sapphire talk by Konstantin from Oracle, but caught him later that day and he showed me the wonders of the Sapphire framework. I'm still playing with Sapphire a bit, but you can read more here: http://www.eclipse.org/sapphire/
As I get the hang of it, I'll write up a blog post or two about how it works. Ultimately it's about providing an abstraction layer on top of the Eclipse UI to simplify tool development. It has a lot of potential to standardize the look & feel for new tools and simplify their development dramatically, but it's a technology in its formative days. That said, they're doing some amazing things with it and using it in commercial Oracle Eclipse applications, so I suspect it will mature quickly.
And that's about it for this year. There were many other great talks and the keynote featuring Watson the Jeapordy champion was quite entertaining and informative.
For other details about the conference, be sure to look at the EclipseCon 2011 site.