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