Index

A B C D E F G H I J K L M N O P Q R S T U V W X Z

Symbols

_album.gsp template

adding album art to,

buy action,

implementing,

with permissions working,

_albumList.gsp template,

* (asterisk)

as spread operator,

as wildcard,, 2nd, 3rd

<cache:text> tag,

${...} syntax,

?: (Elvis operator),

<extend-classpath> element,

<g:applyLayout> tag,

<g:createLink> tag,

<g:formRemote> tag,2nd

<g:link> tag,

<g:message> tag,

<g:paginate> tag,

<g:remoteField> tag,2nd, 3rd

<g:remoteLink> tag,2nd, 3rd, 4th

<g:uploadForm> tag,

<jsec:hasAllRoles> tag,

<jsec:hasPermission> tag,

<jsec:hasRole> tag,

<jsec:isLoggedIn> tag,

<jsec:isNotLoggedIn> tag,

<jsec:lacksPermission> tag,

<jsec:principal /> tag,

<media:player> tag,

<music:albumArt> tag,

<%...%> syntax,

<%=...%> statement,

_post.gsp template for blog plugin,

_recommendations.gsp template,

?. (safe deference operator),

_searchResults.gsp template,2nd

*. (spread dot) operator (Groovy),

<sysprops> element, passing system properties with,

_welcomeMessage.gsp template,

Numerics

404 response codes, custom mapping for,

500 response code, mapping for,

A

abstract beans,2nd

abstract property, bean argument,

ACCEPT header

content negotiation with,2nd

reliability of,2nd

access, restricting

based on roles,

through URL mappings,2nd

with <jsec:lacksPermission> tag,

accessControl method,

accessing

business logic within application,2nd

request attributes,2nd

request parameters,

Acegi plugin,

ACID properties of databases,

action names, removing from URL mapping,

action states (flows)

checking login details with,, 2nd3rd

gTunes,2nd

overview of,

reusing with closures,2nd

ActiveMQ (Apache)

configuring with BeanBuilder,2nd

installation directory,

JAR files,

overview of,2nd

Queues section,

setting up,2nd

web console,

ActiveRecord (Rails), GORM compared to,

addJob method,

Address class

applying constraints to,

code for,, 2nd3rd

column annotation,

creating,2nd

entities fields,

id property,

version property,

Address domain class, defining,2nd

AddressConstraints.groovy script,

addTo* method,

after advice (AOP),, 2nd

after attribute (Ajax),2nd

afterView filter,

Ajax

asynchronous form submission,2nd

effects and animation, adding,

enabling on form fields,2nd

event handling,2nd

executing code before and after calls,2nd

flow of request,

HTML anchor tag, creating,2nd

login request, handling,

overview of,

performance and,2nd

provider, changing,2nd

remote linking,2nd

XMLHttpRequest object and,2nd

album art, displaying,2nd

Album Controller, display action,

Album domain class

creating,

price property,

album-art plugin example

adding method to all controllers,2nd

creating,

dependencies,

getArt() method and,

providing metadata to,

structure of,

updating to use simple-cache plugin,

AlbumArtKey cache key class,

AlbumArtService template

creating,

enabling caching,

full code for,2nd

AlbumController

create action,

creating,

delete action,

display action,

edit action,

index action,

list action,

save action,, 2nd

show action,

update action,

_album.gsp template

adding album art to,

buy action,

implementing,

with permissions working,

albumList template, rendering,

_albumList.gsp template,

AlbumPayment class,, 2nd

AlbumPermission class,2nd

AlbumService class,

all format

content negotiation with ACCEPT header and,

marshaling objects to JSON,

allowedMethods property,2nd

Amazon web services

creating,2nd

setting up,2nd

testing,2nd

animation, adding with Ajax,

anonymous code blocks,

Ant (Apache)

Gant compared to,

integration with,2nd

overview of,

AntBuilder (Groovy),

AOP (Aspect-Oriented Programming)

after advice,

before advice,2nd

security and,

Apache

See also ActiveMQ; Ant

Commons HttpClient project,

Ivy, dependency resolution with,2nd

Appear effect (Scriptaculous library),

appender

configuring,

using,

appending,

application layer caching,

application reload events, plugins and,2nd

ApplicationContext,

ApplicationContextAware instance,

application-layer security

filters,2nd

JSecurity plugin

authentication realms,2nd

authentication, implementing with,2nd

filters,2nd

overview of,

permission-based security, implementing,, 2nd

role-based security, implementing,2nd

roles and permissions,

subjects and principals,

view, securing,2nd

working with,

applications

See also gTunes application

controller, creating,2nd

creating,

deploying,

modularizing with plugins,2nd

object-oriented, and domain model,

ren-war command,

running,

running tests,2nd

steps in creating,

structure of,

testing code,2nd

with WAR file,2nd

applying constraints to URL mappings,2nd

arguments

paginate tag,

redirect method,

around advice (AOP),

artefact types,2nd

ArtefactHandler interface,2nd

artefacts, supplying with plugins,2nd

Artist class, unit test for,

ArtistSubscription class,2nd

Aspect-Oriented Programming (AOP)

after advice,

before advice,2nd

security and,

assertions

overview of,2nd

verifying flow state with,2nd

assigned generator,2nd

association mapping, changing,2nd

associations

data binding and,2nd

GORM, overview of,2nd

one-to-many,, 2nd3rd, 4th, 5th6th

one-to-one,2nd

many-to-many,2nd

many-to-one,, 2nd

performance tuning and,2nd

querying with criteria,

relationship management methods,2nd

SortedSet,

transitive persistence,

asterisk (*)

as spread operator,

as wildcard,, 2nd, 3rd

asynchronous e-mail notifications,2nd

asynchronous form submission,2nd

Asynchronous JavaScript Technology and XML. See Ajax

Atom standard

creating feeds,2nd

link discovery,2nd

attach() method,

attacks, securing against

batch data binding,2nd

cross-site scripting,2nd

DoS,

Groovy injection,

SQL or HQL injection,2nd

attributes

GSP,

request

Java servlets compared to Grails controllers,

redirects and,

standard,

audit-logging plugin,

authenticate method,, 2nd3rd

authentication

definition of,, 2nd

implementing with JSecurity plugin,2nd

realms,2nd

Authentication plugin,

AuthFilters class

overview of,2nd

security URI within,

authorization,, 2nd

AuthRealm class,2nd, 3rd

automatic time stamping,

automating deployment to Tomcat,2nd

autowiring

configuring beans for,

overview of,, 2nd

Axis 2 plugin,

B

Bash shell, JAVA_OPTS, setting in,

BasicDataSource class,

batch data binding, vulnerability to attacks,2nd

batch fetching,2nd

bean scopes,2nd

BeanBuilder domain-specific language (DSL)

abstract beans,2nd

bean scopes,2nd

configuring BeanBuilder with,2nd

defining beans,2nd

dynamically creating beans,2nd

factory beans,2nd

inner beans,

overriding beans,2nd

overview of,2nd

providing Spring beans,2nd

beans

See also Spring beans

configuring for autowiring,

DataSource, overriding,

dynamically creating,2nd

inner,

managing definitions with Grails,

streamingService

creating,

using,

before advice (AOP),2nd

before attribute (Ajax),2nd

behaviors, adding at runtime,2nd

belongsTo property,, 2nd

binary response, writing,

bind errors, dealing with,

bindData method,2nd

binding,

blog plugin example

adding metadata to,

create.gsp view,2nd

creating,

directory structure of,

list.gsp view,2nd

Post domain class,

PostController,

_post.gsp template,

URL mapping to customize layout of,

blog posts in gTunes application, creating,2nd

blog-type URL mapping,

Blowfish encryption codec class,2nd

BootStrap classes, populating database with,2nd

Bootstrap.groovy script,

bootstrapping Grails from command line,

browsers, older, and ACCEPT header,2nd

build system, Gant and

bootstrapping Grails from command line,

command-line variables,2nd

documenting scripts,2nd

overview of,2nd

parsing command-line arguments,2nd

reusing Grails scripts,

scripts, creating,2nd

build.xml file,

builders (Groovy),2nd

BuilderSupport class,

built-in operators (Groovy),

built-in tags. See tags, built-in

business logic, accessing within application,2nd

“Buy” button, disabling,

buyFlow

defining,

full code for,2nd

C

cache key,

<cache:text> tag,

caching

application layer,

content-level,

in GORM,2nd

return value of blocks of code using closures,

caching pattern,

caching solution, Ehcache,

calling methods on integers,

cascade behavior,

checkBox tag,2nd

chooseGiftWrapFlow flow,2nd

classes

See also domain classes

Address

applying constraints to,

code for,, 2nd3rd

column annotation,

creating,2nd

defining,2nd

entities fields,

id property,

version property,

AlbumArtKey cache key,

AlbumPayment,

AlbumPermission,2nd

AlbumService,

Artist,

ArtistSubscription,2nd

AuthFilters,2nd, 3rd

AuthRealm,2nd, 3rd

BasicDataSource,

BootStrap, populating database with,2nd

BuilderSupport,

codec,2nd

ControllerUnitTestCase,2nd

CreditCardCommand,

declaring,

DefaultMessageListenerContainer,

GrailsApplication,2nd

GrailsTestUnitCase,

GrailsUrlMappingsTestCase,2nd

Groovy

BuilderSupport,

groovy.lang.Script,

GroovyShell,

Hibernate, Session,2nd

java.text.MessageFormat,2nd

java.util.ResourceBundle,

LoggingFilters,

LoginCommand,2nd, 3rd4th

MessageListenerAdapter,

MetaClass,, 2nd3rd

methods, adding to,

MonetaryAmount,

org.springframework.mock.web.MockHttpServletResponse,

Person,2nd

Realm,

SampleController,2nd

SecurityUtils,

Song,, 2nd

SongController, stream action,

StoreService

creating,

purchaseAlbums method,2nd

storeService property,2nd

StreamingMarkupBuilder,

StreamingService,2nd

SubscriptionTagLib

implementing,

testing,2nd

TagLibUnitTestCase

using,

transactional service,

UrlMappings,2nd

User,, 2nd

UserController,

UserControllerTests,

