Index
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,, 2nd –3rd
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,, 2nd –3rd
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,, 2nd –3rd, 4th, 5th –6th
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,, 2nd –3rd
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,, 2nd –3rd
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, 3rd –4th
MessageListenerAdapter,
MetaClass,, 2nd –3rd
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,, 2nd –3rd
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),, 2nd –3rd
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,, 2nd –3rd
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,
embedding –2nd
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,, 2nd –3rd
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, 3rd –4th
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, 3rd –4th
linking tags
createLink and createLinkTo, –2nd
link, –2nd, 3rd –4th
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,, 2nd –3rd
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,, 2nd –3rd
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, 3rd –4th
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,, 2nd –3rd
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,, 2nd –3rd
bindData, –2nd
clear(), –2nd
clearErrors(),
count() method, –2nd
countBy*,
createAlbum(),
createCriteria,
currentSession(),
delete(),
deleteJob,
encodeAsHTML(),, 2nd
encodeAsURL(),
executeQuery,
findAllBy*,
findBy*, –2nd
flush(),
get,, 2nd –3rd
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,, 2nd –3rd
onNotAuthenticated(),
pauseAll,
pauseJob,
pauseJobGroup,
purchaseAlbum, –2nd
read,
Realm class,
redirect,, 2nd –3rd
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,, 2nd –3rd, 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,, 2nd –3rd
unidirectional,
one-to-one relationships, –2nd
onLoading event,
onNewAlbum method,, 2nd –3rd
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,, 2nd –3rd
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, 3rd –4th
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,, 2nd –3rd
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,, 2nd –3rd
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,, 2nd –3rd
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,, 2nd –3rd
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,, 2nd –3rd, 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,