Tuesday, November 25, 2014

Re: UiBinder library

Does GWT license allows for the separation of functionality into a
separate library GWT?

GWT is Apache 2.0 license and I think the actual packaging should not matter as long as your separate library complies with the Apache 2.0 license.
 

java.lang.RuntimeException:
com.google.gwt.uibinder.elementparsers.HasWidgetsParser must extend
ElementParser

The RuntimeException is thrown if a ClassCastException has occurred. So I would guess your library has messed up HasWidgetsParser somehow or you have a ClassLoader issue. 

The idea behind the ClassLoader issue is that a class that is loaded by two different ClassLoaders can not be cast to itself if both ClassLoaders are involved. Since you have gwt-user.jar on class path and also your custom library you now have several UiBinder related classes twice on class path.
If now HashWidgetsParser extends ElementParser has been loaded by ClassLoader A and the ElementParser.class used in the cast statement found in UiBinderWriter (see your stack trace) has been loaded by ClassLoader B then you will get a ClassCastException if you try to cast HasWidgetsParser/ElementParser (from ClassLoader A) to ElementParser (from ClassLoader B).
I don't know the UiBinder code very well so no idea if that can actually happen but at least it is something worth checking.

If I were you I would checkout the GWT 2.6.0 tag from git, then change UiBinder they way you want it and finally build your own customized GWT 2.6.0 version. If you later want to upgrade to GWT 2.7 you checkout the 2.7 tag and rebase your commits on top of it to keep your changes.

-- J. 

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment