The Google Web Toolkit is a Java library helping with the creation of interactive web applications with Axis and ?JavaScript. Debian provides a GWT source package, with the binary packages

which allows for the deployment of GWT application on servers. As for all web applications, no changes are required for the client side, where the web browser knows to interpret the ?JavaScript. So, the only individuals interested in GWT and the Debian packages are developers, administrators and their bosses eager to see all that functionality in their applications.

Preparation of programming environment with Eclipse 3.8

An introduction to GWT programming is all on http://developers.google.com/web-toolkit/doc/latest/tutorial/ the Web Toolkit developer pages. While following the instructions, be aware of the version of Eclipse you are using (available as a Debian package) and adjust the URL for the plugin accordingly. If it happens, like it happend to me in June 2012 that there was no support for Eclipse 3.8, yet, then download Eclipse 3.7 with

$ apt-cache show eclipse|grep "Version: 3.7" | cut -f2 -d\ 
3.7.2-1
$ sudo aptitude install eclipse-platform=3.7.2-1
# several "n" "n" "n" until you want to say "y"

and reject all those alternatives to the downgrading of all your eclipse packages. Well, so the very first typical approach. But then eclipse complained at start-up and I was then successful with

# remove everything
$ sudo dpkg --purge eclipse-cdt eclipse-cdt-valgrind eclipse-cdt-jni
$ sudo dpkg --purge eclipse-rcp-gcj eclipse-xsd eclipse-rse
$ sudo dpkg --purge eclipse-platform-gcj eclipse-pde-gcj eclipse-jdt-gcj eclipse-rcp-gcj
$ sudo dpkg --purge eclipse-mylyn eclipse-mylyn-versions-git eclipse-egit
$ sudo dpkg --purge eclipse-emf 
$ sudo dpkg --purge eclipse-rcp eclipse-platform-data eclipse-platform eclipse-pde eclipse-jdt eclipse
$ dpkg -l eclipse*
# make sure nothing is left
# install from testing
$ sudo apt-get install -t testing eclipse eclipse-mylyn

Preparation of programming environment with Eclipse 3.7

I wish I could say: Just follow the tutorial on https://developers.google.com/web-toolkit/doc/latest/tutorial/ and edit this page for any awkward experiences. The installation of the GWT SDK for the Eclipse plug-in will be redundant to the Debian package, but we suggest to ignore that for your first steps.

Once into it, one will see that quite a lot of Eclipse projects are not available for GWT to install. And it cannot resolve the missing dependencies since it does not know where to find them. The list of repositories for a new Eclipse installation with Debian is empty. One gets messages like "Missing requirement: Google Plugin for Eclipse 3.7 3.0.1.v201206290132-rel-r37 (com.google.gdt.eclipse.suite.e37.feature.feature.group 3.0.1.v201206290132-rel-r37) requires 'org.eclipse.mylyn.commons.ui 0.0.0' but it could not be found". Ok. I have added mylyn to above list of packages to install. But what about "Missing requirement: Java EMF Model Utilities 2.0.200.v200905140200 (org.eclipse.jem.util 2.0.200.v200905140200) requires 'bundle com.ibm.icu [3.8.1.1,4.1.0)' but it could not be found"?

To the rescue come the pages

I suggest starting with something going smooth to become familiar with the process, like the egit GIT interface and then explore from there. The following repositories I have added to get the Google Eclipse Plugin installed with Eclipse 3.7 of Debian Wheezy:

