Hi
Assume we have RequestContext:
@Service(value = MailService.class, locator = ServiceLocator.class)
public interface MailRequest extends ListRequest<MailProxy, String>
{
}
where ListRequest is:
public interface ListRequest<ENTITY, FILTER> extends RequestContext
{
Request<List<ENTITY>> getList(FILTER filter);
}
key has been generated by DeobfuscatorBuilder is
"s2OXmI9MWfbVWEWUqQIsSSy6oPE="
however
key for this method has been generated by RequestFactoryGenerator is
"Otf_2Lug8oJ_wk5ah9u53qNbPF8="
After investigation with debbuger
I've found that
DeobfuscatorBuilder call ctor of OperationKey with such parameters:
requestContextBinaryName -
"com.axada.gxt.extension.client.requestfactory.request.MailRequest"
methodName - "getList"
descriptor - "*(Ljava/lang/Object;)*
Lcom/google/web/bindery/requestfactory/shared/Request;"
But RequestFactoryGenerator call ctor of OperationKey with such parameters:
requestContextBinaryName -
"com.axada.gxt.extension.client.requestfactory.request.MailRequest"
methodName - "getList"
descriptor - "*(Ljava/lang/String;)*V"
the difference is in last parameter. more precisely in type of param of
method getList
in DeobfuscatorBuilder it is Object (wrong) but in RequestFactoryGenerator
it is String (right)
return type of method is ignored by OperationKey class while generation key.
*Workaraund* is to override this method in MailRequest with concrete
type.Then DeobfuscatorBuilder will generate same key as
RequestFactoryGenerator
GWT version is 2.7.0
--
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.