Reviewers: rjrjr,

Description:
Fixes https://jira.springsource.org/browse/ROO-1276

First, the anonymous-class implementation of Historian is moved into a
public static DefaultHistorian nested class that's GWT.create()d to
allow pluggability via a <replace-with> rule in a gwt.xml file (similar
to PlaceController.DefaultDelegate; particularly important here as you
probably do not use this class directly but rely on the
PlaceHistoryHandlerGenerator)

Then, the empty-prefix (@Prefix("")) is special-cased to:
 - not insert the ":" separator when generating tokens
 - also serve as a fallback/catch-all when parsing tokens

I also added an assertion in PrefixAndToken that the prefix is non-null
(and that it doesn't contain the separator, which is related to
ROO-1333, but only checked at runtime during development so not a proper
fix)

I'm not very happy with the unit test, as the FallbackPlaceTokenizer is
very "special". Maybe rather add a "useFallbackPlaceTokenizer" flag in
Subject to turn on/off the use of a simple Tokenizer3, and then test
both scenarios: falls back to defaultPlace, or use whatever the fallback
tokenizer returns (but it wouldn't then test the case where the
tokenizer returns null, as Tokenizer3 alsoways returns a Place3 istance)

Please review this at http://gwt-code-reviews.appspot.com/824801/show

Affected files:
  user/src/com/google/gwt/app/place/AbstractPlaceHistoryHandler.java
  user/test/com/google/gwt/app/place/AbstractPlaceHistoryHandlerTest.java


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to