diff options
Diffstat (limited to 'documentation/advanced/advanced-gae.asciidoc')
-rw-r--r-- | documentation/advanced/advanced-gae.asciidoc | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/documentation/advanced/advanced-gae.asciidoc b/documentation/advanced/advanced-gae.asciidoc deleted file mode 100644 index 0547f2f134..0000000000 --- a/documentation/advanced/advanced-gae.asciidoc +++ /dev/null @@ -1,71 +0,0 @@ ---- -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. - - - - - |