Your SlideShare is downloading. ×
0
Groovy and Grails
                                       in Google App Engine

                        Benefit from a Java...
Guillaume Laforge

   • Groovy Project Manager
   • JSR-241 Spec Lead
   • Head of Groovy Development
     at SpringSource...
nda
               Ag e                                                                                             •Groov...
A few words about Groovy

   • Groovy is a dynamic language for the JVM
           – with a Meta Object Protocol
         ...
Features at a glance

   • Fully Object-Oriented
   • Joint compiler: seamless Java integration
   • Closures: reusable/as...
A “normal” servlet

   • Writing a servlet is no different than a classical
     standard Java servlet
           – only a...
Groovylets: Groovy servlets

   • General idea
           – use scripts over classes
           – use Groovy’s markup buil...
Groovylets: Groovy servlets

   • Refererence the GroovyServlet in web.xml
   • Add a URL mapping

   • <servlet>
       <...
Groovy templates

   • Groovy comes built-in with templating capability

   • import groovy.text.SimpleTemplateEngine

   ...
The Servlet template

   • Similar to JSPs
           – <html>
               <body>
                 <p>${message}</p>
  ...
F GAELYK
   • A thin layer on top of:
           – Groovlets & servlet template
           – Google App Engine Java SDK AP...
nda
               Ag e                                                                                             • Groo...
From 10,000 feet...




                                                                                       =


Copyrig...
From 10,000 feet...




                                                                                       =


Copyrig...
From 10,000 feet...




                                                                                       =
         ...
From 10,000 feet...




                                                                                       =
         ...
From 10,000 feet...




                                                                                       =
         ...
From 10,000 feet...




                                                                                       =
         ...
In a few bullet points...

   • Grails is a full stack web app development env.
           – built on rock-solid and prove...
The big picture



                                                                               Grails




             ...
The big picture



                                                                               Grails




             ...
The standard project structure




                                 M                                                     ...
The App Engine plugin

   • Grails has got a very extensive and rich plugin
     system and ecosystem
           – 100+ ex...
Setting up your project

   • Create your Grails application as usual
                      grails create-app myapp


   •...
Deploying applications

   • Set the version number to 1, as Grails uses a
     different numbering scheme (x.y)
         ...
DEMO
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   ...
nda
               Ag e                                                                                             • Groo...
Summary

   • Groovy
           – Groovy is a first-class citizen on Google App Engine
           – Lots of shorcut notati...
Further information

   • Groovy in Google App Engine
           – http://blog.springsource.com/2009/04/07/write-your-
   ...
nda
               Ag e                                                                                             • Groo...
Q&A




   • Questions & perhaps...

         even answers :-)




Copyright 2009 SpringSource. Copying, publishing or dis...
Upcoming SlideShare
Loading in...5
×

Groovy and Grails in Google App Engine

3,694

Published on

Published in: Technology
1 Comment
9 Likes
Statistics
Notes
  • Where can we find out more about gaelyx?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
3,694
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
149
Comments
1
Likes
9
Embeds 0
No embeds

No notes for slide