ClassPathXmlApplicationContext instance,

clear() method,2nd

clearErrors() method,

clearing session,2nd

client storage, flows and,2nd

clients, calling SOAP from,2nd

closures

caching return value of blocks of code using,

Groovy,2nd

reusing action states with,2nd

Cobertura (Source Forge), code coverage with,2nd

code, executing before and after calls,2nd

code blocks, reusable,

code coverage, with Cobertura,2nd

code synthesis,2nd

codec classes,2nd

collect tag (GSP),2nd

column name mapping, changing,2nd

com.sun.management.jmxremote system property,

command line, bootstrapping Grails from,

command objects

defining,2nd

using,2nd

using with flows,2nd

command-line arguments, parsing,2nd

command-line interface,

command-line variables,2nd

commands

create-app,

create-controller,, 2nd

create-domain-class,, 2nd

create-plugin,

create-script,

create-tag-lib,, 2nd

create-unit-test,

gant,

generate-controller,

grails,

grails console,

grails create-service,

grails war,

help,, 2nd

install-plugin,

install-plugin -global,

JSecurity plugin,

list-plugins,, 2nd

package-plugin,

for plugin discovery,2nd

for plugin installation,2nd

plugin-info,2nd

release-plugin,2nd

run-app,

run-war,

set-version,

test-app,2nd, 3rd

uninstall-pluginl,

war,

Commons HttpClient project (Apache),

Company class, transient property,

company table,

compilation paths,

composite identifiers, using,2nd

composition,2nd

Config.groovy file

environment-specific configuration,

locations setting,

log4j property,2nd

overview of,2nd

configuring

ActiveMQ with BeanBuilder,2nd

assigned generator,

beans for autowiring,

composite identifier,

data sources

DataSource.groovy file,2nd

JNDI,

MySQL database,2nd

overview of,

Ehcache Spring bean,

GORM

custom dialect,2nd

Hibernate properties,

overview of,

SQL logging,

configuring (continued)

Grails

environment-specific configuration,

externalized configuration,

logging,2nd

overview of,2nd

stack trace filtering,

Grails build in Hudson,

Grails installation in Hudson,

hilo generator,, 2nd

Mail plugin,

confirming purchase,

confirmRegistration view,

Connect to Agent dialog box (JConsole),

constraints

description of,

domain class with,

using with POJO entities,2nd

constraints block, URL mappings,, 2nd3rd

constraints property (domain class),, 2nd

consuming JMS messages with Spring,2nd

container, deploying to,2nd

content negotiation (REST)

overview of,

view and,2nd

with ACCEPT header,2nd

with CONTENT_TYPE header,2nd

with file extensions,

with request parameters,

content-level caching,

contentType directive,

CONTENT_TYPE header, content negotiation with,2nd

continuous integration with Hudson,2nd

controllers

See also specific controllers

binary response, writing,

command objects

defining,2nd

using,2nd

creating,2nd

data binding

associations and,2nd

bindData method,2nd

Errors API and,2nd

file uploads and,2nd

overview of,2nd

to multiple domain objects,

validating incoming data,2nd

default index action of,

default action, setting,2nd

dynamic scaffolding and,2nd

dynamically mapping to,

generating, to implement CRUD functionality,2nd

home page, creating,2nd

HTTP method restrictions,2nd

index action,

injecting service instance into,

IO and,

logging,2nd

login form, creating,2nd

login process, testing,2nd

LoginCommand class,2nd

mapping to view for particular,

methods, adding to,

model, creating,

names, removing from URL mapping,

overview of,

prototyped,

redirecting request,2nd

registration code, testing,2nd

registration, implementing,2nd

rendering text,

request attributes, accessing,2nd

request inputStream, reading,

request parameters, accessing,

running tests on,2nd

scopes

flash,2nd

overview of,

templates, rendering,

test suites,2nd

testing,2nd

User domain class, creating,2nd

using messageSource bean in,

view

finding, selecting, and rendering,

security with JSecurity plugin,2nd

withFormat method,2nd, 3rd

ControllerUnitTestCase class,2nd

Convention over Configuration

Custom Database Mapping DSL,

URL mapping and,

conventions, dynamic Spring beans using,2nd

conversation scope (flows),, 2nd3rd

converters, marshaling objects to XML with,2nd

count() method,2nd

countBy* method,

c:out tag (JSP),

create action (AlbumController),

create operation,2nd

Create Song page,, 2nd

create.gsp view

for blog plugin,2nd

description of,

createAlbum() method,

create-app command,

create-controller command,, 2nd

createCriteria method,

create-domain-class command,, 2nd

createLink and createLinkTo tags (GSP),2nd

create-plugin command,

create-script command,

create-service target,

create-tag-lib command,, 2nd

create-unit-test command,

credit card details, entering,2nd

CreditCardCommand class,

CreditCardCommand object, specifying validation messages for,

criteria queries (GORM),2nd

cron expressions

examples of,

fields,

special characters,

cross-site scripting (XSS) attacks

HTML escaping and,2nd

URL escaping and,2nd

CRUD (Create, Read, Update, Delete) applications

create operation,2nd

delete operation,

read operation,2nd

scaffolding and,

update operation,

currencySelect tag,

currentSession() method,

Custom Database Mapping DSL,2nd

custom tags

basics of,2nd

creating,2nd

tab library, creating,2nd

testing,2nd

custom view, selecting,

customizing WAR file,

D

DAO (Data Access Object) layer, GORM and,

data

exporting to XML,2nd

data (continued)

persistent, querying

criteria queries,2nd

dynamic finders,2nd

HQL and SQL,2nd

overview of,

pagination,2nd

query by example,

populating, providing form for,

validating incoming,2nd

data binding

associations and,2nd

bindData method,2nd

Errors API and,2nd

file uploads and,2nd

in flows, testing,2nd

gTunes,2nd

to multiple domain objects,

overview of,2nd

validating incoming data,2nd

data sources, configuring

DataSource.groovy file,2nd

JNDI,

MySQL database,2nd

overview of,

Data Transfer Object (DTO) pattern,

database identity generator, changing,2nd

database mapping, customizing,2nd

database schemas, Hibernate and,

databases

ACID properties of,

in-memory,

mapping objects to,

MySQL, configuring,2nd

persisting fields to,2nd

populating, with BootStrap classes,2nd

supported,2nd

dataSource bean, overriding,

data-source definition, dialect property of,

DataSource.groovy file

cache configuration,

dialect setting,

externalized configuration,

hibernate block,

hibernate.cache.use_query_cache setting,

hibernate.flush.mode setting,

logSql setting,

overview of,2nd

specifying annotation configuration strategy,

datePicker tag,2nd

dbCreate setting (development environment),

DBMigrate plugin,

debug levels,

debugging remotely, with IDE,2nd

declarative syntax and HTTP method restrictions,2nd

declaring classes,

default action for controller, setting,2nd

default URL mapping,2nd

default view, finding,

default visibility,

defaultCodec page directive,

DefaultMessageListenerContainer class,

defining

command objects,2nd

controllers

default action, setting,2nd

overview of,2nd

flow action and view states,2nd

flow end state,2nd

flow start state,2nd

flows,

jmsTemplate bean,

music namespace,

namespace for tag libraries,

parameterized message,

services,2nd

Spring beans,2nd

subflow state,

user messages in properties file,2nd

delete action (AlbumController),

delete() method,

delete operation,

DELETE request, REST and,

deleteJob method,

Denial of Service (DoS) attack

securing against,2nd

vulnerability to,

dependencies, services and,

dependency injection

autowiring and,, 2nd3rd

implementing,

integration tests and,

overview of,

dependency resolution with Ivy,2nd

dependsOn property,2nd, 3rd

deploying

application,2nd

to container,2nd

customizing WAR file,

with Grails,

populating database with BootStrap classes,2nd

versioning and metadata,2nd

deployment to Tomcat, automating,2nd

detached objects in GORM

merging changes,2nd

persistence life cycle,2nd

reattaching,2nd

development environment

dbCreate setting,

overview of,2nd

dialect, configuring in GORM,2nd

dialect setting (DataSource.groovy file),

disabling

See also enabling

auto time stamping,

“Buy” button,

discovering plugins, commands for,2nd

display action (AlbumController),, 2nd

displaying

album art,2nd

error message from command object,

invoice,

progress indicator,

displayInvoice.gsp end state view,

distributing plugins,2nd

documenting Gant scripts,2nd

domain classes

Address,2nd

Album,, 2nd

AlbumPayment,

building relationships between,2nd

with constraints,

constraints property,, 2nd

creating,2nd

custom validators, using,

defining bidirectional one-to-many relationship,

defining one-to-many relationship between,

embedding objects,2nd

errors property,

extending with inheritance,2nd

generating scaffolding for,2nd

interrelationships and,

Payment,

Permission,2nd

persisting to database,, 2nd

Post,

Role,2nd

saving,

Song,2nd, 3rd

testing,2nd

domain classes (continued)

transient properties of,2nd

User,2nd, 3rd, 4th

validating,2nd

domain model

See also domain classes

customizing database mapping,2nd

object-oriented (OO) applications and,

domain objects

data binding to multiple,

embedding2nd

mapping to relational databases,

updating with request parameters,

DOMBuilder (Groovy),

DoS (Denial of Service) attack

securing against,2nd

vulnerability to,

dot deference operator,

doWithSpring hook

providing albumArtCache with,

Spring beans,2nd

doWithWebDescriptor hook,2nd

driver JAR file, adding to lib directory,

DTO (Data Transfer Object) pattern,

duck typing,

dynamic finders (GORM),2nd

dynamic languages, and testing,

dynamic scaffolding, controllers and,2nd.

See also CRUD (Create, Read, Update, Delete) applications

dynamic Spring beans,2nd

dynamic tags. See tags, dynamic

dynamic transitions, gTunes application,2nd

dynamically creating beans,2nd

E

each tag (GSP),2nd

eachError tag,

eager associations,2nd

Eclipse

importing Grails project into,2nd

New Java Class dialog box,

overview of,2nd

running Grails project from,

edit action (AlbumController),

edit.gsp view,

effects, adding with Ajax,

Ehcache caching solution,

