Wednesday, November 16, 2011

First ever Vancouver Eclipse Hackathon...success!

Last night we had our first Vancouver Eclipse Hackathon. It was a wonderful night, and we had 20 Eclipse hackers showing up with all kinds of experience. The goal of the evening was to introduce some programmers to Eclipse-based open source projects, to help them collaborate and learn about the project, and maybe even contribute some code. Some hackers had written Eclipse plugins before, others knew nothing about Eclipse (other than it being a great Java IDE), and a few didn't even know Java. It was a good range of people and we spent almost six hours working on our bugs.

Working on quick-assists inside of Groovy-Eclipse

Team working on mark-occurrences in the Groovy editor.

Some Mylyn Hackers working together.

More hacking.

Almost complete silence in the room as everyone concentrates on their bugs.

Happy birthday, Eclipse!

And here are the results of the evening:

  • 20 hackers (including two project leads)
  • 6 hours of hacking
  • 24 bottles of beer drunk
  • 6 pizzas eaten
  • Half of an Eclipse 10 year birthday cake eaten
  • 3 Eclipse-based projects worked on: Mylyn, AJDT, and Groovy-Eclipse
  • 12 bugs worked on
  • 3 patches submitted
  • 2 more patches in process
  • Fun had by all

It was encouraging to see the dedication of all the hackers. We will definitely be hosting another one soon. However, we did learn a few things about organizing hackathons that we will do differently next time:

  • Make it easy for hackers to set up their dev environments. Put up instructions a few days before so hackers can get ready before the hackathon and they don't have to spend 90 minutes setting up before starting.
  • Internet connections can be unreliable and slow. Have USB sticks available with Eclipse SDK tarballs for different environments. Also, have some workspaces set up with the source code of the projects checked out.
  • Try to have more projects and more project leads available. This time, we only had three projects and two project leads, but more variety would have been nicer. We were originally expecting more leads to show up, but they had to cancel.
  • Have a very concise list of bugs for hackers to work on. Be very specific about how to get started working on them.

Also, a huge thanks to the other co-organizers of this event Ducky Sherwood and Zoe Jong from Tasktop Technologies.

If you want to organize a hackathon in your area, drop me a line and I can help you get started. It is a fun time.

Thursday, September 22, 2011

Using Grails 2.0.0.M2, Cloud Foundry and the SpringSource Tool Suite

There are a lot of details in my VanDev talk tonight. Since most of what I showed you was from versions of our software not yet officially released, you are going to need to cobble together a few things to get everything working properly. Here are some instructions and links.

  1. First, here is a detailed guide on using Grails 2.0.0 from inside STS. It was written for M1, but it is essentially the same. Below, I'll summarize.
  2. Download STS 2.8.0.M1. To see 2.8.0.M1, you need to click on Other downloads.
  3. After downloading and unzipping/installing STS, you will need to install Groovy-Eclipse and Grails Tooling. Do not install Groovy-Eclipse or Grails from the dashboard since that only points to older releases. Instead, go to the Install manager (Help -> Install new software...), and add the nightly update sites for Groovy-Eclipse and Grails Tooling:
    • Nightly Grails Tooling update site:
    • Nightly Groovy-Eclipse update site. Make sure to also install the Groovy 1.8 compiler:
    Use these sites to install the software.
  4. Next, download Grails 2.0.0.M2.
  5. Once downloaded and unzipped, you can install the Grails distribution into STS.
If you want to play around with Cloud Foundry:
  1. First install the CloudFoundry tools from the STS dashboard.
  2. Then sign up for a CloudFoundry account.
  3. There's lots of information on the site as well as the community site. Here's more on using Cloud Foundry in STS
Here is some more information on DSL Descriptors in Groovy-Eclipse, and also a general description of our approach to integrating the Groovy and Java compilers inside of Groovy-Eclipse.


If you have any questions of problems with STS or Groovy-Eclipse, please visit the forum. However, Groovy-Eclipse questions may be answered more quickly on the mailing list. Bugs can be reported here: Groovy-Eclipse and STS.

Wednesday, June 29, 2011

AJDT 2.1.3 Released

The AJDT team is proud to release AJDT 2.1.3. This release is the first one targeting Indigo (Eclipse 3.7) and it contains AspectJ 1.6.12.M1. The update sites are here:

For Indigo:

For Helios:

Please send any feedback to one of the mailing lists or raise an issue
on Bugzilla.

Groovy-Eclipse 2.5.1 Released

The Groovy-Eclipse team is proud to release Groovy-Eclipse 2.5.1. This release is now available for install using the update sites here:

for Eclipse Indigo:

for Eclipse Helios:

In this release, we have continued to work on our DSLD support (and we
ship with some useful DSLD scripts). Additionally, we have a GA
release of the groovy-eclipse-compiler-plugin for Maven. Now that
Indigo has been released, the 3.7 stream of Groovy-Eclipse will become
the main development branch. For now, we will continue to support the
3.6 stream of Groovy-Eclipse and will put out at least one more

You can find all the details at our New & Noteworthy page.

Please send feedback here or raise an issue on our issuetracker.

Friday, June 24, 2011

Vancouver Eclipse Demo Camp 2011

In honor of the Indigo release of Eclipse, I will be hosting the annual Eclipse Demo camp in Vancouver on Monday, June 27. The demo camp is co-sponsored by the Eclipse Foundation, VMWare, and Tasktop.

