DontPush OzoneLayer now built against Atmosphere 1.0.0

Hi there,

In case somebody don’t know what
DontPush OzoneLayer
does, here is todays description: It is a custom Vaadin terminal implementation with constantly open communication channel. Some call it server push, IMO this is something much better. No need to “push()”, things will just work. With this add-on Vaadin is very close to X11 system, where the “X server” is a browser application implemented with pure html technologies.

Mark Thomas and I have prepared a new version of the DontPush Ozonelayer Add-on. It can be downloaded
via Directory
. Probably the best thing in this upgrade is that it now depends to latest and greatest 1.0.0 version of the
Atmosphere framework
. It has got lot’s of issues fixed, much wider WebSockets support etc. At the same time we also upgraded add-on version number to 1.0.0.

Some other enhancements:

  • uses simpler and hopefully faster broadcaster
  • added a check to ensure messages arrive in correct order
  • n bugfixes

One other major improvement was published earlier. Helper class called UnitOfWork was contributed by Florian Pirchner to greatly simplify execution of UI changes from “external events” (like from other users UI thread or from a completely separate thread). It takes care of proper synchronisation and also calls transaction listener so that all your services should be set up properly.

Thanks to Mark, Florian and other contributors (about issue reports, smaller enhancements etc)! Without you I would have wasted my time on something less relevant.

Disclaimers: this is a major release of a OS community provided piece of software. I hope it will solve several issues, but I also wouldn’t be surprised if there still was some issues, even regressions. There is no change I and Mark could test this throughly with all browser-server combinations. Please let us know of any issues you hit. That is the best contribution you can make if you can’t find for code or documentation patches.

cheers,
matti

Hi,

I’ve updated my gradle build file to use 1.0.0 instead of 0.4.9, but now I get a GWT compilation error.

java.lang.NoClassDefFoundError: com/google/gwt/core/ext/GeneratorExt

It would appear that it requires GWT-2.5.0-rc1, but GeneratorExt does not exist in that. If I put GWT-2.4.0 explicitly in my build file then I get java.lang.NoClassDefFoundError: com/google/gwt/core/ext/IncrementalGenerator but that only exists in GWT-2.5.0-rc1

Any ideas?

I’ve tried all sorts of combinations in the build file, but no success yet.

I am compiling the widgetset from the build file using

task compileWidgetset << {
ant.java(classname:‘com.google.gwt.dev.Compiler’, failOnError: ‘true’, fork: ‘true’)
{
jvmarg(value: ‘-Xss1024k’)
arg(line: ‘-logLevel DEBUG’)
arg(line: ‘-war src/main/webapp/VAADIN/widgetsets’)
arg(value: ‘au.com.greatlivinghomes.buildflow.widgetset.Widgetset’)
classpath {
pathElement(location: ‘src/main/resources’)
pathElement(path: configurations.compile.asPath)
}
}
}

and

dependencies {
compile ‘com.vaadin:vaadin:6.8.3’
compile ‘org.vaadin:dontpush-addon-ozonelayer:1.0.0’
compile ‘com.google.gwt:gwt-user:2.5.0-rc1’
compile ‘com.google.gwt:gwt-dev:2.5.0-rc1’
compile ‘com.google.gwt:gwt-servlet:2.5.0-rc1’
}

I’ve tried removing dependencies and letting it work itself out, changing versions, order of things etc. As soon as I change ozone layer to 0.4.9 it all works again.

Thanks!

Ryan

Hi,

You should use GWT 2.4.0 for compilation. I think this is miserably stated in the add-ons docs. My bad. 6.X Vaadin
officially uses 2.3.0
, but 2.4.0 should be fine as well. That works at least for me and Mark. I also tried with 2.5.0-rc1, but some gwt-atmosphere stuff don’t seem to work with 2.5 yet. I got the same error as you with 2.5.

cheers,
matti

Thanks,

I don’t get it :confused: . If I use 2.4.0 I get it complaining it can’t find com/google/gwt/core/ext/IncrementalGenerator, which only exists in 2.5.0-rc1 . And if I don’t specify a GWT version in my build file it auto pulls in 2.5.0-rc1. I’ll try and follow the dependencies and see what is going on…

I’m not too good with maven, but It seems there is the wrong version referenced in your pom.

	<dependency>
		<groupId>com.google.gwt</groupId>
		<artifactId>gwt-user</artifactId>
		<version>2.5.0-rc1</version>
		<type>jar</type>
		<scope>compile</scope>
	</dependency>

I changed it to 2.4.0 and it’s working now :slight_smile:

Hi,

Indeed, my bad. Thanks for noting. I probably forgot it there when I tried with the latest version. And the scope should also be “provided”. I have built gwt module with gwt-maven-plugin and it’s 2.4.0 version which obviously overrided the version.

I’ll build a new version soon. There are some small enhancements made by Mark in queue too.

cheers,
matti