Preface.
Introduction.
I. GETTING STARTED.
1. An Embarrassment of Riches: The Linux
Environment.
What You Will Learn.
The Command Line: What's the Big
Deal?
Basic Linux Concepts and Commands.
Review.
What You Still Don't Know.
Resources.
2. An Embarrassment of Riches: Editors.
What You Will Learn.
Eye to Eye with vi.
Editors Galore.
Review.
What You Still Don't Know.
Resources.
3. An Experienced Programmer's Introduction to
Java.
What You Will Learn.
Fundamental Language Elements.
Using (and Making) Java APIs.
Encapsulation, Inheritance, and
Polymorphism.
O, Templates! Where Art Thou?
Virtually Final.
A Useful Simple Application.
Review.
What You Still Don't Know.
Resources.
Exercises.
4. Where Am I? Execution Context.
What You Will Learn.
A Simple Start.
The SystemClass.
The Properties Class.
The Runtime Class.
Review.
What You Still Don't Know.
Resources.
5. The Sun Microsystems Java Software Development
Kit.
What You Will Learn.
All You Need, and Not One Thing
More.
The Java Compiler.
The Java Runtime Engine.
Complete, Up-to-Date Program Documentation
Made Easy.
Dispensing with Applets.
Going Native.
Introducing RMI.
The Java Debugger.
Return to the Source: The Java
Decompiler.
Bundling a Java Program: Put It in a
JAR.
The Rest of the Toolkit.
Review.
What You Still Don't Know.
Resources.
6. The IBM Developer Kit for Linux, Java 2 Technology
Edition.
What You Will Learn.
Use Linux Features to Make Multiple Java SDKs
Play Nicely Together.
How the IBM JDK Differs from the Sun
JDK.
What Are All These "_g" Versions?
Review.
What You Still Don't Know.
Resources.
7. The GNU Compiler for Java (gcj).
What You Will Learn.
A Brand GNU Way.
The GNU Compiler Collection.
Compiling Our Simple Application with
gcj.
Options and Switches.
Reasons to Use gcj.
Reasons Not to Use gcj.
Review.
What You Still Don't Know.
Resources.
8. Know What You Have: CVS.
What You Will Learn.
Source Control: Whys and Hows.
A GUI: jCVS.
Review.
What You Still Don't Know.
Resources.
9. Ant: An Introduction.
What You Will Learn.
The Need for a Different Build
Tool.
Obtaining and Installing Ant.
A Sample Ant Buildfile.
Review.
What You Still Don't Know.
Resources.
10. Integrated Development Environments.
What You Will Learn.
NetBeans: The Open Source IDE.
SunONE Studio Community Edition.
Eclipse: The Source of SWT.
Review.
What You Still Don't Know.
Resources.
II. DEVELOPING BUSINESS LOGIC.
11. Balancing Acts: An Imaginary Scenario.
What You Will Learn.
Statement of the Need.
How to Develop Software.
What Makes a Good Requirement.
Whom to Ask for Requirements.
Requirements for the Budget
Application.
Documenting, Prototyping, and Stakeholder
Buy-In.
Review.
What You Still Don't Know.
Resources.
Exercises.
12. Analysis and Design: Seeking the Objects.
What You Will Learn.
Facing the Blank Page.
Using CRC Cards.
Finding the Objects.
Finding the Methods and Attributes.
Essential and Nonessential.
Analysis Paralysis.
Real Software Engineering.
Core Classes.
Review.
What You Still Don't Know.
Resources.
Exercises.
13. JUnit: Automating Unit Testing.
What You Will Learn.
JUnit: Why All the Fuss?
Design Then Test Then Code.
Installing and Running JUnit.
Writing Test Cases.
Running Test Suites.
Review.
What You Still Don't Know.
Resources.
Exercises.
14. Storing the Data.
What You Will Learn.
Follow the Objects.
Of Persistence.
Thinking of the Future, or Painting in
Corners.
Oracle, PostgreSQL, MySQL.
Being Self-Contained.
Beyond the Basics.
Persistence Is Not the Whole Story.
Setting Up PostgreSQL for
BudgetPro.
Review.
What You Still Don't Know.
Resources.
Exercises.
15. Accessing the Data: An Introduction to JDBC.
What You Will Learn.
Introducing JDBC.
Making Connections.
Querying Data.
Getting Results.
Updates, Inserts, Deletes.
Review.
What You Still Don't Know.
Resources.
Exercises.
III. DEVELOPING GRAPHICAL USER INTERFACES.
16. Getting in the Swing of Things: Designing a GUI for
BudgetPro.
What You Will Learn.
A Simple Swing Program 342
Stompin' at the Savoy, or The Swing
Paradigm.
Slow, Slow, Quick-Quick, Slow: The Basic Swing
Objects.
Layout Managers.
Beyond Arthur Murray: Actions, Listeners,
Events.
Getting Down to Cases: Designing a GUI for
BudgetPro.
Review.
What You Still Don't Know.
Resources.
Exercises.
17. Other Ways: Alternatives to Swing.
What You Will Learn.
The IBM SWT Toolkit.
Porting BudgetPro to SWT.
SWT and gcj.
Review.
What You Still Don't Know.
Resources.
Exercises.
IV. DEVELOPING WEB INTERFACES.
18. Servlets: Java Pressed into Service.
What You Will Learn.
Servlets: Program-Centric Server-Side
Documents.
Perspective.
How to Write a Servlet.
Input, Output.
Matters of State: Cookies, Hidden
Variables,and the Dreaded Back Button.
Designing a BudgetPro Servlet.
Review.
What You Still Don't Know.
Resources.
Exercises.
19. JSP: Servlets Turned Inside Out.
What You Will Learn.
Servlets Turned Inside Out: JSP.
How to Write a JSP Application.
Using JSP with BudgetPro.
Review.
What You Still Don't Know.
Resources.
Exercises.
20. Open Source Web Application Servers.
What You Will Learn.
Downloading JBoss.
Be an Enabler, or "Let's Be
Codependent!"
Installing JBoss.
Things That Make It Go.
Disposition of Forces.
Apache Geronimo.
Installing Geronimo.
Running the Geronimo Server.
Review.
What You Still Don't Know.
Resources.
V. DEVELOPING ENTERPRISE SCALE
SOFTWARE.
21. Introduction to Enterprise
JavaBeans.
What You Will Learn.
Expanding to EJBs.
What's in a Name? An Introduction to
JNDI.
Review.
What You Still Don't Know.
Resources.
22. Building an EJB.
What You Will Learn.
EJBs: You Don't Know Beans?
Review.
What You Still Don't Know.
Resources.
23. Deploying EJBs.
What You Will Learn.
Lend Me Your EAR: Enterprise Packaging and
Deployment.
Deploying the EAR.
Maintaining a Distributed
Application.
Abstracting Legacy Applications.
Review.
What You Still Don't Know.
Resources.
24. Parting Shots.
The Future's So Bright, I Squint and Look
Confused.
Our Book Is Yours.
Came the Revolution.
What You Still Don't Know.
Resources.
Appendix A. ASCII Chart.
Appendix B. A Java Swing GUI for BudgetPro.
Appendix C. GNU General Public License.
Index.