Jakarta Commons Cookbook

Timothy M. O'Brien

  • 出版商: O'Reilly
  • 出版日期: 2004-12-07
  • 售價: $1,450
  • 貴賓價: 9.5$1,378
  • 語言: 英文
  • 頁數: 400
  • 裝訂: Paperback
  • ISBN: 059600706X
  • ISBN-13: 9780596007065






As a Java developer, you're always looking for tools to help in your web and application development. Maybe you've heard of the Jakarta Commons open source Java tools. The Jakarta Commons is an open source Jakarta subproject where developers create and maintain a collection of twenty-plus independent Java components and utilities that serve useful purposes. Jakarta Commons packages include utilities for web, XML, networking, building and testing applications, and some that help other packages work better together. Jakarta Commons packages are designed to be reusable. Each one is a time saver by itself, and when used in combination the results can be very powerful.

But in searching for information on the Jakarta Commons tools, you find it hard to locate documentation relevant to your needs. You don't have lots of time to spend searching for information on a specific Jakarta Commons tool to determine what it does and how to incorporate it in your code. If you are looking for a single source for clear information and samples on how to use the Jakarta Commons tools, then the Jakarta Commons Cookbook is for you.

The Jakarta Commons Cookbook summarizes each of the available Jakarta Commons packages and contains practical and efficient recipes for making the most out of the Jakarta Commons open source Java tools. You don't have to be an expert, since the book explains how and why to use a utility, pitfalls to avoid, and where to look for additional information on Jakarta Commons utilities. It introduces design possibilities and explores combining Jakarta Commons utilities in novel assemblies to create complex applications. The book offers detailed code samples and insider tips--making it a valuable resource whether you are an expert Java developer or a novice. If you want to quickly learn how to use Jakarta Commons timing-saving utilities or have an invaluable resource for Jakarta Commons questions and techniques, then the Jakarta Commons Cookbook is for you.


Table of Contents:

1. Supplements to the Java 2 Platform
       1.1 Obtaining Commons Lang  
       1.2 Joining the Commons-User Mailing List  
       1.3 Getting the Commons Lang Source Code  
       1.4 Automating the Generation of toString(  ) Content  
       1.5 Customizing Generated toString(  ) Content  
       1.6 Automating hashCode(  ) and equals(  )  
       1.7 Automating compareTo(  )  
       1.8 Printing an Array  
       1.9 Cloning and Reversing Arrays  
       1.10 Transforming Between Object Arrays and Primitive Arrays  
       1.11 Finding Items in an Array  
       1.12 Creating a Map from a Multidimensional Array  
       1.13 Formatting Dates  
       1.14 Rounding Date Objects  
       1.15 Truncating Date Objects  
       1.16 Creating an Enum  
       1.17 Generating Unique Numeric Identifiers  
       1.18 Validation of Method Parameters  
       1.19 Measuring Time  
2. Manipulating Text
       2.1 Setting Up StringUtils and WordUtils  
       2.2 Checking for an Empty String  
       2.3 Abbreviating Strings  
       2.4 Splitting a String  
       2.5 Finding Nested Strings  
       2.6 Stripping and Trimming a String  
       2.7 Chomping a String  
       2.8 Creating an Emphasized Header  
       2.9 Reversing a String  
       2.10 Wrapping Words  
       2.11 Testing the Contents of a String  
       2.12 Measuring the Frequency of a String  
       2.13 Parsing Formatted Strings  
       2.14 Calculating String Difference  
       2.15 Using Commons Codec  
       2.16 Getting the Commons Codec Source Code  
       2.17 Calculating Soundex  
3. JavaBeans
       3.1 Representing Beans Graphically  
       3.2 Obtaining Commons BeanUtils  
       3.3 Getting the Commons BeanUtils Source Code  
       3.4 Accessing Simple Bean Properties  
       3.5 Accessing Nested Bean Properties  
       3.6 Accessing Indexed Bean Properties  
       3.7 Accessing Mapped Bean Properties  
       3.8 Accessing a Simple, Nested, Indexed, and Mapped Bean Property  
       3.9 Determining the Type of a Bean Property  
       3.10 Comparing Beans  
       3.11 Copying Bean Properties  
       3.12 Cloning a Bean  
       3.13 Setting a Bean Property  
       3.14 Testing Property Access  
       3.15 Validating Beans with Predicates  
       3.16 Creating a Map of Bean Properties  
       3.17 Wrapping a Bean with a Map  
       3.18 Creating a Dynamic Bean  
       3.19 Getting and Setting Properties as Strings  
4. Functors
       4.1 Obtaining Commons Collections  
       4.2 Getting the Commons Collections Source Code  
       4.3 Reversing a Comparator  
       4.4 Chaining Comparators  
       4.5 Comparing Nulls  
       4.6 Fixed-Order Comparison  
       4.7 Using Simple Predicates  
       4.8 Writing a Custom Predicate  
       4.9 Creating Composite Predicates  
       4.10 Transforming Objects  
       4.11 Creating a Chain of Transformations  
       4.12 Applying Conditional Transformations  
       4.13 Writing a Closure  
       4.14 Chaining Closures  
       4.15 Modeling Conditional Statements with Closures  
       4.16 Modeling Loops with Closures  