Transcript of "Groovy and Grails in Google App Engine"

  1. 1. Groovy and Grails in Google App Engine Benefit from a Java-like dynamic language to be more productive on App Engine Guillaume Laforge Head of Groovy Development Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  2. 2. Guillaume Laforge • Groovy Project Manager • JSR-241 Spec Lead • Head of Groovy Development at SpringSource • Initiator of the Grails framework • Co-author of Groovy in Action • Speaker: JavaOne, QCon, JavaZone, Sun TechDays, Devoxx, The Spring Experience, JAX, Dynamic Language World, IJTC, and more... Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 2
  3. 3. nda Ag e •Groovy overview –Features at a glance –Groovlets –Groovy templates • Grails overview – The Grails stack – The App Engine plugin • Summary • Q&A Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 3
  4. 4. A few words about Groovy • Groovy is a dynamic language for the JVM – with a Meta Object Protocol – compiles directly to bytecode, seamless Java interop • Open Source ASL 2 project hosted at Codehaus • Relaxed grammar derived from Java 5 – Java 5 features out-of-the-box: annotations, generics, static imports, enums, varargs... – borrowed good ideas from Ruby, Python, Smalltalk – flat learning curve for Java developers Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 4
  5. 5. Features at a glance • Fully Object-Oriented • Joint compiler: seamless Java integration • Closures: reusable/assignable code blocks • Properties: no more getters / setters • Optional typing: you decide! • Various shortcut notations: less verbose than Java • Handy wrapper APIs – Groovlets, XML, JDBC, JMX, template engine, Swing UIs, collections... • Strong ability for authoring Domain-Specific Languages Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 5
  6. 6. A “normal” servlet • Writing a servlet is no different than a classical standard Java servlet – only a bit leaner: properties, semis, public keyword... • import javax.servlet.http.* class HelloServlet extends HttpServlet { void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.contentType = quot;text/plainquot; resp.writer.println quot;Hello World!quot; } } Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 6
  7. 7. Groovylets: Groovy servlets • General idea – use scripts over classes – use Groovy’s markup builder to easily create HTML • html.html { head { title quot;Helloquot; } body { p quot;Hello Groovy World!quot; } } Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 7
  8. 8. Groovylets: Groovy servlets • Refererence the GroovyServlet in web.xml • Add a URL mapping • <servlet> <servlet-name>GroovyServlet</servlet-name> <servlet-class> groovy.servlet.GroovyServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>GroovyServlet</servlet-name> <url-pattern>*.groovy</url-pattern> </servlet-mapping> Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 8
  9. 9. Groovy templates • Groovy comes built-in with templating capability • import groovy.text.SimpleTemplateEngine def text = '''Dear $firstname, So nice to meet you in <% print city %>. See you in ${month}, <%= signed %>''' def binding = [firstname: quot;Guillaumequot;, month: quot;Junequot;, city: quot;San Franciscoquot;, signed: quot;Dukequot;] def engine = new SimpleTemplateEngine() template = engine.createTemplate(text) .make(binding) Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 9
  10. 10. The Servlet template • Similar to JSPs – <html> <body> <p>${message}</p> </body> </html> • In your web.xml – <servlet> <servlet-name>GroovyTemplateServlet</servlet-name> <servlet-class> groovy.servlet.TemplateServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>GroovyTemplateServlet</servlet-name> <url-pattern>*.gtpl</url-pattern> </servlet-mapping> Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 10
  11. 11. F GAELYK • A thin layer on top of: – Groovlets & servlet template – Google App Engine Java SDK APIs • What it does – Inject all the services in servlets and templates – Adds syntax sugar and dynamic methods to the SDK API Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 11
  12. 12. nda Ag e • Groovy overview – Features at a glance – Groovlets – Groovy templates •Grails overview –The Grails stack –The App Engine plugin • Summary • Q&A Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 12
  13. 13. From 10,000 feet... = Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 13
  14. 14. From 10,000 feet... = Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 13
  15. 15. From 10,000 feet... = + Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 13
  16. 16. From 10,000 feet... = + Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 13
  17. 17. From 10,000 feet... = + + Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 13
  18. 18. From 10,000 feet... = + + Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 13
  19. 19. In a few bullet points... • Grails is a full stack web app development env. – built on rock-solid and proven OSS frameworks •Spring, Spring MVC, Spring WebFlow •Hibernate, SiteMesh, Quartz •Jetty, HSQLDB – provides its ORM layer on top of Hibernate – has got its own integrated build system and CLI • Follows good and lean principles – Convention over Configuration, MVC, DRY... • Provides powerful time-saving capabilities – Scaffolding, an extensible plugin system, taglibs, templates, and more Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 14
  20. 20. The big picture Grails Groovy Java Enterprise Spring Hibernate SiteMesh Edition (JEE) The Java Development The Java Language Kit (JDK) The Java Virtual Machine Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 15
  21. 21. The big picture Grails Groovy Java Enterprise Spring Hibernate SiteMesh Edition (JEE) The Java Development The Java Language Kit (JDK) The Java Virtual Machine Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 15
  22. 22. The standard project structure M C V Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 16
  23. 23. The App Engine plugin • Grails has got a very extensive and rich plugin system and ecosystem – 100+ existing and useful plugins available •GWT, Flex, YUI, iUI, JMS, search, security, testing... • A Google App Engine plugin was developed – following the Grails development flow – abstracts the app engine commands for deployments – leverages the local engine Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 17
  24. 24. Setting up your project • Create your Grails application as usual grails create-app myapp • Specify the App Engine app id google.appengine.application = quot;myappquot; • Uninstall hibernate and install the GAE plugin grails uninstall-plugin hibernate grails install-plugin app-engine • Run the application locally grails app-engine run Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 18
  25. 25. Deploying applications • Set the version number to 1, as Grails uses a different numbering scheme (x.y) grails set-version 1 • Get your application ready grails app-engine package • On first deployment $APPENGINE_HOME/appcfg.sh update ./target/war • For subsequent deployments grails app-engine deploy Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 19
  26. 26. DEMO Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 20
  27. 27. nda Ag e • Groovy overview – Features at a glance – Groovlets – Groovy templates • Grails overview – The Grails stack – The App Engine plugin •Summary • Q&A Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 21
  28. 28. Summary • Groovy – Groovy is a first-class citizen on Google App Engine – Lots of shorcut notations can streamline your code – Groovy servlets and templates are great for crafting small applications – Gaelyk further simplifies this pure Groovy approach • Grails – Grails is the next-generation web development stack – Developing Grails application on the Google cloud is almost as lean and simple as for the usual crop of application servers Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 22
  29. 29. Further information • Groovy in Google App Engine – http://blog.springsource.com/2009/04/07/write-your- google-app-engine-applications-in-groovy/ • Grails in Google App Engine – the Grails 1.1.1 release and App Engine screencast •http://blog.springsource.com/2009/05/14/grails-111- released-with-google-appengine-support/ – the Google App Engine Grails plugin •http://grails.org/plugin/app-engine Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 23
  30. 30. nda Ag e • Groovy overview – Features at a glance – Groovlets – Groovy templates • Grails overview – The Grails stack – The App Engine plugin • Summary •Q&A Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 24
  31. 31. Q&A • Questions & perhaps... even answers :-) Copyright 2009 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 25
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×