Search and Find
Service
Contents at a Glance
5
Contents
6
Foreword
13
About the Authors
15
About the Technical Reviewer
16
Acknowledgments
17
Introduction
19
Who This Book Is For
20
How This Book Is Structured
20
Prerequisites
22
Downloading the Code
22
Contacting the Authors
22
Introduction to Groovy
23
Groovy Language Features
24
Groovy Installation
24
Groovy by Example
25
Summary
31
Groovy Basics
32
Scripts
32
Assertions
38
Strings
39
Methods and Closures
44
Collections
48
Regular Expressions
54
Operators
61
Summary
66
More Advanced Groovy
67
Groovy Unit Testing
67
Working with XML
70
Generating Text with Templates
74
Expandos
77
Meta Object Protocol
78
Domain- Specific Languages
80
Summary
81
Introduction to Grails
82
What Is Grails?
83
Grails Architecture
87
Installing Grails
89
Collab- Todo Application
89
Getting Started with Scaffolding
90
Understanding the Scaffolding Process
93
Summary
122
Building the User Interface
123
Starting with the End in Mind
123
Making the Topbar Functional
140
Testing
144
Externalizing Strings
157
Errors and Validation
159
Flash and Flash Messages
162
Controlling the Application
166
Creating an Audit Log Using Action Interceptors
175
Using Filters
177
Summary
181
Building Domains and Services
183
GORM
183
Collab- Todo’s Domain
184
Creating Domain Objects
186
Validation
204
Querying the Database
212
Database Migration
224
Services
226
Summary
230
Security in Grails
232
What Is Security?
233
An Overview of Grails Security Solutions
238
Custom Security Implementation
239
JSecurity
250
CAS
260
Spring Security ( aka Acegi Security)
263
Summary
272
Web 2.0—Ajax and Friends
273
Advanced Presentation Components
273
Tag Libraries
290
Ajax in Grails
293
RSS Feeds
307
Summary
309
Web Services
311
RESTful Web Services
312
RESTful in Grails
314
Summary
325
Reporting
326
The Report
326
Overview of the Reporting Function
327
Reporting Tools
329
Creating the To- Do Report
331
The Report Tag
338
The ReportController and the ReportService
341
Tying It All Together
347
The Report List
349
An Alternate Approach
350
Summary
350
Batch Processing
352
Installing the Quartz Plug- in
352
Creating a Job
353
Building a Batch- Reporting Facility
355
Summary
366
Deploying and Upgrading
367
Deploying Grails Applications
367
Automating Tasks with Gant
377
Upgrading Grails Applications
379
Summary
380
Alternative Clients
381
Overview
381
Setup
382
Command- Line Scripts
383
Rich Groovy Client
393
Summary
412
Index
413
All prices incl. VAT