Gaelyk is a lightweight Groovy web application framework built specifically for the Google App Engine. It provides a fast, easy way to build simply applications in Groovy and host them for free on the GAE.
37. Limitations
The JDK whitelist
http://code.google.com/appengine/docs/java/jrewhitelist.html
No Hibernate
Only JPA and JDO
38. Limitations
The JDK whitelist
http://code.google.com/appengine/docs/java/jrewhitelist.html
No Hibernate
Only JPA and JDO
Grails is limited
39. Limitations
The JDK whitelist
http://code.google.com/appengine/docs/java/jrewhitelist.html
No Hibernate
Only JPA and JDO
Grails is limited
Performance problems?
97. Email
with Gaelyk
mail.send sender: 'story-admin@augusttechgroup.com',
to: 'tlberglund@gmail.com',
subject: 'Story Complete',
textBody: "A story you edited has increased
in priority. Check it out."
111. Task Queues
Timed HTTP requests
Configure in war/WEB-INF/queue.xml
http://code.google.com/appengine/docs/java/config/queue.html
112. Task Queues
Timed HTTP requests
Configure in war/WEB-INF/queue.xml
http://code.google.com/appengine/docs/java/config/queue.html
Can update without redeploying
113. Task Queues
Timed HTTP requests
Configure in war/WEB-INF/queue.xml
http://code.google.com/appengine/docs/java/config/queue.html
Can update without redeploying
Can be secured
121. XMPP Sending
with Gaelyk
def recipient = 'tlberglund@gmail.com'
if (xmpp.getPresence(recipient).isAvailable()) {
def status = xmpp.send(to: recipient,
body: "Glad you're into Gaelyk!")
if (!status.isSuccessful()) {
122. XMPP Sending
with Gaelyk
def recipient = 'tlberglund@gmail.com'
if (xmpp.getPresence(recipient).isAvailable()) {
def status = xmpp.send(to: recipient,
body: "Glad you're into Gaelyk!")
if (!status.isSuccessful()) {
// ...
123. XMPP Sending
with Gaelyk
def recipient = 'tlberglund@gmail.com'
if (xmpp.getPresence(recipient).isAvailable()) {
def status = xmpp.send(to: recipient,
body: "Glad you're into Gaelyk!")
if (!status.isSuccessful()) {
// ...
}
}
On the JDK, we’ve got options, and they’re growing. Groovy is a better Java focused on strong Java interop, an easy migration path, and easy application coding.
Often the Java deployment story is less than happy. The Ops team gets it and feels great about it, but the PHP guys don’t know what to do with us. We’ve got great framework choices,
It should be an easy framework to learn and use.
Demo starting up a Gaelyk app.
You’re running your app on Google’s nearly infinitely scalable infrastructure. Go ahead, DDOS it!
You’re running your app on Google’s nearly infinitely scalable infrastructure. Go ahead, DDOS it!
You’re running your app on Google’s nearly infinitely scalable infrastructure. Go ahead, DDOS it!
You can sign up and get started and not pay a dime. You get certain free quotas.
GAE offers more than just transfer in and out and CPU. All services have their own quotas described at that URL. Since we’re talking about Gaelyk, not GAE, we’ll move on.
If you grow beyond the free quotas, you can always buy more. Internet scale, baby!
Started at Python. Now any language of the JVM, within limitations.
Started at Python. Now any language of the JVM, within limitations.
Started at Python. Now any language of the JVM, within limitations.
Started at Python. Now any language of the JVM, within limitations.
Started at Python. Now any language of the JVM, within limitations.
Started at Python. Now any language of the JVM, within limitations.
Remember, it’s basically an app server.
Remember, it’s basically an app server.
Remember, it’s basically an app server.
Most of java.awt, javax.imageio, some java.nio, etc. Performance problems in Java have to do with first-request performance after a delay of no requests.
Most of java.awt, javax.imageio, some java.nio, etc. Performance problems in Java have to do with first-request performance after a delay of no requests.
Most of java.awt, javax.imageio, some java.nio, etc. Performance problems in Java have to do with first-request performance after a delay of no requests.
Most of java.awt, javax.imageio, some java.nio, etc. Performance problems in Java have to do with first-request performance after a delay of no requests.
Most of java.awt, javax.imageio, some java.nio, etc. Performance problems in Java have to do with first-request performance after a delay of no requests.
Most of java.awt, javax.imageio, some java.nio, etc. Performance problems in Java have to do with first-request performance after a delay of no requests.
All examples will be with TextMate and the Console. No Eclipse plugin necessary!
Attachments are optional.
Attachments are optional.
A discussion
PluginDescriptor can add bindings, etc.
PluginDescriptor can add bindings, etc.
PluginDescriptor can add bindings, etc.
PluginDescriptor can add bindings, etc.
PluginDescriptor can add bindings, etc.
The GAE SDK contains an embedded Jetty instance that emulates all appropriate services. The Eclipse plugin does this as well, but you don’t have to use it.
It’s also easy to deploy to GAE from the command line.