(I created this rietveld issue for you, so the reviewer field is a bit backwards — should be me.)
http://gwt-code-reviews.appspot.com/160809/diff/1/2 File bikeshed/.classpath (right): http://gwt-code-reviews.appspot.com/160809/diff/1/2#newcode10 Line 10: <classpathentry kind="lib" path="war/WEB-INF/lib/json.jar"/> I thought you had added this to svn/tools? Shouldn't this be pointing there? http://gwt-code-reviews.appspot.com/160809/diff/1/3 File bikeshed/src/com/google/gwt/sample/expenses/client/Expenses.java (right): http://gwt-code-reviews.appspot.com/160809/diff/1/3#newcode64 Line 64: "/expenses/data?methodName=" + MethodName.FIND_ALL_EMPLOYEES.name()); I was expecting to see this call moved to replace the TODO in com.google.gwt.sample.expenses.shared.EmployeeRequests.findAllEmployees() http://gwt-code-reviews.appspot.com/160809/diff/1/4 File bikeshed/src/com/google/gwt/sample/expenses/domain/Storage.java (right): http://gwt-code-reviews.appspot.com/160809/diff/1/4#newcode27 Line 27: public class Storage { The Storage class is an implementation detail of our pretend persistence system and shouldn't be public. http://gwt-code-reviews.appspot.com/160809/diff/1/4#newcode66 Line 66: public synchronized List<Employee> findAllEmployees() { Don't make this public. Use the existing public static method Employee#findEmployeeByUserName which wraps it. http://gwt-code-reviews.appspot.com/160809/diff/1/5 File bikeshed/src/com/google/gwt/sample/expenses/server/ExpensesDataServlet.java (right): http://gwt-code-reviews.appspot.com/160809/diff/1/5#newcode41 Line 41: private static final long serialVersionUID = -3050190168369080249L; Why? http://gwt-code-reviews.appspot.com/160809/diff/1/7 File bikeshed/src/com/google/gwt/sample/expenses/shared/MethodName.java (right): http://gwt-code-reviews.appspot.com/160809/diff/1/7#newcode19 Line 19: * Represents the MethodName. We can't assume a global namespace for service methods. They're expected to be static methods (e.g. Employee#findAllEmployees), so we need to include class name as well as method name. We'll need to include param types as well, to allow overloading — these basically must be full method signatures. Since the purpose of this effort is to make a hacked interface of a correct public API, we should get this part right, or at least make it a bit more realistic. The service method list is embodied by the methods on shared.EmployeeRequests. The service method signature (in this case effectively "...domain.Employee.findAllEmployees()") should be part of the state of the EntityListRequest instance being returned by EmployeeRequests#findAllEmployees. That object should make the JSON call, including the method signature, and it should interpret the results. When the results are received, eventually we'll: • create new Employee instances • put them in the ValueStore • set up subscriptions on the ValueStore to the watcher then the ValueStore will push the results to the watcher. Since the ValueStore doesn't exist yet, that's too much for this CL. Instead why not move the JSON call from the entry point to the fire method in EmployeeRequests, and in the response push the results directly to the watches. Then in the next iteration we can start to flesh out the ValueStore itself. http://gwt-code-reviews.appspot.com/160809/diff/1/8 File bikeshed/src/com/google/gwt/valuestore/shared/Path.java (right): http://gwt-code-reviews.appspot.com/160809/diff/1/8#newcode24 Line 24: * @param <T> The type of the property owner at the head of the path http://gwt-code-reviews.appspot.com/160809/diff/1/8#newcode25 Line 25: * @param <V> The value type of the last property in the path http://gwt-code-reviews.appspot.com/160809/diff/1/8#newcode32 Line 32: Property<T,V> getLastProperty() { This should actually be Property<?, V> http://gwt-code-reviews.appspot.com/160809/diff/1/9 File bikeshed/src/com/google/gwt/valuestore/shared/Property.java (right): http://gwt-code-reviews.appspot.com/160809/diff/1/9#newcode21 Line 21: * @param <T> Entity type Type of the property holder http://gwt-code-reviews.appspot.com/160809 -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
