105. Migrating to Java 6
Version 6.0

Book cover

This course shows Java-1.4 developers the new language features in Java 5 and 6, and, more importantly, illustrates best programming practices as they've been affected by these new features. This is an accelerated course that assumes long experience with earlier versions of Java. Students will leave familiar with various new bits of syntax, and also with an understanding of the exciting new options they have for API design and general-purpose Java 6 coding.


  • Plenty of experience with Java programming using the 1.4 SDK is essential.

Learning Objectives

  • Take advantage of ease-of-use features including the simplified for loop, auto-boxing, and varargs.
  • Use and develop enumerated types, including those with their own state and inherent behavior.
  • Use generics effectively when coding to the Collections API.
  • Develop one's own generic types.
  • Use Java annotations as defined by other APIs, and develop one's own.
  • Understand issues of compatibility and migration in mixed 1.4/5 environments.
  • Develop annotation processors according to the new standard API, and plug them into Java compilers and other tools.
  • Use built-in support for XML binding via JAXB.
  • Use built-in support for web-service clients via JAX-WS.

Timeline: 2 days.

IDE Support: Eclipse Galileo

  • In addition to the primary lab files, an optional overlay is available that adds support for Eclipse Galileo. Students can perform all coding and most testing and debugging tasks from within the IDE. Some testing occurs in external command consoles: testing pluggable annotation processors and hosting web services in the Tomcat server. See also our orientation to Using Capstone's Eclipse Overlays, and please be advised that this is an optional feature; it is not a separate version of the course, and the course itself does not contain explicit Eclipse-specific lab instructions.

Module 1. New Features in Java 5

Chapter 1. Ease-of-Use Features

  • Goals of Java 5
  • Simplified for Loop
  • Variable Parameter Lists
  • Formatted Output
  • Static Imports

Chapter 2. Enumerated Types

  • Native Enumerations
  • Ordinal and String Representations
  • Looping Over Enums
  • Stateful and Behavioral Enumerations

Chapter 3. Generics

  • Using Generics
  • Generics in the Collections API
  • Developing Generic Classes
  • Auto-Boxing
  • Convertability of Generics
  • Wildcards
  • Type Erasure
  • Generic Methods
  • What You Can't Do
  • Strong and Weak Suits

Chapter 4. Annotations

  • Annotations
  • Aspect-Oriented Programming
  • Native Annotations
  • The Java Annotations Model
  • What Can Be Annotated
  • Annotations vs. Descriptors
  • Java EE Annotation Examples

Chapter 5. Compatibility and Migration

  • Compatibility: Compiler and Runtime
  • Mixing 1.4 and 5 Classes
  • Compatibility with Generics: Type Erasure
  • Compatibility with Enumerations and Varargs
  • Migrating 1.4 Code to Java 5
  • Runtime Type Safety with "Checked" Collections

Module 2. New Features in Java 6

Chapter 1. Annotation Processors

  • Pluggable Annotation Processors
  • Processing in Rounds
  • Reading the Type Model
  • Validation
  • Generating Code
  • Reading Resources
  • Creating Source Files

Chapter 2. XML and Web Services APIs

  • The Java API for XML Binding
  • Binding vs. Parsing
  • Generating an Object Model
  • Working with JAXB Object Models
  • JAXB Contexts, Marshallers, and Unmarshallers
  • Interoperable Web Services
  • SOAP and WSDL
  • The Java API for XML Web Services
  • Generating Proxies from WSDL
  • Using Generated Proxies
  • The Role of JAXB
  • Building Client Applications

System Requirements

Hardware Requirements (Minimum) 1.0 GHz, 512 meg RAM, 500 meg disk space.
Hardware Requirements (Recommended) 1.5 GHz, 1 gig RAM, 1 gig disk space.
Operating System Tested on Windows XP Professional. Course software should be viable on all systems which support a Java 6 Developer's Kit.
Network and Security Limited privileges required -- please see our standard security requirements.
Software Requirements All free downloadable tools.