EJB 3-compliant mapping,2nd

Elvis operator (?:),

e-mail confirmation, sending,

e-mail notifications, asynchronous,2nd

email property,

e-mail servers, integration with,2nd

embedded GStrings (GSP),2nd

embedding

objects,2nd

parameters in URL mapping,2nd

employee table, table-per-subclass mapping,

enabling

See also disabling

artist subscriptions,2nd

dynamic scaffolding,

remote access to services,

search,

encodeAsHTML() method,2nd

encodeAsURL() method,

encoding data in GSP views to HTML,

end states (flows),2nd

enterCardDetails view state,2nd

enterShipping state,2nd

environments

DataSource.groovy file and,2nd

overview of,2nd

production,2nd

environment-specific configuration,

equals, implementing,2nd

error codes, specifying custom,

error handling with tags

eachError tag,

hasErrors tag,

overview of,

error messages, displaying from command object,

error.gsp page,2nd

Errors API,2nd

errors property (domain classes),

event handling, in Ajax,2nd

events

GORM,2nd

plugins and,2nd

triggering

from action state,

from view state,2nd

with return value,

exception types, org.jsecurity.authc package,

exceptions, logging,

executeQuery method,

executing

code before and after calls,2nd

Grails under different environments,

execution, halting with before interceptor,

Expando object (Groovy),

ExpandoMetaClass,, 2nd

exporting data to XML,2nd

export-library-to-xml script

full code for,2nd

output XML,

running,

exposing services,2nd

<extend-classpath> element,

extending domain classes with inheritance,2nd

External Tools dialog box (Eclipse),

externalized configuration,

F

FactoryBean interface,2nd

factoryMethod property, bean argument,

fckeditor plugin,2nd

Feeds plugin,2nd

fields, creating with tags

checkBox and radio tags,2nd

datePicker tag,2nd

form tag,2nd

select tag,2nd

textField tag,

file appender

configuring,

using,

file extensions, content negotiation with,

file property (Song domain class),

file uploads

data binding and,2nd

MultipartHttpServletRequest interface and,2nd

overview of,

filtering and iteration, tags for

collect tag,2nd

findAll tag,2nd

filters

implementing with JSecurity plugin,2nd

overview of,2nd

findAll tag (GSP),2nd

findAllBy* method,

findBy* method,2nd

Firefox

Poster plugin

ACCEPT header, specifying,

installing,

main window,

response window,

tray icon,

RSS feeds,

first-level cache,

500 response code, mapping for,

flash scope

description of,2nd

flows and,

flow id,

flow scope (flows),

flow.albumPayments.album expression (GPath),

flows

action and view states,2nd

defining,

end state, defining,2nd

gTunes

credit card details, entering,2nd

data binding and validation,2nd

dynamic transitions,2nd

prices for albums, providing,

purchase,

querying about CD purchase,2nd

recommendations, generating,2nd

recommendations, showing,2nd

validating login,2nd

verifying flow state with assertions,2nd

java.io.Serializable interface and,2nd

scopes,

start state, defining,2nd

subflows and conversation scope,2nd

testing,2nd

transition actions and form validation,

view state, triggering events from,2nd

flush() method,

flushing sessions

automatically,2nd

manually,2nd

for loop (Groovy),

form fields, enabling Ajax on,2nd

form tag,2nd

form validation, flows and,

format request parameter, using for content negotiation,

forms, creating with tags

checkBox and radio tags,2nd

datePicker tag,2nd

form tag,2nd

select tag,2nd

textField tag,

404 response codes, custom mapping for,

Fowler, Martin,

G

g namespace,

Gant,

Gant build system

bootstrapping Grails from command line,

command-line variables,2nd

documenting scripts,2nd

overview of,2nd

parsing command-line arguments,2nd

reusing Grails scripts,

scripts, creating,2nd

gant command,

Gant scripts

automating deployment to Tomcat,2nd

creating,2nd

documenting,2nd

exporting data to XML,2nd

<g:applyLayout> tag,

<g:createLink> tag,

generate-controller command,

generating

controller to implement CRUD functionality,2nd

views for actions to delegate to,2nd

genre action (StoreController),

genre recommendations, querying for,

genre.gsp page,

get method,, 2nd3rd

getFlow() method,

getMessage method,

getPrincipal() method,

<g:formRemote> tag,2nd

<g:link> tag,

<g:message> tag,

GORM

associations

overview of,2nd

querying with criteria,

relationship management methods,2nd

transitive persistence,

configuring

custom dialect,2nd

Hibernate properties,

overview of,

SQL logging,

detached objects

merging changes,2nd

persistence life cycle,2nd

reattaching,2nd

events,2nd

Hibernate library and,

listing, sorting, and counting,2nd

locking strategies,2nd

mapping

for bidirectional one-to-many association,

for unidirectional one-to-many association,

overview of,

performance tuning

associations,2nd

batch fetching,2nd

caching,2nd

inheritance strategies,

overview of,

querying from

criteria queries,2nd

dynamic finders,2nd

HQL and SQL,2nd

overview of,

pagination,2nd

query by example,

reading objects,2nd

saving, updating, and deleting,2nd

semantics of

automatic session flushing,2nd

clearing session,2nd

Hibernate Session class,2nd

obtaining session,2nd

overview of,2nd

session management and flushing,2nd

transactions in,2nd

<g:paginate> tag,

GPath expression

flow.albumPayments.album,

interating with,

Grails

as platform,

command-line interface,

concepts embraced by,

description of,

goal of,

Groovy language and,2nd

installing,2nd

simplicity and power of,

welcome page,

grails command,, 2nd

grails console command,

Grails context menu (TextMate),

grails create-service command,

grails create-taglib target,

Grails stack,

grails war command,

grails-app/conf/UrlMappings.groovy,

grails-app/controllers directory,

grails-app/domain directory,

grails-app/i18n/ directory,

grails-app/i18n/messages_es.properties file,

grails-app/i18n/messages.properties file. See properties file

grails-app/services/com/g2one/gtunes/StoreService.groovy,

grails-app/taglib directory,

grails-app/view/car/list.gsp,2nd

grails-app/views/error.gsp page,2nd

grails-app/views/person/create.gsp,

grails-app/views/store/genre.gsp page,

grails-app/views/store/shop.gsp page,

GrailsApplication class,2nd

grails.converters package,

grails-debug executable,

grailsEnv variable,

GrailsTestUnitCase class,

GrailsUrlMappingsTestCase class,2nd

grails.war.resources setting,

<g:remoteField> tag,2nd, 3rd

<g:remoteLink> tag,2nd, 3rd, 4th

Groovy. See also Groovy language

GPath and,

Meta Object Protocol,

mixing with Spring,2nd

return statements,

spread dot (*.) operator,

spread operator (*),

as strongly typed language,

XmlSlurper parser,

Groovy injection,

Groovy language

builders, code synthesis,2nd

Java compared to

differences,2nd

similarities,2nd

metaprogramming

adding behavior at runtime,2nd

code synthesis,2nd

intercepting method dispatch,

MetaClass,2nd

overview of,2nd

overview of,2nd, 3rd

syntax

assertions,2nd

classes, declaring,

closures,2nd

Expando object,

lists and maps,2nd

overview of,2nd

ranges,2nd

strings,2nd

testing and,

true object orientation

methods on primitives,2nd

operator overloading,2nd

overview of,2nd

truth,2nd

Groovy Server Pages. See GSP

“Groovy Truth”,

groovy.lang.Script class,

GroovyPagesTestCase,

GroovyShell class,

GroovyTestCase API, extensions to,

Groovy-WS project,2nd

GSP (Groovy Server Pages)

attributes,

basics of,2nd

built-in tags

filtering and iteration,2nd

iterative,2nd

logical,2nd

setting variables with,2nd

custom tags

basics of,2nd

creating,2nd

tag library, creating,2nd

testing,2nd

dynamic tags

forms and fields, creating,2nd

linking,2nd

overview of,2nd

paginating views,2nd

rendering templates,2nd

validation and error handing,2nd

embedded GStrings,2nd

JSP custom tag libraries and,

overview of,

page directives,

scriptlets,2nd

GSP code, extracting into templates,

GSP views, encoding data in, to HTML,

gTunes application

Address class

applying constraints to,

code for,2nd

column annotation,

creating,2nd

entities fields,

id property,

overview of,

version property,

Ajax-powered features for,

album art, displaying,2nd

Album domain class,

AlbumController,

albumList template, rendering,

artist subscriptions, enabling,2nd

assertions, verifying flow state with,2nd

AuthRealm class,2nd

content panel,

controller

creating,2nd

overview of,

running application,

running tests,2nd

credit card details, entering,2nd

data binding and validation,2nd

dynamic transitions,2nd

flows

credit card details, entering,2nd

data binding and validation,2nd

dynamic transitions,2nd

prices for albums, providing,

purchase,

querying about CD purchase,2nd

recommendations, generating,2nd

recommendations, showing,2nd

validating login,2nd

verifying flow state with assertions,2nd

GSP templates for top five lists,

home page

creating,2nd

in English,

in Spanish,

with login form,

instance search box,

jobs and,2nd

login form, adding,2nd

LoginCommand class,2nd

MonetaryAmount class,

MonetaryAmountUserType,2nd

MUSICIAN_TO_RECORD join table,

“My Music” section, implementing,2nd

paginating views in,2nd

plugins

album art service and tag library,2nd

blog,, 2nd

prices for albums, providing,

purchase flow,

gTunes application (continued)

querying about CD purchase,2nd

QuickTime and,2nd

recommendations

generating,2nd

showing,2nd

registration code, testing,2nd

Registration screen,

registration, implementing,2nd

resources.groovy script,

shop.gsp templates, rendering,

Song domain class,2nd

SongController

creating,, 2nd

enabling dynamic scaffolding,

Song.groovy file,

StoreController

creating,

genre action,

index action,

printing message with,

services and,2nd

shop action,

StoreControllerTests suite,2nd

StoreService

creating,

purchaseAlbums method,2nd

storeService property,2nd

structure of,

Subscribe link,

tag library, creating for,

testing login process,2nd

User domain class,2nd

validating login,2nd

WAR file,

