SlideShare a Scribd company logo
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
JGGUG
                                      japan grails/groovy user group




              DTP
   Web        80%   Grails
     Struts


JGGUG(                )
 Grails               9-11
                Grails Acegi Plugin
http://d.hatena.ne.jp/mottsnite/
twitter @tyama
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
Grails
         CMS
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
public class HelloWorld {
  String name;

    public void setName(String name){
      this.name = name;
    }
    public String getName(){
      return name;
    }

    public String greet(){
      return "Hello "+name;
    }

    public static void main(String[] args){
      HelloWorld helloWorld = new HelloWorld();
      helloWorld.setName("Groovy");
      System.out.println(helloWorld.greet());
    }
}
public class HelloWorld {
  String name;

    public void setName(String name){
      this.name = name;
    }
    public String getName(){
      return name;
    }

    public String greet(){
      return "Hello "+name;
    }

    public static void main(String[] args){
      HelloWorld helloWorld = new HelloWorld();
      helloWorld.setName("Groovy");
      System.out.println(helloWorld.greet());
    }
}
public class HelloWorld {
  String name

    public void setName(String name){
      this.name = name
    }
    public String getName(){
      return name
    }

    public String greet(){
      return "Hello "+name
    }

    public static void main(String[] args){
      HelloWorld helloWorld = new HelloWorld()
      helloWorld.setName("Groovy")
      System.out.println(helloWorld.greet())
    }
}
public class HelloWorld {
  String name

    public String greet(){
      return "Hello "+name
    }

    public static void main(String[] args){
      HelloWorld helloWorld = new HelloWorld()
      helloWorld.setName("Groovy")
      System.out.println(helloWorld.greet())
    }
}
public class HelloWorld {
  String name

    public String greet(){
      return "Hello "+name
    }
}

HelloWorld helloWorld = new HelloWorld()
helloWorld.setName("Groovy")
System.out.println(helloWorld.greet())
class HelloWorld {
  String name

    def greet(){
      return "Hello "+name
    }
}

def helloWorld = new HelloWorld()
helloWorld.setName("Groovy")
println(helloWorld.greet())
class HelloWorld {
  String name

    def greet(){
      return "Hello "+name
    }
}

def helloWorld = new HelloWorld()
helloWorld.name = "Groovy"
println helloWorld.greet()
class HelloWorld {
  String name

    def greet(){ "Hello $name"}
}

def helloWorld = new HelloWorld()
helloWorld.name = "Groovy"
println helloWorld.greet()
class HelloWorld {
  String name
  def greet(){ "Hello $name"}
}

def helloWorld = new HelloWorld(name: "Groovy")
println helloWorld.greet()
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
def arr = [1,2,3,'hoge']
def map = [a:1,b:2,c:'hoge']
@Grab('net.homeip.yusuke:twitter4j:[2.0,)')
import twitter4j.*
def user="username",pass="pass"
new Twitter(user,pass).friendsTimeline.each {
  println "${it.user.name}: ${it.text}"
}



                     maven
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
GAE/J+Grails




PermGen
http://gist.github.com/263610
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
grails create-app myapp
 cd myapp



grails create-domain-class jp.grails.Todo




grails create-controller jp.grails.Todo
http://gist.github.com/263610
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
grails install-plugin app-engine
   jpa/jdo                 ”jpa”
grails install-plugin gorm-jpa
google.appengine.application="mygaeapp"
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
http://gist.github.com/263511
@Entity
class Chat implements Serializable {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  Long id

  @Column                               ...                 ...
  String message    JPA
                                        class Chat {
...   ...                                 String message
                                         ...   ...




grails generate-all jp.grails.Chat
                                               app-engine
s/Groovy/Grails/



                      Gr




stringchararrayaccessor.disabled=true
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
grails.project.plugins.dir="plugins"
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
11
http://gist.github.com/263509
import groovy.xml.StreamingMarkupBuilder
import groovy.xml.MarkupBuilder

includeTargets << new File("${appEnginePluginDir}/scripts/_AppEngineCommon.groovy")

eventStatusFinal = { msg ->
   def appXmlFile = new File("$stagingDir/WEB-INF/appengine-web.xml")
   def xml = new XmlSlurper().parse(appXmlFile)
   xml."system-properties".appendNode {
       property(name:"stringchararrayaccessor.disabled",value:"true")
   }
   def smb = new StreamingMarkupBuilder()
   def result = smb.bind{
     mkp.declareNamespace("":"http://appengine.google.com/ns/1.0")
     mkp.yield xml
   }
   new FileOutputStream(appXmlFile).withWriter('UTF8'){w-> w << result }
}




        <appengine-web-app xmlns='http://appengine.google.com/ns/1.0'>
          <application>jggugv4</application>
          <version>2</version>
          <sessions-enabled>true</sessions-enabled>
          <ssl-enabled>true</ssl-enabled>
          <system-properties>
          <property name='stringchararrayaccessor.disabled' value='true'/>
        </appengine-web-app>
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
$ grails app-engine run




                   = GAE
grails set-version 1

GAE
grails app-engine package

GAE SDK
$APPENGINE_HOME/bin/appcfg.sh update ./target/war