<?xml version="1.0" encoding="UTF-8"?>
<bookmarks>
   <site url="http://download.eclipse.org/eclipse/updates/3.6" selected="true" name="&quot;Eclipse Project Test Site&quot;"/>
   <site url="http://download.eclipse.org/eclipse/updates/3.6/R-3.6-201006080911" selected="true" name="&quot;Eclipse Project Test Site&quot;"/>
   <site url="http://download.eclipse.org/eclipse/updates/3.7" selected="true" name="&quot;Eclipse Project Test Site&quot;"/>
   <site url="http://www.eclipse.org/modeling/updates" selected="true" name="Eclipse Modeling Project Update Site"/>
   <site url="http://download.eclipse.org/technology/epp/packages/indigo/" selected="true" name="Eclipse Packaging Project"/>
   <site url="http://download.eclipse.org/egit/updates" selected="true" name="egit"/>
   <site url="http://download.eclipse.org/modeling/emf/updates/releases/" selected="true" name="EMF"/>
   <site url="http://dl.google.com/eclipse/plugin/3.7" selected="true" name="Google"/>
   <site url="http://download.eclipse.org/releases/helios" selected="true" name="Helios Milestone Repository"/>
   <site url="http://download.eclipse.org/modeling/mdt/updates/releases/" selected="false" name="MDT Update Site"/>
   <site url="http://download.eclipse.org/mylyn/releases/3.7" selected="true" name="Mylyn 3.7 for Eclipse 3.6 and 3.7"/>
   <site url="http://download.eclipse.org/vex/milestones" selected="true" name="VEX Visual XML Editor"/>
   <site url="http://download.eclipse.org/webtools/updates" selected="true" name="Webtools"/>
   <site url="http://download.eclipse.org/webtools/repository/helios/" selected="true" name="Webtools Repository Helios"/>
   <site url="http://dev.eclipse.org/svnroot/dsdp/org.eclipse.tm.tcf/releases/0.3.0" selected="false" name=""/>
   <site url="http://dl.google.com/eclipse/appengine" selected="false" name=""/>
   <site url="http://download.eclipse.org/birt/update-site/2.6" selected="false" name=""/>
   <site url="http://download.eclipse.org/datatools/updates" selected="false" name=""/>
   <site url="http://download.eclipse.org/dsdp/mtj/updates/1.0.1/stable/" selected="false" name=""/>
   <site url="http://download.eclipse.org/dsdp/mtj/updates/1.0.2/stable/" selected="false" name=""/>
   <site url="http://download.eclipse.org/dsdp/tm/updates/3.2" selected="false" name=""/>
   <site url="http://download.eclipse.org/eclipse/updates/3.5" selected="false" name=""/>
   <site url="http://download.eclipse.org/mat/1.0/update-site/" selected="false" name=""/>
   <site url="http://download.eclipse.org/modeling/emf/updates/" selected="false" name=""/>
   <site url="http://download.eclipse.org/modeling/emft/updates/" selected="false" name=""/>
   <site url="http://download.eclipse.org/modeling/emft/updates/releases/" selected="false" name=""/>
   <site url="http://download.eclipse.org/modeling/gmf/updates/releases/" selected="false" name=""/>
   <site url="http://download.eclipse.org/modeling/gmt/modisco/updates/" selected="false" name=""/>
   <site url="http://download.eclipse.org/modeling/gmt/modisco/updates/release" selected="false" name=""/>
   <site url="http://download.eclipse.org/modeling/m2m/updates/" selected="false" name=""/>
   <site url="http://download.eclipse.org/modeling/m2m/updates/releases/" selected="false" name=""/>
   <site url="http://download.eclipse.org/modeling/m2t/updates/" selected="false" name=""/>
   <site url="http://download.eclipse.org/modeling/m2t/updates/site.xml" selected="false" name=""/>
   <site url="http://download.eclipse.org/modeling/mdt/ocl/3_0/updates/" selected="false" name=""/>
   <site url="http://download.eclipse.org/modeling/mdt/updates/" selected="false" name=""/>
   <site url="http://download.eclipse.org/mylyn/releases/indigo/" selected="false" name=""/>
   <site url="http://download.eclipse.org/releases/indigo/" selected="false" name=""/>
   <site url="http://download.eclipse.org/rt/rap/1.3/runtime" selected="false" name=""/>
   <site url="http://download.eclipse.org/rt/rap/1.3/tooling" selected="false" name=""/>
   <site url="http://download.eclipse.org/rt/swordfish/updates" selected="false" name=""/>
   <site url="http://download.eclipse.org/sequoyah/updates/1.0/" selected="false" name=""/>
   <site url="http://download.eclipse.org/soa/jwt/update-site" selected="false" name=""/>
   <site url="http://download.eclipse.org/stp/updates/" selected="false" name=""/>
   <site url="http://download.eclipse.org/swordfish/updates" selected="false" name=""/>
   <site url="http://download.eclipse.org/technology/actf/0.8/update-site/" selected="false" name=""/>
   <site url="http://download.eclipse.org/technology/emft/jet/update-site/site.xml" selected="false" name=""/>
   <site url="http://download.eclipse.org/technology/emft/updates/" selected="false" name=""/>
   <site url="http://download.eclipse.org/technology/epp/updates/1.3/" selected="false" name=""/>
   <site url="http://download.eclipse.org/technology/jwt/update-site" selected="false" name=""/>
   <site url="http://download.eclipse.org/technology/linuxtools/update" selected="false" name=""/>
   <site url="http://download.eclipse.org/technology/subversive/0.7/update-site/" selected="false" name=""/>
   <site url="http://download.eclipse.org/tm/updates/3.2" selected="false" name=""/>
   <site url="http://download.eclipse.org/tools/buckminster/updates-3.6" selected="false" name=""/>
   <site url="http://download.eclipse.org/tools/cdt/releases/helios" selected="false" name=""/>
   <site url="http://download.eclipse.org/tools/emf/updates/" selected="false" name=""/>
   <site url="http://download.eclipse.org/tools/gef/updates/releases" selected="false" name=""/>
   <site url="http://download.eclipse.org/tools/gef/updates/releases/site.xml" selected="false" name=""/>
   <site url="http://download.eclipse.org/tools/mylyn/update/e3.4/" selected="false" name=""/>
   <site url="http://download.eclipse.org/tools/mylyn/update/extras" selected="false" name=""/>
   <site url="http://download.eclipse.org/tools/ptp/updates/helios" selected="false" name=""/>
   <site url="http://download.eclipse.org/tools/ptp/updates/indigo/" selected="false" name=""/>
   <site url="http://download.eclipse.org/tptp/updates/" selected="false" name=""/>
   <site url="http://update.eclipse.org/updates/3.0" selected="false" name=""/>
   <site url="http://update.eclipse.org/updates/3.3" selected="false" name=""/>
   <site url="http://www.eclipse.org/modeling/emft/?project=search#search" selected="false" name=""/>
   <site url="http://www.eclipse.org/modeling/emft/updates/" selected="false" name=""/>
   <site url="http://www.mia-software.com/html/miaStudio/download/modisco/updates" selected="false" name=""/>