XSS vulnerability in,2nd

GtunesService, exposing,

<g:uploadForm> tag,

H

halting execution with before interceptor,

handling validation errors,

handling events

Ajax,2nd

hasErrors() method,

hasErrors tag,, 2nd

hashCode, implementing,2nd

hashing password with SHA1,

hasMany property,2nd

hasProperty method,

hasRole method,

HelloWorld.groovy script,2nd

help command,, 2nd

Hibernate

databases supported by,2nd

description of,, 2nd

directory structure,

features of,

mapping with

constraints, using with POJO entities,2nd

EJB 3-compliant,2nd

overview of,2nd

Session class,2nd

types,2nd

hibernate block (DataSource.groovy file),

Hibernate Criteria API,

Hibernate library,

Hibernate properties, configuring in GORM,

Hibernate Query Language (HQL),2nd

Hibernate Session, detached objects and,

hibernate.cache.use_query_cache setting (DataSource.groovy file),

hibernate.cfg.xml file,2nd, 3rd

hibernate.flush.Mode setting (DataSource.groovy file),

hilo generator

configuring,

description of,

home page

creating,2nd

in English,

in Spanish,

with login form,

hooks

doWithSpring,2nd, 3rd

doWithWebDescriptor,2nd

plugin descriptors and,2nd

HQL (Hibernate Query Language),2nd

HQL injection,2nd

HSQLDB,

HTML anchor tag, creating,2nd

HTML escaping,

HTTP method restrictions,2nd

HTTP request codes, URL mapping to,2nd

HTTP request methods, URL mapping to,2nd

HttpServletResponse object,

Hudson

“Build With Grails” build step,

configuring Grails installation in,

continuous integration with,2nd

Dashboard,

free-style job, creating,

Grails build, configuring,

I

id column,

IDE (integrated development environment)

adding support to,2nd

Eclipse

importing Grails project into,2nd

overview of,2nd

running Grails project from,

IntelliJ,

NetBeans,2nd

remote debugging with,2nd

TextMate,2nd

imperative approach to HTTP method restrictions,

import directive,

importing Grails project into Eclipse,2nd

index action

AlbumController,

default, of controllers,

inheritance

extending domain classes with,2nd

in GORM,

injecting jmsTemplate bean into class,

injecting services. See dependency injection

in-memory database,

inner beans,

inputStream property (request object),

installing

Grails,2nd

Java Management Extensions (JMX) plugin,

plugins, commands for,2nd

install-plugin command,

install-plugin global command,

integrated development environment. See IDE

integration

See also Ant (Apache), integration with

with e-mail servers,2nd

integration tests,, 2nd

IntelliJ (JetBrains),, 2nd

Intercept, Cache, Invoke pattern,2nd

intercepting calls to methods,2nd

intercepting method dispatch,

internationalization

See also localizing messages; parameterized messages

internationalization (continued)

messageSource interface and,2nd

URL mappings for,

validation messages and,

Inversion of Control (IoC) design pattern,, 2nd

invoice, displaying,

invokeMethod method, overriding,

IoC (Inversion of Control),, 2nd

isAttached() method,

isPermitted method,

iterative tags,2nd

Ivy (Apache),2nd

ivy.xml file,

ivyconf.xml file,

J

JAR dependencies,

Java

builder pattern,

Groovy and,2nd, 3rd4th

mixing with Spring,2nd

Java Cryptography Extension,

Java Management Extensions (JMX) plugin,2nd

Java Monitoring and Management Console (JConsole),2nd

Java Persistence API (JPA),

Java SDK 1.4,

Java servlets, request attributes,

java.io.Serializable interface,2nd

java.lang.Comparable interface,

java.text.MessageFormat class,2nd

java.util.ResourceBundle class,

JAVA_OPTS environment variable,

JavaScript, calling REST web services from,2nd

JavaScript Object Notation (JSON)

marshaling objects to,2nd

unmarshaling objects,2nd

JConsole (Java Monitoring and Management Console),2nd

JDBC

defining data sources and,

metadata,

JetBrains IntelliJ

overview of,

remote debug configuration,

JetGroovy plugin,

Jetty,

JMS API, Spring support for, 498. See also ActiveMQ

JMS messages

consuming with Spring,2nd

sending with Spring,2nd

JMX (Java Management Extensions) plugin,2nd

JNDI data source, configuring,

job template,

jobs

adding and removing,2nd

gTunes and,2nd

pausing and resuming,

scheduling

cron,2nd

Quartz plugin, installing,2nd

scheduler, using,

simple,2nd

triggers and,2nd

triggering,

JodaTime API,

joinTable mapping,

JPA (Java Persistence API),

<jsec:hasAllRoles> tag,

<jsec:hasPermission> tag,

<jsec:hasRole> tag,

<jsec:isLoggedIn> tag,

<jsec:isNotLoggedIn> tag,

<jsec:lacksPermission> tag,

<jsec:principal /> tag,

JSecurity plugin

authentication realms,2nd

authentication, implementing with,2nd

description of,, 2nd

filters,2nd

permission-based security, implementing,2nd

role-based security, implementing,2nd

roles and permissions,

subjects and principals,

view, securing,2nd

working with,

JSON (JavaScript Object Notation)

marshaling objects to,2nd

unmarshaling objects,2nd

JSP

c:out tag,

custom tag libraries,

GSP compared to,

popularity of,

JUnit test reports,

K

keyword, assert,

Koenig, Dierk,

L

language-level assertions,2nd

lazy associations,2nd

LazyInitializationException,

leaky abstractions,

legacy mapping with ORM DSL

association mapping, changing,2nd

composite identifiers,2nd

database identity generator, changing,2nd

Hibernate types,2nd

overview of,

table and column name mapping, changing,2nd

legacy table containing person data,

lib directory, adding driver JAR file to,

libraryLayout.gsp view,2nd

link discovery, Atom and RSS,2nd

link tag,2nd, 3rd4th

linking tags

createLink and createLinkTo,2nd

link,2nd, 3rd4th

overview of,

LiquiBase plugin,

list action,, 2nd

List associations,

list() method,2nd

list.gsp view

for blog plugin,2nd

description of,

listings

abstract beans, using,

ACCEPT header, configuring additional MIME types,

ActiveMQ, starting,

Address class

applying constraints to,

defining,2nd

Address.java class,

AddressConstraints.groovy script,

after interceptor,

afterView filter,

Ajax login request, handling,

Album class

creating,

price property,

album-art plugin example

adding method to all controllers,2nd

getArt() method and,

mocking cacheService,

providing metadata to,

updating to use simple-cache plugin,

listings (continued)

AlbumArtKey cache key class,

AlbumArtService template

creating,

enabling caching,

full code for,2nd

AlbumController

creating,

display action,, 2nd

_album.gsp template

adding album art to,

buy action,

implementing,

_albumList.gsp template,

AlbumPayment domain class,

AlbumPermission class,

AlbumService class,

all format

content negotiation with ACCEPT header and,

marshaling objects to JSON,

allowedMethods property,

ApplicationContextAware instance,

ArtefactHandler interface

for Quartz plugin,

testing,

Artist show.gsp view,

_artist.gsp template, updating,

ArtistSubscription class,

artistSubscription view,

assertions (Groovy),

assigned generator, configuring,

association, many-to-one,

authenticate method,2nd

AuthFilters class,

AuthRealm class

authenticate method,

isPermitted method,

username property,

auto time stamping, disabling,

automatic session flushing, implications of,2nd

batchSize, configuring,

beans

configuring using Config.groovy,

defining,

beans property,

before attribute, using,

before interceptor

defining,

halting execution with,

belongsTo property,

bindData method,

binding XML data to new instances,

blog plugin

adding metadata to,

fckeditor plugin and,

list.gsp view,2nd

Post domain class,

PostController,

_post.gsp template,

URL mapping,

Blowfish encryption codec class,2nd

BootStrap class,

build.xml file, running test target in,

buyFlow,2nd

cache policy, specifying,

cache provider, specifying,

<cache:text> tag,

caching

content-level,

return value of blocks of code using closures,

caching pattern,

car table,2nd

checkBox tag,

checking whether user is subscribed,

chooseGiftWrapFlow flow,2nd

ClassPathXmlApplicationContext instance,

clearing sessions,

codec class example,

collecting values with <g:collect> tag,

column name for many-to-one association, changing,

column name mapping, changing,

command objects

defining,

using,

for validation,

command-line arguments, handling,

Company class, transient property,

company table,

composite identifier, configuring,

composition relationship,

Config.groovy

environments block,

grouping settings in,

confirmRegistration view,

ConnectionFactory pool,

constraining maximum value for pagination,

content negotiation, using file extensions for,

content panel,

contentType directive,

controller

creating,

dynamically mapping to,

controller action vulnerable to attack

correcting,

injecting service instance into,

as model,

ControllerUnitTestCase class,

create action,

create-app gTunes command,

createLink tag,

create-plugin command,

create-service target,

CreditCardCommand class,

CreditCardCommand object,

criteria query,

cron job,

custom view, rendering,

data binding, validation errors and,

DataSource, specifying annotation configuration strategy,

DataSource.groovy file,

datePicker tag,

debug level, setting,

deep converter results, using,

default Log4j configuration,

default validation messages,

DefaultMessageListenerContainer instance, configuring,

delete action,

dependency injection, using to obtain Hibernate session,

dependsOn property,

deploying to Tomcat,

displayInvoice.gsp end state view,

domain classes

with constraints,

defining bidirectional one-to-many relationship,

defining one-to-many relationship between,

doWithSpring hook,, 2nd

doWithWebDescriptor hook, adding Servlet filter with,

dynamic finders,

dynamic querying with criteria,

dynamic transitions, using to specify transition target state,

dynamically configuring beans,

dynamically creating beans,

eager associations,2nd

edit action,

Ehcache Spring bean, configuring,

listings (continued)

e-mail confirmation, sending,

embedding object,

enabling search,2nd

encodeAsHTML() method,

engine table,

enterCardDetails view state

defining,2nd

displaying error messages,

enterShipping state,

enterShipping.gsp view,2nd

environment-specific data-source configuration,

equals and hashCode, implementing,

export-library-to-xml script

