Revision: 8611
Author: [email protected]
Date: Fri Aug 20 17:45:10 2010
Log: Commitng cherry-picks
  r8599 Get rid of yellow background during cell selection
  r8603 Snip a stray logging line
  r8607 Add more tests to check that relationships are persisted correctly
  r8608 Ignoring __gwt_ObjectId in AbstractRequest#processRelated
  r8609 Snip stray debugging println.

Patch by: amitmanjhi


http://code.google.com/p/google-web-toolkit/source/detail?r=8611

Modified:
 /branches/2.1M3/branch-info.txt
/branches/2.1M3/user/src/com/google/gwt/requestfactory/client/impl/AbstractRequest.java /branches/2.1M3/user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java /branches/2.1M3/user/src/com/google/gwt/requestfactory/server/RequestFactoryServlet.java
 /branches/2.1M3/user/src/com/google/gwt/user/cellview/client/CellTree.css
/branches/2.1M3/user/src/com/google/gwt/user/cellview/client/CellTreeClean.css /branches/2.1M3/user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java /branches/2.1M3/user/test/com/google/gwt/valuestore/shared/SimpleBarRequest.java

=======================================
--- /branches/2.1M3/branch-info.txt     Fri Aug 20 17:38:59 2010
+++ /branches/2.1M3/branch-info.txt     Fri Aug 20 17:45:10 2010
@@ -7,3 +7,10 @@
 /branches/2.1M3/ was created (r8601) as a straight copy from /trunk/@r8598

 Merge:
+Cherry-picks
+  r8599 Get rid of yellow background during cell selection
+  r8603 Snip a stray logging line
+  r8607 Add more tests to check that relationships are persisted correctly
+  r8608 Ignoring __gwt_ObjectId in AbstractRequest#processRelated
+  r8609 Snip stray debugging println.
+commited as
=======================================
--- /branches/2.1M3/user/src/com/google/gwt/requestfactory/client/impl/AbstractRequest.java Thu Aug 19 13:24:10 2010 +++ /branches/2.1M3/user/src/com/google/gwt/requestfactory/client/impl/AbstractRequest.java Fri Aug 20 17:45:10 2010
@@ -79,10 +79,10 @@
   /**
    * @deprecated use {...@link #with(String...)} instead.
    * @param properties
-   * @return
    */
