Category Archives: open source

GWT 2.6.1 release coming soon!

The GWT team recently published it’s second release candidate for the 2.6.1 version. The gwt maven plugin project kept up and published RC releases as well.

The GWT RC2 can be downloaded directly from the following URL, and through the maven central repository.

http://storage.googleapis.com/gwt-releases/gwt-2.6.1-rc2.zip

Unfortunately, I could not find any release notes at the gwtproject.org site (as it did for past RC versions). That is why I am publishing the changes/ fixes since release 2.6.0 here:

  1. 39c29e0  Workaround for webapp classloader regression in DevMode by Thomas Broyer – 3 weeks ago
  2. b3ab3b7  No longer reference SVN in modules generated by WebAppCreator by Thomas Broyer – 7 days ago
  3. 6e233ec  Added suppress warnings for DOMImplStandard#dispatchEvent* by Goktug Gokdogan – 9 days ago
  4. b936d92  Fix non determinism in code generation. by Roberto Lublinerman – 3 months ago 2.6.1-rc1
  5. b106664  Restore support for derived DataResource in @url CSS extensions by Lukas Laag – 4 weeks ago
  6. 2ca906f  Deprecates HttpThrowableReporter in favor of JsonLogRecordClientUtil. by Goktug Gokdogan – 3 weeks ago
  7. 9c9acb6  Fix UnusedImportRemover to traverse package annotations by Thomas Broyer – 3 weeks ago
  8. 5ab60ad  Fixes RichTextArea.Formatter.insertHTML for IE permutation by Goktug Gokdogan – 5 weeks ago
  9. 2734df5  Don’t fail compilation if we can’t emit a private artifact by Thomas Broyer – 4 weeks ago
  10. eccdfb4  Update Guava to 16.0.1 for CDI compatibility by Thomas Broyer – 9 weeks ago
  11. dd26380  Fix inconsistency in MethodInliner. by Roberto Lublinerman – 4 weeks ago
  12. dbf6b1c  Default softPermutationId to 0. by Stephen Haberman – 3 months ago
  13. 7863f3e  Windows compatibility for SuperDevMode by Thomas Broyer – 8 weeks ago
  14. 4298446  NPE in UnusedImportsRemover when processing files without definitions. by Roberto Lublinerman – 3 months ago
  15. eaec824  Strengthen SuperDevMode test in selection script by Thomas Broyer – 9 weeks ago
  16. b5f0284  Fix erroneous boxing of primitive return values by $entry() by Thomas Broyer – 2 months ago
  17. b646c3a  Restores old interface for GWT Designer. by John Stalcup – 3 months ago
  18. 61ed5fd  Fixes regressions in @UiHandler. by Goktug Gokdogan – 3 months ago

Using Speed Tracer on a Mac

Speed Tracer on a Mac
Speed Tracer on a Mac

I finally got Speed Tracer running on Mac OSX. Just in case you missed the news: GWT 2.0 was released yesterday and brought a nice friend called Speed Tracer.

The tool itself is written in GWT (funny, don’t?) and works as an Chrome extension. Since Chrome for Mac is beta and does not have support for extensions we nee to use use Chromium.

There are postings on how to get extensions running on Chrome for Mac, but I preferred to use a Chromium build.

Speed Tracer is a Google Chrome extension that helps you identify and fix performance problems in your web applications. It visualizes metrics that are taken from low level instrumentation points inside of the browser and analyzes them as your application runs. Using Speed Tracer you are able to get a better picture of where time is being spent in your application.

Thanks to pohl (irc chat on ##gwt) for the hints.

So here we go:

1) We need some Chrome build that has “extensions enabled”. I used this one here, but you might try any other newer one.

2) Install Speed Tracer.

3) Start Chromium with the required command line parameter.

This part is the only real tricky one if you are not a geek… ;-)
From the Terminal you can start Chromium manually by executing the following…

… or you simply rename the bin to something else and place a script that does the command line magic for you.
I renamed Chromium to Chromium-bin and created a Chromium named script file that contains:

Don’t forget to make the script file executable…

That’s it. Now you can visit some ajax-funny site (google wave, google maps, google mail, google docs, you name it) and test drive Speed Tracer.

Good luck!

News from the GWT development front

There have been some quiet updates in the last days on the GWT development front.

First and most important is that the GWT development team has released a milestone towards GWT 2.0. The milestone release can’t be found on the main page, and it was not mentioned in the official GWT blog.

