Contenu connexe Similaire à G*なクラウド 雲のかなたに ショートバージョン (20) Plus de Tsuyoshi Yamamoto (15) G*なクラウド 雲のかなたに ショートバージョン1. JGGUG
japan grails/groovy user group
G*
2. JGGUG
japan grails/groovy user group
2009/11/19 @JSUG JGGUG 2009/11
def speaker = new Cast(name:”T.Yamamoto”,version:”Sp-2009-11-19”)
3. JGGUG
japan grails/groovy user group
DTP
DTP Web
Web 80% Grails
JGGUG( )
Grails 9-11
Grails Acegi Plugin
http://d.hatena.ne.jp/mottsnite/
twitter @tyama
15. # curl -L http://stax-downloads.s3.amazonaws.com/sdk/
stax-sdk-0.3.6-dist.zip > stax_sdk.zip
# unzip stax_sdk.zip
# rm stax_sdk.zip
# cd stax-sdk-0.3.6
export STAX_HOME=/opt/stax-sdk-0.3.6
export PATH=$PATH:$STAX_HOME
16. ... ...
dataSource {
dbCreate = "update"
driverClassName = "com.staxnet.jdbc.Driver"
url = "jdbc:stax://jggug"
username = "tyama"
password = "*****"
}
... ...
17. ...
log4j = {
appenders {
null name:'stacktrace'
... ...
29. Cloud Tool
grails create-app demo
cd demo
grails install-plugin cloud-tool.zip
Config.groovy
import
aws.properties
grails cloud-tools-deploy
grails cloud-tools-describe
grails cloud-tools-stop
33. grails create-app sampleapp
cd sampleapp
Grails
grails install-plugin clould-foundry
vi grails-app/conf/CloudFoundry.groovy
cp ../CloudFoundry.groovy !$
grails war
grails cloud-foundry-deploy
grails cloud-foundry-info
grails war
grails cloud-foundry-upload
grails cloud-foundry-redeploy
grails cloud-foundry-stop
41. $ grails create-app mygaeapp ← appengine
(Config.groovy google.appengine.application="mygaeapp" OK)
$ cd mygaeapp
$ grails install-plugin app-engine
jpa/jdo ”jpa”
OK export APPENGINE_HOME=/opt/appengine-java-sdk-1.2.6
google.appengine.sdk='/opt/appengine-java-sdk-1.2.6'
42. $ grails install-plugin gorm-jpa
app-engine
$ grails create-domain-class jp.grails.Chat
$ grails generate-all jp.grails.Chat
@Entity
class Chat implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id
... ...
@Column
String message JPA class Chat {
... ... String message
... ...
43. $ 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
51. 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>
69. request['name'] = params.name
request['list'] = [1, 2, 3, 4]
request['date'] = new Date()
forward 'example.gtpl'
<html>
<body> <h2>${request.name}</h2>
<% request.list.each { number -> %>
<p>${number}</p>
<% } %>
<p>${request.date}</p>
</body>
</html>
70. // params
request['name'] = params.name
//request.setAttribute('list', [1, 2, 3, 4])
request['list'] = [1, 2, 3, 4]
request.date = new Date()
forward 'example.gtpl'
77. import com.google.appengine.api.datastore.Entity
def person = new Entity("person")
person['name'] = " "
println person['name']
person.age = 27
println person.age
//
person.save()
//
person.delete()
//
def q = new Query('person')
def list = datastoreService.prepare(q).asList(
Builder.withLimit(20).offset(0) )
80. <system-properties>
<property name="file.encoding" value="UTF-8"/>
<property name="groovy.source.encoding"
value="UTF-8"/>
</system-properties>