</bookmarks>

Some good soul with more insights please feel free to optimize this list. It can be imported directly to Eclipse through the "Available Software Sites" link in the "Install New Software" dialog. Only around 5 of those were added manually, the others Eclipse has added by itself.

By default, only packages for a particular selected repository are shown. For a smoother operation it seems advisable to select the presentation of all available packages at the same time. Eclipse packages provided through Debian are recognized as already installed. But there only are very few such available.

Running the GWT default project

With the "Sample Code" selected in the "New Project" diaglog, immediately after the project's creation, one can right-click the "Run As" -> "Web Application" sub-menu entry and have the project present itself on "http://localhost:8888". This is how Google suggests doing it. Kindly, the web page came up with something like a "The project may need a recompilation" warning - on the user's web page - and indeed, the field to enter some name did not show up. The project is stopped by pressing the red square button. Compilation is performed with right-clicking on the project's root, selecting "Google"->"Compile GWT". Another start and it worked.

Deployment

The project can be executed on the Google App servers. But that does not help for applications with a requirement to access local (and only local) information. But it is surprisingly easy:

It is pretty amazing, admittedly. Google tells you about when their service is no longer free.

For local deployment, and this is what the Debian packages were prepared for, one needs a platform to contain and present the war directory. This can be

See also

Acknowlegements

This package was updated with much work behind the scenes by the Debian Partner Credativ, sponsored by the company Eucalyptus. Many thanks to them both.