Hi all,
I just pushed out gwt-places to
GitHub: https://github.com/tbroyer/gwt-places
This is a port of the PlaceHistoryMapper generator as an annotation
processor: I copied the code from GWT proper and replaced uses of
com.google.gwt.core.ext. with javax.lang.model. and
javax.annotation.processing; and code generation with JavaPoet.
The tests have been copied almost verbatim, only adapted to JUnit 4 and
compile-testing (along with Truth assertions and a bit of Mockito), and
Maven (using the maven-invoker-plugin to replace the GWTTestCase machinery
and trigger the annotation processor).
*This is more of an experiment for now*, in preparation for GWT 3.0 which
will nuke generators.
The annotation processor is triggered by the presence of the
@WithTokenizers annotation. It means that if you use
PlaceHistoryMapperWithFactory, you have to annotation your interface with
@WithTokenizers even if all your tokenizers come from the factory; just use
an empty list in this case: @WithTokenizers({}).
The annotation processor generates a class with the same name as the GWT
generator (i.e. the name of your PlaceHistoryMapper subinterface with an
"Impl" suffix), so you just have to replace
GWT.create(MyPlaceHistoryMapper.class) with new MyPlaceHistoryMapperImpl().
I also added a quick check of @Prefix annotations, but it'll only emit
warnings and won't fail the build.
The JAR is available in Sonatype OSSRH snapshots repository at
net.ltgt.gwt:gwt-places:1.0-SNAPSHOT; its only dependency is gwt-user.
It's an annotation processor, so usage will depend on your build tool.
Ideally you'd put it (along with gwt-user) in your "processor path" (e.g.
using the 'apt' configuration in Gradle with my net.ltgt.apt plugin
<https://plugins.gradle.org/plugin/net.ltgt.apt>), but if you can't (e.g.
if you're using Maven), just add it to your compile classpath.
Note that I only verified that the tests passed, I've not used it anywhere
(yet).
--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.