|
|
DAO (Data Access Object) pattern, 257
code portability, 264
helper classes, testing without EJB container, 412
JDBC abstraction framework, 328
sample application data access, 319, 353
BoxOffice interface, 353
calling stored procedures using JDBC, 357
implementing queries using JDBC, 355
implementing updates using JDBC, 356
testing data access, 354
data access
disconnected, 267
EJB tier, 273
entity beans, 274, 285-308
exclusive locking, 301
helper interface business methods, 295
issues, 268-73
JDBC RowSets, 267
JSP pages, 276
local interfaces, 294
locking, 269, 283
middle tier, without EJBs, 275
objectives, 252
optimistic locking, 269
pessimistic locking, 269
relational databases, accessing, 311
O/R mapping technologies, 315
SQL-based database access, 312
sample application, 278-83, 319
DAO pattern, 319, 353
JDBC, 319
servlets, 276
session EJBs, 275
technologies, 25-26
transaction isolation, 268
using EJBs, 22, 24-26
web tier, 276
where to perform (in which tier), 273-78
data binding
description, 492
HttpServletRequestDataBinder class, 505
JSP custom tags, 494
JSP pages, 446
<jsp:setProperty> element, 446
problems with, 446
MultiActionController class, 486
MVC web frameworks, 493
JavaBeans, 493
user input, processing, 492
data integrity
database locking, 302
Data Transfer Object Factory design patterns
implications of using EJB, 21
data validation
business logic and, 496
guidelines for validation, 498
moving operation to data, 656
options for validation, 496
sample application, 498
DefaultUserValidator class, 499
FormController class, 500, 501
semantic data validation, 496
syntactic data validation, 496
user input, processing, 496
DataAccessException class
compared to SQLException class, 328
JDBC abstraction framework, 328
subclasses, 328
CleanupFailureDataAccessException class, 328
DataAccessResourceFailureException class, 328
DataintegrityViolationException class, 329
DeadlockLoserDataAccessException class, 329
InvalidDataAccessApiUsageException class, 329
InvalidDataAccessResourceUsageException class, 329
OptimisticLockingViolationException class, 329
UncategorizedDataAccessException class, 329
DataAccessResourceFailureException class
JDBC abstraction framework, 328
database driven modeling, 253-55
database interaction
testing, 99
database locking, 302
databases
accessing relational databases, 311
O/R mapping technologies, 315
SQL-based database access, 312
configuring databases, 631
DataIntegrityViolationException class
JDBC abstraction framework, 329
DataSource interface
compared to Connection interface, 340
creating connection pool, 597
JdbcTemplate class and, 340
RdbmsOperation class and, 343
writing effective tests, 87
DataSourceUtils class
JDBC abstraction framework, 336
Date class
compared to Timestamp class, 359
Date class, Java.util package
replacing by long object, 659
dateTimeElement() method, FormatHelper class, 701
DeadlockLoserDataAccessException class
JDBC abstraction framework, 329
deadlocks
database locking, 302
debugging
see also logging.
avoiding NullPointerExceptions, 157
code emitting messages, 161
debugging tools, 160
logging, 160
refactoring, 142
declarative exception handling, 461
declarative transaction management
using EJBs, 23
declareParameter() method, RdbmsOperation class, 344
decoupling components
Observer design pattern, 122
decoupling controllers and views, 517, 684
advantages, 517
named view strategy, 517, 684
static attributes, 519
view definitions, 519
View interface, 518
DefaultUserValidator class
implements Validator interface, 499
sample application data validation, 499
denormalization, RDBMS, 263
data access sample application, 281
dependent value classes
EJB 2.0 CMP, 298
deploy sub-directory, JBoss server, 601
service definition files, 601
deploying applications
see also packaging J2EE applications.
choosing application server, 51
configuring server to run application, 596
authentication, 597
creating connection pools, 597
creating JMS destinations, 597
installing libraries, 598
EAR deployment, 584
risk management, 70
sample application
creating connection pools, 602
creating JMS destinations, 603
JBoss deployment descriptors, 605
JBoss server, 601, 607
parameters for deployment, 600
steps in deploying application, 600
Ant build tool, 600
using EJBs, 20
writing proprietary deployment descriptors, 598
deployment descriptors
writing proprietary deployment descriptors, 598
JBoss deployment descriptors, 605
deployment units
EJB JAR files, 584
extended deployment units, 585
packaging J2EE applications, 584
WARs, 584
deserialization
serializable objects, 653
design considerations, J2EE, 19
see also OO design principles.
testing design implications, 105
design patterns
Business Delegate pattern, 423
business methods interface pattern, 386
Command design pattern, 125
Composite Entity pattern, 290
DAO (Data Access Object) pattern, 257
Data Transfer Object Factory design patterns, 21
EJB Command design patterns, 374
enterprise architecture goals, 16
expressing using reflection, 132
Factory design pattern, 136
Fat Key pattern, 293
frameworks compared, 167
Front Controller pattern, 447
Generic Attribute Access design patterns, 21
implications of using EJB, 21
MVC (Model View Controller) pattern, 36-38
Observer design pattern, 122
Prototype design pattern, 141
Seppaku pattern, 303
Service Locator pattern, 418
Session Facade design patterns, 21
Singleton design pattern, 139
Strategy design pattern, 119
Template Method design pattern, 116-20
Value Object Assembler pattern, 266
Value Object J2EE pattern, 149
Visitor design pattern, 241
design-level optimization, 614
compared to code-level optimization, 614
development environment, 59
development tools, choosing, 63-67
Digester, Apache Commons
infrastructure, support packages for, 402
DispatchAction class, org.apache.struts.action package, 461
compared to MultiActionController class, 484
Dispatcher class, org.infohazard.maverick package, 461
display show screen
sample application user interface,, 189
distributed applications
see distributed architecture.
distributed architecture
checked exceptions, 130
entity beans guidelines, 307
J2EE design, 676
performance, 612, 653
application partitioning, 612
collocating components in JVM, 663
minimizing remote calls, 655
moving data efficiently, 658
RMI (Remote Method Invocation), 653
SLSB implementing design patterns, 373
EJB Command, 374
Session Facade, 374
using EJBs, 21
documentation, 158-60
guidelines, 159
self-documentation, 159
summarized, 176
domification
facilitating XML generation, 241
Maverick, 462
using with XPath, 553
using with XSLT, 553
sample application views, 556
Domify open source project, 242
installing, 696
Ant build tool, 696
DomifyTag class, com.interface21.web.tags package, 554
doTransform() method, XsltView class, 698
duplication of code
see code duplication.
durable subscriptions
see subscription durability.
Dynami
edge site caching, 671
dynamic proxies
reflection, 137
|
|