Revive samples/expenses from its 2.3 breakage. Also now generates
sample data on demand.
Review at http://gwt-code-reviews.appspot.com/1447809
Review by: jlabanca@google.com
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10237 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/samples/expenses/README-MAVEN.txt b/samples/expenses/README-MAVEN.txt
index cbb08be..1ba53bf 100644
--- a/samples/expenses/README-MAVEN.txt
+++ b/samples/expenses/README-MAVEN.txt
@@ -1,8 +1,10 @@
-- Option A: Import your project into Eclipse (recommended) --
-If you use Eclipse, you can simply import the generated project into
-Eclipse. We've tested against Eclipse 3.5. Later versions will likely
-also work, earlier versions may not.
+If you use Eclipse for Jave EE, you can simply import the generated
+project into Eclipse. We've tested against Eclipse 3.5. Later versions
+will likely also work, earlier versions may not. (Please note that
+this demo requires WTP, which is pre-installed with the Jave EE
+versions of Eclipse.)
Eclipse users will need to install the following plugin components:
- Google Plugin for Eclipse (instructions at http://code.google.com/eclipse/)
@@ -41,6 +43,19 @@
You can now use the built-in debugger to debug your web app in development mode.
+GWT developers (those who build GWT from source) may add their
+gwt-user project to top of this project's class path in order to use
+the built-from-source version of GWT instead of the version specified
+in the POM.
+
+ Select the project in the Project explorer and select File > Properties
+
+ Select Java Build Path and click the Projects tab
+
+ Click Add..., select gwt-user, and click OK
+
+ Click Order and Export and move gwt-user above Maven Dependencies
+
-- Option B: Build from the command line with Maven --
If you prefer to work from the command line, you can use Maven to
diff --git a/samples/expenses/pom.xml b/samples/expenses/pom.xml
index 2af82f3..b93c9ab 100644
--- a/samples/expenses/pom.xml
+++ b/samples/expenses/pom.xml
@@ -7,12 +7,12 @@
<version>0.1.0.BUILD-SNAPSHOT</version>
<name>expenses</name>
<properties>
- <gwt.version>2.2.0</gwt.version>
+ <gwt.version>2.3.0</gwt.version>
<roo.version>1.1.0.RELEASE</roo.version>
<spring.version>3.0.3.RELEASE</spring.version>
<slf4j.version>1.6.1</slf4j.version>
- <gae.version>1.4.2</gae.version>
- <gae-test.version>1.4.2</gae-test.version>
+ <gae.version>1.5.0</gae.version>
+ <gae-test.version>1.5.0</gae-test.version>
<gae.home>${user.home}/.m2/repository/com/google/appengine/appengine-java-sdk/${gae.version}/appengine-java-sdk-${gae.version}</gae.home>
<datanucleus.version>1.1.5</datanucleus.version>
</properties>
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpensesShell.ui.xml b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpensesShell.ui.xml
index f713bfc..6feaf5b 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpensesShell.ui.xml
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/client/ExpensesShell.ui.xml
@@ -5,7 +5,6 @@
xmlns:m='urn:import:com.google.gwt.mobile.client'
xmlns:e='urn:import:com.google.gwt.sample.expenses.client'
xmlns:a='urn:import:com.google.gwt.sample.gaerequest.client'>
- xmlns:r='urn:import:com.google.web.bindery.requestfactory.ui.client'
<ui:with field='styles' type='com.google.gwt.sample.expenses.client.style.Styles' />
diff --git a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/server/domain/Report.java b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/server/domain/Report.java
index 96954de..4d35c0d 100644
--- a/samples/expenses/src/main/java/com/google/gwt/sample/expenses/server/domain/Report.java
+++ b/samples/expenses/src/main/java/com/google/gwt/sample/expenses/server/domain/Report.java
@@ -16,6 +16,7 @@
package com.google.gwt.sample.expenses.server.domain;
import com.google.appengine.api.datastore.Cursor;
+import com.google.gwt.sample.expenses.server.DataGenerationServiceImpl;
import org.datanucleus.store.appengine.query.JPACursorHelper;
@@ -69,9 +70,20 @@
Query query = queryReportsBySearch(em, employeeId, department, startsWith,
null, true);
if (query == null) {
+ /*
+ * Demo hack around app engine's 1000 record cap: a request for "all"
+ * records comes in as startsWith=="", which returns null. Report how
+ * many we prepopulated the thing with. A real app would have to
+ * maintain its own count in the datastore and return that.
+ */
return REPORT_COUNT;
}
long count = ((Number) query.getSingleResult()).longValue();
+ // Demo hack: if there are no records, make some up.
+ if (count == 0) {
+ new DataGenerationServiceImpl().generate(200);
+ count = ((Number) query.getSingleResult()).longValue();
+ }
return count;
} finally {
em.close();
diff --git a/samples/expenses/src/main/webapp/WEB-INF/web.xml b/samples/expenses/src/main/webapp/WEB-INF/web.xml
index 130c671..e0644ed 100644
--- a/samples/expenses/src/main/webapp/WEB-INF/web.xml
+++ b/samples/expenses/src/main/webapp/WEB-INF/web.xml
@@ -27,7 +27,7 @@
<servlet>
<servlet-name>requestFactoryServlet</servlet-name>
- <Servlet-class>com.google.web.bindery.requestfactory.server.RequestFactoryServlet</servlet-class>
+ <servlet-class>com.google.web.bindery.requestfactory.server.RequestFactoryServlet</servlet-class>
</servlet>
<servlet-mapping>