We're expecting a full house as well as lots of exciting talks, including one on Groovy/Grails support in Eclipse and the SpringSource Tool Suite, a talk from Tasktop, and a talk about the Eclipse Modelling Framework from Ed Merks, the project lead.

If you are in the Vancouver area and interested in attending, please add your name to the wiki:

Alternatively, contact me directly (or on this blog) and I'll add you myself. Hope to see you there!

Tuesday, May 24, 2011

Slides from Gr8conf Europe 2011

Here are the slides from my Gr8Conf Europe presentation.

Unfortunately, the animations didn't make the conversion to SlideShare, but these slides will give you an idea of what I talked about. I can also post the sample projects that I showed during the talk.

Thursday, May 12, 2011

Groovy-Eclipse 2.5.0 Released

The SpringSource Tools Team is proud to release Groovy-Eclipse 2.5.0. In this release, we are most proud of our new DSL Descriptors (DSLDs) feature, which provides scriptable support for custom Domain Specific Languages in the Groovy Editor. Additionally, this release includes Groovy 1.8 as an optional add on, better content assist and type inferencing, and a Groovier outline view.

See all details on the New and Noteworthy page, and please send your comments to the mailing list. Enjoy!

Monday, May 9, 2011

Better DSL Support for Groovy-Eclipse

What have I been doing lately? Mostly working on Groovy-Eclipse's new DSLD feature to support custom Groovy DSLs more easily. See my post about that on the SpringSource blog.

Friday, April 8, 2011

Next month at the GR8 conference

The nice folks organizing the GR8 Conference 2011 Europe have posted an interview they did with me. You can read it here. The GR8 conference focusses on the Groovy eco-system including Grails, Gradle, and Griffon.

I'll be talking about Groovy-Eclipse, Grails tooling, and our new Gradle support for Eclipse. More on this soon...

Friday, March 18, 2011

Groovy-Eclipse and AJDT simultaneous releases

Today, we have just release Groovy-Eclipse 2.1.2 and AJDT 2.1.2. By coincidence, they both have the same version number.


We've made lots of improvements to Groovy-Eclipse including inline renaming support, mark/find occurrences as you type, and type inferencing improvements. You can find all the details at the New and Noteworthy page.

The update site for installation on Eclipse 3.6 is here:

We are also now releasing a Groovy-Eclipse for Eclipse 3.7 (Indigo). The update site is here:

As always, please raise bug reports and enhancement requests at our Codehaus issue tracker.

We expect to release Groovy 1.8 support shortly.


Our enhancements for AJDT have mostly centered around supporting Intertype Inner Types. a new AspectJ language feature. You can read about it at the AJDT New and Noteworthy.

An AJDT release for Eclipse 3.7 is available at this update site:

Please raise bugs and feature requests at Eclipse's bugzilla.

Monday, March 7, 2011

eGit in practice

I like Git in theory. Distributed version control has many advantages over non-distributed including local branching, easier task switching, and easier offline work.  However, as an Eclipse user, I find it highly disruptive to drop down to the command line whenever I need to perform any git commands.  Despite its advantages, using git instead of CVS or SVN has felt like a big step backward because of its lack of Eclipse tooling.

Until now, I have only been using git occasionally, and so I could live with the inconvenience.  However, it looks like some of my major projects will be moving to git and so I need to figure out what to do.  I have been eagerly awaiting the eGit tooling to reach a reasonable level of maturity.  I decided to try it out and see how far along it is.

Install and setup

I installed eGit 0.11.3 from the public repository ( into my SpringSource Tool Suite.  And as expected, the Git Repository perspective was initially empty.  So far so good.

I thought I'd start by cloning the SpringIDE project.  Initially, I tried right clicking in the Git repositories view, and expected that I'd be able to pasted the repository URL directly.  That didn't work.  There is only one option: to paste an existing repository path:

Instead, I used the "clone repositories" command button.  I was able to do what I wanted to, but it was slightly less intuitive than I would have hoped.

Using eGit

After cloning, Git placed the entire repository on my hard drive, which is nice because checking out, exploring, and comparing is much faster than using a traditional VCS.  Performing these operations within Eclipse is just as speedy as doing things like comparing local history.  At this point, I was very impressed.

Then I made a single change to a file and things started going downhill.  After the change, I had to wait about 30 seconds for the '>' to appear in the package explorer next to the changed file (whereas with Subversive and the CVS tooling, this happens what seems like instantaneously):

Then I started playing around... I right-clicked on the file I had just changed and selected Assume unchanged.  Uh-oh!  ClassCastException.  Now, click Assume changed.  IOException.  Apparently, though something worked and I was able to continue with the commit and then view the commit in history.

Next problem: I moved back to the Git Repositories perspective, and I had lost all of the git repositories in the git repositories view.  Re-importing them would not work.  It looked more like the UI had crashed than any data had been lost:

I restarted Eclipse and everything seemed back to normal:

Despite its problems, eGit has a good UI.  The project is clearly following the Eclipse User Interface Guidelines, and I was able to easily transfer my familiarity with Eclipse's CVS and SVN tools to working with git.  This is a strong indicator to me that the project is headed in the right direction even if it is not quite there yet.

And so...

The basic features that I need exist, but after 20 minutes of using, I hit several obstacles.  None of them were insurmountable and the project is usable.  Despite this, I do expect that future releases will be significantly more solid.  I will likely be using eGit for my day to day work, but for now this will be largely for repository and history exploration, rather than for commit and branch management, which I'll probably use the command line for.

EDIT: I raised Bug 339158 and Bug 339159 to track some of the problems I found.