full code for,2nd

output XML,

running,

<extend-classpath> element,

externalized configuration,

externalizing DataSource configuration,

FactoryBean interface,

factoryMethod property,

fckeditor, enabling Rich Text Editing with,2nd

Feeds plugin, rendering rSS and Atom feeds with,2nd

file appender

configuring,

using,

file uploads in action,

flash scope, storing message in,

flows

action state, checking login details with,2nd

action state, defining,

action state, triggering events from,

defining,

end state, defining,

redirect action, using to exit,

return value, triggering events with,

start state, defining,

subflow state, defining,

view state, defining,

flushing session,

form tag

from grails-app/views/user/register.gsp,

with url attribute,

Gant build script,

generate-controller command,

genre action of StoreController,

genre.gsp page,

get method,

getFlow() method,

GORM events, using,

GPath expression, interacting with,

Grails executable, running,

grails-app/services/com/g2one/gtunes/StoreService.groovy,

grails-app/view/car/list.gsp,2nd

grails-app/views/error.gsp page,2nd

grails-app/views/person/create.gsp,

GrailsApplication object, using to inspect jobs,

GrailsClass interface,

grails.war.resources setting,

<g:remoteField> tag,

<g:remoteLink> tag,

Groovy

calling methods on integers,

enhancing behavior of class,

Expando object,

ExpandoMetaClass,

for loop and ranges,

GStrings,

implementing Intercept, Cache, Invoke pattern,2nd

invokeMethod, overriding,

lists and maps,2nd

MarkupBuilder,

MetaClass,

per-instance metaprogramming,

ranges,

respondsTo and has Property methods,

save method, adding at runtime,

step method,

string and characters,

switch statement,2nd

Groovy injection,

GSP template

rendering,

shop.gsp, rendering,

for top five lists,

gTunes home page,

handling exceptions from Amazon,

hasErrors and eachError tags,, 2nd

hashing password with SHA1,

hasRole method,

HelloWorld.groovy script template,

help command,, 2nd

Hibernate dialect, customizing,

Hibernate regular configuration,

Hibernate type

changing,

custom UserType,

custom UserType, using sqlType with,

JodaTime Hibernate UserType,

MonetaryAmount class,

MonetaryAmountUserType,2nd

sqlType argument,

hibernate.cfg.xml file

adding mapping resources to,

updated,

hiding album,

hilo generator, configuring,

HQL

via executeQuery,

with findAll method,

with named parameters,

with positional parameters,

HQL injection,

HTTP request method,, 2nd

import directive,

index action,

inner beans, using,

install-plugin command,

install-plugin global command,

interception conditions, using,

invoking GSP tag as method call,

iterating

with <g:each> tag,

with <g:while> tag,

Ivy, example output from,

ivy.xml file,

Java executable, running,

JAVA_OPTS,

java.util.ResourceBundle class,

JMS ConnectionFactory, configuring for ActiveMQ,

JMS message, sending,

jmsContainer instance, starting,

jmsTemplate bean,

JMX plugin

exposing service using,

using with XFire plugin,

JNDI data-source configuration,

job naming and grouping,

job template,

joinTable mapping,

<jsec:hasPermission> tag,

JSecurity plugin, installing,

JSON builder,

JSON response,

listings (continued)

JSP

c:out tag,

unattractive tag example,

lazy associations,

legacy table containing person data,

libraryLayout.gsp view,2nd

link vulnerable to XSS attack,

linking with <g:link> tag,

list action,, 2nd

List associations,

list() method,

listOrderBy* methods,

list-plugins command,2nd

loadRecommendations state

checking for results in,

defining,

full code for,2nd

local plugins, installing,

LocalSessionFactoryBean with BeanBuilder,

locating elements with <g:findAll> tag,

log property, using,

logging

exceptions,

unfiltered traces,

LoggingFilters class,

logical blocks,

login action of UserController,

login form

adding everywhere,

altering to use <g:formRemote> tag,

using tag to display,

login template,

LoginCommand class,, 2nd3rd

Mail plugin, configuring,

many-to-many association, mappings for,

mapping closure,

mapping onto actions based on HTTP method,

marshaling XML with deep converter,2nd

merge method,

message tag,

MessageListenerAdapter, delegating to Grails service using,

messageSource interface

getMessage method,

locale, specifying,2nd

using in controller,

metadata, using,

methods

adding to class,

adding to controllers,

of Realm class,

mockDomain method,

mocking methods with ExpandoMetaClass,

model, creating,

modeling subscription,

multiline strings, using to provide help,

multiple reads return same object,

music action

defining,

securing,

music namespace, defining,

<music:albumArt> tag,

music.gsp view,2nd

MySQL data-source configuration,

newest 10 albums from last week, obtaining,

newsletter.gsp view,2nd

NewsLetterJob, full code for,2nd

object equality,

onChange event,

one-to-many association

bidirectional,

overview of,

owning side of,

with type,

one-to-one relationship,

onNewAlbum method,

onNewAlbum(Album) method,2nd

onNotAuthenticated() method,

OptimisticLockingFailureException, handling,

ordering items using paginate tag,

org.apache.commons.logging.Log API,

org.jsecurity.authz.Permission interface,

org.jsecurity.mgt.SecurityManager interface,

org.springframework.web.multipart.MultipartFile interface,

org.springframework.web.multipart.MultipartHttpServletRequest interface,

overriding dataSource bean,

pagination support in CarController,

parameterized message

defining,

populating dynamically with message tag,

populating with Groovy,

populating with Java,

populating with message tag,

params attribute with <g:link> tag,

params property,

parsing JSON on client,

Payment domain class,

per-environment bootstrapping,

Permission domain class,

Person class

custom table mapping for,

database mapping and,

extending,

mapping property,

person, employee, and player tables

database mapping,

table-per-subclass mapping,

pessimistic locking

with lock instance method,

with lock method,

picture property,

play.gsp view,2nd

plugin descriptor,

plugin hooks,2nd

plugin-descriptor with metadata provided,

plugin-info command,2nd

plugins

configuring additional repositories,

installing over HTTP,

packaging,

populating

class,

data, form for,

data on application load,

printing message using render method,

private fields, using to hold action code,

production data-source configuration,

progress indicator, displaying,

property file,

Prototype library, using,

Quartz plugin

example job,

installing,

querying

by example,

for genre recommendations,

for user recommendations,

with criteria,

with projections,

radio tag,

_recommendations.gsp template,

listings (continued)

redirect,

register action

adding,

implementing,2nd

updating,

updating to include roles,

register view, creating,

register.gsp file

adding check box to,

email property,

registering triggers,

registration link, adding,

regular expressions

Groovy,

Groovy vs. Java,

relationship management methods,

rendering

property values from GSP,

simple String,

request object,

request parameters, updating existing object with,

request-scoped service,

requireHardCopy view state,

REST API, communicating with

with ACCEPT header,

with CONTENT_TYPE header,

REST service

calling from JavaScript,

error response from,

handling POST requests in,

updating XML to send to,

RESTful controller, manually implementing,

RESTful URL,

returning map of data to be rendered by view,

reusing closure code in events,2nd

Role domain class,

roles, restricting access based on,

rolling back transaction programmatically,

routing users to root of application to StoreController,

RSS and Atom metadata, providing,

run-app command,

SampleController class,2nd

save action,

save() method,

savepoints, using,

saving domain class,

scheduler, getting jobs from,

scriptlets in action,

_searchResults.gsp template,2nd

second-level cache,

securing

action,

/admin URI,

view,

security filter,

SecurityUtils class,

select tag,2nd

sending

e-mails with mailService,

simple mail message,

servletContext scope, synchronized access to,

setCurrentState(String) method,

shop action of StoreController,

show action,

showConfirmation.gsp view,2nd

show.gsp file, reusing storeLayout.gsp file in,

showRecommendations.gsp view,2nd

showRecommendations view state,

showTime action,

SOAP web service, calling,

Song class

constraints property,

file property,

title and duration properties of,

Song domain class,2nd

Song table,

SongController class

creating,

enabling dynamic scaffolding,

play action,

stream action,

SortedSet associations,

Spring XML format,2nd

Spring beans, dynamically creating at runtime,

Spring Errors interface, methods in,

standard servlet API,

step method, paginating records with,

StoreController

buyFlow,

default index action,

web flow logic in,2nd

StoreControllerTests suite,

storeLayout.gsp file,

StoreService

calling purchaseAlbums method,2nd

purchaseAlbums method,2nd

stream action,2nd

StreamingMarkupBuilder class,

streamingService bean

creating,

using,

StreamingService class,2nd

StreamingTagLib.groovy file,2nd

subscribe action,

subscribe template,

subscribed e-mails, obtaining,

Subscriptions URL mappings,

SubscriptionTagLib class

implementing,

tags, implementing,

testing,2nd

<sysprops> element

passing system properties with,

“Buy” button, disabling,

“My Music” link, adding,

table name, changing,

table-per-hierarchy mapping,

table-per-subclass mapping,

tag,2nd

tag library

creating,

defining namespace for,

testing,

TagLibUnitTestCase class,

templates, extracting common GSP code into,

test-app command,

TestApp.groovy script,

testing

contents of response,

data binding in flows,2nd

if user is logged in,

render method,

service code,2nd

StoreController index action,

successful registration,

testLoginPasswordInvalid test case,

testLoginSuccess test case,

testLoginUserNotFound test case,

testPasswordsDontMatch case,

testRegistrationFailed case,

textField tag,

Tomcat deployer, adding,

TomcatDeploy.groovy file,

TransactionStatus interface,2nd

transition action, confirming purchase using,2nd

listings (continued)

uninstall-plugin command,

unit tests,2nd

UnknownAccountException,

unsubscribe action,

update action,

updates gone wrong,

upload form example,

uploaded file, retrieving,

URL escaping,

URL mapping

accessing request parameter in controller action,

applying constraints to parameters,

blog-type,

changing to exclude /services URI,

custom,

decoding request parameter to replace underscores with spaces,

default,

double wildcards in,

embedding request parameter in,

forward and reverse, testing,

for 404 response codes,

including static text in,

link tag,

for localization,

mappings property,

reverse,

reverse, using link tag,

for /showArtist/ URL,, 2nd

specifying additional request parameters in,

specifying controller and action as properties of,

unit testing,

variables, testing,

to view,

wildcards in,

URL mapping scheme,2nd

UrlMappings class,

user, assigningAlbumPermission to,

User class

constraining password property in,

email property,

updating with permissions association,

user credentials, validating,

User domain class,, 2nd, 3rd

User instance, making available in request,

user messages in properties file,

UserController, login action,

User.hbm.xml file,2nd

validating

Song object,

Song object, revisited,

validation, transition actions for,

version number, setting,

views, generating,

WebFlowTestCase, extending,

_welcomeMessage.gsp template,

withFormat method,2nd, 3rd

withSession method,

withTransaction method,, 2nd

WSDL,2nd

XML builder,2nd

XML marshaling capabilities, automatic,

XML returned from GET request,

XMLHttpRequest ojbect,

listOrderBy* method,

list-plugins command,2nd

lists (Groovy),2nd

loadRecommendations state,2nd

local plugins,, 2nd3rd

localeSelect tag,

localizing messages

defining user messages,2nd

retrieving message values,2nd

URL mapping for,

lock() method,2nd

locking strategies in GORM,2nd

log property, using,

Log4j library

appenders,

layout styles,

overview of,2nd

logging

configuring,2nd

controllers and,2nd

method calls,

LoggingFilters class,

logic, encapsulating into service layer,

logical tags,2nd

login action (UserController),, 2nd

login form, creating,2nd

login process, testing,2nd

login request, Ajax, handling,

login, validating with action state,2nd

LoginCommand class,2nd, 3rd4th

logSql setting (DataSource.groovy file),

M

Mac SOAP Client project,

Mail plugin,

main window (JConsole),

many-to-many association, mapping,2nd

many-to-one association,, 2nd

mapping

See also legacy mapping; URL mapping

with Hibernate XML

constraints, using with POJO entities,2nd

EJB 3-compliant,2nd

overview of,2nd

objects to relational databases,

strategy for

choosing between,

table-per-hierarchy,

table-per-subclass,2nd

mappings property (GrailsUrlMappingsTestCase class),

maps

of data to be rendered by view, returning,

Groovy,2nd

MarkupBuilder (Groovy),2nd

marshaling objects

to JSON,2nd

to XML,2nd

Math.min method,

MBeans tab (JConsole),

McWhirter, Bob,

<media:player> tag,

merge method,2nd

merging states of detached objects,2nd

message tag

parameterized messages and,2nd

retrieving property values from message files with,2nd

Message-Driven POJOs,2nd. See also ActiveMQ

MessageListenerAdapter class,

messages

JMS

consuming with Spring,2nd

sending with Spring,2nd

localizing

defining user messages,2nd

retrieving message values,2nd

URL mapping for,

parameterized

java.text.MessageFormat class,2nd

message tag,2nd

validation and,2nd

printing using render method,

messageSource interface,2nd

Meta Object Protocol (MOP),

MetaClass class,, 2nd3rd

metadata

overview of,2nd

plugin descriptors and,2nd

metaprogramming APIs,2nd

metaprogramming (Groovy)

adding behavior at runtime,2nd

code synthesis,2nd

intercepting method dispatch,

method call, invoking GSP tag as,

method expressions for dynamic finders,

methodMissing method,2nd

methods

accessControl,

adding

to class,

to controller,

addJob,

addTo*,

attach(),

authenticate,, 2nd3rd

bindData,2nd

clear(),2nd

clearErrors(),

count() method,2nd

countBy*,

createAlbum(),

createCriteria,

currentSession(),

delete(),

deleteJob,

encodeAsHTML(),, 2nd

encodeAsURL(),

executeQuery,

findAllBy*,

findBy*,2nd

flush(),

get,, 2nd3rd

getFlow(),

getMessage,

getPrincipal(),

GrailsApplication class,

Groovy

hasProperty,

operators and equivalent,2nd

respondsTo,

step,

hasErrors(),

hasRole,

inspecting at runtime using MetaClass,

intercepting

calls to,2nd

dispatch of,

invokeMethod, overriding,

isAttached(),

isPermitted,

list(),2nd

listOrderBy*,

lock(),2nd

Math.min,

merge,2nd

methodMissing,2nd

mockDomain,

mocking with ExpandoMetaClass,

MultipartFile interface,

nullSafeGet,

nullSafeSet,

onNewAlbum,, 2nd3rd

onNotAuthenticated(),

pauseAll,

pauseJob,

pauseJobGroup,

purchaseAlbum,2nd

read,

Realm class,

redirect,, 2nd3rd

rejectValue,

removeFrom*,

render

description of,, 2nd

template argument,

view argument,

resumeAll,

role(name),

save()

adding at runtime

on domain object,

Hibernate and,2nd, 3rd

sendMail,

setCurrentState(String),

setRollbackOnly(),

sort,

Spring Errors interface,

step,

swapCase,2nd

taskdef,

toString(),

triggerJob,

validate(),, 2nd

withFormat,2nd, 3rd

withSession,, 2nd

withTransaction,, 2nd3rd, 4th

methods on primitives (Groovy),2nd

Metro plugin,

MIME types, configuring additional,

mockDomain method,

mocking cacheService,

mocking capabilities,

mocks, unit tests and,

model

controllers and,

creating,2nd

modularizing applications with plugins,2nd

MonetaryAmount class,

MonetaryAmountUserType,2nd

MOP (Meta Object Protocol),

multiline strings, using to provide help,

MultipartFile interface (Spring),

MultipartHttpServletRequest interface (Spring),2nd

multiple URL mappings classes

defining,

testing,2nd

music action,

music namespace, defining,

music, streaming with QuickTime,

<music:albumArt> tag,

music.gsp view,2nd

MVC framework,

MVC pattern,2nd

MySQL database, configuring,2nd

N

namespace

defining for tag libraries,

music,

NetBeans,2nd

newsletter.gsp view,2nd

NewsLetterJob, full code for,2nd

nonrestrict-read-write cache policy,

nullSafeGet method,

nullSafeSet method,

O

object-oriented (OO) applications, domain model and,

object-relational mapping (ORM),, 2nd

objects

See also detached objects; true object orientation

Ajax.Request,2nd

command

defining,2nd

using,2nd

using with flows,2nd

objects (continued)

CreditCardCommand,

domain

data binding to multiple,

embedding,2nd

mapping to relational databases,

updating with request parameters,

equality of,

Expando,

GrailsApplication,

HttpServletResponse,

marshaling

to JSON,2nd

to XML,2nd

multiple reads returning same,

params, populating class by passing,

reading,2nd

request, inputStream property,

response, outputStream property,

Song,, 2nd

unmarshaling,2nd

XMLHttpRequest, referencing,2nd

obtaining session,2nd

onChange event, plugins and,2nd

onComplete event,

onConfigChange event, plugins and,

one-to-many relationship

bidirectional,2nd

overview of,, 2nd3rd

unidirectional,

one-to-one relationships,2nd

onLoading event,

onNewAlbum method,, 2nd3rd

onNotAuthenticated() method,

onShutdown event, plugins and,

Operations tab (JConsole),

operator method names (Groovy),2nd

operator overloading (Groovy),2nd

operators

built-in (Groovy),

dot deference,

Elvis (?:),

safe deference (?.),

spread (*),

spread dot (*.),

optimistic locking,, 2nd3rd

OptimisticLockingFailureException,2nd

optimizing performance. See performance tuning in GORM

org.apache.commons.logging.Log API,

org.hibernate package,

org.jsecurity.authc package, exception types,

org.jsecurity.authz.Permission interface,

org.jsecurity.mgt.SecurityManager interface,

org.springframework.mock.web.MockHttpServletResponse class,

org.springframework.validation package (Spring),

org.springframework.web.multipart.MultipartFile interface (Spring),

org.springframework.web.multipart.MultipartHttpServletRequest interface (Spring),

ORM (object-relational mapping),, 2nd

ORM DSL

for domain mapping,2nd

legacy mapping with

association mapping, changing,2nd

composite identifiers, using,2nd

database identity generator, changing,2nd

Hibernate types,2nd

overview of,

table and column name mapping, changing,2nd

ORM tools, working with,

outputStream property (response object),

overriding Spring beans,2nd

owning side of one-to-one relationships,

P

package-level visibility,

package-plugin command,

packages

See also specific packages

benefits of,

imported by Groovy by default,

packaging plugins,2nd

page context,

page directives (GSP),

paginate tag (GSP),2nd

pagination

DoS vulnerability and,

of records with step method,

through set of results,2nd

of views,2nd

parameterized messages

java.text.MessageFormat class,2nd

message tag,2nd

validation and,2nd

parameters

embedding in URL mapping,2nd

paginate tag,

request

accessing in controller action,

content negotiation with,

controllers and,

decoding to replace underscores with spaces,

embedding in URL mapping,

populating class with,

specifying additional,

updating existing object with,

URL attacks and,

specifying additional in URL mapping,2nd

params object, populating class by passing,

params property,

parsing

Gant command-line arguments,2nd

JSON on client,

pauseAll method,

pauseJob method,

pauseJobGroup method,

pausing and resuming jobs,

Payment domain class,

performance, Ajax and,2nd

performance tuning in GORM

associations,2nd

batch fetching,2nd

caching,2nd

inheritance strategies,

overview of,

permgen space,

Permission domain class,2nd

permission-based security, implementing with JSecurity plugin,2nd

permissions (JSecurity plugin),

persistence layer (GORM)

associations,2nd

listing, sorting and counting,2nd

reading objects,2nd

saving, updating, and deleting,2nd

persistence life cycle,2nd

persistent data, querying

criteria queries,2nd

dynamic finders,2nd

HQL and SQL,2nd

overview of,

pagination,2nd

query by example,

persisting fields to database,2nd

Person class

custom table mapping for,

database mapping and,

mapping property,

person table,, 2nd

pessimistic locking,2nd

play action (SongController),

play.gsp view,2nd

player table, table-per-subclass mapping,

plugin descriptors

metadata and,2nd

supplying hooks with,2nd

plugin system

commands

for discovery,2nd

