Recently I succeeded to get a simple Camel route running on the Google App Engine. Here's a short overview of the issues I encountered:

* Camel's UuidGenerator doesn't work on GAE and needed to be replaced (see CAMEL-2073 <https://issues.apache.org/activemq/browse/CAMEL-2073> and a previous post <http://www.nabble.com/Camel-on-Google-App-Engine-to25921155.html#a25926970>) * Camel's Spring XML configuration schema cannot be used to e.g. configure the CamelContext because JAXB is used by the CamelNamespaceHandler and JAXB is not supported on GAE. Using plain old <bean> definitions works. * The same problem arises for the Spring DSL. It is also processed with JAXB and therefore cannot be used on GAE. Only the Java DSL works (I didn't try the Scala DSL). * Using camel-core alone requires to configure another Registry than the default JndiRegistry. JndiRegistry depends in javax.naming.InitialContext that is not on the GAE JRE whitelist. Using a simple Map-based registry solved the problem.
* JMX cannot be used and must be disabled either.

More details can be found in this blog post <http://krasserm.blogspot.com/2009/10/first-steps-with-apache-camel-on-google.html>. The above list is of course not complete. Other issues such as applications are not allowed to create their own threads, for example, makes it impossible to do asynchronous processing with SEDA or JMS queues. Reasonably supporting Camel deployments on GAE would also mean to provide Camel components for accessing GAE services such as URL fetch, tasks queues, storage, mail etc. I'll see what I can do/contribute here.

Reply via email to