+  @Deprecated
   public R forProperties(Collection<Property<?>> properties) {
-    for (Property p : properties) {
+    for (Property<?> p : properties) {
       with(p.getName());
     }
     return getThis();
@@ -134,6 +134,8 @@

   protected native void processRelated(JavaScriptObject related) /*-{
     for(var recordKey in related) {
+      // Workaround for __gwt_ObjectId appearing in Chrome dev mode.
+      if (!related.hasOwnProperty(recordKey)) continue;
       var schemaAndId = recordKey.split(/-/, 2);
       var jso = related[recordKey];
[email protected]::setSchemaAndRecord(Ljava/lang/String;Lcom/google/gwt/requestfactory/client/impl/RecordJsoImpl;)(schemaAndId[0], jso);
=======================================
--- /branches/2.1M3/user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java Fri Aug 20 00:08:01 2010 +++ /branches/2.1M3/user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java Fri Aug 20 17:45:10 2010
@@ -247,7 +247,6 @@
         int ordinal = Integer.parseInt(parameterValue);
         Method valuesMethod = parameterType.getDeclaredMethod("values",
             new Class[0]);
- log.severe("Type is " + parameterType + " valuesMethod " + valuesMethod);

         if (valuesMethod != null) {
           valuesMethod.setAccessible(true);
=======================================
--- /branches/2.1M3/user/src/com/google/gwt/requestfactory/server/RequestFactoryServlet.java Thu Aug 19 21:41:55 2010 +++ /branches/2.1M3/user/src/com/google/gwt/requestfactory/server/RequestFactoryServlet.java Fri Aug 20 17:45:10 2010
@@ -66,7 +66,6 @@
     ensureConfig();
     String jsonRequestString = RPCServletUtils.readContent(
         request, JSON_CONTENT_TYPE, JSON_CHARSET);
-    System.err.println(jsonRequestString);
     response.setStatus(HttpServletResponse.SC_OK);
     PrintWriter writer = response.getWriter();

=======================================
--- /branches/2.1M3/user/src/com/google/gwt/user/cellview/client/CellTree.css Tue Aug 17 11:18:17 2010 +++ /branches/2.1M3/user/src/com/google/gwt/user/cellview/client/CellTree.css Fri Aug 20 17:45:10 2010
@@ -28,7 +28,7 @@
 */

 .keyboardSelectedItem {
-  background-color: #ffff00;
+/*  background-color: #ffff00; */
 }

 .openItem {
=======================================
--- /branches/2.1M3/user/src/com/google/gwt/user/cellview/client/CellTreeClean.css Tue Aug 17 11:18:17 2010 +++ /branches/2.1M3/user/src/com/google/gwt/user/cellview/client/CellTreeClean.css Fri Aug 20 17:45:10 2010
@@ -28,7 +28,7 @@
 */

 .keyboardSelectedItem {
-  background-color: #ffff00;
+/*  background-color: #ffff00; */
 }

 .openItem {
=======================================
--- /branches/2.1M3/user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java Thu Aug 19 17:13:42 2010 +++ /branches/2.1M3/user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java Fri Aug 20 17:45:10 2010
@@ -32,12 +32,183 @@
  * Tests for {...@link com.google.gwt.requestfactory.shared.RequestFactory}.
  */
 public class RequestFactoryTest extends GWTTestCase {
+
+  /*
+ * TODO: all these tests should check the final values. It will be easy when
+   * we have better persistence than the singleton pattern.
+   */
+  public void testPersistExistingEntityExistingRelation() {
+ final SimpleRequestFactory req = GWT.create(SimpleRequestFactory.class);
+    HandlerManager hm = new HandlerManager(null);
+    req.init(hm);
+    delayTestFinish(5000);
+
+    req.simpleBarRequest().findSimpleBarById(999L).fire(
+        new Receiver<SimpleBarRecord>() {
+          public void onSuccess(final SimpleBarRecord barRecord,
+              Set<SyncResult> syncResults) {
+            req.simpleFooRequest().findSimpleFooById(999L).fire(
+                new Receiver<SimpleFooRecord>() {
+                  public void onSuccess(SimpleFooRecord fooRecord,
+                      Set<SyncResult> syncResults) {
+ RequestObject<Void> updReq = req.simpleFooRequest().persist(
+                        fooRecord);
+                    fooRecord = updReq.edit(fooRecord);
+                    fooRecord.setBarField(barRecord);
+                    updReq.fire(new Receiver<Void>() {
+                      public void onSuccess(Void response,
+                          Set<SyncResult> syncResults) {
+                        finishTest();
+                      }
+                    });
+                  }
+                });
+          }
+        });
+  }
+
+  /*
+   * Find Entity Create Entity2 Relate Entity2 to Entity Persist Entity
+   */
+  public void testPersistExistingEntityNewRelation() {
+ final SimpleRequestFactory req = GWT.create(SimpleRequestFactory.class);
+    HandlerManager hm = new HandlerManager(null);
+    req.init(hm);
+    delayTestFinish(5000);
+
+ SimpleBarRecord newBar = (SimpleBarRecord) req.create(SimpleBarRecord.class);
+
+ final RequestObject<Void> barReq = req.simpleBarRequest().persist(newBar);
+    newBar = barReq.edit(newBar);
+    newBar.setUserName("Amit");
+
+    final SimpleBarRecord finalNewBar = newBar;
+    req.simpleFooRequest().findSimpleFooById(999L).fire(
+        new Receiver<SimpleFooRecord>() {
+          public void onSuccess(SimpleFooRecord response,
+              Set<SyncResult> syncResults) {
+            RequestObject<Void> fooReq = req.simpleFooRequest().persist(
+                response);
+            response = fooReq.edit(response);
+            response.setBarField(finalNewBar);
+            fooReq.fire(new Receiver<Void>() {
+ public void onSuccess(Void response, Set<SyncResult> syncResults) {
+                req.simpleFooRequest().findSimpleFooById(999L).with(
+ "barField.userName").fire(new Receiver<SimpleFooRecord>() {
+                  public void onSuccess(SimpleFooRecord finalFooRecord,
+                      Set<SyncResult> syncResults) {
+                    // barReq hasn't been persisted, so old value
+                    assertEquals("FOO",
+                        finalFooRecord.getBarField().getUserName());
+                    finishTest();
+                  }
+
+                });
+              }
+            });
+          }
+        });
+  }
+
+  /*
+ * Find Entity2 Create Entity, Persist Entity Relate Entity2 to Entity Persist
+   * Entity
+   */
+  public void testPersistNewEntityExistingRelation() {
+ final SimpleRequestFactory req = GWT.create(SimpleRequestFactory.class);
+    HandlerManager hm = new HandlerManager(null);
+    req.init(hm);
+    delayTestFinish(5000);
+ SimpleFooRecord newFoo = (SimpleFooRecord) req.create(SimpleFooRecord.class);
+
+ final RequestObject<Void> fooReq = req.simpleFooRequest().persist(newFoo);
+
+    newFoo = fooReq.edit(newFoo);
+    newFoo.setUserName("Ray");
+
+    final SimpleFooRecord finalFoo = newFoo;
+    req.simpleBarRequest().findSimpleBarById(999L).fire(
+        new Receiver<SimpleBarRecord>() {
+          public void onSuccess(SimpleBarRecord response,
+              Set<SyncResult> syncResults) {
+            finalFoo.setBarField(response);
+            fooReq.fire(new Receiver<Void>() {
+ public void onSuccess(Void response, Set<SyncResult> syncResults) {
+                req.simpleFooRequest().findSimpleFooById(999L).fire(
+                    new Receiver<SimpleFooRecord>() {
+                      public void onSuccess(SimpleFooRecord finalFooRecord,
+                          Set<SyncResult> syncResults) {
+ // newFoo hasn't been persisted, so userName is the old value.
+                        assertEquals("GWT", finalFooRecord.getUserName());
+                        finishTest();
+                      }
+
+                    });
+              }
+            });
+          }
+        });
+  }
+
+  /*
+ * Create Entity, Persist Entity Create Entity2, Perist Entity2 relate Entity2
+   * to Entity Persist
+   */
+  public void testPersistNewEntityNewRelation() {
+ final SimpleRequestFactory req = GWT.create(SimpleRequestFactory.class);
+    HandlerManager hm = new HandlerManager(null);
+    req.init(hm);
+    delayTestFinish(5000);
+ SimpleFooRecord newFoo = (SimpleFooRecord) req.create(SimpleFooRecord.class); + SimpleBarRecord newBar = (SimpleBarRecord) req.create(SimpleBarRecord.class);
+
+ final RequestObject<SimpleFooRecord> fooReq = req.simpleFooRequest().persistAndReturnSelf(
+        newFoo);
+
+    newFoo = fooReq.edit(newFoo);
+    newFoo.setUserName("Ray");
+
+ final RequestObject<SimpleBarRecord> barReq = req.simpleBarRequest().persistAndReturnSelf(
+        newBar);
+    newBar = barReq.edit(newBar);
+    newBar.setUserName("Amit");
+
+    fooReq.fire(new Receiver<SimpleFooRecord>() {
+      public void onSuccess(final SimpleFooRecord persistedFoo,
+          Set<SyncResult> syncResult) {
+        barReq.fire(new Receiver<SimpleBarRecord>() {
+          public void onSuccess(final SimpleBarRecord persistedBar,
+              Set<SyncResult> syncResults) {
+            assertEquals("Ray", persistedFoo.getUserName());
+ final RequestObject<Void> fooReq2 = req.simpleFooRequest().persist(
+                persistedFoo);
+ SimpleFooRecord editablePersistedFoo = fooReq2.edit(persistedFoo);
+            editablePersistedFoo.setBarField(persistedBar);
+            fooReq2.fire(new Receiver<Void>() {
+ public void onSuccess(Void response, Set<SyncResult> syncResults) {
+                req.simpleFooRequest().findSimpleFooById(999L).with(
+ "barField.userName").fire(new Receiver<SimpleFooRecord>() {
+                  public void onSuccess(SimpleFooRecord finalFooRecord,
+                      Set<SyncResult> syncResults) {
+                    assertEquals("Amit",
+                        finalFooRecord.getBarField().getUserName());
+                    finishTest();
+                  }
+
+                });
+              }
+            });
+          }
+        });
+      }
+    });
+  }

   public void testPersistRelation() {
final SimpleRequestFactory req = GWT.create(SimpleRequestFactory.class);
     HandlerManager hm = new HandlerManager(null);
     req.init(hm);
-    delayTestFinish(500000);
+    delayTestFinish(5000);

     SimpleFooRecord rayFoo = req.create(SimpleFooRecord.class);
final RequestObject<SimpleFooRecord> persistRay = req.simpleFooRequest().persistAndReturnSelf(
=======================================
--- /branches/2.1M3/user/test/com/google/gwt/valuestore/shared/SimpleBarRequest.java Thu Aug 19 17:13:42 2010 +++ /branches/2.1M3/user/test/com/google/gwt/valuestore/shared/SimpleBarRequest.java Fri Aug 20 17:45:10 2010
@@ -16,6 +16,7 @@
 package com.google.gwt.valuestore.shared;

 import com.google.gwt.requestfactory.shared.Instance;
+import com.google.gwt.requestfactory.shared.RecordListRequest;
 import com.google.gwt.requestfactory.shared.RecordRequest;
 import com.google.gwt.requestfactory.shared.RequestObject;
 import com.google.gwt.requestfactory.shared.Service;
@@ -26,9 +27,15 @@
 @Service(com.google.gwt.valuestore.server.SimpleBar.class)
 public interface SimpleBarRequest {

+  RequestObject<Long> countSimpleBar();
+
+  RecordListRequest<SimpleBarRecord> findAll();
+
+  RecordRequest<SimpleBarRecord> findSimpleBarById(Long id);
+
   @Instance
   RequestObject<Void> persist(SimpleBarRecord record);
-
+
   @Instance
RecordRequest<SimpleBarRecord> persistAndReturnSelf(SimpleBarRecord record);
 }

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

Reply via email to