After some more prototyping with manual reveal, it turns out that Heiko's objections are valid. In our context fetching the data from the server in
manualReveal() is too late. We need to have the information at hand
before the presenter lifecycle starts. That is to say before the presenter is even loaded by the proxy.
Looking at the code it tunrs out that the presenter is loaded by the proxy using an instance of IndirectProvider<P>. The concrete instance which is used depends on the kind of proxy (@ProxyStandard, @ProxyCodeSplit or @ProxyCodeSplitBundle) and is generated using deferred binding. I patched the code generation for the proxy in a way that you can specify your own custom provider which is used instead of the default ones provided by GWTP.
I think this could be a useful extension to GWTP which makes the presenter resolution more flexible without modifying the current default behaviour. I'm about to open a PR to discuss the implementation details.
.: Harald