{"id":572,"date":"2010-03-10T22:33:59","date_gmt":"2010-03-11T04:33:59","guid":{"rendered":"http:\/\/www.mooreds.com\/wordpress\/archives\/000572"},"modified":"2010-03-10T22:33:59","modified_gmt":"2010-03-11T04:33:59","slug":"upgrading-to-gwt-2","status":"publish","type":"post","link":"https:\/\/www.mooreds.com\/wordpress\/archives\/572","title":{"rendered":"Upgrading to GWT 2"},"content":{"rendered":"<p>I recently had the pleasure of upgrading from GWT 1.5.3 to GWT 2.0.\u00a0 The client has a variety of GWT applications&#8211;some standalone widgets that integrate into an existing site, an application written with GWT look and feel, and an application written with the GWT-EXT library.<\/p>\n<p>The upgrade to GWT 2.0 was much less painful than I thought it would be.<\/p>\n<p>Even code that was written for GWT 1.0 (<a href=\"http:\/\/www.mooreds.com\/wordpress\/archives\/000349\">the mortgage calculator, written back in 2006<\/a>) compiled cleanly (well, plenty of warnings, but no loss of functionality).\u00a0 Classes that have been deprecated (some for good reason; hello <a href=\"http:\/\/google-web-toolkit.googlecode.com\/svn\/javadoc\/2.0\/com\/google\/gwt\/user\/client\/HTTPRequest.html\">HTTPRequest<\/a>, I&#8217;m looking at you) have not disappeared.\u00a0 I&#8217;m not saying that the code I wrote for GWT 1.0 shouldn&#8217;t be rewritten, just that GWT hasn&#8217;t forced me to do so.\u00a0 Also, other than changing some switches to the command line compiler, the ant script used to compile the GWT modules didn&#8217;t have to change at all.<\/p>\n<p>Hosted mode was a different story.\u00a0 I never really spent a ton of time in hosted (err, dev) mode, but had it working in that past.\u00a0 Now, I wanted to get it working fully because of the tremendous productivity gains possible&#8211;no minute long compile cycle to pull my attention away from my code.\u00a0 And the fact that you can run and debug in eclipse in more than just one browser is really attractive.\u00a0 Since I&#8217;d never really had it working fully, there wasn&#8217;t a lot of upgrade work; it was more like starting from the beginning.\u00a0 However, I was unable to use the internal jetty server.\u00a0 Again, my use case is atypical, with a lot of JSON and JSONP requests for data.<\/p>\n<p>Big pluses for GWT 2.0, right off the bat:<\/p>\n<ul>\n<li>hosted\/dev mode running in any browser<\/li>\n<li>support for IE8, so we could get rid of the <a href=\"http:\/\/www.mooreds.com\/wordpress\/archives\/000513\">UA meta tag<\/a><\/li>\n<li><a href=\"http:\/\/www.mooreds.com\/wordpress\/archives\/000575\">code splitting<\/a><\/li>\n<\/ul>\n<p>I haven&#8217;t yet looked into Speed Tracer or some of the updated widgets (I&#8217;d really love to toss the <a href=\"http:\/\/gwt-widgets.sourceforge.net\/\">gwt-widgets lightbox<\/a> we use in favor of the GWT standard <a href=\"http:\/\/google-web-toolkit.googlecode.com\/svn\/javadoc\/2.0\/com\/google\/gwt\/user\/client\/ui\/PopupPanel.html\">PopupPanel<\/a>).\u00a0 There&#8217;s also the tremendous benefit of being on the modern version of any platform&#8211;it is easier to get support in forums and in other venues.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I recently had the pleasure of upgrading from GWT 1.5.3 to GWT 2.0.\u00a0 The client has a variety of GWT applications&#8211;some standalone widgets that integrate into an existing site, an [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"class_list":["post-572","post","type-post","status-publish","format-standard","hentry","category-gwt"],"_links":{"self":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/comments?post=572"}],"version-history":[{"count":0,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/572\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/media?parent=572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/categories?post=572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/tags?post=572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}