summaryrefslogtreecommitdiffstats
path: root/documentation/advanced/advanced-gae.asciidoc
diff options
context:
space:
mode:
authorelmot <elmot@vaadin.com>2015-09-25 16:40:44 +0300
committerelmot <elmot@vaadin.com>2015-09-25 16:40:44 +0300
commita1b265c318dbda4a213cec930785b81e4c0f7d2b (patch)
treeb149daf5a4f50b4f6446c906047cf86495fe0433 /documentation/advanced/advanced-gae.asciidoc
parentb9743a48a1bd0394f19c54ee938c6395a80f3cd8 (diff)
downloadvaadin-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.asciidoc71
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&lt;sessionid&gt;#.
+
+* The Vaadin [classname]#WebApplicationContext# class is serialized separately
+into memcache and datastore; the memcache key is [parameter]#_vac&lt;sessionid&gt;#
+and the datastore entity kind is [parameter]#_vac# with identifiers of the type
+[parameter]#_vac&lt;sessionid&gt;#.
+
+* __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.
+
+
+
+
+