5. Collections
       5.1 Obtaining Commons Collections  
       5.2 Using a Looping Iterator  
       5.3 Iterating Over an ArrayList  
       5.4 Filtering a Collection with a Predicate  
       5.5 Iterating Through Distinct Elements  
       5.6 Using a Bag  
       5.7 Using a Buffer  
       5.8 Creating a Priority Queue  
       5.9 Using a Blocking Buffer  
       5.10 Storing Multiple Values in a Map  
       5.11 Retrieving a Key by a Value  
       5.12 Using a Case-Insensitive Map  
       5.13 Creating Typed Collections and Maps  
       5.14 Constraining Map Values  
       5.15 Constraining List Contents  
       5.16 Transforming Collections  
       5.17 Creating a Least Recently Used Cache  
       5.18 Using a Lazy Map  
       5.19 Counting Objects in a Collection  
       5.20 Performing Set Operations  
       5.21 Retrieving Map Values Without Casting  
6. XML
       6.1 Obtaining Jakarta Commons Digester  
       6.2 Turning XML Documents into Objects  
       6.3 Namespace-Aware Parsing  
       6.4 Creating a Simple XML Command Language  
       6.5 Variable Substitution and XML Parsing  
       6.6 Obtaining Jakarta Commons Betwixt  
       6.7 Turning Beans into XML Documents  
       6.8 Customizing XML Generated from an Object  
       6.9 Turning XML Documents into Beans  
7. Application Infrastructure
       7.1 Obtaining Commons CLI  
       7.2 Parsing a Simple Command Line  
       7.3 Parsing a Complex Command Line  
       7.4 Printing Usage Information  
       7.5 Obtaining Commons Configuration  
       7.6 Configuring Applications with Properties Files  
       7.7 Configuring Applications with XML  
       7.8 Using Composite Configuration  
       7.9 Obtaining Commons Logging  
       7.10 Using an Abstract Logging Interface  
       7.11 Specifying a Logging Implementation  
       7.12 Obtaining Apache Log4J  
       7.13 Configuring Log4J with a Properties File  
       7.14 Configuring Log4J with XML  
8. Math
       8.1 Using Fractions  
       8.2 Finding the Maximum and Minimum in an Array  
       8.3 Using Number Ranges  
       8.4 Generating Random Variables  
       8.5 Obtaining Commons Math  
       8.6 Calculating Simple Univariate Statistics  
       8.7 Solving a System of Linear Equations  
       8.8 Arithmetic with Complex Numbers  
       8.9 Establishing Relationships Between Variables  
       8.10 Estimating the Amount of Time Left in a Process  
9. Templating
       9.1 Obtaining Commons JEXL  
       9.2 Using an Expression Language  
       9.3 Invoking Methods in an Expression  
       9.4 Externalizing Logic with an Expression Language  
       9.5 Obtaining Jakarta Velocity  
       9.6 Using a Simple Templating Language  
       9.7 Writing Templates with Conditionals and Loops  
       9.8 Using Macros in a Templating Engine  
       9.9 Invoking Methods in a Template  
       9.10 Obtaining FreeMarker  
       9.11 Using a Complex Scripting Engine  
       9.12 Accessing XML Documents from a Templating Engine  
       9.13 Using Velocity in a Web Application  
       9.14 Using FreeMarker in a Web Application  
       9.15 Writing Templates in Eclipse  
10. I/O and Networking
       10.1 Obtaining Commons IO  
       10.2 Copying Streams, byte[ ], Readers, and Writers  
       10.3 Closing Streams, Readers, and Writers  
       10.4 Printing a Human-Readable File Size  
       10.5 Copying Files, Strings, and URLs  
       10.6 Deleting Directories Recursively  
       10.7 Obtaining the Size of a Directory  
       10.8 Touching a File  
       10.9 Filtering Files  
       10.10 Measuring Stream Traffic  
       10.11 Splitting an OutputStream  
       10.12 Obtaining Jakarta ORO  
       10.13 Using Globs and Perl5 Regular Expressions to List Files  
       10.14 Obtaining Commons Net  
       10.15 Writing an FTP Client  
       10.16 Sending Mail with SMTP  
       10.17 Checking a POP3 Mailbox  
11. HTTP and WebDAV
       11.1 Obtaining Jakarta HttpClient  
       11.2 Getting Jakarta HttpClient Source Code  
       11.3 Performing an HTTP GET  
       11.4 Sending Parameters in a Query String  
       11.5 Retrieving Content with a Conditional GET  
       11.6 Debugging HTTP Communications  
       11.7 Making an HTTP POST Request  
       11.8 Sending POST Data from a File  
       11.9 Uploading Files with a Multipart POST  
       11.10 Basic Authentication  
       11.11 NTLM Authentication  
       11.12 Working with Cookies  
       11.13 Handling Redirects  
       11.14 SSL  
       11.15 Accepting a Self-Signed Certificate  
       11.16 Obtaining Jakarta Slide  
       11.17 Connecting to WebDAV Resources  
       11.18 Modifying a WebDAV Resource  
12. Searching and Filtering
       12.1 Obtaining Commons JXPath  
       12.2 Querying an Object Graph with XPath  
       12.3 Search a Collection of Simple Objects  
       12.4 Applying XPath Queries to Complex Object Graphs  
       12.5 Obtaining Jakarta Lucene  
       12.6 Creating an Index of XML Documents  
       12.7 Searching for a Specific Term in a Document Index  
       12.8 Finding the Frequency of Terms in an Index