This milestone provides early access (read: known to still be unfinished and buggy) to the various bits of core functionality that will be coming in GWT 2.0

One of the known issues on the group posting states that the actual Google Eclipse Plugin does not work with this release, because it won’t accept this build as a GWT distro. This comes from the fact that GWT 2.0 is missing the platform dependent jars. This comes from the fact that GWT 2.0 is introducing OOPHM, replacing the old “hosted modus” by the new “developer modus” where we can use a set of browsers with a plugin instead of the one bundled with the GWT release:

We’re going to start using the term “development mode” rather than the old term “hosted mode.” The term “hosted mode” was sometimes confusing to people, so we’ll be using the more descriptive term from now on. For similar reasons, we’ll be using  the term “production mode” rather than “web mode” when referring to  compiled script.

Specially interesting for the Mac users, there has also been a quiet update for the Google Eclipse Plugin solving the issue,  where we could start the new OOPHM developer modus from eclipse to start “watching the beachball”.

The point is: from now on, we can start using GWT 2.0 and explore the new features. We have both: an official milestone release and a working Eclipse plugin. Development infrastructure problems resolved, stays the question: should we use a milestone build? This question is not so easy to answer.

First, if we believe what speakers told in the Google IO 2009 sessions, the Google teams using GWT (ok, let’s name them: AdWords development team, Google Wave development team) are using GWT build from trunk.

How can that be? How can anyone use something build from trunk that is undergoing such changes?

Well, this is called a “solid development process” and “discipline”. If you have a look at the GWT sources and at the commit statements, you will notice that:

  • commit statements have the name of the reviewer.
    Take a moment to think about it.
  • many developers have their own branches where they to their stuff. Only reviewed changes are commited (integrated) to the trunk build. So, the trunk moves from one consistent (reviewed) state to the next one.
    Take two moments to think about this…

Second, GWT is more a compiler than a runtime library, and it would not be the first time we use beta compilers during development.

Back to the question: can we use a milestone or even a trunk build?

Yes – I think yes, we can. As long as the GWT team continues working they way they have been for the last months, trunk, milestone and beta builds have an unmatched quality status. Just my 2 cents…

W-JAX 2009 Vorträge

wjax09_button_speaker_de
W-JAX 2009

Die Konferenz für Java, Enterprise Architekturen & SOA

Die W-JAX ist die Konferenz für ganzheitliches technisches Know-how im Enterprise- und Webumfeld. Hier kommen die besten Experten Europas zusammen, um ihr Wissen und ihre Erfahrung an die Teilnehmer weiterzugeben. Durch ihren einzigartigen Mix an Themen verleiht die W-JAX alljährlich der Java Enterprise Community die entscheidenden Impulse.

Google Web Toolkit – Making a Better Web 2.0
Speaker: Papick G. Taboada

Mit Adwords und Google Wave sind die ersten großen GWT basierten Anwendungen von Google erschienen. Mit einem optimierenden Kompiler und pfiffige Codegeneratoren werden mit GWT maßgeschneiderte JavaScript Anwendungen erstellt, die Entwicklung findet allerdings in Java statt. In dem Vortrag werden Konzepte, Neuigkeiten aus 2.0 und die aus Adwords gewonnenen Architektur “Best Practices” vorgestellt.

SpringSource dm Server: Fitness für die Webanwendungen
Speaker: Agim Emruli, Papick G. Taboada

Java-EE-Webanwendungen tragen Deployment-bedingt eine große Menge an Bibliotheken mit sich. Mit OSGi werden dank einem standardisierten Modularisierungskonzept neue Wege gegangen. Lernen Sie in der Session die Möglichkeiten der Modularisierung in Java-EE-Webanwendungen auf dem OSS SpringSource dm Server kennen, damit schwergewichtige und monolithische Deployments der Vergangenheit angehören.

EDA in der Businessintegration
Speaker: Christian Dedek, Papick G. Taboada

Integrationsszenarien mit ereignisgesteuerten Architekturansätzen in Java umsetzen? Dieser Vortrag bietet Ihnen eine Einführung in EDA und Complex Event Processing (CEP) und stellt den Zusammenhang zwischen EDA und SOA her. Darüber hinaus veranschaulicht er die Architektur und den Aufbau von Esper und zeigt CEP-Einsatzszenarien.