- ホーム
- > 洋書
- > 英文書
- > Computer / Languages
Full Description
Groovy and BeyondPlatform!Using the JavaTM platform's new scripting support, you can improve efficiency, streamline your development processes, and solve problems ranging from prototyping to Web application programming. In Scripting in Java, Dejan Bosanac covers key aspects of scripting with Java, from the exciting new Groovy scripting language to Java's new Scripting and Web Scripting APIs.Bosanac begins by reviewing the role and value of scripting languages, and then systematically introduces today's best scripting solutions for the Java platform. He introduces Java scripting frameworks, identifies proven patterns for integrating scripting into Java applications, and presents practical techniques for everything from unit testing to project builds. He supports key concepts with extensive code examples that demonstrate scripting at work in real-world Java projects. Coverage includes* Why scripting languages offer surprising value to Java programmers* Scripting languages that run inside the JVM: BeanShell, JavaScript, and Python* Groovy in depth: installation, configuration, Java-like syntax, Java integration, security, and more* Groovy extensions: accessing databases, working with XML, and building simple Web applications and Swing-based UIs* Bean Scripting Framework: implementation, basic abstractions, and usage examples * Traditional and new patterns for Java-based scripting* JSR 223 Scripting API: language bindings, discovery mechanisms, threading, pluggable namespaces, and more * JSR 223 Web Scripting Framework: scripting the generation of Web content within servlet containersAbout the Web SiteAll code examples are available for download at this book's companion Web site.
Contents
PREFACE XVIIPART I 1BACKGROUND 4DEFINITION OF A SCRIPTING LANGUAGE 8COMPILERS VERSUS INTERPRETERS 8TYPING STRATEGIES 13DATA STRUCTURES 17SUMMARY 23SCRIPTING LANGUAGES AND VIRTUAL MACHINES 24RUNTIME PERFORMANCE 26DEVELOPMENT SPEED 28ROBUSTNESS 29MAINTENANCE 32EXTREME PROGRAMMING 33THE HYBRID APPROACH 35A CASE FOR SCRIPTING 37CONCLUSION 38CHAPTER 2 APPROPRIATE APPLICATIONS FOR SCRIPTING LANGUAGES 39WIRING 40UNIX SHELL LANGUAGES 41PERL 43TCL 43PROTOTYPING 44PYTHON 47CUSTOMIZATION 49VISUAL BASIC FOR APPLICATIONS (VBA) 50SOFTWARE DEVELOPMENT SUPPORT 51PROJECT BUILDING 51TESTING 53ADMINISTRATION AND MANAGEMENT 55USER INTERFACE PROGRAMMING 58TK 58USE CASES 59WEB APPLICATIONS 59SCRIPTING AND UNIX 68ADDITIONAL CHARACTERISTICS 69EMBEDDABLE 70EXTENSIBLE 70CONCLUSION 72PART II 75CHAPTER 3 SCRIPTING LANGUAGES INSIDE THE JVM 77UNDER THE HOOD 80SCRIPTING LANGUAGE CONCEPTS 82BEANSHELL 83GETTING STARTED 83BASIC SYNTAX 86LOOSELY TYPED SYNTAX 87SYNTAX FLAVORS 88COMMANDS 91METHODS 91OBJECTS 92IMPLEMENTING INTERFACES 93EMBEDDING WITH JAVA 94JYTHON 98GETTING STARTED 98BASIC SYNTAX 101WORKING WITH JAVA 103IMPLEMENTING INTERFACES 105EXCEPTION HANDLING 107EMBEDDING WITH JAVA 108CONCLUSION 109RHINO 110GETTING STARTED 110WORKING WITH JAVA 111IMPLEMENTING INTERFACES 112JAVAADAPTER 114EMBEDDING WITH JAVA 114HOST OBJECTS 117CONCLUSION 120GROOVY 120OTHER SCRIPTING LANGUAGES 122JRUBY 122TCL/JAVA 122JUDOSCRIPT 122OBJECTSCRIPT 123CONCLUSION 123CHAPTER 4 GROOVY 125WHY GROOVY? 126INSTALLATION 127RUNNING GROOVY SCRIPTS 127USING THE INTERACTIVE SHELL 127USING THE INTERACTIVE CONSOLE 128EVALUATING THE SCRIPT FILE 129COMPILING GROOVY SCRIPTS 130DEPENDENCIES 131CLASSPATH 131ANT TASK 132SCRIPT STRUCTURE 133COMMAND-LINE ARGUMENTS 136LANGUAGE SYNTAX 137JAVA COMPATIBILITY 137STATEMENTS 138LOOSE TYPING 138TYPE JUGGLING 140STRINGS 143GSTRINGS 145REGULAR EXPRESSIONS 146COLLECTIONS 148LOGICAL BRANCHING 154LOOPING 156CLASSES 159OPERATOR OVERLOADING 162GROOVYBEANS 165CLOSURES 168SYSTEM OPERATIONS 178FILES 178PROCESSES 182EMBEDDING WITH JAVA 184SECURITY 190CONCLUSION 194CHAPTER 5 ADVANCED GROOVY PROGRAMMING 195GROOVYSQL 196groovy.sql.Sql 198groovy.sql.DataSet 209GROOVLETS 212GROOVY TEMPLATES 220GROOVYMARKUP 223groovy.xml.MarkupBuilder 224groovy.util.NodeBuilder 227groovy.xml.SaxBuilder 230groovy.xml.DomBuilder 232groovy.xml.Namespace 234groovy.util.BuilderSupport 235GROOVY AND SWING 236TableLayout 239TableModel 241CONCLUSION 243CHAPTER 6 BEAN SCRIPTING FRAMEWORK 245GETTING STARTED 247BASIC CONCEPTS 248ARCHITECTURE 248MANAGER AND ENGINE INITIALIZATION 252WORKING WITH SCRIPTS 253WORKING WITH SCRIPT FILES 257METHODS AND FUNCTIONS 259call() 259apply() 263DATA BINDING 264REGISTERING BEANS 265DECLARING BEANS 268COMPILATION 270APPLICATIONS 275JSP 275XALAN-J (XSLT) 280CONCLUSION 288PART III 289UNIT TESTING 292JUNIT BASICS 293THE GroovyTestCase CLASS 296ASSERTION METHODS 297TEST SUITES 300SUMMARY 304INTERACTIVE DEBUGGING 304BUILD TOOLS (ANT SCRIPTING) 309BSF SUPPORT 313GROOVYMARKUP (ANTBUILDER) 316SUMMARY 322SHELL SCRIPTING 323CLASSPATH 324EXAMPLE 325ADMINISTRATION AND MANAGEMENT 328CONCLUSION 334CHAPTER 8 SCRIPTING PATTERNS 335SCRIPTED COMPONENTS PATTERN 337PROBLEM 337SOLUTION 338CONSEQUENCES 339SAMPLE CODE 340RELATED PATTERNS 341MEDIATOR PATTERN (GLUE CODE PATTERN) 341PROBLEM 341SOLUTION 342CONSEQUENCES 345SAMPLE CODE 345RELATED PATTERNS 354SCRIPT OBJECT FACTORY PATTERN 354PROBLEM 355SOLUTION 355CONSEQUENCES 356SAMPLE CODE 356RELATED PATTERNS 359OBSERVER (BROADCASTERS) PATTERN 359PROBLEM 359SOLUTION 360CONSEQUENCES 362SAMPLE CODE 362RELATED PATTERNS 369EXTENSION POINT PATTERN 369PROBLEM 369SOLUTION 370CONSEQUENCES 370SAMPLE CODE 371RELATED PATTERNS 374ACTIVE FILE PATTERN 375PROBLEM 375SOLUTION 375CONSEQUENCES 375SAMPLE CODE 376CONCLUSION 380PART IV 383CHAPTER 9 SCRIPTING API 385MOTIVATION AND HISTORY 386INTRODUCTION 388GETTING STARTED 390ARCHITECTURE 391DISCOVERY MECHANISM 391ENGINE METADATA 393CREATING AND REGISTERING SCRIPTING ENGINES 395CREATION METHODS 396REGISTRATION METHODS 399EVALUATION 400ScriptException 403BINDING 404ENGINE SCOPE 405GLOBAL SCOPE 411SCRIPT CONTEXT 416CODE GENERATION 428OUTPUT STATEMENT 429METHOD CALL SYNTAX 429PROGRAM 431ADDITIONAL ENGINE INTERFACES 432INVOCABLE 432COMPILABLE 437THREADING 440DYNAMIC BINDINGS 442CONCLUSION 445CHAPTER 10 WEB SCRIPTING FRAMEWORK 447ARCHITECTURE 448CONTEXT 448SERVLET 449INTERACTION 451GETTING STARTED 453CONFIGURATION 456DISABLE SCRIPTING 456SCRIPT DIRECTORY 457SCRIPT METHODS 458ALLOW LANGUAGES 459DISPLAY RESULT 460BINDINGS 462APPLICATION 462REQUEST 464RESPONSE 468SERVLET 468INCLUDE METHOD 469FORWARD METHOD 471SESSION SHARING 473LANGUAGE TAGS 478THREADING ISSUES 481ARCHITECTURAL CHALLENGES 482CONCLUSION 488PART V 489APPENDIX A GROOVY INSTALLATION 491DOWNLOAD INSTRUCTIONS 491INSTALLING GROOVY 492CONFIGURING GROOVY 492TESTING GROOVY 492APPENDIX B GROOVY IDE SUPPORT 495INSTALLATION 495USAGE 497APPENDIX C INSTALLING JSR 223 499REQUIREMENTS 500INSTALLATION 500INDEX 503