                            grails app-engine deploy
APPENGINE_HOME
export APPENGINE_HOME=/opt/appengine-java-sdk-1.3.0


grails install-plugin app-engine
grails install-plugin gorm-jpa

grails app-engine run


grails set-version 1
grails app-engine package

GAE SDK
$APPENGINE_HOME/bin/appcfg.sh update ./target/war


grails app-engine package
$APPENGINE_HOME/bin/appcfg.sh update ./target/war
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
Grails/Groovy
http://www.jggug.org/

More Related Content

PDF
PDF
G* on GAE/J 挑戦編
PDF
多治見IT勉強会 Groovy Grails
PDF
G*なクラウド ~雲のかなたに~
PDF
Jggug 2010 330 Grails 1.3 観察
PDF
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
PDF
G*なクラウド 雲のかなたに ショートバージョン
PDF
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
G* on GAE/J 挑戦編
多治見IT勉強会 Groovy Grails
G*なクラウド ~雲のかなたに~
Jggug 2010 330 Grails 1.3 観察
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
G*なクラウド 雲のかなたに ショートバージョン
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン

What's hot (20)

PDF
GPars For Beginners
PDF
お題でGroovyプログラミング: Part A
PDF
World of Logging
PDF
Cycle.js: Functional and Reactive
PDF
Programming with Python and PostgreSQL
PPTX
Psycopg2 - Connect to PostgreSQL using Python Script
PDF
"PostgreSQL and Python" Lightning Talk @EuroPython2014
PDF
Python postgre sql a wonderful wedding
PDF
Elm: give it a try
PPTX
Grails queries
PPTX
Config BuildConfig
PDF
Javascript Continues Integration in Jenkins with AngularJS
PDF
Javascript ES6 generators
PDF
ES6 generators
PDF
Simplifying java with lambdas (short)
PDF
AJUG April 2011 Raw hadoop example
PDF
Miracle of std lib
PPTX
CouchDB Day NYC 2017: MapReduce Views
PDF
Python in the database
GPars For Beginners
お題でGroovyプログラミング: Part A
World of Logging
Cycle.js: Functional and Reactive
Programming with Python and PostgreSQL
Psycopg2 - Connect to PostgreSQL using Python Script
"PostgreSQL and Python" Lightning Talk @EuroPython2014
Python postgre sql a wonderful wedding
Elm: give it a try
Grails queries
Config BuildConfig
Javascript Continues Integration in Jenkins with AngularJS
Javascript ES6 generators
ES6 generators
Simplifying java with lambdas (short)
AJUG April 2011 Raw hadoop example
Miracle of std lib
CouchDB Day NYC 2017: MapReduce Views
Python in the database
Ad

Similar to 名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン (20)

PDF
Groovy ネタ NGK 忘年会2009 ライトニングトーク
KEY
Session inaugurale du Groovy User Group Paris
PDF
Groovy & Grails for Spring/Java developers
KEY
Groovy overview, DSLs and ecosystem - Mars JUG - 2010
PDF
G*ワークショップ in 仙台 Grails(とことん)入門
PDF
Groovyの紹介20110820
PDF
Grails 101
ODP
Groovygrailsnetbeans 12517452668498-phpapp03
PDF
JJUG CCC 2011 Spring
PPS
Groovy & Grails
KEY
Grails TV : an introduction into Grails & Groovy
PDF
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
PDF
Presentatie - Introductie in Groovy
PDF
Grails紹介
KEY
Groovy & Grails
PDF
Groovy And Grails JUG Sardegna
PDF
Why Grails
PDF
Why Grails?
KEY
groovy & grails - lecture 9
PDF
Groovy scripts with Groovy
Groovy ネタ NGK 忘年会2009 ライトニングトーク
Session inaugurale du Groovy User Group Paris
Groovy & Grails for Spring/Java developers
Groovy overview, DSLs and ecosystem - Mars JUG - 2010
G*ワークショップ in 仙台 Grails(とことん)入門
Groovyの紹介20110820
Grails 101
Groovygrailsnetbeans 12517452668498-phpapp03
JJUG CCC 2011 Spring
Groovy & Grails
Grails TV : an introduction into Grails & Groovy
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
Presentatie - Introductie in Groovy
Grails紹介
Groovy & Grails
Groovy And Grails JUG Sardegna
Why Grails
Why Grails?
groovy & grails - lecture 9
Groovy scripts with Groovy
Ad

More from Tsuyoshi Yamamoto (19)

PDF
JJUG CCC 20150411 grails3 Spring-boot
PDF
Groovy Grails eXchage 2014 報告
PDF
JGGUG grails-spring-boot
PDF
Grailsx@London 2011 報告
PDF
Grails 2.0.0.M1の話
PDF
Grails 1.4.0.M1 メモLT
PDF
G * magazine 1
PDF
G * magazine 0
PDF
JGGUG 2011-02 LT
PDF
Grailsx@ロンドンへ行ってきた報告。
PDF
Grailsのススメ(仮)
PDF
groovyプラプラとか「はやい、はやいよ」
PDF
第3回Grails/Groovy勉強会名古屋「Grails名古屋座談会」
PDF
JGGUG Camp 2009 いっぽう熱海では、
PDF
ExtJS勉強会@名古屋
PDF
はじめてのGroovy
PDF
GrailsでSpringをGroovyにしよう!
PDF
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
PDF
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」
JJUG CCC 20150411 grails3 Spring-boot
Groovy Grails eXchage 2014 報告
JGGUG grails-spring-boot
Grailsx@London 2011 報告
Grails 2.0.0.M1の話
Grails 1.4.0.M1 メモLT
G * magazine 1
G * magazine 0
JGGUG 2011-02 LT
Grailsx@ロンドンへ行ってきた報告。
Grailsのススメ(仮)
groovyプラプラとか「はやい、はやいよ」
第3回Grails/Groovy勉強会名古屋「Grails名古屋座談会」
JGGUG Camp 2009 いっぽう熱海では、
ExtJS勉強会@名古屋
はじめてのGroovy
GrailsでSpringをGroovyにしよう!
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」

名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン