Revision: 10318
Author: b...@google.com
Date: Fri Jun 10 14:24:57 2011
Log: Created wiki page through web user interface.
http://code.google.com/p/google-web-toolkit/source/detail?r=10318
Added:
/wiki/RequestFactory_2_4.wiki
=======================================
--- /dev/null
+++ /wiki/RequestFactory_2_4.wiki Fri Jun 10 14:24:57 2011
@@ -0,0 +1,75 @@
+#summary A summary of RequestFactory changes in GWT 2.4
+
+= !RequestFactory changes in GWT 2.4 =
+
+[http://code.google.com/p/google-web-toolkit/issues/list?can=2&q=Milestone%3D2_4+requestfactory&colspec=ID+Type+Status+Owner+Milestone+Summary+Stars&cells=tiles
Issue
tracker search]
+
+<wiki:toc />
+
+== Overview ==
+ * (Issue 5367) RequestFactory now supports polymorphic return values.
+ * (Issue 5394) Make type and operation tokens more compact
+ * Method overloads are now supported in RequestContexts.
+ * (Issue 5901) RequestFactory now uses the
`javax.validation.ConstraintViolation` interface
+ * (Issue 6035) Proxy interfaces can be composed
+ * (Issue 6139) Memory leak in JRE-clean implementation fixed
+ * (Issue 6234) RequestContext interfaces can be composed
+ * (Issue 6253) All RequestFactory and AutoBean interfaces have moved to
the `com.google.web.bindery' namespace
+ * (Issue 6393) `RequestFactoryServlet.getThreadLocalServletContext()`
provides access to the current HTTP request's `ServletContext`
+ * (Issue 6469) Provide getters for `ServerFailure -> Request ->
RequestContext -> RequestFactory -> RequestTransport`
+
+== Polymorphism support ==
+
+A proxy type will be available on the client:
+ * Referenced from a RequestContext as a Request parameter or return type.
+ * Referenced from a referenced proxy.
+ * Supertypes of referenced proxies that are proxies (i.e. assignable to
EntityProxy or ValueProxy and has an @ProxyFor(Name) annotation).
+ * Referenced via an @ExtraTypes annotation placed on the RequestFactory,
RequestContext, or a referenced proxy.
+ * Adding an @ExtraTypes annotation on the RequestFactory or
RequestContext allows you to add subtypes to "some else's" proxy types.
+
+Type-mapping rules:
+ * All properties defined in a proxy type or inherited from
super-interfaces must be available on the domain type.
+ * This allows a proxy interface to extend a "mix-in" interface.
+ * All proxies must map to a single domain type via a @ProxyFor(Name)
annotation.
+ * The @ProxyFor of the proxy instance is used to determine which
concrete type on the server to instantiate.
+ * Any supertypes of a proxy interface that are assignable to EntityProxy
or ValueProxy and have an @ProxyFor(Name) annotation must be valid proxies.
+ * Given BProxy extends AProxy: if only BProxy is referenced (e.g. via
@ExtraTypes), it is still permissable to create an AProxy.
+ * Type relationships between proxy interfaces do not require any
particular type relationship between the mapped domain types.
+ * Given BProxy extends AProxy: it is allowable for BEntity not to be a
subclass of AEntity.
+ * This allows for duck-type-mapping of domain objects to proxy
interfaces.
+ * To return a domain object via a proxy interface, the declared proxy
return type must map to a domain type assignable to the returned domain
object.
+ * The specific returned proxy type will be the most-derived type
assignable to the declared proxy type that also maps to the returned domain
type or one of its supertypes.
+
+== !RequestFactorySource and Annotation Processing ==
+
+Users who depend on RequestFactorySource must now compile their proxy
+interfaces with the RequestFactory annotation processor. This tool is
+bundled in the requestfactory-client.jar or available separately in
+requestfactory-apt.jar. For Java 6 users, javac will automatically
+detect the annotation processor. Eclipse users will need to enable
+annotation processing via <Project properties> --> Java Compiler -->
+Annotation Processing and add requestfactory-apt.jar to the list of
+jars in Java Compiler --> Annotation Processing --> Factory Path.
+
+Users can confirm that the annotation processor is installed by
+looking for a META-INF/requestFactory/typeTokens file to be generated
+in the compiler's output directory. This file must be packaged into
+the jar file that contains the compiled proxy classes.
+
+Additionally, the -Averbose=true flag can be passed to javac (or
+specified in the "Annotation Processing" configuration UI) to enable
+diagnostic output for the annotation processor.
+
+== !ServiceLayer changes ==
+
+Several of the ServiceLayer.resolveX() method signatures have changed
+in this release. These changes were made in order to allow the use of
+obfuscated type and operation tokens to reduce payload and generated
+JS size and to allow the use of overloaded method names in
+RequestContext subtypes. Users who have written their own
+ServiceLayerDecorator subclasses that override any of the resolveX()
+methods will need to modify their code to conform to the new API. In
+general, the expected behavior of the resolveX() methods is unchanged.
+Users who need to retain compatibility with 2.3 and 2.4
+RequestFactory server code can leave methods with the old signatures
+in place, removing any @Override annotations.
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors