diff options
author | elmot <elmot@vaadin.com> | 2015-09-25 16:40:44 +0300 |
---|---|---|
committer | elmot <elmot@vaadin.com> | 2015-09-25 16:40:44 +0300 |
commit | a1b265c318dbda4a213cec930785b81e4c0f7d2b (patch) | |
tree | b149daf5a4f50b4f6446c906047cf86495fe0433 /documentation/advanced/advanced-gae.asciidoc | |
parent | b9743a48a1bd0394f19c54ee938c6395a80f3cd8 (diff) | |
download | vaadin-framework-a1b265c318dbda4a213cec930785b81e4c0f7d2b.tar.gz vaadin-framework-a1b265c318dbda4a213cec930785b81e4c0f7d2b.zip |
Framework documentation IN
Change-Id: I767477c1fc3745f9e1f58075fe30c9ac8da63581
Diffstat (limited to 'documentation/advanced/advanced-gae.asciidoc')
-rw-r--r-- | documentation/advanced/advanced-gae.asciidoc | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/documentation/advanced/advanced-gae.asciidoc b/documentation/advanced/advanced-gae.asciidoc new file mode 100644 index 0000000000..0547f2f134 --- /dev/null +++ b/documentation/advanced/advanced-gae.asciidoc @@ -0,0 +1,71 @@ +--- +title: Google App Engine Integration +order: 7 +layout: page +--- + +[[advanced.gae]] += Google App Engine Integration + +__This section is not yet fully updated to Vaadin 7.__ + +Vaadin includes support to run Vaadin applications in the Google App Engine +(GAE). The most essential requirement for GAE is the ability to serialize the +application state. Vaadin applications are serializable through the +[classname]#java.io.Serializable# interface. + +To run as a GAE application, an application must use +[classname]#GAEVaadinServlet# instead of [classname]#VaadinServlet#, and of +course implement the [classname]#java.io.Serializable# interface for all +persistent classes. You also need to enable session support in +[filename]#appengine-web.xml# with: + + +[source, xml] +---- +<sessions-enabled>true</sessions-enabled> +---- + +The Vaadin Project wizard can create the configuration files needed for GAE +deployment. See +<<dummy/../../../framework/getting-started/getting-started-first-project#getting-started.first-project.creation,"Creating +the Project">>. When the Google App Engine deployment configuration is selected, +the wizard will create the project structure following the GAE Servlet +convention instead of the regular Servlet convention. The main differences are: + +* Source directory: [filename]#src/main/java# +* Output directory: [filename]#war/WEB-INF/classes# +* Content directory: [filename]#war# + +== Rules and Limitations + +Running Vaadin applications in Google App Engine has the following rules and +limitations: + +* Avoid using the session for storage, usual App Engine limitations apply (no +synchronization, that is, it is unreliable). + +* Vaadin uses memcache for mutex, the key is of the form +[parameter]#_vmutex<sessionid>#. + +* The Vaadin [classname]#WebApplicationContext# class is serialized separately +into memcache and datastore; the memcache key is [parameter]#_vac<sessionid># +and the datastore entity kind is [parameter]#_vac# with identifiers of the type +[parameter]#_vac<sessionid>#. + +* __Do not__ update the application state when serving an +[classname]#ConnectorResource# (such as [classname]#ClassResource#. +[methodname]#getStream()#). + +* __Avoid__ (or be very careful when) updating application state in a +[classname]#TransactionListener# - it is called even when the application is not +locked and won't be serialized (such as with [classname]#ConnectorResource#), +and changes can therefore be lost (it should be safe to update things that can +be safely discarded later, that is, valid only for the current request). + +* The application remains locked during uploads - a progress bar is not possible. + + + + + |