What is CapeDwarf?
CapeDwarf is an extension of the JBoss' WildFly Application Server which allows you to deploy applications written for the Google App Engine on your own private cluster or on RedHat's OpenShift cloud without any modifications.
CapeDwarf as an alternative to the Google App Engine
Migrate from GAE to CapeDwarf and back
CapeDwarf implements all the APIs of the Google App Engine, such as the Datastore API, the Search and Prospective Search API, the Users API, Tasks API and all the rest. This means applications that use these APIs can be migrated to CapeDwarf without needing to be modified in any way. Full compatibility with GAE APIs also means your apps can initially be deployed on CapeDwarf and then later migrated to Google App Engine.
Ensuring full compatibility between CapeDwarf and GAE
When initially implementing the APIs, we needed to create tests that would help us make sure our implementation of the APIs is behaving exactly like that in Google App Engine. These tests later became the base of the new App Engine TCK project, which we are working on together with Google. The App Engine TCK project is a set of tests that check whether a specific implementation of the GAE APIs is behaving exactly like the implementation available on Google's AppSpot.
Bridging the gap between GAE and JavaEE
From GAE to JavaEE
If you have a GAE app that you would now like to convert into a JavaEE app, CapeDwarf can help bridge the initial gap between GAE and JavaEE.
Deploying your app on CapeDwarf will allow you to gradually migrate away from GAE APIs towards JavaEE APIs. Being built on Wildfly, a certified JavaEE application server, CapeDwarf is both a JavaEE and a GAE server.
Parts of your app can still use GAE APIs, while other parts can use services provided by JavaEE.
From JavaEE to GAE
If you have a Java EE application that you have decided to migrate to Google App Engine, CapeDwarf is just the thing you need. Since CapeDwarf is built on top of Wildfly, which is Java EE certified, you can deploy your app on CapeDwarf and then gradually migrate parts of your app away from Java EE and towards Google App Engine. Once you've migrated all the parts, your app will be deployable to GAE.
Based on proven JBoss technologies
CapeDwarf as the integration layer
The CapeDwarf team did not implement all the APIs from scratch, but rather took existing JBoss technologies and products and simply exposed them to GAE applications through the GAE APIs. CapeDwarf relies heavily on the JBoss' data grid technology called Infinispan, which uses JGroups and Hibernate-Search. Other technologies used by CapeDwarf include PicketLink, HornetQ and others. Applications deployed on CapeDwarf use these technologies without even being aware of it.
Based on the new WildFly Application Server
The WildFly 8 Application Server is based on the well known JBoss Application Server 7, which is very well known in the Java Enterprise world. This means CapeDwarf offers an enterprise-grade runtime environment, ensuring your applications run smoothly.
The Team
The core team
Aleš Justin founded the project and is serving as the project lead. He has been part of JBoss/RedHat since 2006 and has worked on and led multiple JBoss projects.
Marko Lukša joined RedHat in 2012 to work on CapeDwarf and Weld (the reference implementation of CDI). As part of his work on CapeDwarf, he has also contributed to the Infinispan project.
Contributors
Matej Lazar
Tomaž Cerar
Marko Štrukelj