JaVa
   
DAO (Data Access Object) pattern, 257 code portability, 264 helper classes, testing without EJB container, 412 JDBC abstraction framework, 328 sample app 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 app, 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 app, 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 app data validation, 499 denormalization, RDBMS, 263 data access sample app, 281 dependent value classes EJB 2.0 CMP, 298 deploy sub-directory, JBoss server, 601 service definition files, 601 deploying apps see also packaging J2EE apps. choosing app server, 51 configuring server to run app, 596 authentication, 597 creating connection pools, 597 creating JMS destinations, 597 installing libraries, 598 EAR deployment, 584 risk management, 70 sample app creating connection pools, 602 creating JMS destinations, 603 JBoss deployment descriptors, 605 JBoss server, 601, 607 parameters for deployment, 600 steps in deploying app, 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 apps, 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 app user interface,, 189 distributed apps see distributed architecture. distributed architecture checked exceptions, 130 entity beans guidelines, 307 J2EE design, 676 performance, 612, 653 app 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 app 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
JaVa
   
Comments