Googlipse

Did you ever hear about GWT – the Google Web Toolkit? It’s a nice way of writing Ajax Web Clients in Java which run as JavaScript in the browser. Googlipse is an Eclipse plug-in that integrates very nice with Eclipse WTP. I tried it yesterday and was so excited about the clean and smooth integration that I decided to get my hands dirty and enhance it.

First, I changed the hard coded build path entry to the gwt-user.jar to a variable based one. Then I started prototyping a second WTP facet that can be attached to simple Java projects. The idea is to extract GWT modules into separate Java projects which can then be included by any web project. This setup is very useful because the GWT module project will contain only the minimalistic build path and will define the services which are then implemented in the web project. However, I still need to sort out some things before this is ready.

The last thing I changed is the project builder. The builder automatically generates the asynchronous interface of a remote service. I reworked it based on the JDT ASTRewrite API. This was a very nice exercise to get back to the JDT AST API which is very powerful. The enhanced version now also rewrites the JavaDoc of the generated interfaces. Oh and I also reworked the New GWT Module wizard and the New GWT Remote Service wizard based on the public JDT NewTypeWizardPage.

You can download the patched version here.

Update (2006-07-16): The support for including modules from other projects is now working including launching the GWT Browser in hosted mode with an external application server.

Update (2006-07-18): I recorded a small screen cast. You can download it here. But please bear with me about the quality. It’s rather poor. I was playing with CamStudio. If anybody knows about a good free recording software please send me a link.

8 thoughts on “Googlipse

  1. Hi Gunnar,

    First of all big thanks for putting this together. However, I do have a small problem. When I create a new project and add a new GWT Module I cannot add that module to the list of included modules for the project. When I go to the project properties / Googlipse the list of available modules is empty. Would you happen to know why this would happen ?

    Thanks,

    /Johan/

  2. Yes, sorry. I tried creating a screencast with Camstudio but I didn’t like it so I didn’t publish it. First you need to add the Java project as a utility jar to the web project. Right click on the web project and go to Properties. Select J2EE Dependencies and check the project that contains the modules. Then click Apply and OK and reopen the Properties page and go to the Googlipse properties. This time you click on Add… you should get a list of modules defined in the referenced projects.

  3. OK, but if I just have one web-project, where I want to keep both my GWT client-stuff and my services (servlets).

    If I create a web-project and add a new GWT module, it does not appear on the list of included modules by default. By manually adding the path of the gwt.xml-file to the includedModules-property it shows up, but it doesn’t get compiled (the gwt-hosted.jsp file etc gets put in place, but the gwt-compiler never kicks in).

    Any ideas ?

  4. Oh, now I understand what you want. πŸ™‚ Well, this is a feature which is not support yet. Logically speaking, you only need to include something that is not already there. So I might have to change the properties page as well (from a usability point of view).

    Currently, the requirement for running inside an external application server is that all modules are defined in included projects. I think that is too strict. But hey, that’s also a good example of how Open Source development work. You need something, you implement it. I just didn’t need it. πŸ˜‰

  5. Gunnar – thanks for clarifying, appreciate your help. However, even using two projects (one java-project, one web-project including the java-project) I still cannot see the GWT module in the list… Could you perhaps describe the steps needed to get set up deploying a project to an external server ?

    /Johan/

  6. Ok, updated the patch. I also recorded a small screen cast. However, please bear with me about the quality. I’m experimenting with the open source CamStudio version. But it’s rather poor.

    BTW, until today I didn’t hear anything from the plug-in author. The patch is getting bigger now and it would be nice if I could know what he thinks about it. He didn’t respond to any of my mails so far. πŸ™

Leave a Reply