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
git-svn-id: https://google-web-toolkit.googlecode.com/svn/branches/2.1M3@8611 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/branch-info.txt b/branch-info.txt
index d3fe056..f36f674 100644
--- a/branch-info.txt
+++ b/branch-info.txt
@@ -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
diff --git a/user/src/com/google/gwt/requestfactory/client/impl/AbstractRequest.java b/user/src/com/google/gwt/requestfactory/client/impl/AbstractRequest.java
index 833fbb1..8cf92e8 100644
--- a/user/src/com/google/gwt/requestfactory/client/impl/AbstractRequest.java
+++ b/user/src/com/google/gwt/requestfactory/client/impl/AbstractRequest.java
@@ -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];
this.@com.google.gwt.requestfactory.client.impl.AbstractRequest::setSchemaAndRecord(Ljava/lang/String;Lcom/google/gwt/requestfactory/client/impl/RecordJsoImpl;)(schemaAndId[0], jso);
diff --git a/user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java b/user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java
index 8597d49..564a3d1 100644
--- a/user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java
+++ b/user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java
@@ -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);
diff --git a/user/src/com/google/gwt/requestfactory/server/RequestFactoryServlet.java b/user/src/com/google/gwt/requestfactory/server/RequestFactoryServlet.java
index c3d1fb2..72dc579 100644
--- a/user/src/com/google/gwt/requestfactory/server/RequestFactoryServlet.java
+++ b/user/src/com/google/gwt/requestfactory/server/RequestFactoryServlet.java
@@ -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();
diff --git a/user/src/com/google/gwt/user/cellview/client/CellTree.css b/user/src/com/google/gwt/user/cellview/client/CellTree.css
index 4ea469f..ee00850 100644
--- a/user/src/com/google/gwt/user/cellview/client/CellTree.css
+++ b/user/src/com/google/gwt/user/cellview/client/CellTree.css
@@ -28,7 +28,7 @@
*/
.keyboardSelectedItem {
- background-color: #ffff00;
+/* background-color: #ffff00; */
}
.openItem {
diff --git a/user/src/com/google/gwt/user/cellview/client/CellTreeClean.css b/user/src/com/google/gwt/user/cellview/client/CellTreeClean.css
index 4c84711..5c393c7 100644
--- a/user/src/com/google/gwt/user/cellview/client/CellTreeClean.css
+++ b/user/src/com/google/gwt/user/cellview/client/CellTreeClean.css
@@ -28,7 +28,7 @@
*/
.keyboardSelectedItem {
- background-color: #ffff00;
+/* background-color: #ffff00; */
}
.openItem {
diff --git a/user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java b/user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java
index 651a46a..3ac6136 100644
--- a/user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java
+++ b/user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java
@@ -33,11 +33,182 @@
*/
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(
diff --git a/user/test/com/google/gwt/valuestore/shared/SimpleBarRequest.java b/user/test/com/google/gwt/valuestore/shared/SimpleBarRequest.java
index 1b2bccd..4839ce8 100644
--- a/user/test/com/google/gwt/valuestore/shared/SimpleBarRequest.java
+++ b/user/test/com/google/gwt/valuestore/shared/SimpleBarRequest.java
@@ -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);
}