for installation,2nd

local plugins,

overview of,

plugin-info command,2nd

plugins

See also blog plugin example; GORM

adding behavior with,2nd

application artefacts, supplying with,2nd

for application modularity,2nd

audit-logging,

Authentication,

Axis, 2nd

creating,2nd

custom artifact types,2nd

DBMigrate,

distributing,2nd

events and application reloading,2nd

fckeditor,2nd

Feeds,2nd

Firefox Poster

ACCEPT header, specifying,

installing,

main window,

response window,

tray icon,

Java Management Extensions (JMX),2nd

JetGroovy,

JSecurity

authentication realms,2nd

authentication, implementing with,2nd

filters,2nd

overview of,, 2nd

permission-based security, implementing,2nd

role-based security, implementing,2nd

roles and permissions,

subjects and principals,

view, securing,2nd

working with,

LiquiBase,

local repositories of,2nd

Mail,

metaprogramming APIs,2nd

Metro,

modifying web.xml file with,2nd

packaging and distributing,2nd

Quartz

adding and removing jobs,2nd

ArtefactHandler interface for,

cron jobs, scheduling,2nd

description of,, 2nd

installing,2nd

onChange event,

pausing and resuming jobs,

scheduler,

simple jobs, scheduling,2nd

trigger,2nd

triggering jobs,

Remoting,

Searchable,2nd

security frameworks,

SOAP web services via,2nd

Spring beans

dynamic, using conventions,2nd

providing,2nd

supporting exposing services,

variables,2nd

XFire,2nd, 3rd4th

XML-RPC,

POJO entities, using constraints with,2nd

populating

class,

data, providing form for,

database with BootStrap classes,2nd

parameterized message

dynamically,

with Groovy,

with Java,

with message tag,

port conflicts, dealing with,

Post domain class for blog plugin,

POST request, REST and,2nd

PostController for blog plugin,

Poster plugin (Firefox)

ACCEPT header, specifying,

installing,

main window,

response window,

tray icon,

_post.gsp template for blog plugin,

price property (Album domain class),

principals (JSecurity plugin),

printing message using render method,

private fields, using to hold action code,

production environment

configuring MySQL for,2nd

overview of,2nd

progress indicator, displaying,

projections, querying with,2nd

properties

bean argument,2nd

ControllerUnitTestCase class,

transient (domain classes),2nd

properties file

default messages,2nd

defining user messages in,2nd

retrieving message values from,2nd

Prototype library

Ajax.Request object,2nd

overview of,

parsing JSON on client,

responders mechanism,

telling Grails to use,

prototyped controller,

provider, Ajax, changing,2nd

purchase, confirming,

purchaseAlbums method (StoreService),2nd

PUT request, REST and,

Q

Quartz plugin

adding and removing jobs,2nd

ArtefactHandler interface for,

cron jobs, scheduling,2nd

description of,, 2nd

installing,2nd

onChange event,

pausing and resuming jobs,

scheduler,

simple jobs, scheduling,2nd

triggering jobs,

triggers,2nd

queries

for genre recommendations,

String-based,

for user recommendations,

query by example (GORM),

query cache,

querying from GORM

criteria queries,2nd

dynamic finders,2nd

HQL and SQL,2nd

overview of,

pagination,2nd

query by example,

QuickTime, using in gTunes application,2nd

R

radio tag,2nd

Rails, view technology of,

Rails ActiveRecord, GORM compared to,

ranges (Groovy),2nd

read method,

read operation,2nd

reading

objects,2nd

request inputStream,

read-only cache policy,

read-write cache policy,

realm class,

realms, authentication and,2nd

reattaching detached objects,2nd

recommendations

generating,2nd

showing,2nd

_recommendations.gsp template,

redirect action, using to exit flow,

redirect method,, 2nd3rd

redirecting requests

controllers and,2nd

flash scope and,

regex (regular expressions),2nd

register action

creating,

implementing,2nd

updating,

register view,

register.gsp file, email property,

register.gsp view, adding check box to,

registering for weekly newsletter subscription,2nd

registration

implementing,2nd

successful, testing,

registration code, testing,2nd

regular expressions (regex),2nd

rejectValue method,

relational databases

ACID properties of,

mapping objects to,

relationship management methods,2nd

relationships between domain classes, building,2nd

release-plugin command,2nd

remote access to services, enabling,

remote debugging with IDE,2nd

remote linking, Ajax,2nd

Remote Procedure Call (RPC) technology, SOAP as,

Remoting plugin,, 2nd

removeFrom* method,

removing

controller and action names from URL,

jobs,2nd

render method

description of,, 2nd

template argument,

view argument,

render tag (GSP),2nd

renderArgs property (ControllerUnitTestCase class),

rendering

GSP templates,2nd

templates,

text, controllers and,

view,

reports

code coverage,2nd

from testing,

Representational State Transfer. See REST

request, Ajax, flow of,

request attributes, controllers and

Java servlets compared to Grails controllers,

redirects and,, 2nd3rd

standard,

request object, inputStream property,

request parameters

accessing in controller action,

content negotiation with,

controllers and,

decoding to replace underscores with spaces,

embedding in URL mapping,

populating class with,

specifying additional,

updating existing object with,

URL attacks and,

request scope,

requests, redirecting

controllers and,2nd

flash scope and,

requireHardCopy view state,2nd

resources.groovy script,

respondsTo method,

response object, outputStream property,

REST (Representational State Transfer)

content negotiation

overview of,

view and,2nd

with ACCEPT header,2nd

with CONTENT_TYPE header,2nd

with file extensions,

with request parameters,

description of,

marshaling objects

to JSON,2nd

to XML,2nd

security and,2nd

unmarshaling objects,2nd

URL mappings and,2nd

web services and,

restricting access to controller actions,

resumeAll method,

resuming jobs,

retrieving message values from properties file,2nd

return statements,

returning maps of data to be rendered by view,

reusable code blocks,

reusing Grails scripts in Gant,

reverse URL mapping,2nd

Role domain class,2nd

role(name) method,

role-based security, implementing with JSecurity plugin,2nd

roles

JSecurity plugin,

overview of,

restricting access based on,

rollingFile appender,

RPC (Remote Procedure Call) technology, SOAP as,

RSS standard

creating feeds,2nd

link discovery,2nd

run-app command,

RunApp.groovy script,

running

applications,

Grails project from Eclipse,

runtime, adding behaviors at,2nd

run-war command,

S

safe deference operator (?.),

SampleController class

default action,

index action,

multiple actions, defining,

save action (AlbumController),

save() method

adding at runtime,

on domain object,

Hibernate and,2nd, 3rd

savepoints, using,

saving domain classes,

scaffolding

description of,

dynamic

controllers and,2nd

generating for domain class,2nd

power of command-line,

security and,

static

controller, generating,2nd

views, generating,, 2nd

toString() and,

scheduling jobs

cron,2nd

overview of,

Quartz plugin

installing,2nd

scheduler, using,

simple,2nd

triggers and,2nd

scope attribute,

scope property,, 2nd

scopes

controllers and

flash scope,2nd

overview of,

flow,

scoping services,2nd

Scriptaculous library,

scriptlets (GSP),2nd

scripts

See also specific scripts

Gant

automating deployment to Tomcat,2nd

creating,2nd

documenting,2nd

exporting data to XML,2nd

Grails, reusing in Gant,

search action (StoreController),

Searchable plugin,2nd

_searchResults.gsp template,2nd

second-level cache,2nd

security

against attacks

batch data binding,2nd

cross-site scripting,2nd

DoS,

Groovy injection,

SQL or HQL injection,2nd

application-layer

filters,2nd

overview of,

dynamic codecs and,2nd

JSecurity plugin

authentication realms,2nd

authentication, implementing with,2nd

filters,2nd

overview of,

permission-based security, implementing,2nd

role-based security, implementing,2nd

roles and permissions,

subjects and principals,

view, securing,2nd

working with,

limiting access through URL mappings,2nd

overview of,

REST and,2nd

scaffolding and,

SecurityUtils class,

select tag,2nd

semantics of GORM

clearing session,2nd

Hibernate Session class,2nd

obtaining session,2nd

overview of,2nd

session flushing

automatic,2nd

session management and,2nd

sending

e-mail confirmation,

JMS messages with Spring,2nd

simple mail message,

sendMail method,

servers, e-mail, integration with,2nd

service layer, encapsulating logic into,

services

in action,2nd

basics of,

defining,2nd

dependencies and,

dependency injection and,

exposing,2nd

scoping,2nd

testing,

as transactional,

transactions,2nd

using,2nd

Servlet filter, adding with doWithWebDescriptor hook,

servletContext scope,

Session class (Hibernate),2nd

session flushing

automatically,2nd

manually,2nd

session management,2nd

session scope,

sessions

clearing,2nd

obtaining,2nd

set tag,

setCurrentState(String) method,

setRollbackOnly() method,

settings of DataSource.groovy file,

set-version command,

SHA1, hashing password with,

shop action (StoreController),

shop.gsp templates, rendering,

shopping-cart, using,

shoppingCartFlow,2nd

show action (AlbumController),

Show Album screen,

Show Song screen,

show.gsp file, reusing storeLayout.gsp file in,

show.gsp view,

showConfirmation.gsp view,2nd

showRecommendations state,2nd

showTime action,

Simple Mail Transfer Protocol (SMTP),

singleton scope,2nd

SiteMesh,

slashy syntax,

SMTP (Simple Mail Transfer Protocol),

SOAP standard

calling from client,2nd

overview of,, 2nd3rd

web services via plugins,2nd

Song class,, 2nd

Song domain class

adding properties to,

Song domain class (continued)

as blank class definition,

creating,

file property,

Song List page,

Song table,

SongController

alternative to show action,

creating,

enabling dynamic scaffolding,

play action,

show action,

stream action,

Song.groovy file,

sort method,

SortedSet associations,

spread dot (*.) operator (Groovy),

spread (*) operator,

Spring beans

description of,

dynamic, using conventions,2nd

providing,2nd

Spring Errors interface, methods in,

Spring Framework

See also Spring beans

ApplicationContext,

ActiveMQ

configuring with BeanBuilder,2nd

