Home > Store > Programming > Java

Scripting in Java: Languages, Frameworks, and Patterns

Register your product to gain access to bonus material or receive a coupon.

Scripting in Java: Languages, Frameworks, and Patterns

Best Value Purchase

Book + eBook Bundle

  • This product currently is not for sale.
  • Includes EPUB, MOBI, and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

More Purchase Options

Book

  • Your Price: $47.99
  • List Price: $59.99
  • Available on demand.

eBook (Watermarked)

  • Your Price: $38.39
  • List Price: $47.99
  • Includes EPUB, MOBI, and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

Description

  • Copyright 2008
  • Dimensions: 7x9-1/4
  • Pages: 552
  • Edition: 1st
  • Book
  • ISBN-10: 0-321-32193-6
  • ISBN-13: 978-0-321-32193-0

Groovy and Beyond: Leverage the Full Power of Scripting on the JavaTM Platform!

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 containers

About the Web Site

All code examples are available for download at this book’s companion Web site.

Sample Content

Downloadable Sample Chapter

Download Chapter 1: Introduction to Scripting

Table of Contents

PREFACE XVII

PART I 1

CHAPTER 1 INTRODUCTION TO SCRIPTING 3

BACKGROUND 4

DEFINITION OF A SCRIPTING LANGUAGE 8

COMPILERS VERSUS INTERPRETERS 8

SOURCE CODE IN PRODUCTION 12

TYPING STRATEGIES 13

DATA STRUCTURES 17

CODE AS DATA 19

SUMMARY 23

SCRIPTING LANGUAGES AND VIRTUAL MACHINES 24

A COMPARISON OF SCRIPTING AND SYSTEM PROGRAMMING 26

RUNTIME PERFORMANCE 26

DEVELOPMENT SPEED 28

ROBUSTNESS 29

MAINTENANCE 32

EXTREME PROGRAMMING 33

THE HYBRID APPROACH 35

A CASE FOR SCRIPTING 37

CONCLUSION 38

CHAPTER 2 APPROPRIATE APPLICATIONS FOR SCRIPTING LANGUAGES 39

WIRING 40

UNIX SHELL LANGUAGES 41

PERL 43

TCL 43

PROTOTYPING 44

PYTHON 47

CUSTOMIZATION 49

VISUAL BASIC FOR APPLICATIONS (VBA) 50

SOFTWARE DEVELOPMENT SUPPORT 51

PROJECT BUILDING 51

TESTING 53

ADMINISTRATION AND MANAGEMENT 55

USER INTERFACE PROGRAMMING 58

TK 58

USE CASES 59

WEB APPLICATIONS 59

SCRIPTING AND UNIX 68

SCRIPTING IN GAMES 68

ADDITIONAL CHARACTERISTICS 69

EMBEDDABLE 70

EXTENSIBLE 70

EASY TO LEARN AND USE 71

CONCLUSION 72

PART II 75

CHAPTER 3 SCRIPTING LANGUAGES INSIDE THE JVM 77

UNDER THE HOOD 80

SCRIPTING LANGUAGE CONCEPTS 82

BEANSHELL 83

GETTING STARTED 83

BASIC SYNTAX 86

LOOSELY TYPED SYNTAX 87

SYNTAX FLAVORS 88

COMMANDS 91

METHODS 91

OBJECTS 92

IMPLEMENTING INTERFACES 93

EMBEDDING WITH JAVA 94

JYTHON 98

GETTING STARTED 98

BASIC SYNTAX 101

WORKING WITH JAVA 103

IMPLEMENTING INTERFACES 105

EXCEPTION HANDLING 107

EMBEDDING WITH JAVA 108

CONCLUSION 109

RHINO 110

GETTING STARTED 110

WORKING WITH JAVA 111

IMPLEMENTING INTERFACES 112

JAVAADAPTER 114

EMBEDDING WITH JAVA 114

HOST OBJECTS 117

CONCLUSION 120

GROOVY 120

OTHER SCRIPTING LANGUAGES 122

JRUBY 122

TCL/JAVA 122

JUDOSCRIPT 122

OBJECTSCRIPT 123

CONCLUSION 123

CHAPTER 4 GROOVY 125

WHY GROOVY? 126

INSTALLATION 127

RUNNING GROOVY SCRIPTS 127

USING THE INTERACTIVE SHELL 127

USING THE INTERACTIVE CONSOLE 128

EVALUATING THE SCRIPT FILE 129

COMPILING GROOVY SCRIPTS 130

DEPENDENCIES 131

CLASSPATH 131

ANT TASK 132

SCRIPT STRUCTURE 133

COMMAND-LINE ARGUMENTS 136

LANGUAGE SYNTAX 137

JAVA COMPATIBILITY 137

STATEMENTS 138

LOOSE TYPING 138

TYPE JUGGLING 140

STRINGS 143

GSTRINGS 145

REGULAR EXPRESSIONS 146

COLLECTIONS 148

LOGICAL BRANCHING 154

LOOPING 156

CLASSES 159

OPERATOR OVERLOADING 162

GROOVYBEANS 165

CLOSURES 168

SYSTEM OPERATIONS 178

FILES 178

PROCESSES 182

EMBEDDING WITH JAVA 184

SECURITY 190

CONCLUSION 194

CHAPTER 5 ADVANCED GROOVY PROGRAMMING 195

GROOVYSQL 196

groovy.sql.Sql 198

groovy.sql.DataSet 209

GROOVLETS 212

GROOVY TEMPLATES 220

GROOVYMARKUP 223

groovy.xml.MarkupBuilder 224

groovy.util.NodeBuilder 227

groovy.xml.SaxBuilder 230

groovy.xml.DomBuilder 232

groovy.xml.Namespace 234

groovy.util.BuilderSupport 235

GROOVY AND SWING 236

TableLayout 239

TableModel 241

CONCLUSION 243

CHAPTER 6 BEAN SCRIPTING FRAMEWORK 245

INTRODUCTION TO THE BEAN SCRIPTING FRAMEWORK 246

GETTING STARTED 247

BASIC CONCEPTS 248

ARCHITECTURE 248

REGISTRATION OF SCRIPTING LANGUAGES 249

MANAGER AND ENGINE INITIALIZATION 252

WORKING WITH SCRIPTS 253

WORKING WITH SCRIPT FILES 257

METHODS AND FUNCTIONS 259

call() 259

apply() 263

DATA BINDING 264

REGISTERING BEANS 265

DECLARING BEANS 268

COMPILATION 270

APPLICATIONS 275

JSP 275

XALAN-J (XSLT) 280

CONCLUSION 288

PART III 289

CHAPTER 7 PRACTICAL SCRIPTING IN JAVA 291

UNIT TESTING 292JUNIT BASICS 293

THE GroovyTestCase CLASS 296

ASSERTION METHODS 297

TEST SUITES 300

SCRIPTS AS UNIT TEST CASES 303

SUMMARY 304

INTERACTIVE DEBUGGING 304

BUILD TOOLS (ANT SCRIPTING) 309

BSF SUPPORT 313

GROOVYMARKUP (ANTBUILDER) 316

SUMMARY 322

SHELL SCRIPTING 323

CLASSPATH 324

EXAMPLE 325

ADMINISTRATION AND MANAGEMENT 328

CONCLUSION 334

CHAPTER 8 SCRIPTING PATTERNS 335

SCRIPTED COMPONENTS PATTERN 337

PROBLEM 337

SOLUTION 338

CONSEQUENCES 339

SAMPLE CODE 340

RELATED PATTERNS 341

MEDIATOR PATTERN (GLUE CODE PATTERN) 341

PROBLEM 341

SOLUTION 342

CONSEQUENCES 345

SAMPLE CODE 345

RELATED PATTERNS 354

SCRIPT OBJECT FACTORY PATTERN 354

PROBLEM 355

SOLUTION 355

CONSEQUENCES 356

SAMPLE CODE 356

RELATED PATTERNS 359

OBSERVER (BROADCASTERS) PATTERN 359

PROBLEM 359

SOLUTION 360

CONSEQUENCES 362

SAMPLE CODE 362

RELATED PATTERNS 369

EXTENSION POINT PATTERN 369

PROBLEM 369

SOLUTION 370

CONSEQUENCES 370

SAMPLE CODE 371

RELATED PATTERNS 374

ACTIVE FILE PATTERN 375

PROBLEM 375

SOLUTION 375

CONSEQUENCES 375

SAMPLE CODE 376

CONCLUSION 380

PART IV 383

CHAPTER 9 SCRIPTING API 385

MOTIVATION AND HISTORY 386

INTRODUCTION 388

GETTING STARTED 390

ARCHITECTURE 391

DISCOVERY MECHANISM 391

ENGINE METADATA 393

CREATING AND REGISTERING SCRIPTING ENGINES 395

CREATION METHODS 396

REGISTRATION METHODS 399

EVALUATION 400

ScriptException 403

BINDING 404

ENGINE SCOPE 405

GLOBAL SCOPE 411

SCRIPT CONTEXT 416

CODE GENERATION 428

OUTPUT STATEMENT 429

METHOD CALL SYNTAX 429

PROGRAM 431

ADDITIONAL ENGINE INTERFACES 432

INVOCABLE 432

COMPILABLE 437

THREADING 440

DYNAMIC BINDINGS 442

CONCLUSION 445

CHAPTER 10 WEB SCRIPTING FRAMEWORK 447

ARCHITECTURE 448

CONTEXT 448

SERVLET 449

INTERACTION 451

GETTING STARTED 453

CONFIGURATION 456

DISABLE SCRIPTING 456

SCRIPT DIRECTORY 457

SCRIPT METHODS 458

ALLOW LANGUAGES 459

DISPLAY RESULT 460

BINDINGS 462

APPLICATION 462

REQUEST 464

RESPONSE 468

SERVLET 468

INCLUDE METHOD 469

FORWARD METHOD 471

SESSION SHARING 473

LANGUAGE TAGS 478

THREADING ISSUES 481

ARCHITECTURAL CHALLENGES 482

INTEGRATION OF JAVA AND PHP APPLICATIONS 482

JAVA BUSINESS LOGIC IN PHP WEB APPLICATIONS 484

PHP VIEWS IN JAVA WEB APPLICATIONS 487

CONCLUSION 488

PART V 489

APPENDIX A GROOVY INSTALLATION 491

DOWNLOAD INSTRUCTIONS 491

INSTALLING GROOVY 492

CONFIGURING GROOVY 492

TESTING GROOVY 492

APPENDIX B GROOVY IDE SUPPORT 495

INSTALLATION 495

USAGE 497

APPENDIX C INSTALLING JSR 223 499

REQUIREMENTS 500

INSTALLATION 500

INDEX 503

Preface

Download the Preface

Index

Download the Index

Updates

Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership