The Camel components for Google App Engine (GAE) are part of the camel-gae project and provide connectivity to GAE's cloud computing services. They make the GAE cloud computing environment accessible to applications via Camel interfaces. Following this pattern for other cloud computing environments could make it easier to port Camel applications from one cloud computing provider to another. The following table lists the cloud computing services provided by Google and the supporting Camel components. The documentation of each component can be found by following the link in the Camel Component column.
Provides access to the Google authentication services (see also Security section)
Allow Camel client applications to login to Google App Engine services
Allow Camel GAE applications to login to other Google services (e.g. calendar)
Setting up a SpringCamelContext on Google App Engine differs between Camel 2.1 and Camel 2.2. The problem is that usage of the Camel-specific Spring configuration XML schema from the http://camel.apache.org/schema/spring namespace requires JAXB and Camel 2.1 depends on a Google App Engine SDK version that doesn't support JAXB yet.
Camel 2.1 depends on the Google App Engine SDK 1.2.6 which doesn't support JAXB. Refer to the Camel 2.1 subsection for instructions how to set up a SpringCamelContext with Camel 2.1 on GAE.
Camel 2.2 depends on the Google App Engine SDK 1.2.8, the first version that introduces support for JAXB. Refer to the Camel 2.2 subsection for instructions how to set up a SpringCamelContext with Camel 2.2 on GAE.
With both versions, JMX must be disabled because the javax.management package isn't on the App Engine JRE whitelist.
camel-gae 2.1 comes with the following CamelContext implementations.
Alternatively, use the routeBuilders property of the GaeSpringCamelContext for setting a list of route builders. Using this approach, a SpringCamelContext can be configured on GAE without the need for JAXB.
Running Camel on GAE requires usage of the CamelHttpTransportServlet from camel-servlet. The following example shows how to configure this servlet together with a Spring application context XML file.
Mapping used for external requests
Mapping used for web hooks accessed by task queueing service.
The location of the Spring application context XML file is given by the contextConfigLocation init parameter. The appctx.xml file must be on the classpath. The servlet mapping makes the Camel application accessible under http://<appname>.appspot.com/camel/... when deployed to Google App Engine where <appname> must be replaced by a real GAE application name. The second servlet mapping is used internally by the task queueing service for background processing via web hooks. This mapping is relevant for the gtask component and is explained there in more detail.