GAPE is a Domain Specific Language for developing and deploying Java applications on Google App Engine. Clarity is a primary objective, as it impacts design and development; the easier it is to read something the easier is to find mistakes. The limited expressiveness of GAPE makes it harder to define wrong things and easier to detect errors, providing a way to clearly define what-the-system-is (the domain model) and what-the-system-does (functionality), without comprehensive documentation. The DSL includes explicit information about what code and object belong to and participate to a use case, which makes it useful to keep track of the system functionalities. GAPE is based on Xtext which provides a comfortable development environment integrated with Eclipse.
An quick overview of the GAPE DSL is available on YouTube, to become familiar with the DSL syntax play with the GAPE's Anatomy.
GAPE is implemented with Xtext, so you must have Xtext up and running in order to proceed. There are two easy ways to get Xtext:
- A pre-configured Eclipse distribution which has all the necessary plug-ins installed.
- Install Xtext into your existing Eclipse by means of the Eclipse update mechanism.
You can find detailed information on Xtext website
Copy the files from SDK /plugins directory files to the Eclipse /plugins directory, then restart Eclipse.
The ToDo Application included in the SDK is an example written in GAPE of Single Page Application based on Boostrap and AngularJS.
The sample ToDo Application comes with a Maven pom.xml file. You must manually add the /lib/gape-runtime-1.0.0.jar to local repository using:
mvn install:install-file -Dfile=/<path-to-sdk>/lib/gape-runtime-1.0.0.jar -DgroupId=com.mylaensys.gape.dsl.runtime -DartifactId=gape -Dversion=1.0 -Dpackaging=jar
To build and start the sample ToDo application, use the App Engine Maven Plugin that is already included in this demo. Just run the command.
mvn appengine:devserver