overview of,2nd

Queues section,

setting up,2nd

artist subscriptions, enabling,2nd

asynchronous e-mail notifications,2nd

basics of,2nd

BeanBuilder DSL

abstract beans,2nd

bean scopes,2nd

configuring ActiveMQ with,2nd

defining beans,2nd

dynamically creating beans,2nd

factory beans,2nd

inner beans,

overriding beans,2nd

overview of,2nd

providing Spring beans,2nd

dependency injection and,2nd

description of,, 2nd

Grails and,

JMS messages

consuming,2nd

sending,2nd

messageSource interface,2nd

mixing Groovy and Java with,2nd

org.springframework.mock.web.MockHttpServletResponse class,

org.springframework.validation package,

org.springframework.web.multipart.MultipartFile interface,

org.springframework.web.multipart.MultipartHttpServletRequest interface,

Spring Web Flow project,. See also flows

SQL injection,2nd

SQL logging, configuring in GORM,

stack trace filtering,

standard. See Atom standard; RSS standard; SOAP standard

standard servlet API,

standard validators,

start states (flows),2nd

stateless model,2nd

static scaffolding

controller, generating,2nd

views, generating,2nd

static text, including in URL mapping,

step method,, 2nd

storage, flows and,2nd

StoreBuyFlowTests suite,

StoreController

buy action,2nd

buyFlow,

creating,

default index action,

genre action,

home page, creating,2nd

printing message with,

search action,

services and,2nd

shop action,

shoppingCartFlow,2nd

StoreControllerTests suite,2nd

storeLayout.gsp file,

StoreService class

creating,

purchaseAlbums method,2nd

storeService property,2nd

Strachan, James,

stream action,2nd

StreamingMarkupBuilder class,

streamingService bean

creating,

using,

StreamingService class,2nd

StreamingTagLib.groovy file,2nd

StreamService.java file,

String-based queries,

strings (Groovy),2nd

stubs, unit tests and,

subflows,2nd

subjects (JSecurity plugin),

subscription to weekly newsletter,2nd

SubscriptionTagLib class

implementing,

testing,2nd

supported databases,2nd

SVN repository, creating,

swapCase method,, 2nd

SwingBuilder (Groovy),

switch statement (Groovy),2nd

syntax (Groovy)

assertions,2nd

classes, declaring,

closures,2nd

Expando object,

lists and maps,2nd

overview of,2nd

ranges,2nd

strings,2nd

<sysprops> element, passing system properties with,

T

table name mapping, changing,2nd

table-per-hierarchy mapping,2nd, 3rd

table-per-subclass mapping,2nd, 3rd

tables

See also specific tables

company,

default name for,

person,, 2nd

player,

tag libraries

creating,2nd

defining namespace for,

dynamic tags and,

TagLibUnitTestCase class,

tags

See also tags, built-in; tags, custom; tags, dynamic

JSecurity plugin

restricting access using,

securing view using,2nd

message

parameterized messages and,2nd

retrieving property values from message files with,2nd

wrapper,

tags, built-in (GSP)

filtering and iteration

collect,2nd

findAll,2nd

iterative,2nd

logical,2nd

setting variables with,2nd

tags, custom (GSP)

basics of,2nd

creating,2nd

tag library, creating,2nd

testing,2nd

tags, dynamic (GSP)

forms and fields, creating

checkBox and radio tags,2nd

datePicker tag,2nd

form tag,2nd

select tag,2nd

textField tag,

linking

createLink and createLinkTo tags,2nd

link tag,2nd

overview of,2nd

paginating views,2nd

rendering templates,2nd

validation and error handling

eachError tag,

hasErrors tag,

overview of,

taskdef method,

template argument (render method),

template-driven scaffolding. See static scaffolding

templates

AlbumArtService

creating,

enabling caching,

full code for,2nd

_album.gsp

adding album art to,

buy action,

implementing,

AlbumList, rendering,

_albumList.gsp,

_artist.gsp, updating,

extracting common GSP code into,

GSP, rendering,2nd

HelloWorld.groovy script,

job,

login,

_post.gsp,

_recommendations.gsp,

rendering,

_searchResults.gsp,2nd

shop.gsp, rendering,

subscribe,

_welcomeMessage.gsp,

test environment,2nd

test suites of controllers,2nd

test target, running in build.xml file,

test/reports directory,

test-app command,2nd, 3rd

TestApp.groovy script,

testing

Amazon web services,2nd

ArtefactHandler interface,

controllers,2nd

custom tags,2nd

data binding in flows,2nd

domain classes,2nd

flows,2nd

localization,

login process,2nd

<music:albumArt> tag,

registration code,2nd

service code,2nd

services,

StoreController index action,

SubscriptionTabLib class,2nd

unit tests,, 2nd

UrlMappings class,2nd

testLoginPasswordInvalid test case,

testLoginSuccess test case,

testLoginUserNotFound test case,

testPasswordsDontMatch case,

testRegistrationFailed case,

tests, running in TextMate,

text

rendering,

static, including in URL mapping,

text field,

textField tag,

TextMate text editor,2nd

time stamping, automatic,

timeZoneSelect tag,

Tomcat, automating deployment to,2nd

TomcatDeploy.groovy file

deploy target,

full code for,

main target,

overview of,

toString() method,

transactional cache policy,

transactional property,

transactional service classes,

transactional write-behind,

transactions

description of,2nd

in GORM,2nd

TransactionStatus interface,2nd

transient properties (domain classes),2nd

transition actions (flows)

confirming purchase using,2nd

description of,

transitions, dynamic, and gTunes,2nd

transitive dependencies resolution,

transitive persistence,

triggering

events

from action state,

from view state,2nd

with return value,

jobs,

triggerJob method,

true object orientation (Groovy)

methods on primitives,2nd

operator overloading,2nd

overview of,2nd

truth,2nd

truth (Groovy),2nd

type-conversion errors,

U

uninstall-plugin command,

unit tests,, 2nd

UnknownAccountException,

unmarshaling objects,2nd

unobtrusive framework,

update action (AlbumController),

update operation,

updating

existing object with request parameters,

instance,

uploading files

data binding and,2nd

MultipartHttpServletRequest interface and,2nd

overview of,

URL attacks, request parameters and,

URL escaping,2nd

URL mapping

applying constraints to,2nd

blog plugin,

changing to exclude /services URI,

default,2nd

URL mapping (continued)

embedding parameters in,2nd

to HTTP request codes,2nd

to HTTP request methods,2nd

including static text in,

for internationalization and localization,

limiting access through,2nd

multiple classes, defining and testing,2nd

overview of,

removing controller and action names from,

RESTful,2nd

reverse,2nd

specifying additional parameters in,2nd

Subscriptions example,

to view,2nd

wildcards, including in,2nd

UrlMappings class,2nd

UrlMappings.groovy,

User class

constraining password property in,

email property,

User domain class,2nd, 3rd, 4th

user interface, validation messages in,

user messages

See also messages

defining in properties file,2nd

user recommendations, querying for,

User.hbm.xml file,2nd

USER_HOME directory,

UserController,, 2nd, 3rd

UserControllerTests class,, 2nd3rd

V

validate() method,, 2nd

validation

of data with command objects,

description of,

of domain classes,2nd

flow transition actions for,

gTunes,2nd

of incoming data,2nd

parameterized messages and,2nd

with tags

eachError tag,

hasErrors tag,

overview of,

validators standard,

variables

Gant, command-line,2nd

plugins,2nd

setting with tags,2nd

verifying flow state with assertions,2nd

version column,

version number,2nd

view states (flows)

overview of,2nd

requireHardCopy,2nd

triggering events from,2nd

view technologies for web applications

See also GSP

overview of,

RHTML,

viewing JMX exposed services,

views

See also specific views

content negotiation and,2nd

controllers and

finding, selecting, and rendering,

securing with JSecurity plugin,2nd

withFormat method,2nd, 3rd

generating, for actions to delegate to,2nd

paginating,2nd

URL mapping to,2nd

W

war command,

WAR (Web Application Archive) file

customizing,

deploying,2nd

deploying application with,2nd

version number,2nd

web flows

action and view states,2nd

defining,

end state, defining,2nd

gTunes

credit card details, entering,2nd

data binding and validation,2nd

dynamic transitions,2nd

prices for albums, providing,

purchase,

querying about CD purchase,2nd

recommendations, generating,2nd

recommendations, showing,2nd

validating login,2nd

verifying flow state with assertions,2nd

java.io.Serializable interface and,2nd

scopes,

start state, defining,2nd

subflows and conversation scope,2nd

testing,2nd

transition actions and form validation,

view state, triggering events from,2nd

web services

Amazon

creating,2nd

setting up,2nd

testing,2nd

Atom and RSS

creating feeds,2nd

link discovery,2nd

overview of,

RESTful

content negotiation,2nd

marshaling objects to JSON,2nd

marshaling objects to XML,2nd

overview of,

security and,2nd

unmarshaling objects,2nd

URL mappings and,, 2nd

SOAP standard

calling from client,2nd

overview of,2nd

plugins and,2nd

Web Services Description Language (WSDL)

example,2nd

SOAP and,

web sites

Java Cryptography Extension,

QuickTime,

security frameworks,

xssed.com,

web.xml file, modifying with plugins,2nd

WebFlowTestCase

extending,

methods,

_welcomeMessage.gsp template,

while tag (GSP),

wildcard (*) character,, 2nd, 3rd

wildcards, including in URL mappings,2nd

Windows shell, JAVA_OPTS, setting in,

withFormat method,2nd, 3rd

withSession method,, 2nd

withTransaction method,, 2nd3rd, 4th

wrapper tags,

writing binary response,

WSDL (Web Services Description Language)

example,2nd

SOAP and,

X

XFire plugin

description of,2nd, 3rd

using,2nd

XML

exporting data to,2nd

marshaling capabilities, automatic,

marshaling objects to,2nd

unmarshaling objects,2nd

XMLHttpRequest object, referencing,2nd

XML-RPC plugin,

XmlSlurper parser (Groovy),

XSS (cross-site scripting) attacks

HTML escaping and,2nd

URL escaping and,2nd

xssed.com site,

Z

zip files,

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset