Thứ Năm, 14 tháng 4, 2011

JAXB/xjc Java Generation with DTD

It is probably safe to assume that the majority of people who use JAXB today use the xjc compiler to create Java classes from XML Schema files rather than from Document Type Definition (DTD) files. However, I had a colleague ask not too long about about generating of Java objects from DTD using JAXB and in this post I look briefly at doing just that.

The next screen snapshot demonstrates that I'm using JDK 1.7.0 build 134 and its associated JAXB 2.2.3 implementation's xjc for the examples in this post.


This is the version of JAXB included with Java 7 (JAXB was also delivered with Sun's Java SE 6 JVM). The next screen snapshot shows the xjc binding compiler's usage statement with the part about DTD support highlighted.


The last screen snapshot tells us that xjc can generate Java classes from DTD by specifying the -dtd option. However, it also warns us that this DTD support is "experimental" and "unsupported."

For my simple example, I'm going to use a well-known DTD: log4j.dtd.

It is very simple to use xjc with a DTD. The following command, for example, will generated Java classes based on the log4j.dtd:
xjc -dtd -d generatedsrc -p dustin.examples log4j.dtd

This examples places the generated Java classes in a subdirectory called generatedsrc and creates subdirectories dustin\examples so that these generated classes are part of the dustin.examples package. The next screen snapshot proves that this worked.


It is often preferable to include generation of Java classes as part of an Ant build rather than from the command-line. The JAXB reference implementation includes support for a custom Ant task called xjc. The following snippet of XML code demonstrates using this custom task to generate Java files from the same log4j.dtd as used before.

   <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
<classpath>
<fileset dir="C:\Users\Dustin\Downloads\jaxb-ri-20110412\lib"
includes="jaxb-xjc.jar" />
</classpath>
</taskdef>

<target name="generateLog4jJavaClasses"
description="Generate Java classes from DTD with JAXB's xjc">
<property name="ant.xjc.target.dir" value="antgenerateddir" />
<mkdir dir="${ant.xjc.target.dir}" />
<xjc destdir="${ant.xjc.target.dir}" package="dustin.examples"
schema="log4j.dtd">
</xjc>
</target>

When I only use the JAXB/xjc included with the Java SE 7 distribution, the XJCTask class is not readily available to support the xjc Ant task. To use this, I need to download the reference implementation, which does provide the JAR with the XJCTask class. I like to match the same version of the JAXB RI as is included with the Java distribution when possible. That's JAXB 2.2.3 in this case (Java SE 7). The executable JAR JAXB2_20110412.jar unzips its contents into a new subdirectory (C:\Users\Dustin\Downloads\jaxb-ri-20110412 in this case). The XJCTask class needed for the Ant custom task is in the JAR file (jaxb-xjc.jar) and directory (C:\Users\Dustin\Downloads\jaxb-ri-20110412\lib) provided specified in the taskdef. However, the above XML does not include any reference to DTD type and the output from trying to build with it is shown next.


The WARNING message ["Are you trying to compile DTD? Support for DTD is experimental. You may enable it by using the -dtd option."] is pretty good at hinting at what is likely the problem (schema is DTD rather than XML schema that is expected by default). The xjc Ant task needs to be told that a DTD is being used (similar to passing -dtd to command-line as done earlier). This is added to the build.xml file so that the relevant portion now looks like that shown in the next code listing.

   <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
<classpath>
<fileset dir="C:\Users\Dustin\Downloads\jaxb-ri-20110412\lib"
includes="jaxb-xjc.jar" />
</classpath>
</taskdef>

<target name="generateLog4jJavaClasses"
description="Generate Java classes from DTD with JAXB's xjc">
<property name="ant.xjc.target.dir" value="antgenerateddir" />
<mkdir dir="${ant.xjc.target.dir}" />
<xjc destdir="${ant.xjc.target.dir}" package="dustin.examples"
schema="log4j.dtd">
<arg value="-dtd" />
</xjc>
</target>

This does the trick.



Conclusion

It isn't much more difficult to generate Java with JAXB from a DTD than it is from an XSD with the most significant difference being the addition of the simple -dtd parameter. Of course, there are other differences in the results because of the significantly less descriptive ability of the DTD when compared to XML Schema. However, if a DTD is what one has available, JAXB's xjc binding compiler can make use of it to generate compliant Java classes.

Thứ Ba, 12 tháng 4, 2011

Java Magazine

Tori Wieldt posted yesterday that Java Magazine is Coming! According to Tori's post, this digital magazine will "contain articles direct from Java engineers at Oracle as well as the Java community at large." The post also lists general topics that will be covered:
  • Java News
  • Java in Action
  • New to Java
  • Enterprise Java
  • Polyglot Programming
  • Rich Client/Web Development
  • Mobile/Embedded Development

It appears that, like Oracle Magazine, each issue of Java Magazine will cover two months. Indeed, the inclusion of "Java application stories" (falls under category of "Java in Action") and the other categories listed above implies that the layout is much the same as Oracle Magazine, but with a Java focus. The inaugural edition is advertised for July 2011.

The announcement for the free (but requires registration) digital subscription is also available in Bob Rhubart's blog post New Java Magazine.

Thứ Hai, 11 tháng 4, 2011

Viewing a JAR's Manifest File

I like the blog post Viewing the MANIFEST.MF from a jar in a single command because it covers a common development environment need many Java developers will run into from time to time and because it covers a nice tip for handling this common need. The post looks specifically at how to use Linux unzip command with its -p option to display the contents of a JAR file's MANIFEST.MF file to sdtout in a single command and without any new files that need to be cleaned up.


Linux unzip -p

The post "Viewing the MANIFEST.MF from a jar in a single command" provides an example of how to use the Linux unzip command and its -p option. I adjust that example slightly for my own example here that I will use in demonstrating several ways to access the contents of the MANIFEST.MF file. For my example, I will be looking at the MANIFEST.MF file contained in the jdiff.jar I have built locally on my system. Although JDiff comes with a pre-built JAR, I have been building and using it locally with Java 7 and thought it provided as good as any JAR upon which to try viewing the manifest file. This JAR's manifest file can be viewed in Linux with the following unzip command:
unzip -p jdiff.jar META-INF/MANIFEST.MF

Because the -p option specifies that the unzip command should write its output to standard output rather than to an actual file, there is no need to clean up any files.


Brute Force jar Approach

The author of the blog post "Viewing the MANIFEST.MF from a jar in a single command" mentions that the "old way" to view a manifest file was often to create a temporary directory, copy the JAR of interest into that temporary directory, change directory to that temporary directory, unzip the JAR file's contents, view the file of interest, and then remove the temporary directory. That post demonstrates the commands that would be done for this approach.


Slightly Less Brute Force jar Approach

Fortunately, the jar command provides a few places to make things a little easier. Specifically, jar allows us to explicitly specify a subset of files we want extracted. This means that instead of making a temporary directory to hold all the extra stuff that we don't want to clutter our current directory, we could simple extract the single file with the jar command and this is often acceptable if it's only one file. This is shown in the next screen snapshot.


The steps shown above aren't too onerous. The single file is extracted with the command
jar xvf jdiff.jar META-INF/MANIFEST.MF
and then all that's left to be done is to run a command like (in DOS)
type META-INF\MANIFEST.MF
(cat or less or more could be used in Linux). The only residue left from this is a META-INF directory with the desired MANIFEST.MF file inside of it, but there is still something left to be removed.


Firefox

The Firefox web browser can render more than simple HTML and text files as is demonstrated in the post View Contents of ZIP/JAR File using Firefox. That post demonstrates a simple example using Firefox 3, but this feature is also available in Firefox 4 as shown in the next three screen snapshots that show opening of the JAR, drilling down into the META-INF directory and then displaying the contents of the MANIFEST.MF file.




The screen snapshots shown above demonstrate how easy it is to see the contents of the JAR in the Firefox web browser! The only "special" treatment of the URL required was to specify jar:file// at the beginning of the URL and to end it with a exclamation point. In my case, it was:
jar:file:///C:/jdiff-1.1.1/jdiff.jar!/
and the more general syntax is:
jar:file://<path_to_jar_file>!


NetBeans IDE

The Java IDEs are obvious choices for easily seeing the contents of a manifest file. The following screen snapshot demonstrates viewing the manifest file. This was easily brought up in NetBeans by simply using File --> Open File and selecting jdiff.jar to have it displayed as shown in the next screen snapshot.



JDeveloper IDE

Other Java IDEs provide similarly easy-to-use viewing of manifest files within a JAR. The next snapshot demonstrates this for JDeveloper, which allows one to see a JAR file's contents by selecting File --> Open to open the JAR file.



Eclipse IDE

If a JAR is on an Eclipse project's build path, it can be opened up to see the JAR's contents as shown in the next screen snapshot.



Groovy

When it comes to the tools for Java development, Groovy is never far from my mind as a source for building useful tools. The next code listing shows a simple Groovy script that makes use of Java's JAR-handling classes JarFile, Manifest, and Attributes to print the contents of a given JAR's manifest file to standard output.

displayManifest.groovy
#!/usr/bin/env groovy

/**
* displayManifest.groovy
*
* displayManifest <<path_to_jar_file_with_desired_manifest>>
*
* This script displays the manifest file of the specified JAR file.
*
* This script is written to be very simplistic. It doesn't check to ensure that
* the provided file is a JAR or ZIP file and, in fact, doesn't even check that
* a file is passed on the command-line.
*/
new java.util.jar.JarFile(args[0]).manifest.mainAttributes.entrySet().each
{
println "${it.key}: ${it.value}"
}

Most of the above Groovy script is comments. When the comments are removed, it boils down to a very small piece of code. It's true that it lacks any type of usage enforcement to ensure that a JAR file is provided, but it does the job as long as one provides a valid JAR file as the first argument to the script.


Conclusion

This post has demonstrated several different approaches to viewing a JAR's manifest file. Each approach has different advantages and disadvantages. A Java developer's IDE is conveniently available and often can be just what the developer desires. However, if the developer wishes to view the contents of a manifest file outside of the IDE, the are operating-system specific tools like unzip -p that can be used, jar can always be used directly even if brute force is required, and Groovy can be used to write a very simple script that takes advantage of Java's java.util.jar package. Another ubiquitous tool that can be used to view JAR file contents is the Firefox web browser.

Thứ Bảy, 9 tháng 4, 2011

Java Development Posts of Interest - 9 April 2011

I ran across several articles and blog posts this past week that I believe deserve specific mention. In this post, I reference these resources and provide a quick summary of what I found interesting about them. The referenced posts and articles are largely Java-focused, but cover topics such as cloud computing, Scala, Java 7, polyglot programming, and consultants versus internal developers.


Twitter Changes: Lucene and Java

The post Twitter Search is Now 3x Faster discusses how Twitter's new search architecture uses Lucene and a Java/Netty-based server called Blender.

This post is interesting for a variety of reasons. First, it gives a glimpse into the architecture behind Blender, which is a Java-powered implementation. There is discussion about why such significant performance improvements were seen and how Netty aided the process.

A second reason this post is interesting to me is that the migration discussed in this post is from two most favored open source products (Ruby on Rails and MySQL). I think this is a good illustration of how the correct tool should be selected for the job. The folks at Twitter obviously had good reasons for choosing Ruby on Rails for their search functionality, but the need for improved performance and better scaling has eventually trumped those reasons and they have moved to Lucene/Java/Netty/Blender.

Ruby on Rails has been trendy since the mid-2000s and there are still some people who feel compelled to write about its advantages over Java (even though it's kind of like comparing apples and oranges because Java SE/EE cover far more ground than does Ruby on Rails). There's lots to like about Rails and Rails popularized some concepts that numerous languages (including Java) and frameworks have benefited from. I like Ruby even more than I like Ruby on Rails, but the Twitter story is a reminder that nothing is best in all cases, no matter what the "experts" may tell you and the consultants may sell you.


Software Developers: Big Leagues and Minor Leagues

Although the post Consultants are pros, while corporate IT staff are minor leaguers and a response post Consultants are no better than internal IT departments are specifically about IT departments, but the discussion could easily be applied to software development as well. Any time one makes blanket statements about one group being better than another, there is likely to be good arguments made against that position. For example, I have known and worked with some brilliant and highly skilled consultants and I have also worked and known some brilliant and highly skilled internal software developers. Similarly, I have observed both consultants and internal developers who waste their own and others' time because they lack experience and skill.

Software development consultants do tend to have some of the advantages discussed in Erik Eckel's post Consultants are pros, while corporate IT staff are minor leaguers. I think it is typically (though not always the case) for a developer consultant to have experience with a wider breadth of technologies, libraries, languages, and frameworks than an internal developer. That's not always an advantage. Many of the development consultants I've seen in action are really good at a lot of things as long as you don't need to dive too deeply into those areas. Once you start getting into the everyday grind of bug fixes, maintenance, and just making things really work in a real environment, the consultant has often moved onto his or her next gig and doesn't need to mess with the deep and very thorny issues the internal developer faces.

The best developers I've known are a mix of consultants and internal developers. They share many traits more strongly than their classification as a consultant or as an internal developer. There is always a danger to stereotyping and this is evidence of that. I have known too many good internal developers who can compete with any consulting developer to make a blanket statement stereotyping consultant developers as major leaguers and internal developers as minor leaguers.


Open Source License Flow Chart

Speaking of open source, the OSS License flow chart combines humor with a large dose of truth to present an interesting method for determining which open source license to apply to one's pet open source project. The plethora of open source licenses have made developing and using open source products more difficult than doing so probably should be. Even with its humorous approach, this flow chart is somewhat helpful in differentiating the licenses to a small degree.


The Well-Grounded Java Developer

The forthcoming book The Well-Grounded Java Developer has recently received significant coverage. I've been excited about its content summarized in its subtitle ("Java 7 and Polyglot Programming on the JVM") and in its table of contents and I pre-ordered it as part of the Manning Early Access Program several weeks ago. Java 7 and use of non-Java languages such as Groovy, Scala, and Clojure are among the most popular topics in the land of Java and are the featured topics of this book.

DZone/JavaLobby featured an interview with the authors in James Sugrue's DZone Meets The Well-Grounded Java Developers. This article features questions and answers with Ben Evans and Martijn Verburg that cover topics such as their respective favorite features in Java 7. The post also references the authors' presentation Back to the Future with Java 7. Although I have not yet had the opportunity to review the chapters of their book already available as part of Manning's MEAP, I look forward to the book's completion based on the contents of the first chapter (available online for free review) that covers Java 7 features, based on their Java 7 Developer Blog, and based on Martijn's feedback on some of my blog posts.


Java and the Cloud

Besides Java 7 and polyglot programming, one other very significant topic often covered in relation to Java (and to software development in general) is cloud computing. Given this, I'm interested to see the posts that follow Sylvain Francois's Overview of Java development on the Cloud. The best description of this post and advertised follow-on posts comes from the post itself:
This first post aims to clarify and introduce the key concepts of development on Cloud in order to give a comprehensive view of the market with a focus on solutions announced last weeks in the Java ecosystem: Amazon Elastic Beanstalk, CloudBees, eXo Cloud IDE ... The next posts will focus on some of these solutions or certain types of uses.

Not everyone thinks the cloud is all that, but many do and it will be interesting to see more coverage of Java used in cloud computing.


Guardian Switching from Java to Scala

Similar to the post about Twitter switching its search architecture from MySQL/Ruby on Rails to Lucene/Java, the announcement that http://www.guardian.co.uk/ is switching from Java to Scala is interesting from the perspective, "What are the reasons for the change?" The InfoQ coverage of specifically mentions the switch to Scala for these reasons: "deliver functionality faster" and favoring Scala over Java after writing integration tests in Scala while writing main functionality in Java.

It's quite interesting to read other thoughts and motivating factors on this move to Scala (which is far from complete at this point and it sounds like new stuff is the focus of Scala at this point). I found the following quote about Scala adoption by experienced Java developers interesting and very similar to my experience with Java developers and Groovy:
One of the things we compare learning Scala against is moving to a different platform like Python/Django or Ruby on Rails. With Scala, at least 75% of what you're working with is the same as in Java. You can use the same libraries and IDE, the way you package jars and wars is the same, your runtime environment and runtime characteristics are the same. A good Java developer can learn to write Java-style code in Scala in a day, then they learn the power of closures and implicit conversions and very soon they're more productive than they were in Java.


Conclusion

It is impossible to read all posts and articles of interest out there, but the posts covered above are ones I think are well worth the read.

Thứ Hai, 4 tháng 4, 2011

Groovy Script for Comparing Javadoc Versions

This blog post contains a code listing for Groovy code that can be used to compare new or removed Javadoc files between major versions of the Java SDK. After the code is shown, I list the output of the script comparing JDK 1.3 to JDK 1.4, comparing JDK 1.4 to J2SE 5, comparing J2SE 5 to Java SE 6, and comparing Java SE 6 to Java SE 7.

Christian Ullenboom, in a feedback comment on my post JDK 7: New Interfaces, Classes, Enums, and Methods, pointed out a much fancier approach for determining API changes between various versions of Java. He referenced the LGPL-licensed project jdiff, which is described on its main page as "An HTML Report of API Differences." This tool can be used to compare two versions of any Java product and is not limited to comparing the Java SDKs. It is much more elaborate than what I'm showing here because it presents the results in HTML format and provides statistics.

Athough jdiff is obviously the Cadillac of differencing versions, I decided to post this simple Groovy script anyway because I think it provides a nice example of some of Groovy's features. Additionally, it's a nice, lightweight approach to analyzing API additions and removals between major versions of Java. Unlike jdiff, this simple script does not analyze field-level or method-level changes (modifications, removals, additions). An advantage of this approach is that only the Javadoc documentation readily available online is used with no need for access to the source code or class files of the two versions.

diffJdkVersionsJavadocs.groovy
#!/usr/bin/env groovy
// diffJdkVersionsJavadocs.groovy

def cli = new CliBuilder(
usage: 'diffJdkVersionsJavadocs -o <version_number> -n <version_number>',
header: '\nAvailable options (use -h for help):\n',
footer: '<version_number> should be one of the following:\n3 (JDK 1.3)\n4 (JDK 1.4)\n5 (J2SE 5)\n6 (Java SE 6)\n7 (Java SE 7)')
import org.apache.commons.cli.Option
cli.with
{
h(longOpt: 'help', 'Usage Information', required: false)
o(longOpt: 'old', 'Old Version', args: 1, required: true, type: Integer)
n(longOpt: 'new', 'New Version', args: 1, required: true, type: Integer)
}
def opt = cli.parse(args)

if (!opt) return
if (opt.h) cli.usage()

@Grab(group='org.ccil.cowan.tagsoup', module='tagsoup', version='0.9.7')

def versionMap = [3 : "JDK 1.3", 4 : "JDK 1.4", 5 : "J2SE 5", 6 : "Java SE 6", 7 : "Java SE 7"]

def javadocMap = [(versionMap.get(7)) : "http://download.oracle.com/javase/7/docs/api/allclasses-frame.html",
(versionMap.get(6)) : "http://download.oracle.com/javase/6/docs/api/allclasses-frame.html",
(versionMap.get(5)) : "http://download.oracle.com/javase/1.5.0/docs/api/allclasses-frame.html",
(versionMap.get(4)) : "http://download.oracle.com/javase/1.4.2/docs/api/allclasses-frame.html",
(versionMap.get(3)) : "http://download.oracle.com/javase/1.3/docs/api/allclasses-frame.html"]

def oldVersion = extractVersionStringFromChoice(opt.o, versionMap.get(6), versionMap)
def newVersion = extractVersionStringFromChoice(opt.n, versionMap.get(7), versionMap)

def first = javadocMap.get(newVersion)
def firstDescription = newVersion
def second = javadocMap.get(oldVersion)
def secondDescription = oldVersion

def firstXml = new XmlParser(new org.ccil.cowan.tagsoup.Parser()).parse(first)
def firstUrls = firstXml.'**'.a.@href

def secondXml = new XmlParser(new org.ccil.cowan.tagsoup.Parser()).parse(second)
def secondUrls = secondXml.'**'.a.@href

println "${firstDescription} URLs found: ${firstUrls.size()}"
println "${secondDescription} URLs found: ${secondUrls.size()}"

compareSetsOfStrings(secondUrls, secondDescription, firstUrls, firstDescription)


/**
* Extract a version String from the provided Integer-based choice. If the
* provided Choice is not an Integer, the provided default String is returned.
*
* @param userChoice Choice that should resolve to an Integer.
* @param defaultString String to be returned if provided Choice is not an
* Integer.
* @param versions Mapping of integers to version Strings.
*
* @return Version string.
*/
def String extractVersionStringFromChoice(
Object userChoice, String defaultString, Map<Integer, String> versions)
{
def choice = 0
try
{
choice = userChoice != null ? userChoice as Integer : 0
}
catch (NumberFormatException nfe)
{
choice = 0
println "'${userChoice}' is not and cannot be converted to an Integer; using '${defaultString}'"
}
def versionString = (choice < 3 || choice > 7) ? defaultString : versions.get(choice)
return versionString
}


/**
* Compare first Collection of Strings to second Collection of Strings by
* identifying which Strings are in each Collection that are not in the other.
*
* @param firstStrings First Collection of Strings to be compared.
* @param firstDescription Description of first Collection of Strings.
* @param secondStrings Second Collection of Strings to be compared.
* @param secondDescription Description of second Collection of Strings.
*/
def void compareSetsOfStrings(
Collection<String> firstStrings, String firstDescription,
Collection<String> secondStrings, String secondDescription)
{
println "Constructs in ${firstDescription} But Not in ${secondDescription}"
def firstButNotSecond = firstStrings - secondStrings
printIndentedStrings(firstButNotSecond)

println "Constructs in ${secondDescription} But Not in ${firstDescription}"
def secondButNotFirst = secondStrings - firstStrings
printIndentedStrings(secondButNotFirst)
}


/**
* Print the provided Strings one per line indented; prints "None" if the
* provided List of Strings is empty or null.
*
* @param strings The Strings to be printed
*/
def void printIndentedStrings(Collection<String> strings)
{
if (!strings?.isEmpty())
{
new TreeSet(strings).each
{
println "\t${it}"
}
}
else
{
println "\tNone"
}
}

The above script shows off many Groovy niceties:

That simple script has a whole lot of Groovy goodness!

The script is run with the -o ("old" version) option specifying an integral numeral between 3 and 7 a similar -n option with the same range specifying the "new version." It doesn't matter to the script if the "old" version is higher than the "new" version or even the same, but the output is likely to be more appealing if the "new" version is the later version. The script's command-line usage informs the user of which versions of the Java SDK correspond to the integers 3 through 7. This is shown in the next screen snapshot in which the usage is shown because I failed to provide the required options -o and -n.


The output above indicates that "3" should be provided for JDK 1.3, "4" for JDK 1.4, "5" for J2SE 5, "6" for Java SE 6, and "7" for Java SE 7. In the remainder of this post, I run the script and list its output for comparing consecutive versions (1.3 to 1.4, 1.4 to 1.5, 1.5 to 1.6, and 1.6 to 1.7).


Java SE 6 and Java SE 7

The script I listed and demonstrated in JDK 7: New Interfaces, Classes, Enums, and Methods more completely compared Java SE 6 and Java SE 7 than the script in this post does. That post, as well as kellyrob99's enhanced version, showed Javadoc files for which even methods or fields had been marked with "1.7." The script featured in this post focuses solely on Javadoc files added or removed from one version to the next and does not count modified files or new/changed/deleted methods or fields.

Java SE 7 URLs found: 4020
Java SE 6 URLs found: 3793
Constructs in Java SE 6 But Not in Java SE 7
None
Constructs in Java SE 7 But Not in Java SE 6
java/awt/GraphicsDevice.WindowTranslucency.html
java/awt/SecondaryLoop.html
java/awt/Window.Type.html
java/awt/font/NumericShaper.Range.html
java/beans/Transient.html
java/dyn/CallSite.html
java/dyn/ClassValue.html
java/dyn/ConstantCallSite.html
java/dyn/InvokeDynamicBootstrapError.html
java/dyn/Linkage.html
java/dyn/MethodHandle.html
java/dyn/MethodHandles.Lookup.html
java/dyn/MethodHandles.html
java/dyn/MethodType.html
java/dyn/MutableCallSite.html
java/dyn/SwitchPoint.html
java/dyn/VolatileCallSite.html
java/dyn/WrongMethodTypeException.html
java/lang/AutoCloseable.html
java/lang/Character.UnicodeScript.html
java/lang/ProcessBuilder.Redirect.Type.html
java/lang/ProcessBuilder.Redirect.html
java/lang/ReflectiveOperationException.html
java/lang/SafeVarargs.html
java/lang/management/PlatformManagedObject.html
java/net/ProtocolFamily.html
java/net/SocketOption.html
java/net/StandardProtocolFamily.html
java/net/StandardSocketOption.html
java/nio/BufferPoolMXBean.html
java/nio/channels/AcceptPendingException.html
java/nio/channels/AlreadyBoundException.html
java/nio/channels/AsynchronousByteChannel.html
java/nio/channels/AsynchronousChannel.html
java/nio/channels/AsynchronousChannelGroup.html
java/nio/channels/AsynchronousFileChannel.html
java/nio/channels/AsynchronousServerSocketChannel.html
java/nio/channels/AsynchronousSocketChannel.html
java/nio/channels/CompletionHandler.html
java/nio/channels/IllegalChannelGroupException.html
java/nio/channels/InterruptedByTimeoutException.html
java/nio/channels/MembershipKey.html
java/nio/channels/MulticastChannel.html
java/nio/channels/NetworkChannel.html
java/nio/channels/ReadPendingException.html
java/nio/channels/SeekableByteChannel.html
java/nio/channels/ShutdownChannelGroupException.html
java/nio/channels/WritePendingException.html
java/nio/channels/spi/AsynchronousChannelProvider.html
java/nio/file/AccessDeniedException.html
java/nio/file/AccessMode.html
java/nio/file/AtomicMoveNotSupportedException.html
java/nio/file/ClosedDirectoryStreamException.html
java/nio/file/ClosedFileSystemException.html
java/nio/file/ClosedWatchServiceException.html
java/nio/file/CopyOption.html
java/nio/file/DirectoryIteratorException.html
java/nio/file/DirectoryNotEmptyException.html
java/nio/file/DirectoryStream.Filter.html
java/nio/file/DirectoryStream.html
java/nio/file/FileAlreadyExistsException.html
java/nio/file/FileStore.html
java/nio/file/FileSystem.html
java/nio/file/FileSystemAlreadyExistsException.html
java/nio/file/FileSystemException.html
java/nio/file/FileSystemLoopException.html
java/nio/file/FileSystemNotFoundException.html
java/nio/file/FileSystems.html
java/nio/file/FileVisitOption.html
java/nio/file/FileVisitResult.html
java/nio/file/FileVisitor.html
java/nio/file/Files.html
java/nio/file/InvalidPathException.html
java/nio/file/LinkOption.html
java/nio/file/LinkPermission.html
java/nio/file/NoSuchFileException.html
java/nio/file/NotDirectoryException.html
java/nio/file/NotLinkException.html
java/nio/file/OpenOption.html
java/nio/file/Path.html
java/nio/file/PathMatcher.html
java/nio/file/Paths.html
java/nio/file/ProviderMismatchException.html
java/nio/file/ProviderNotFoundException.html
java/nio/file/ReadOnlyFileSystemException.html
java/nio/file/SecureDirectoryStream.html
java/nio/file/SimpleFileVisitor.html
java/nio/file/StandardCopyOption.html
java/nio/file/StandardOpenOption.html
java/nio/file/StandardWatchEventKind.html
java/nio/file/WatchEvent.Kind.html
java/nio/file/WatchEvent.Modifier.html
java/nio/file/WatchEvent.html
java/nio/file/WatchKey.html
java/nio/file/WatchService.html
java/nio/file/Watchable.html
java/nio/file/attribute/AclEntry.Builder.html
java/nio/file/attribute/AclEntry.html
java/nio/file/attribute/AclEntryFlag.html
java/nio/file/attribute/AclEntryPermission.html
java/nio/file/attribute/AclEntryType.html
java/nio/file/attribute/AclFileAttributeView.html
java/nio/file/attribute/AttributeView.html
java/nio/file/attribute/BasicFileAttributeView.html
java/nio/file/attribute/BasicFileAttributes.html
java/nio/file/attribute/DosFileAttributeView.html
java/nio/file/attribute/DosFileAttributes.html
java/nio/file/attribute/FileAttribute.html
java/nio/file/attribute/FileAttributeView.html
java/nio/file/attribute/FileOwnerAttributeView.html
java/nio/file/attribute/FileStoreAttributeView.html
java/nio/file/attribute/FileTime.html
java/nio/file/attribute/GroupPrincipal.html
java/nio/file/attribute/PosixFileAttributeView.html
java/nio/file/attribute/PosixFileAttributes.html
java/nio/file/attribute/PosixFilePermission.html
java/nio/file/attribute/PosixFilePermissions.html
java/nio/file/attribute/UserDefinedFileAttributeView.html
java/nio/file/attribute/UserPrincipal.html
java/nio/file/attribute/UserPrincipalLookupService.html
java/nio/file/attribute/UserPrincipalNotFoundException.html
java/nio/file/spi/FileSystemProvider.html
java/nio/file/spi/FileTypeDetector.html
java/security/AlgorithmConstraints.html
java/security/CryptoPrimitive.html
java/security/cert/CRLReason.html
java/security/cert/CertPathValidatorException.BasicReason.html
java/security/cert/CertPathValidatorException.Reason.html
java/security/cert/CertificateRevokedException.html
java/security/cert/Extension.html
java/security/cert/PKIXReason.html
java/sql/PseudoColumnUsage.html
java/util/IllformedLocaleException.html
java/util/Locale.Builder.html
java/util/Locale.Category.html
java/util/Objects.html
java/util/concurrent/ConcurrentLinkedDeque.html
java/util/concurrent/ForkJoinPool.ForkJoinWorkerThreadFactory.html
java/util/concurrent/ForkJoinPool.ManagedBlocker.html
java/util/concurrent/ForkJoinPool.html
java/util/concurrent/ForkJoinTask.html
java/util/concurrent/ForkJoinWorkerThread.html
java/util/concurrent/LinkedTransferQueue.html
java/util/concurrent/Phaser.html
java/util/concurrent/RecursiveAction.html
java/util/concurrent/RecursiveTask.html
java/util/concurrent/ThreadLocalRandom.html
java/util/concurrent/TransferQueue.html
java/util/logging/PlatformLoggingMXBean.html
javax/lang/model/UnknownEntityException.html
javax/lang/model/element/Parameterizable.html
javax/lang/model/element/QualifiedNameable.html
javax/lang/model/type/DisjunctiveType.html
javax/lang/model/util/AbstractAnnotationValueVisitor7.html
javax/lang/model/util/AbstractElementVisitor7.html
javax/lang/model/util/AbstractTypeVisitor7.html
javax/lang/model/util/ElementKindVisitor7.html
javax/lang/model/util/ElementScanner7.html
javax/lang/model/util/SimpleAnnotationValueVisitor7.html
javax/lang/model/util/SimpleElementVisitor7.html
javax/lang/model/util/SimpleTypeVisitor7.html
javax/lang/model/util/TypeKindVisitor7.html
javax/net/ssl/ExtendedSSLSession.html
javax/net/ssl/X509ExtendedTrustManager.html
javax/print/attribute/standard/DialogTypeSelection.html
javax/sound/midi/MidiDeviceReceiver.html
javax/sound/midi/MidiDeviceTransmitter.html
javax/sql/rowset/RowSetFactory.html
javax/sql/rowset/RowSetProvider.html
javax/swing/JLayer.html
javax/swing/Painter.html
javax/swing/border/StrokeBorder.html
javax/swing/plaf/LayerUI.html
javax/swing/plaf/nimbus/AbstractRegionPainter.PaintContext.CacheMode.html
javax/swing/plaf/nimbus/AbstractRegionPainter.PaintContext.html
javax/swing/plaf/nimbus/AbstractRegionPainter.html
javax/swing/plaf/nimbus/NimbusLookAndFeel.html
javax/swing/plaf/nimbus/NimbusStyle.html
javax/swing/plaf/nimbus/State.html
javax/swing/plaf/synth/SynthButtonUI.html
javax/swing/plaf/synth/SynthCheckBoxMenuItemUI.html
javax/swing/plaf/synth/SynthCheckBoxUI.html
javax/swing/plaf/synth/SynthColorChooserUI.html
javax/swing/plaf/synth/SynthComboBoxUI.html
javax/swing/plaf/synth/SynthDesktopIconUI.html
javax/swing/plaf/synth/SynthDesktopPaneUI.html
javax/swing/plaf/synth/SynthEditorPaneUI.html
javax/swing/plaf/synth/SynthFormattedTextFieldUI.html
javax/swing/plaf/synth/SynthInternalFrameUI.html
javax/swing/plaf/synth/SynthLabelUI.html
javax/swing/plaf/synth/SynthListUI.html
javax/swing/plaf/synth/SynthMenuBarUI.html
javax/swing/plaf/synth/SynthMenuItemUI.html
javax/swing/plaf/synth/SynthMenuUI.html
javax/swing/plaf/synth/SynthOptionPaneUI.html
javax/swing/plaf/synth/SynthPanelUI.html
javax/swing/plaf/synth/SynthPasswordFieldUI.html
javax/swing/plaf/synth/SynthPopupMenuUI.html
javax/swing/plaf/synth/SynthProgressBarUI.html
javax/swing/plaf/synth/SynthRadioButtonMenuItemUI.html
javax/swing/plaf/synth/SynthRadioButtonUI.html
javax/swing/plaf/synth/SynthRootPaneUI.html
javax/swing/plaf/synth/SynthScrollBarUI.html
javax/swing/plaf/synth/SynthScrollPaneUI.html
javax/swing/plaf/synth/SynthSeparatorUI.html
javax/swing/plaf/synth/SynthSliderUI.html
javax/swing/plaf/synth/SynthSpinnerUI.html
javax/swing/plaf/synth/SynthSplitPaneUI.html
javax/swing/plaf/synth/SynthTabbedPaneUI.html
javax/swing/plaf/synth/SynthTableHeaderUI.html
javax/swing/plaf/synth/SynthTableUI.html
javax/swing/plaf/synth/SynthTextAreaUI.html
javax/swing/plaf/synth/SynthTextFieldUI.html
javax/swing/plaf/synth/SynthTextPaneUI.html
javax/swing/plaf/synth/SynthToggleButtonUI.html
javax/swing/plaf/synth/SynthToolBarUI.html
javax/swing/plaf/synth/SynthToolTipUI.html
javax/swing/plaf/synth/SynthTreeUI.html
javax/swing/plaf/synth/SynthUI.html
javax/swing/plaf/synth/SynthViewportUI.html
javax/xml/bind/JAXBPermission.html
javax/xml/ws/EndpointContext.html
javax/xml/ws/soap/AddressingFeature.Responses.html
javax/xml/ws/spi/Invoker.html
javax/xml/ws/spi/http/HttpContext.html
javax/xml/ws/spi/http/HttpExchange.html
javax/xml/ws/spi/http/HttpHandler.html

Even without changed fields and methods identified, the output of the script comparing Java SE 6 to Java SE 7 is interesting. Not surprisingly, no constructs (classes/interfaces/enumns) were removed between Java SE 6 and Java SE 7, but there are many new ones (4020 - 3793 = 227 new constructs). I don't focus much on the new things here because I have covered that in other posts such as JDK 7: New Interfaces, Classes, Enums, and Methods.


J2SE 5 and Java SE 6

For me, this is one of the more interesting deltas because there is actually a construct dropped! According to this script's output when comparing J2SE 5 to Java SE 6, the javax.management.timer.TimerAlarmClockNotification class is removed in Java SE 6 without breaking backwards compatibility (part of Java SE 6 JMX improvements). Looking at the J2SE 5 documentation for this class tells us why it's not available in the public API: "Deprecated. This class is of no use to user code. It is retained purely for compatibility reasons." With this "removed" class in mind, the number of new classes/interfaces/enums in Java SE 6 is 515 (3793 - 3279 + 1).

Java SE 6 URLs found: 3793
J2SE 5 URLs found: 3279
Constructs in J2SE 5 But Not in Java SE 6
javax/management/timer/TimerAlarmClockNotification.html
Constructs in Java SE 6 But Not in J2SE 5
java/awt/Component.BaselineResizeBehavior.html
java/awt/Desktop.Action.html
java/awt/Desktop.html
java/awt/Dialog.ModalExclusionType.html
java/awt/Dialog.ModalityType.html
java/awt/GridBagLayoutInfo.html
java/awt/LinearGradientPaint.html
java/awt/MultipleGradientPaint.ColorSpaceType.html
java/awt/MultipleGradientPaint.CycleMethod.html
java/awt/MultipleGradientPaint.html
java/awt/RadialGradientPaint.html
java/awt/SplashScreen.html
java/awt/SystemTray.html
java/awt/TrayIcon.MessageType.html
java/awt/TrayIcon.html
java/awt/font/LayoutPath.html
java/awt/geom/Path2D.Double.html
java/awt/geom/Path2D.Float.html
java/awt/geom/Path2D.html
java/beans/ConstructorProperties.html
java/io/Console.html
java/io/IOError.html
java/lang/management/LockInfo.html
java/lang/management/MonitorInfo.html
java/net/CookieManager.html
java/net/CookiePolicy.html
java/net/CookieStore.html
java/net/HttpCookie.html
java/net/IDN.html
java/net/InterfaceAddress.html
java/security/Policy.Parameters.html
java/security/PolicySpi.html
java/security/URIParameter.html
java/sql/ClientInfoStatus.html
java/sql/NClob.html
java/sql/RowId.html
java/sql/RowIdLifetime.html
java/sql/SQLClientInfoException.html
java/sql/SQLDataException.html
java/sql/SQLFeatureNotSupportedException.html
java/sql/SQLIntegrityConstraintViolationException.html
java/sql/SQLInvalidAuthorizationSpecException.html
java/sql/SQLNonTransientConnectionException.html
java/sql/SQLNonTransientException.html
java/sql/SQLRecoverableException.html
java/sql/SQLSyntaxErrorException.html
java/sql/SQLTimeoutException.html
java/sql/SQLTransactionRollbackException.html
java/sql/SQLTransientConnectionException.html
java/sql/SQLTransientException.html
java/sql/SQLXML.html
java/sql/Wrapper.html
java/text/Normalizer.Form.html
java/text/Normalizer.html
java/text/spi/BreakIteratorProvider.html
java/text/spi/CollatorProvider.html
java/text/spi/DateFormatProvider.html
java/text/spi/DateFormatSymbolsProvider.html
java/text/spi/DecimalFormatSymbolsProvider.html
java/text/spi/NumberFormatProvider.html
java/util/AbstractMap.SimpleEntry.html
java/util/AbstractMap.SimpleImmutableEntry.html
java/util/ArrayDeque.html
java/util/Deque.html
java/util/NavigableMap.html
java/util/NavigableSet.html
java/util/ResourceBundle.Control.html
java/util/ServiceConfigurationError.html
java/util/ServiceLoader.html
java/util/concurrent/BlockingDeque.html
java/util/concurrent/ConcurrentNavigableMap.html
java/util/concurrent/ConcurrentSkipListMap.html
java/util/concurrent/ConcurrentSkipListSet.html
java/util/concurrent/LinkedBlockingDeque.html
java/util/concurrent/RunnableFuture.html
java/util/concurrent/RunnableScheduledFuture.html
java/util/concurrent/locks/AbstractOwnableSynchronizer.html
java/util/concurrent/locks/AbstractQueuedLongSynchronizer.html
java/util/spi/CurrencyNameProvider.html
java/util/spi/LocaleNameProvider.html
java/util/spi/LocaleServiceProvider.html
java/util/spi/TimeZoneNameProvider.html
java/util/zip/DeflaterInputStream.html
java/util/zip/InflaterOutputStream.html
java/util/zip/ZipError.html
javax/activation/ActivationDataFlavor.html
javax/activation/CommandInfo.html
javax/activation/CommandMap.html
javax/activation/CommandObject.html
javax/activation/DataContentHandler.html
javax/activation/DataContentHandlerFactory.html
javax/activation/DataHandler.html
javax/activation/DataSource.html
javax/activation/FileDataSource.html
javax/activation/FileTypeMap.html
javax/activation/MailcapCommandMap.html
javax/activation/MimeType.html
javax/activation/MimeTypeParameterList.html
javax/activation/MimeTypeParseException.html
javax/activation/MimetypesFileTypeMap.html
javax/activation/URLDataSource.html
javax/activation/UnsupportedDataTypeException.html
javax/annotation/Generated.html
javax/annotation/PostConstruct.html
javax/annotation/PreDestroy.html
javax/annotation/Resource.AuthenticationType.html
javax/annotation/Resource.html
javax/annotation/Resources.html
javax/annotation/processing/AbstractProcessor.html
javax/annotation/processing/Completion.html
javax/annotation/processing/Completions.html
javax/annotation/processing/Filer.html
javax/annotation/processing/FilerException.html
javax/annotation/processing/Messager.html
javax/annotation/processing/ProcessingEnvironment.html
javax/annotation/processing/Processor.html
javax/annotation/processing/RoundEnvironment.html
javax/annotation/processing/SupportedAnnotationTypes.html
javax/annotation/processing/SupportedOptions.html
javax/annotation/processing/SupportedSourceVersion.html
javax/jws/HandlerChain.html
javax/jws/Oneway.html
javax/jws/WebMethod.html
javax/jws/WebParam.Mode.html
javax/jws/WebParam.html
javax/jws/WebResult.html
javax/jws/WebService.html
javax/jws/soap/InitParam.html
javax/jws/soap/SOAPBinding.ParameterStyle.html
javax/jws/soap/SOAPBinding.Style.html
javax/jws/soap/SOAPBinding.Use.html
javax/jws/soap/SOAPBinding.html
javax/jws/soap/SOAPMessageHandler.html
javax/jws/soap/SOAPMessageHandlers.html
javax/lang/model/SourceVersion.html
javax/lang/model/element/AnnotationMirror.html
javax/lang/model/element/AnnotationValue.html
javax/lang/model/element/AnnotationValueVisitor.html
javax/lang/model/element/Element.html
javax/lang/model/element/ElementKind.html
javax/lang/model/element/ElementVisitor.html
javax/lang/model/element/ExecutableElement.html
javax/lang/model/element/Modifier.html
javax/lang/model/element/Name.html
javax/lang/model/element/NestingKind.html
javax/lang/model/element/PackageElement.html
javax/lang/model/element/TypeElement.html
javax/lang/model/element/TypeParameterElement.html
javax/lang/model/element/UnknownAnnotationValueException.html
javax/lang/model/element/UnknownElementException.html
javax/lang/model/element/VariableElement.html
javax/lang/model/type/ArrayType.html
javax/lang/model/type/DeclaredType.html
javax/lang/model/type/ErrorType.html
javax/lang/model/type/ExecutableType.html
javax/lang/model/type/MirroredTypeException.html
javax/lang/model/type/MirroredTypesException.html
javax/lang/model/type/NoType.html
javax/lang/model/type/NullType.html
javax/lang/model/type/PrimitiveType.html
javax/lang/model/type/ReferenceType.html
javax/lang/model/type/TypeKind.html
javax/lang/model/type/TypeMirror.html
javax/lang/model/type/TypeVariable.html
javax/lang/model/type/TypeVisitor.html
javax/lang/model/type/UnknownTypeException.html
javax/lang/model/type/WildcardType.html
javax/lang/model/util/AbstractAnnotationValueVisitor6.html
javax/lang/model/util/AbstractElementVisitor6.html
javax/lang/model/util/AbstractTypeVisitor6.html
javax/lang/model/util/ElementFilter.html
javax/lang/model/util/ElementKindVisitor6.html
javax/lang/model/util/ElementScanner6.html
javax/lang/model/util/Elements.html
javax/lang/model/util/SimpleAnnotationValueVisitor6.html
javax/lang/model/util/SimpleElementVisitor6.html
javax/lang/model/util/SimpleTypeVisitor6.html
javax/lang/model/util/TypeKindVisitor6.html
javax/lang/model/util/Types.html
javax/management/DescriptorKey.html
javax/management/DescriptorRead.html
javax/management/ImmutableDescriptor.html
javax/management/JMX.html
javax/management/MXBean.html
javax/management/StandardEmitterMBean.html
javax/management/loading/MLetContent.html
javax/management/openmbean/CompositeDataInvocationHandler.html
javax/management/openmbean/CompositeDataView.html
javax/management/remote/JMXAddressable.html
javax/net/ssl/SSLParameters.html
javax/script/AbstractScriptEngine.html
javax/script/Bindings.html
javax/script/Compilable.html
javax/script/CompiledScript.html
javax/script/Invocable.html
javax/script/ScriptContext.html
javax/script/ScriptEngine.html
javax/script/ScriptEngineFactory.html
javax/script/ScriptEngineManager.html
javax/script/ScriptException.html
javax/script/SimpleBindings.html
javax/script/SimpleScriptContext.html
javax/security/auth/login/Configuration.Parameters.html
javax/security/auth/login/ConfigurationSpi.html
javax/sql/CommonDataSource.html
javax/sql/StatementEvent.html
javax/sql/StatementEventListener.html
javax/swing/DefaultRowSorter.ModelWrapper.html
javax/swing/DefaultRowSorter.html
javax/swing/DropMode.html
javax/swing/GroupLayout.Alignment.html
javax/swing/GroupLayout.html
javax/swing/JList.DropLocation.html
javax/swing/JTable.DropLocation.html
javax/swing/JTree.DropLocation.html
javax/swing/LayoutStyle.ComponentPlacement.html
javax/swing/LayoutStyle.html
javax/swing/RowFilter.ComparisonType.html
javax/swing/RowFilter.Entry.html
javax/swing/RowFilter.html
javax/swing/RowSorter.SortKey.html
javax/swing/RowSorter.html
javax/swing/SortOrder.html
javax/swing/SwingWorker.StateValue.html
javax/swing/SwingWorker.html
javax/swing/TransferHandler.DropLocation.html
javax/swing/TransferHandler.TransferSupport.html
javax/swing/event/RowSorterEvent.Type.html
javax/swing/event/RowSorterEvent.html
javax/swing/event/RowSorterListener.html
javax/swing/filechooser/FileNameExtensionFilter.html
javax/swing/table/TableRowSorter.html
javax/swing/table/TableStringConverter.html
javax/swing/text/JTextComponent.DropLocation.html
javax/tools/Diagnostic.Kind.html
javax/tools/Diagnostic.html
javax/tools/DiagnosticCollector.html
javax/tools/DiagnosticListener.html
javax/tools/FileObject.html
javax/tools/ForwardingFileObject.html
javax/tools/ForwardingJavaFileManager.html
javax/tools/ForwardingJavaFileObject.html
javax/tools/JavaCompiler.CompilationTask.html
javax/tools/JavaCompiler.html
javax/tools/JavaFileManager.Location.html
javax/tools/JavaFileManager.html
javax/tools/JavaFileObject.Kind.html
javax/tools/JavaFileObject.html
javax/tools/OptionChecker.html
javax/tools/SimpleJavaFileObject.html
javax/tools/StandardJavaFileManager.html
javax/tools/StandardLocation.html
javax/tools/Tool.html
javax/tools/ToolProvider.html
javax/xml/bind/Binder.html
javax/xml/bind/DataBindingException.html
javax/xml/bind/DatatypeConverter.html
javax/xml/bind/DatatypeConverterInterface.html
javax/xml/bind/Element.html
javax/xml/bind/JAXB.html
javax/xml/bind/JAXBContext.html
javax/xml/bind/JAXBElement.GlobalScope.html
javax/xml/bind/JAXBElement.html
javax/xml/bind/JAXBException.html
javax/xml/bind/JAXBIntrospector.html
javax/xml/bind/MarshalException.html
javax/xml/bind/Marshaller.Listener.html
javax/xml/bind/Marshaller.html
javax/xml/bind/NotIdentifiableEvent.html
javax/xml/bind/ParseConversionEvent.html
javax/xml/bind/PrintConversionEvent.html
javax/xml/bind/PropertyException.html
javax/xml/bind/SchemaOutputResolver.html
javax/xml/bind/TypeConstraintException.html
javax/xml/bind/UnmarshalException.html
javax/xml/bind/Unmarshaller.Listener.html
javax/xml/bind/Unmarshaller.html
javax/xml/bind/UnmarshallerHandler.html
javax/xml/bind/ValidationEvent.html
javax/xml/bind/ValidationEventHandler.html
javax/xml/bind/ValidationEventLocator.html
javax/xml/bind/ValidationException.html
javax/xml/bind/Validator.html
javax/xml/bind/annotation/DomHandler.html
javax/xml/bind/annotation/W3CDomHandler.html
javax/xml/bind/annotation/XmlAccessOrder.html
javax/xml/bind/annotation/XmlAccessType.html
javax/xml/bind/annotation/XmlAccessorOrder.html
javax/xml/bind/annotation/XmlAccessorType.html
javax/xml/bind/annotation/XmlAnyAttribute.html
javax/xml/bind/annotation/XmlAnyElement.html
javax/xml/bind/annotation/XmlAttachmentRef.html
javax/xml/bind/annotation/XmlAttribute.html
javax/xml/bind/annotation/XmlElement.DEFAULT.html
javax/xml/bind/annotation/XmlElement.html
javax/xml/bind/annotation/XmlElementDecl.GLOBAL.html
javax/xml/bind/annotation/XmlElementDecl.html
javax/xml/bind/annotation/XmlElementRef.DEFAULT.html
javax/xml/bind/annotation/XmlElementRef.html
javax/xml/bind/annotation/XmlElementRefs.html
javax/xml/bind/annotation/XmlElementWrapper.html
javax/xml/bind/annotation/XmlElements.html
javax/xml/bind/annotation/XmlEnum.html
javax/xml/bind/annotation/XmlEnumValue.html
javax/xml/bind/annotation/XmlID.html
javax/xml/bind/annotation/XmlIDREF.html
javax/xml/bind/annotation/XmlInlineBinaryData.html
javax/xml/bind/annotation/XmlList.html
javax/xml/bind/annotation/XmlMimeType.html
javax/xml/bind/annotation/XmlMixed.html
javax/xml/bind/annotation/XmlNs.html
javax/xml/bind/annotation/XmlNsForm.html
javax/xml/bind/annotation/XmlRegistry.html
javax/xml/bind/annotation/XmlRootElement.html
javax/xml/bind/annotation/XmlSchema.html
javax/xml/bind/annotation/XmlSchemaType.DEFAULT.html
javax/xml/bind/annotation/XmlSchemaType.html
javax/xml/bind/annotation/XmlSchemaTypes.html
javax/xml/bind/annotation/XmlSeeAlso.html
javax/xml/bind/annotation/XmlTransient.html
javax/xml/bind/annotation/XmlType.DEFAULT.html
javax/xml/bind/annotation/XmlType.html
javax/xml/bind/annotation/XmlValue.html
javax/xml/bind/annotation/adapters/CollapsedStringAdapter.html
javax/xml/bind/annotation/adapters/HexBinaryAdapter.html
javax/xml/bind/annotation/adapters/NormalizedStringAdapter.html
javax/xml/bind/annotation/adapters/XmlAdapter.html
javax/xml/bind/annotation/adapters/XmlJavaTypeAdapter.DEFAULT.html
javax/xml/bind/annotation/adapters/XmlJavaTypeAdapter.html
javax/xml/bind/annotation/adapters/XmlJavaTypeAdapters.html
javax/xml/bind/attachment/AttachmentMarshaller.html
javax/xml/bind/attachment/AttachmentUnmarshaller.html
javax/xml/bind/helpers/AbstractMarshallerImpl.html
javax/xml/bind/helpers/AbstractUnmarshallerImpl.html
javax/xml/bind/helpers/DefaultValidationEventHandler.html
javax/xml/bind/helpers/NotIdentifiableEventImpl.html
javax/xml/bind/helpers/ParseConversionEventImpl.html
javax/xml/bind/helpers/PrintConversionEventImpl.html
javax/xml/bind/helpers/ValidationEventImpl.html
javax/xml/bind/helpers/ValidationEventLocatorImpl.html
javax/xml/bind/util/JAXBResult.html
javax/xml/bind/util/JAXBSource.html
javax/xml/bind/util/ValidationEventCollector.html
javax/xml/crypto/AlgorithmMethod.html
javax/xml/crypto/Data.html
javax/xml/crypto/KeySelector.Purpose.html
javax/xml/crypto/KeySelector.html
javax/xml/crypto/KeySelectorException.html
javax/xml/crypto/KeySelectorResult.html
javax/xml/crypto/MarshalException.html
javax/xml/crypto/NoSuchMechanismException.html
javax/xml/crypto/NodeSetData.html
javax/xml/crypto/OctetStreamData.html
javax/xml/crypto/URIDereferencer.html
javax/xml/crypto/URIReference.html
javax/xml/crypto/URIReferenceException.html
javax/xml/crypto/XMLCryptoContext.html
javax/xml/crypto/XMLStructure.html
javax/xml/crypto/dom/DOMCryptoContext.html
javax/xml/crypto/dom/DOMStructure.html
javax/xml/crypto/dom/DOMURIReference.html
javax/xml/crypto/dsig/CanonicalizationMethod.html
javax/xml/crypto/dsig/DigestMethod.html
javax/xml/crypto/dsig/Manifest.html
javax/xml/crypto/dsig/Reference.html
javax/xml/crypto/dsig/SignatureMethod.html
javax/xml/crypto/dsig/SignatureProperties.html
javax/xml/crypto/dsig/SignatureProperty.html
javax/xml/crypto/dsig/SignedInfo.html
javax/xml/crypto/dsig/Transform.html
javax/xml/crypto/dsig/TransformException.html
javax/xml/crypto/dsig/TransformService.html
javax/xml/crypto/dsig/XMLObject.html
javax/xml/crypto/dsig/XMLSignContext.html
javax/xml/crypto/dsig/XMLSignature.SignatureValue.html
javax/xml/crypto/dsig/XMLSignature.html
javax/xml/crypto/dsig/XMLSignatureException.html
javax/xml/crypto/dsig/XMLSignatureFactory.html
javax/xml/crypto/dsig/XMLValidateContext.html
javax/xml/crypto/dsig/dom/DOMSignContext.html
javax/xml/crypto/dsig/dom/DOMValidateContext.html
javax/xml/crypto/dsig/keyinfo/KeyInfo.html
javax/xml/crypto/dsig/keyinfo/KeyInfoFactory.html
javax/xml/crypto/dsig/keyinfo/KeyName.html
javax/xml/crypto/dsig/keyinfo/KeyValue.html
javax/xml/crypto/dsig/keyinfo/PGPData.html
javax/xml/crypto/dsig/keyinfo/RetrievalMethod.html
javax/xml/crypto/dsig/keyinfo/X509Data.html
javax/xml/crypto/dsig/keyinfo/X509IssuerSerial.html
javax/xml/crypto/dsig/spec/C14NMethodParameterSpec.html
javax/xml/crypto/dsig/spec/DigestMethodParameterSpec.html
javax/xml/crypto/dsig/spec/ExcC14NParameterSpec.html
javax/xml/crypto/dsig/spec/HMACParameterSpec.html
javax/xml/crypto/dsig/spec/SignatureMethodParameterSpec.html
javax/xml/crypto/dsig/spec/TransformParameterSpec.html
javax/xml/crypto/dsig/spec/XPathFilter2ParameterSpec.html
javax/xml/crypto/dsig/spec/XPathFilterParameterSpec.html
javax/xml/crypto/dsig/spec/XPathType.Filter.html
javax/xml/crypto/dsig/spec/XPathType.html
javax/xml/crypto/dsig/spec/XSLTTransformParameterSpec.html
javax/xml/soap/AttachmentPart.html
javax/xml/soap/Detail.html
javax/xml/soap/DetailEntry.html
javax/xml/soap/MessageFactory.html
javax/xml/soap/MimeHeader.html
javax/xml/soap/MimeHeaders.html
javax/xml/soap/Name.html
javax/xml/soap/Node.html
javax/xml/soap/SAAJMetaFactory.html
javax/xml/soap/SAAJResult.html
javax/xml/soap/SOAPBody.html
javax/xml/soap/SOAPBodyElement.html
javax/xml/soap/SOAPConnection.html
javax/xml/soap/SOAPConnectionFactory.html
javax/xml/soap/SOAPConstants.html
javax/xml/soap/SOAPElement.html
javax/xml/soap/SOAPElementFactory.html
javax/xml/soap/SOAPEnvelope.html
javax/xml/soap/SOAPException.html
javax/xml/soap/SOAPFactory.html
javax/xml/soap/SOAPFault.html
javax/xml/soap/SOAPFaultElement.html
javax/xml/soap/SOAPHeader.html
javax/xml/soap/SOAPHeaderElement.html
javax/xml/soap/SOAPMessage.html
javax/xml/soap/SOAPPart.html
javax/xml/soap/Text.html
javax/xml/stream/EventFilter.html
javax/xml/stream/FactoryConfigurationError.html
javax/xml/stream/Location.html
javax/xml/stream/StreamFilter.html
javax/xml/stream/XMLEventFactory.html
javax/xml/stream/XMLEventReader.html
javax/xml/stream/XMLEventWriter.html
javax/xml/stream/XMLInputFactory.html
javax/xml/stream/XMLOutputFactory.html
javax/xml/stream/XMLReporter.html
javax/xml/stream/XMLResolver.html
javax/xml/stream/XMLStreamConstants.html
javax/xml/stream/XMLStreamException.html
javax/xml/stream/XMLStreamReader.html
javax/xml/stream/XMLStreamWriter.html
javax/xml/stream/events/Attribute.html
javax/xml/stream/events/Characters.html
javax/xml/stream/events/Comment.html
javax/xml/stream/events/DTD.html
javax/xml/stream/events/EndDocument.html
javax/xml/stream/events/EndElement.html
javax/xml/stream/events/EntityDeclaration.html
javax/xml/stream/events/EntityReference.html
javax/xml/stream/events/Namespace.html
javax/xml/stream/events/NotationDeclaration.html
javax/xml/stream/events/ProcessingInstruction.html
javax/xml/stream/events/StartDocument.html
javax/xml/stream/events/StartElement.html
javax/xml/stream/events/XMLEvent.html
javax/xml/stream/util/EventReaderDelegate.html
javax/xml/stream/util/StreamReaderDelegate.html
javax/xml/stream/util/XMLEventAllocator.html
javax/xml/stream/util/XMLEventConsumer.html
javax/xml/transform/stax/StAXResult.html
javax/xml/transform/stax/StAXSource.html
javax/xml/ws/Action.html
javax/xml/ws/AsyncHandler.html
javax/xml/ws/Binding.html
javax/xml/ws/BindingProvider.html
javax/xml/ws/BindingType.html
javax/xml/ws/Dispatch.html
javax/xml/ws/Endpoint.html
javax/xml/ws/EndpointReference.html
javax/xml/ws/FaultAction.html
javax/xml/ws/Holder.html
javax/xml/ws/LogicalMessage.html
javax/xml/ws/ProtocolException.html
javax/xml/ws/Provider.html
javax/xml/ws/RequestWrapper.html
javax/xml/ws/RespectBinding.html
javax/xml/ws/RespectBindingFeature.html
javax/xml/ws/Response.html
javax/xml/ws/ResponseWrapper.html
javax/xml/ws/Service.Mode.html
javax/xml/ws/Service.html
javax/xml/ws/ServiceMode.html
javax/xml/ws/WebEndpoint.html
javax/xml/ws/WebFault.html
javax/xml/ws/WebServiceClient.html
javax/xml/ws/WebServiceContext.html
javax/xml/ws/WebServiceException.html
javax/xml/ws/WebServiceFeature.html
javax/xml/ws/WebServicePermission.html
javax/xml/ws/WebServiceProvider.html
javax/xml/ws/WebServiceRef.html
javax/xml/ws/WebServiceRefs.html
javax/xml/ws/handler/Handler.html
javax/xml/ws/handler/HandlerResolver.html
javax/xml/ws/handler/LogicalHandler.html
javax/xml/ws/handler/LogicalMessageContext.html
javax/xml/ws/handler/MessageContext.Scope.html
javax/xml/ws/handler/MessageContext.html
javax/xml/ws/handler/PortInfo.html
javax/xml/ws/handler/soap/SOAPHandler.html
javax/xml/ws/handler/soap/SOAPMessageContext.html
javax/xml/ws/http/HTTPBinding.html
javax/xml/ws/http/HTTPException.html
javax/xml/ws/soap/Addressing.html
javax/xml/ws/soap/AddressingFeature.html
javax/xml/ws/soap/MTOM.html
javax/xml/ws/soap/MTOMFeature.html
javax/xml/ws/soap/SOAPBinding.html
javax/xml/ws/soap/SOAPFaultException.html
javax/xml/ws/spi/Provider.html
javax/xml/ws/spi/ServiceDelegate.html
javax/xml/ws/spi/WebServiceFeatureAnnotation.html
javax/xml/ws/wsaddressing/W3CEndpointReference.html
javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.html

It is often easy to think that Java SE 6 did not add much because it did not add any new language features. However, the list above confirms that Java SE 6 did add much via the SDK. I discussed some of this Java SE 6 goodness in my article Better JPA, Better JAXB, and Better Annotations Processing with Java SE 6.


JDK 1.4 and J2SE 5

At least part of the reason that Java SE 6 had no new language features may have been because J2SE 5 had so many new language features! J2SE 5's new language features included annotations, enums, generics, enhanced for loop, static imports, and variable arguments. J2SE 5 even added a feature that I believe causes more trouble than it's worth: auto boxing and unboxing.

The script shown above can be used to see how the J2SE SDK changed in terms of added interfaces, enums (first available with this version), and classes.

J2SE 5 URLs found: 3279
JDK 1.4 URLs found: 2723
Constructs in JDK 1.4 But Not in J2SE 5
None
Constructs in J2SE 5 But Not in JDK 1.4
java/awt/MouseInfo.html
java/awt/PointerInfo.html
java/awt/datatransfer/FlavorEvent.html
java/awt/datatransfer/FlavorListener.html
java/beans/IndexedPropertyChangeEvent.html
java/io/Closeable.html
java/io/Flushable.html
java/lang/Appendable.html
java/lang/Deprecated.html
java/lang/Enum.html
java/lang/EnumConstantNotPresentException.html
java/lang/Iterable.html
java/lang/Override.html
java/lang/ProcessBuilder.html
java/lang/Readable.html
java/lang/StringBuilder.html
java/lang/SuppressWarnings.html
java/lang/Thread.State.html
java/lang/Thread.UncaughtExceptionHandler.html
java/lang/TypeNotPresentException.html
java/lang/annotation/Annotation.html
java/lang/annotation/AnnotationFormatError.html
java/lang/annotation/AnnotationTypeMismatchException.html
java/lang/annotation/Documented.html
java/lang/annotation/ElementType.html
java/lang/annotation/IncompleteAnnotationException.html
java/lang/annotation/Inherited.html
java/lang/annotation/Retention.html
java/lang/annotation/RetentionPolicy.html
java/lang/annotation/Target.html
java/lang/instrument/ClassDefinition.html
java/lang/instrument/ClassFileTransformer.html
java/lang/instrument/IllegalClassFormatException.html
java/lang/instrument/Instrumentation.html
java/lang/instrument/UnmodifiableClassException.html
java/lang/management/ClassLoadingMXBean.html
java/lang/management/CompilationMXBean.html
java/lang/management/GarbageCollectorMXBean.html
java/lang/management/ManagementFactory.html
java/lang/management/ManagementPermission.html
java/lang/management/MemoryMXBean.html
java/lang/management/MemoryManagerMXBean.html
java/lang/management/MemoryNotificationInfo.html
java/lang/management/MemoryPoolMXBean.html
java/lang/management/MemoryType.html
java/lang/management/MemoryUsage.html
java/lang/management/OperatingSystemMXBean.html
java/lang/management/RuntimeMXBean.html
java/lang/management/ThreadInfo.html
java/lang/management/ThreadMXBean.html
java/lang/reflect/AnnotatedElement.html
java/lang/reflect/GenericArrayType.html
java/lang/reflect/GenericDeclaration.html
java/lang/reflect/GenericSignatureFormatError.html
java/lang/reflect/MalformedParameterizedTypeException.html
java/lang/reflect/ParameterizedType.html
java/lang/reflect/Type.html
java/lang/reflect/TypeVariable.html
java/lang/reflect/WildcardType.html
java/math/MathContext.html
java/math/RoundingMode.html
java/net/Authenticator.RequestorType.html
java/net/CacheRequest.html
java/net/CacheResponse.html
java/net/CookieHandler.html
java/net/HttpRetryException.html
java/net/Proxy.Type.html
java/net/Proxy.html
java/net/ProxySelector.html
java/net/ResponseCache.html
java/net/SecureCacheResponse.html
java/rmi/server/RemoteObjectInvocationHandler.html
java/security/AuthProvider.html
java/security/CodeSigner.html
java/security/KeyRep.Type.html
java/security/KeyRep.html
java/security/KeyStore.Builder.html
java/security/KeyStore.CallbackHandlerProtection.html
java/security/KeyStore.Entry.html
java/security/KeyStore.LoadStoreParameter.html
java/security/KeyStore.PasswordProtection.html
java/security/KeyStore.PrivateKeyEntry.html
java/security/KeyStore.ProtectionParameter.html
java/security/KeyStore.SecretKeyEntry.html
java/security/KeyStore.TrustedCertificateEntry.html
java/security/Provider.Service.html
java/security/Timestamp.html
java/security/UnrecoverableEntryException.html
java/security/interfaces/ECKey.html
java/security/interfaces/ECPrivateKey.html
java/security/interfaces/ECPublicKey.html
java/security/spec/ECField.html
java/security/spec/ECFieldF2m.html
java/security/spec/ECFieldFp.html
java/security/spec/ECGenParameterSpec.html
java/security/spec/ECParameterSpec.html
java/security/spec/ECPoint.html
java/security/spec/ECPrivateKeySpec.html
java/security/spec/ECPublicKeySpec.html
java/security/spec/EllipticCurve.html
java/security/spec/MGF1ParameterSpec.html
java/util/AbstractQueue.html
java/util/DuplicateFormatFlagsException.html
java/util/EnumMap.html
java/util/EnumSet.html
java/util/FormatFlagsConversionMismatchException.html
java/util/Formattable.html
java/util/FormattableFlags.html
java/util/Formatter.BigDecimalLayoutForm.html
java/util/Formatter.html
java/util/FormatterClosedException.html
java/util/IllegalFormatCodePointException.html
java/util/IllegalFormatConversionException.html
java/util/IllegalFormatException.html
java/util/IllegalFormatFlagsException.html
java/util/IllegalFormatPrecisionException.html
java/util/IllegalFormatWidthException.html
java/util/InputMismatchException.html
java/util/InvalidPropertiesFormatException.html
java/util/MissingFormatArgumentException.html
java/util/MissingFormatWidthException.html
java/util/PriorityQueue.html
java/util/Queue.html
java/util/Scanner.html
java/util/UUID.html
java/util/UnknownFormatConversionException.html
java/util/UnknownFormatFlagsException.html
java/util/concurrent/AbstractExecutorService.html
java/util/concurrent/ArrayBlockingQueue.html
java/util/concurrent/BlockingQueue.html
java/util/concurrent/BrokenBarrierException.html
java/util/concurrent/Callable.html
java/util/concurrent/CancellationException.html
java/util/concurrent/CompletionService.html
java/util/concurrent/ConcurrentHashMap.html
java/util/concurrent/ConcurrentLinkedQueue.html
java/util/concurrent/ConcurrentMap.html
java/util/concurrent/CopyOnWriteArrayList.html
java/util/concurrent/CopyOnWriteArraySet.html
java/util/concurrent/CountDownLatch.html
java/util/concurrent/CyclicBarrier.html
java/util/concurrent/DelayQueue.html
java/util/concurrent/Delayed.html
java/util/concurrent/Exchanger.html
java/util/concurrent/ExecutionException.html
java/util/concurrent/Executor.html
java/util/concurrent/ExecutorCompletionService.html
java/util/concurrent/ExecutorService.html
java/util/concurrent/Executors.html
java/util/concurrent/Future.html
java/util/concurrent/FutureTask.html
java/util/concurrent/LinkedBlockingQueue.html
java/util/concurrent/PriorityBlockingQueue.html
java/util/concurrent/RejectedExecutionException.html
java/util/concurrent/RejectedExecutionHandler.html
java/util/concurrent/ScheduledExecutorService.html
java/util/concurrent/ScheduledFuture.html
java/util/concurrent/ScheduledThreadPoolExecutor.html
java/util/concurrent/Semaphore.html
java/util/concurrent/SynchronousQueue.html
java/util/concurrent/ThreadFactory.html
java/util/concurrent/ThreadPoolExecutor.AbortPolicy.html
java/util/concurrent/ThreadPoolExecutor.CallerRunsPolicy.html
java/util/concurrent/ThreadPoolExecutor.DiscardOldestPolicy.html
java/util/concurrent/ThreadPoolExecutor.DiscardPolicy.html
java/util/concurrent/ThreadPoolExecutor.html
java/util/concurrent/TimeUnit.html
java/util/concurrent/TimeoutException.html
java/util/concurrent/atomic/AtomicBoolean.html
java/util/concurrent/atomic/AtomicInteger.html
java/util/concurrent/atomic/AtomicIntegerArray.html
java/util/concurrent/atomic/AtomicIntegerFieldUpdater.html
java/util/concurrent/atomic/AtomicLong.html
java/util/concurrent/atomic/AtomicLongArray.html
java/util/concurrent/atomic/AtomicLongFieldUpdater.html
java/util/concurrent/atomic/AtomicMarkableReference.html
java/util/concurrent/atomic/AtomicReference.html
java/util/concurrent/atomic/AtomicReferenceArray.html
java/util/concurrent/atomic/AtomicReferenceFieldUpdater.html
java/util/concurrent/atomic/AtomicStampedReference.html
java/util/concurrent/locks/AbstractQueuedSynchronizer.html
java/util/concurrent/locks/Condition.html
java/util/concurrent/locks/Lock.html
java/util/concurrent/locks/LockSupport.html
java/util/concurrent/locks/ReadWriteLock.html
java/util/concurrent/locks/ReentrantLock.html
java/util/concurrent/locks/ReentrantReadWriteLock.ReadLock.html
java/util/concurrent/locks/ReentrantReadWriteLock.WriteLock.html
java/util/concurrent/locks/ReentrantReadWriteLock.html
java/util/jar/Pack200.Packer.html
java/util/jar/Pack200.Unpacker.html
java/util/jar/Pack200.html
java/util/logging/LoggingMXBean.html
java/util/regex/MatchResult.html
javax/accessibility/AccessibleAttributeSequence.html
javax/accessibility/AccessibleExtendedText.html
javax/accessibility/AccessibleStreamable.html
javax/accessibility/AccessibleTextSequence.html
javax/activity/ActivityCompletedException.html
javax/activity/ActivityRequiredException.html
javax/activity/InvalidActivityException.html
javax/crypto/spec/OAEPParameterSpec.html
javax/crypto/spec/PSource.PSpecified.html
javax/crypto/spec/PSource.html
javax/imageio/plugins/bmp/BMPImageWriteParam.html
javax/management/Attribute.html
javax/management/AttributeChangeNotification.html
javax/management/AttributeChangeNotificationFilter.html
javax/management/AttributeList.html
javax/management/AttributeNotFoundException.html
javax/management/AttributeValueExp.html
javax/management/BadAttributeValueExpException.html
javax/management/BadBinaryOpValueExpException.html
javax/management/BadStringOperationException.html
javax/management/DefaultLoaderRepository.html
javax/management/Descriptor.html
javax/management/DescriptorAccess.html
javax/management/DynamicMBean.html
javax/management/InstanceAlreadyExistsException.html
javax/management/InstanceNotFoundException.html
javax/management/IntrospectionException.html
javax/management/InvalidApplicationException.html
javax/management/InvalidAttributeValueException.html
javax/management/JMException.html
javax/management/JMRuntimeException.html
javax/management/ListenerNotFoundException.html
javax/management/MBeanAttributeInfo.html
javax/management/MBeanConstructorInfo.html
javax/management/MBeanException.html
javax/management/MBeanFeatureInfo.html
javax/management/MBeanInfo.html
javax/management/MBeanNotificationInfo.html
javax/management/MBeanOperationInfo.html
javax/management/MBeanParameterInfo.html
javax/management/MBeanPermission.html
javax/management/MBeanRegistration.html
javax/management/MBeanRegistrationException.html
javax/management/MBeanServer.html
javax/management/MBeanServerBuilder.html
javax/management/MBeanServerConnection.html
javax/management/MBeanServerDelegate.html
javax/management/MBeanServerDelegateMBean.html
javax/management/MBeanServerFactory.html
javax/management/MBeanServerInvocationHandler.html
javax/management/MBeanServerNotification.html
javax/management/MBeanServerPermission.html
javax/management/MBeanTrustPermission.html
javax/management/MalformedObjectNameException.html
javax/management/NotCompliantMBeanException.html
javax/management/Notification.html
javax/management/NotificationBroadcaster.html
javax/management/NotificationBroadcasterSupport.html
javax/management/NotificationEmitter.html
javax/management/NotificationFilter.html
javax/management/NotificationFilterSupport.html
javax/management/NotificationListener.html
javax/management/ObjectInstance.html
javax/management/ObjectName.html
javax/management/OperationsException.html
javax/management/PersistentMBean.html
javax/management/Query.html
javax/management/QueryEval.html
javax/management/QueryExp.html
javax/management/ReflectionException.html
javax/management/RuntimeErrorException.html
javax/management/RuntimeMBeanException.html
javax/management/RuntimeOperationsException.html
javax/management/ServiceNotFoundException.html
javax/management/StandardMBean.html
javax/management/StringValueExp.html
javax/management/ValueExp.html
javax/management/loading/ClassLoaderRepository.html
javax/management/loading/DefaultLoaderRepository.html
javax/management/loading/MLet.html
javax/management/loading/MLetMBean.html
javax/management/loading/PrivateClassLoader.html
javax/management/loading/PrivateMLet.html
javax/management/modelmbean/DescriptorSupport.html
javax/management/modelmbean/InvalidTargetObjectTypeException.html
javax/management/modelmbean/ModelMBean.html
javax/management/modelmbean/ModelMBeanAttributeInfo.html
javax/management/modelmbean/ModelMBeanConstructorInfo.html
javax/management/modelmbean/ModelMBeanInfo.html
javax/management/modelmbean/ModelMBeanInfoSupport.html
javax/management/modelmbean/ModelMBeanNotificationBroadcaster.html
javax/management/modelmbean/ModelMBeanNotificationInfo.html
javax/management/modelmbean/ModelMBeanOperationInfo.html
javax/management/modelmbean/RequiredModelMBean.html
javax/management/modelmbean/XMLParseException.html
javax/management/monitor/CounterMonitor.html
javax/management/monitor/CounterMonitorMBean.html
javax/management/monitor/GaugeMonitor.html
javax/management/monitor/GaugeMonitorMBean.html
javax/management/monitor/Monitor.html
javax/management/monitor/MonitorMBean.html
javax/management/monitor/MonitorNotification.html
javax/management/monitor/MonitorSettingException.html
javax/management/monitor/StringMonitor.html
javax/management/monitor/StringMonitorMBean.html
javax/management/openmbean/ArrayType.html
javax/management/openmbean/CompositeData.html
javax/management/openmbean/CompositeDataSupport.html
javax/management/openmbean/CompositeType.html
javax/management/openmbean/InvalidKeyException.html
javax/management/openmbean/InvalidOpenTypeException.html
javax/management/openmbean/KeyAlreadyExistsException.html
javax/management/openmbean/OpenDataException.html
javax/management/openmbean/OpenMBeanAttributeInfo.html
javax/management/openmbean/OpenMBeanAttributeInfoSupport.html
javax/management/openmbean/OpenMBeanConstructorInfo.html
javax/management/openmbean/OpenMBeanConstructorInfoSupport.html
javax/management/openmbean/OpenMBeanInfo.html
javax/management/openmbean/OpenMBeanInfoSupport.html
javax/management/openmbean/OpenMBeanOperationInfo.html
javax/management/openmbean/OpenMBeanOperationInfoSupport.html
javax/management/openmbean/OpenMBeanParameterInfo.html
javax/management/openmbean/OpenMBeanParameterInfoSupport.html
javax/management/openmbean/OpenType.html
javax/management/openmbean/SimpleType.html
javax/management/openmbean/TabularData.html
javax/management/openmbean/TabularDataSupport.html
javax/management/openmbean/TabularType.html
javax/management/relation/InvalidRelationIdException.html
javax/management/relation/InvalidRelationServiceException.html
javax/management/relation/InvalidRelationTypeException.html
javax/management/relation/InvalidRoleInfoException.html
javax/management/relation/InvalidRoleValueException.html
javax/management/relation/MBeanServerNotificationFilter.html
javax/management/relation/Relation.html
javax/management/relation/RelationException.html
javax/management/relation/RelationNotFoundException.html
javax/management/relation/RelationNotification.html
javax/management/relation/RelationService.html
javax/management/relation/RelationServiceMBean.html
javax/management/relation/RelationServiceNotRegisteredException.html
javax/management/relation/RelationSupport.html
javax/management/relation/RelationSupportMBean.html
javax/management/relation/RelationType.html
javax/management/relation/RelationTypeNotFoundException.html
javax/management/relation/RelationTypeSupport.html
javax/management/relation/Role.html
javax/management/relation/RoleInfo.html
javax/management/relation/RoleInfoNotFoundException.html
javax/management/relation/RoleList.html
javax/management/relation/RoleNotFoundException.html
javax/management/relation/RoleResult.html
javax/management/relation/RoleStatus.html
javax/management/relation/RoleUnresolved.html
javax/management/relation/RoleUnresolvedList.html
javax/management/remote/JMXAuthenticator.html
javax/management/remote/JMXConnectionNotification.html
javax/management/remote/JMXConnector.html
javax/management/remote/JMXConnectorFactory.html
javax/management/remote/JMXConnectorProvider.html
javax/management/remote/JMXConnectorServer.html
javax/management/remote/JMXConnectorServerFactory.html
javax/management/remote/JMXConnectorServerMBean.html
javax/management/remote/JMXConnectorServerProvider.html
javax/management/remote/JMXPrincipal.html
javax/management/remote/JMXProviderException.html
javax/management/remote/JMXServerErrorException.html
javax/management/remote/JMXServiceURL.html
javax/management/remote/MBeanServerForwarder.html
javax/management/remote/NotificationResult.html
javax/management/remote/SubjectDelegationPermission.html
javax/management/remote/TargetedNotification.html
javax/management/remote/rmi/RMIConnection.html
javax/management/remote/rmi/RMIConnectionImpl.html
javax/management/remote/rmi/RMIConnectionImpl_Stub.html
javax/management/remote/rmi/RMIConnector.html
javax/management/remote/rmi/RMIConnectorServer.html
javax/management/remote/rmi/RMIIIOPServerImpl.html
javax/management/remote/rmi/RMIJRMPServerImpl.html
javax/management/remote/rmi/RMIServer.html
javax/management/remote/rmi/RMIServerImpl.html
javax/management/remote/rmi/RMIServerImpl_Stub.html
javax/management/timer/Timer.html
javax/management/timer/TimerAlarmClockNotification.html
javax/management/timer/TimerMBean.html
javax/management/timer/TimerNotification.html
javax/naming/ldap/BasicControl.html
javax/naming/ldap/LdapName.html
javax/naming/ldap/ManageReferralControl.html
javax/naming/ldap/PagedResultsControl.html
javax/naming/ldap/PagedResultsResponseControl.html
javax/naming/ldap/Rdn.html
javax/naming/ldap/SortControl.html
javax/naming/ldap/SortKey.html
javax/naming/ldap/SortResponseControl.html
javax/net/ssl/CertPathTrustManagerParameters.html
javax/net/ssl/KeyStoreBuilderParameters.html
javax/net/ssl/SSLEngine.html
javax/net/ssl/SSLEngineResult.HandshakeStatus.html
javax/net/ssl/SSLEngineResult.Status.html
javax/net/ssl/SSLEngineResult.html
javax/net/ssl/X509ExtendedKeyManager.html
javax/rmi/CORBA/ValueHandlerMultiFormat.html
javax/rmi/ssl/SslRMIClientSocketFactory.html
javax/rmi/ssl/SslRMIServerSocketFactory.html
javax/security/auth/login/AccountException.html
javax/security/auth/login/AccountLockedException.html
javax/security/auth/login/AccountNotFoundException.html
javax/security/auth/login/CredentialException.html
javax/security/auth/login/CredentialNotFoundException.html
javax/security/sasl/AuthenticationException.html
javax/security/sasl/AuthorizeCallback.html
javax/security/sasl/RealmCallback.html
javax/security/sasl/RealmChoiceCallback.html
javax/security/sasl/Sasl.html
javax/security/sasl/SaslClient.html
javax/security/sasl/SaslClientFactory.html
javax/security/sasl/SaslException.html
javax/security/sasl/SaslServer.html
javax/security/sasl/SaslServerFactory.html
javax/sql/rowset/BaseRowSet.html
javax/sql/rowset/CachedRowSet.html
javax/sql/rowset/FilteredRowSet.html
javax/sql/rowset/JdbcRowSet.html
javax/sql/rowset/JoinRowSet.html
javax/sql/rowset/Joinable.html
javax/sql/rowset/Predicate.html
javax/sql/rowset/RowSetMetaDataImpl.html
javax/sql/rowset/RowSetWarning.html
javax/sql/rowset/WebRowSet.html
javax/sql/rowset/serial/SQLInputImpl.html
javax/sql/rowset/serial/SQLOutputImpl.html
javax/sql/rowset/serial/SerialArray.html
javax/sql/rowset/serial/SerialBlob.html
javax/sql/rowset/serial/SerialClob.html
javax/sql/rowset/serial/SerialDatalink.html
javax/sql/rowset/serial/SerialException.html
javax/sql/rowset/serial/SerialJavaObject.html
javax/sql/rowset/serial/SerialRef.html
javax/sql/rowset/serial/SerialStruct.html
javax/sql/rowset/spi/SyncFactory.html
javax/sql/rowset/spi/SyncFactoryException.html
javax/sql/rowset/spi/SyncProvider.html
javax/sql/rowset/spi/SyncProviderException.html
javax/sql/rowset/spi/SyncResolver.html
javax/sql/rowset/spi/TransactionalWriter.html
javax/sql/rowset/spi/XmlReader.html
javax/sql/rowset/spi/XmlWriter.html
javax/swing/JTable.PrintMode.html
javax/swing/plaf/metal/MetalMenuBarUI.html
javax/swing/plaf/metal/OceanTheme.html
javax/swing/plaf/synth/ColorType.html
javax/swing/plaf/synth/Region.html
javax/swing/plaf/synth/SynthConstants.html
javax/swing/plaf/synth/SynthContext.html
javax/swing/plaf/synth/SynthGraphicsUtils.html
javax/swing/plaf/synth/SynthLookAndFeel.html
javax/swing/plaf/synth/SynthPainter.html
javax/swing/plaf/synth/SynthStyle.html
javax/swing/plaf/synth/SynthStyleFactory.html
javax/swing/text/html/FormSubmitEvent.MethodType.html
javax/swing/text/html/FormSubmitEvent.html
javax/xml/XMLConstants.html
javax/xml/datatype/DatatypeConfigurationException.html
javax/xml/datatype/DatatypeConstants.Field.html
javax/xml/datatype/DatatypeConstants.html
javax/xml/datatype/DatatypeFactory.html
javax/xml/datatype/Duration.html
javax/xml/datatype/XMLGregorianCalendar.html
javax/xml/namespace/NamespaceContext.html
javax/xml/namespace/QName.html
javax/xml/validation/Schema.html
javax/xml/validation/SchemaFactory.html
javax/xml/validation/SchemaFactoryLoader.html
javax/xml/validation/TypeInfoProvider.html
javax/xml/validation/Validator.html
javax/xml/validation/ValidatorHandler.html
javax/xml/xpath/XPath.html
javax/xml/xpath/XPathConstants.html
javax/xml/xpath/XPathException.html
javax/xml/xpath/XPathExpression.html
javax/xml/xpath/XPathExpressionException.html
javax/xml/xpath/XPathFactory.html
javax/xml/xpath/XPathFactoryConfigurationException.html
javax/xml/xpath/XPathFunction.html
javax/xml/xpath/XPathFunctionException.html
javax/xml/xpath/XPathFunctionResolver.html
javax/xml/xpath/XPathVariableResolver.html
org/omg/CORBA/ACTIVITY_COMPLETED.html
org/omg/CORBA/ACTIVITY_REQUIRED.html
org/omg/CORBA/BAD_QOS.html
org/omg/CORBA/CODESET_INCOMPATIBLE.html
org/omg/CORBA/INVALID_ACTIVITY.html
org/omg/CORBA/REBIND.html
org/omg/CORBA/TIMEOUT.html
org/omg/CORBA/TRANSACTION_MODE.html
org/omg/CORBA/TRANSACTION_UNAVAILABLE.html
org/omg/CORBA/portable/ValueInputStream.html
org/omg/CORBA/portable/ValueOutputStream.html
org/omg/IOP/ExceptionDetailMessage.html
org/omg/IOP/RMICustomMaxStreamFormat.html
org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.html
org/omg/PortableInterceptor/ACTIVE.html
org/omg/PortableInterceptor/AdapterManagerIdHelper.html
org/omg/PortableInterceptor/AdapterNameHelper.html
org/omg/PortableInterceptor/AdapterStateHelper.html
org/omg/PortableInterceptor/DISCARDING.html
org/omg/PortableInterceptor/HOLDING.html
org/omg/PortableInterceptor/INACTIVE.html
org/omg/PortableInterceptor/IORInterceptor_3_0.html
org/omg/PortableInterceptor/IORInterceptor_3_0Helper.html
org/omg/PortableInterceptor/IORInterceptor_3_0Holder.html
org/omg/PortableInterceptor/IORInterceptor_3_0Operations.html
org/omg/PortableInterceptor/NON_EXISTENT.html
org/omg/PortableInterceptor/ORBIdHelper.html
org/omg/PortableInterceptor/ObjectIdHelper.html
org/omg/PortableInterceptor/ObjectReferenceFactory.html
org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.html
org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.html
org/omg/PortableInterceptor/ObjectReferenceTemplate.html
org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.html
org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.html
org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.html
org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.html
org/omg/PortableInterceptor/ServerIdHelper.html
org/omg/PortableInterceptor/UNKNOWN.html
org/w3c/dom/DOMConfiguration.html
org/w3c/dom/DOMError.html
org/w3c/dom/DOMErrorHandler.html
org/w3c/dom/DOMImplementationList.html
org/w3c/dom/DOMImplementationSource.html
org/w3c/dom/DOMLocator.html
org/w3c/dom/DOMStringList.html
org/w3c/dom/NameList.html
org/w3c/dom/TypeInfo.html
org/w3c/dom/UserDataHandler.html
org/w3c/dom/bootstrap/DOMImplementationRegistry.html
org/w3c/dom/events/DocumentEvent.html
org/w3c/dom/events/Event.html
org/w3c/dom/events/EventException.html
org/w3c/dom/events/EventListener.html
org/w3c/dom/events/EventTarget.html
org/w3c/dom/events/MouseEvent.html
org/w3c/dom/events/MutationEvent.html
org/w3c/dom/events/UIEvent.html
org/w3c/dom/ls/DOMImplementationLS.html
org/w3c/dom/ls/LSException.html
org/w3c/dom/ls/LSInput.html
org/w3c/dom/ls/LSLoadEvent.html
org/w3c/dom/ls/LSOutput.html
org/w3c/dom/ls/LSParser.html
org/w3c/dom/ls/LSParserFilter.html
org/w3c/dom/ls/LSProgressEvent.html
org/w3c/dom/ls/LSResourceResolver.html
org/w3c/dom/ls/LSSerializer.html
org/w3c/dom/ls/LSSerializerFilter.html
org/xml/sax/ext/Attributes2.html
org/xml/sax/ext/Attributes2Impl.html
org/xml/sax/ext/DefaultHandler2.html
org/xml/sax/ext/EntityResolver2.html
org/xml/sax/ext/Locator2.html
org/xml/sax/ext/Locator2Impl.html

J2SE5 added 556 new constructs (3279 - 2723). A large number of the new constructs supported the built-in JMX support first available with J2SE 5.


JDK 1.3 and JDK 1.4

The release of JDK 1.4 was huge in the land of Java. There were actually some relatively significant "minor" releases, but I limit the coverage here to 1.4 (1.4.2) as a whole. There were far too many useful new features in 1.4 to list them all here, but they included inclusion of java.util.logging, availability of assertions, several Collections Framework enhancements, significant new XML support, invaluable chaining of exceptions, NIO, and regular expression support. Those were heady times for the Java developer! The script listed above provides the following output when JDK 1.4 is compared to JDK 1.3 (which at one time had its own new features).

JDK 1.4 URLs found: 2723
JDK 1.3 URLs found: 1840
Constructs in JDK 1.3 But Not in JDK 1.4
org/omg/CORBA/Initializer.html
org/omg/CORBA/Repository.html
Constructs in JDK 1.4 But Not in JDK 1.3
java/awt/AWTKeyStroke.html
java/awt/BufferCapabilities.FlipContents.html
java/awt/BufferCapabilities.html
java/awt/ContainerOrderFocusTraversalPolicy.html
java/awt/DefaultFocusTraversalPolicy.html
java/awt/DefaultKeyboardFocusManager.html
java/awt/DisplayMode.html
java/awt/FocusTraversalPolicy.html
java/awt/HeadlessException.html
java/awt/ImageCapabilities.html
java/awt/KeyEventDispatcher.html
java/awt/KeyEventPostProcessor.html
java/awt/KeyboardFocusManager.html
java/awt/ScrollPaneAdjustable.html
java/awt/datatransfer/FlavorTable.html
java/awt/dnd/DragSourceAdapter.html
java/awt/dnd/DragSourceMotionListener.html
java/awt/dnd/DropTargetAdapter.html
java/awt/event/AWTEventListenerProxy.html
java/awt/event/MouseWheelEvent.html
java/awt/event/MouseWheelListener.html
java/awt/event/WindowFocusListener.html
java/awt/event/WindowStateListener.html
java/awt/font/NumericShaper.html
java/awt/image/BufferStrategy.html
java/awt/image/DataBufferDouble.html
java/awt/image/DataBufferFloat.html
java/awt/image/VolatileImage.html
java/beans/DefaultPersistenceDelegate.html
java/beans/Encoder.html
java/beans/EventHandler.html
java/beans/ExceptionListener.html
java/beans/Expression.html
java/beans/PersistenceDelegate.html
java/beans/PropertyChangeListenerProxy.html
java/beans/Statement.html
java/beans/VetoableChangeListenerProxy.html
java/beans/XMLDecoder.html
java/beans/XMLEncoder.html
java/lang/AssertionError.html
java/lang/CharSequence.html
java/lang/StackTraceElement.html
java/net/Inet4Address.html
java/net/Inet6Address.html
java/net/InetSocketAddress.html
java/net/NetworkInterface.html
java/net/PortUnreachableException.html
java/net/SocketAddress.html
java/net/SocketTimeoutException.html
java/net/URI.html
java/net/URISyntaxException.html
java/nio/Buffer.html
java/nio/BufferOverflowException.html
java/nio/BufferUnderflowException.html
java/nio/ByteBuffer.html
java/nio/ByteOrder.html
java/nio/CharBuffer.html
java/nio/DoubleBuffer.html
java/nio/FloatBuffer.html
java/nio/IntBuffer.html
java/nio/InvalidMarkException.html
java/nio/LongBuffer.html
java/nio/MappedByteBuffer.html
java/nio/ReadOnlyBufferException.html
java/nio/ShortBuffer.html
java/nio/channels/AlreadyConnectedException.html
java/nio/channels/AsynchronousCloseException.html
java/nio/channels/ByteChannel.html
java/nio/channels/CancelledKeyException.html
java/nio/channels/Channel.html
java/nio/channels/Channels.html
java/nio/channels/ClosedByInterruptException.html
java/nio/channels/ClosedChannelException.html
java/nio/channels/ClosedSelectorException.html
java/nio/channels/ConnectionPendingException.html
java/nio/channels/DatagramChannel.html
java/nio/channels/FileChannel.MapMode.html
java/nio/channels/FileChannel.html
java/nio/channels/FileLock.html
java/nio/channels/FileLockInterruptionException.html
java/nio/channels/GatheringByteChannel.html
java/nio/channels/IllegalBlockingModeException.html
java/nio/channels/IllegalSelectorException.html
java/nio/channels/InterruptibleChannel.html
java/nio/channels/NoConnectionPendingException.html
java/nio/channels/NonReadableChannelException.html
java/nio/channels/NonWritableChannelException.html
java/nio/channels/NotYetBoundException.html
java/nio/channels/NotYetConnectedException.html
java/nio/channels/OverlappingFileLockException.html
java/nio/channels/Pipe.SinkChannel.html
java/nio/channels/Pipe.SourceChannel.html
java/nio/channels/Pipe.html
java/nio/channels/ReadableByteChannel.html
java/nio/channels/ScatteringByteChannel.html
java/nio/channels/SelectableChannel.html
java/nio/channels/SelectionKey.html
java/nio/channels/Selector.html
java/nio/channels/ServerSocketChannel.html
java/nio/channels/SocketChannel.html
java/nio/channels/UnresolvedAddressException.html
java/nio/channels/UnsupportedAddressTypeException.html
java/nio/channels/WritableByteChannel.html
java/nio/channels/spi/AbstractInterruptibleChannel.html
java/nio/channels/spi/AbstractSelectableChannel.html
java/nio/channels/spi/AbstractSelectionKey.html
java/nio/channels/spi/AbstractSelector.html
java/nio/channels/spi/SelectorProvider.html
java/nio/charset/CharacterCodingException.html
java/nio/charset/Charset.html
java/nio/charset/CharsetDecoder.html
java/nio/charset/CharsetEncoder.html
java/nio/charset/CoderMalfunctionError.html
java/nio/charset/CoderResult.html
java/nio/charset/CodingErrorAction.html
java/nio/charset/IllegalCharsetNameException.html
java/nio/charset/MalformedInputException.html
java/nio/charset/UnmappableCharacterException.html
java/nio/charset/UnsupportedCharsetException.html
java/nio/charset/spi/CharsetProvider.html
java/rmi/activation/ActivationGroup_Stub.html
java/rmi/server/RMIClassLoaderSpi.html
java/security/cert/CRLSelector.html
java/security/cert/CertPath.CertPathRep.html
java/security/cert/CertPath.html
java/security/cert/CertPathBuilder.html
java/security/cert/CertPathBuilderException.html
java/security/cert/CertPathBuilderResult.html
java/security/cert/CertPathBuilderSpi.html
java/security/cert/CertPathParameters.html
java/security/cert/CertPathValidator.html
java/security/cert/CertPathValidatorException.html
java/security/cert/CertPathValidatorResult.html
java/security/cert/CertPathValidatorSpi.html
java/security/cert/CertSelector.html
java/security/cert/CertStore.html
java/security/cert/CertStoreException.html
java/security/cert/CertStoreParameters.html
java/security/cert/CertStoreSpi.html
java/security/cert/CollectionCertStoreParameters.html
java/security/cert/LDAPCertStoreParameters.html
java/security/cert/PKIXBuilderParameters.html
java/security/cert/PKIXCertPathBuilderResult.html
java/security/cert/PKIXCertPathChecker.html
java/security/cert/PKIXCertPathValidatorResult.html
java/security/cert/PKIXParameters.html
java/security/cert/PolicyNode.html
java/security/cert/PolicyQualifierInfo.html
java/security/cert/TrustAnchor.html
java/security/cert/X509CRLSelector.html
java/security/cert/X509CertSelector.html
java/security/interfaces/RSAMultiPrimePrivateCrtKey.html
java/security/spec/PSSParameterSpec.html
java/security/spec/RSAMultiPrimePrivateCrtKeySpec.html
java/security/spec/RSAOtherPrimeInfo.html
java/sql/ParameterMetaData.html
java/sql/Savepoint.html
java/text/Bidi.html
java/text/DateFormat.Field.html
java/text/Format.Field.html
java/text/MessageFormat.Field.html
java/text/NumberFormat.Field.html
java/util/Currency.html
java/util/EventListenerProxy.html
java/util/IdentityHashMap.html
java/util/LinkedHashMap.html
java/util/LinkedHashSet.html
java/util/RandomAccess.html
java/util/logging/ConsoleHandler.html
java/util/logging/ErrorManager.html
java/util/logging/FileHandler.html
java/util/logging/Filter.html
java/util/logging/Formatter.html
java/util/logging/Handler.html
java/util/logging/Level.html
java/util/logging/LogManager.html
java/util/logging/LogRecord.html
java/util/logging/Logger.html
java/util/logging/LoggingPermission.html
java/util/logging/MemoryHandler.html
java/util/logging/SimpleFormatter.html
java/util/logging/SocketHandler.html
java/util/logging/StreamHandler.html
java/util/logging/XMLFormatter.html
java/util/prefs/AbstractPreferences.html
java/util/prefs/BackingStoreException.html
java/util/prefs/InvalidPreferencesFormatException.html
java/util/prefs/NodeChangeEvent.html
java/util/prefs/NodeChangeListener.html
java/util/prefs/PreferenceChangeEvent.html
java/util/prefs/PreferenceChangeListener.html
java/util/prefs/Preferences.html
java/util/prefs/PreferencesFactory.html
java/util/regex/Matcher.html
java/util/regex/Pattern.html
java/util/regex/PatternSyntaxException.html
javax/accessibility/AccessibleEditableText.html
javax/accessibility/AccessibleExtendedComponent.html
javax/accessibility/AccessibleExtendedTable.html
javax/accessibility/AccessibleKeyBinding.html
javax/crypto/BadPaddingException.html
javax/crypto/Cipher.html
javax/crypto/CipherInputStream.html
javax/crypto/CipherOutputStream.html
javax/crypto/CipherSpi.html
javax/crypto/EncryptedPrivateKeyInfo.html
javax/crypto/ExemptionMechanism.html
javax/crypto/ExemptionMechanismException.html
javax/crypto/ExemptionMechanismSpi.html
javax/crypto/IllegalBlockSizeException.html
javax/crypto/KeyAgreement.html
javax/crypto/KeyAgreementSpi.html
javax/crypto/KeyGenerator.html
javax/crypto/KeyGeneratorSpi.html
javax/crypto/Mac.html
javax/crypto/MacSpi.html
javax/crypto/NoSuchPaddingException.html
javax/crypto/NullCipher.html
javax/crypto/SealedObject.html
javax/crypto/SecretKey.html
javax/crypto/SecretKeyFactory.html
javax/crypto/SecretKeyFactorySpi.html
javax/crypto/ShortBufferException.html
javax/crypto/interfaces/DHKey.html
javax/crypto/interfaces/DHPrivateKey.html
javax/crypto/interfaces/DHPublicKey.html
javax/crypto/interfaces/PBEKey.html
javax/crypto/spec/DESKeySpec.html
javax/crypto/spec/DESedeKeySpec.html
javax/crypto/spec/DHGenParameterSpec.html
javax/crypto/spec/DHParameterSpec.html
javax/crypto/spec/DHPrivateKeySpec.html
javax/crypto/spec/DHPublicKeySpec.html
javax/crypto/spec/IvParameterSpec.html
javax/crypto/spec/PBEKeySpec.html
javax/crypto/spec/PBEParameterSpec.html
javax/crypto/spec/RC2ParameterSpec.html
javax/crypto/spec/RC5ParameterSpec.html
javax/crypto/spec/SecretKeySpec.html
javax/imageio/IIOException.html
javax/imageio/IIOImage.html
javax/imageio/IIOParam.html
javax/imageio/IIOParamController.html
javax/imageio/ImageIO.html
javax/imageio/ImageReadParam.html
javax/imageio/ImageReader.html
javax/imageio/ImageTranscoder.html
javax/imageio/ImageTypeSpecifier.html
javax/imageio/ImageWriteParam.html
javax/imageio/ImageWriter.html
javax/imageio/event/IIOReadProgressListener.html
javax/imageio/event/IIOReadUpdateListener.html
javax/imageio/event/IIOReadWarningListener.html
javax/imageio/event/IIOWriteProgressListener.html
javax/imageio/event/IIOWriteWarningListener.html
javax/imageio/metadata/IIOInvalidTreeException.html
javax/imageio/metadata/IIOMetadata.html
javax/imageio/metadata/IIOMetadataController.html
javax/imageio/metadata/IIOMetadataFormat.html
javax/imageio/metadata/IIOMetadataFormatImpl.html
javax/imageio/metadata/IIOMetadataNode.html
javax/imageio/plugins/jpeg/JPEGHuffmanTable.html
javax/imageio/plugins/jpeg/JPEGImageReadParam.html
javax/imageio/plugins/jpeg/JPEGImageWriteParam.html
javax/imageio/plugins/jpeg/JPEGQTable.html
javax/imageio/spi/IIORegistry.html
javax/imageio/spi/IIOServiceProvider.html
javax/imageio/spi/ImageInputStreamSpi.html
javax/imageio/spi/ImageOutputStreamSpi.html
javax/imageio/spi/ImageReaderSpi.html
javax/imageio/spi/ImageReaderWriterSpi.html
javax/imageio/spi/ImageTranscoderSpi.html
javax/imageio/spi/ImageWriterSpi.html
javax/imageio/spi/RegisterableService.html
javax/imageio/spi/ServiceRegistry.Filter.html
javax/imageio/spi/ServiceRegistry.html
javax/imageio/stream/FileCacheImageInputStream.html
javax/imageio/stream/FileCacheImageOutputStream.html
javax/imageio/stream/FileImageInputStream.html
javax/imageio/stream/FileImageOutputStream.html
javax/imageio/stream/IIOByteBuffer.html
javax/imageio/stream/ImageInputStream.html
javax/imageio/stream/ImageInputStreamImpl.html
javax/imageio/stream/ImageOutputStream.html
javax/imageio/stream/ImageOutputStreamImpl.html
javax/imageio/stream/MemoryCacheImageInputStream.html
javax/imageio/stream/MemoryCacheImageOutputStream.html
javax/naming/ldap/StartTlsRequest.html
javax/naming/ldap/StartTlsResponse.html
javax/net/ServerSocketFactory.html
javax/net/SocketFactory.html
javax/net/ssl/HandshakeCompletedEvent.html
javax/net/ssl/HandshakeCompletedListener.html
javax/net/ssl/HostnameVerifier.html
javax/net/ssl/HttpsURLConnection.html
javax/net/ssl/KeyManager.html
javax/net/ssl/KeyManagerFactory.html
javax/net/ssl/KeyManagerFactorySpi.html
javax/net/ssl/ManagerFactoryParameters.html
javax/net/ssl/SSLContext.html
javax/net/ssl/SSLContextSpi.html
javax/net/ssl/SSLException.html
javax/net/ssl/SSLHandshakeException.html
javax/net/ssl/SSLKeyException.html
javax/net/ssl/SSLPeerUnverifiedException.html
javax/net/ssl/SSLPermission.html
javax/net/ssl/SSLProtocolException.html
javax/net/ssl/SSLServerSocket.html
javax/net/ssl/SSLServerSocketFactory.html
javax/net/ssl/SSLSession.html
javax/net/ssl/SSLSessionBindingEvent.html
javax/net/ssl/SSLSessionBindingListener.html
javax/net/ssl/SSLSessionContext.html
javax/net/ssl/SSLSocket.html
javax/net/ssl/SSLSocketFactory.html
javax/net/ssl/TrustManager.html
javax/net/ssl/TrustManagerFactory.html
javax/net/ssl/TrustManagerFactorySpi.html
javax/net/ssl/X509KeyManager.html
javax/net/ssl/X509TrustManager.html
javax/print/AttributeException.html
javax/print/CancelablePrintJob.html
javax/print/Doc.html
javax/print/DocFlavor.BYTE_ARRAY.html
javax/print/DocFlavor.CHAR_ARRAY.html
javax/print/DocFlavor.INPUT_STREAM.html
javax/print/DocFlavor.READER.html
javax/print/DocFlavor.SERVICE_FORMATTED.html
javax/print/DocFlavor.STRING.html
javax/print/DocFlavor.URL.html
javax/print/DocFlavor.html
javax/print/DocPrintJob.html
javax/print/FlavorException.html
javax/print/MultiDoc.html
javax/print/MultiDocPrintJob.html
javax/print/MultiDocPrintService.html
javax/print/PrintException.html
javax/print/PrintService.html
javax/print/PrintServiceLookup.html
javax/print/ServiceUI.html
javax/print/ServiceUIFactory.html
javax/print/SimpleDoc.html
javax/print/StreamPrintService.html
javax/print/StreamPrintServiceFactory.html
javax/print/URIException.html
javax/print/attribute/Attribute.html
javax/print/attribute/AttributeSet.html
javax/print/attribute/AttributeSetUtilities.html
javax/print/attribute/DateTimeSyntax.html
javax/print/attribute/DocAttribute.html
javax/print/attribute/DocAttributeSet.html
javax/print/attribute/EnumSyntax.html
javax/print/attribute/HashAttributeSet.html
javax/print/attribute/HashDocAttributeSet.html
javax/print/attribute/HashPrintJobAttributeSet.html
javax/print/attribute/HashPrintRequestAttributeSet.html
javax/print/attribute/HashPrintServiceAttributeSet.html
javax/print/attribute/IntegerSyntax.html
javax/print/attribute/PrintJobAttribute.html
javax/print/attribute/PrintJobAttributeSet.html
javax/print/attribute/PrintRequestAttribute.html
javax/print/attribute/PrintRequestAttributeSet.html
javax/print/attribute/PrintServiceAttribute.html
javax/print/attribute/PrintServiceAttributeSet.html
javax/print/attribute/ResolutionSyntax.html
javax/print/attribute/SetOfIntegerSyntax.html
javax/print/attribute/Size2DSyntax.html
javax/print/attribute/SupportedValuesAttribute.html
javax/print/attribute/TextSyntax.html
javax/print/attribute/URISyntax.html
javax/print/attribute/UnmodifiableSetException.html
javax/print/attribute/standard/Chromaticity.html
javax/print/attribute/standard/ColorSupported.html
javax/print/attribute/standard/Compression.html
javax/print/attribute/standard/Copies.html
javax/print/attribute/standard/CopiesSupported.html
javax/print/attribute/standard/DateTimeAtCompleted.html
javax/print/attribute/standard/DateTimeAtCreation.html
javax/print/attribute/standard/DateTimeAtProcessing.html
javax/print/attribute/standard/Destination.html
javax/print/attribute/standard/DocumentName.html
javax/print/attribute/standard/Fidelity.html
javax/print/attribute/standard/Finishings.html
javax/print/attribute/standard/JobHoldUntil.html
javax/print/attribute/standard/JobImpressions.html
javax/print/attribute/standard/JobImpressionsCompleted.html
javax/print/attribute/standard/JobImpressionsSupported.html
javax/print/attribute/standard/JobKOctets.html
javax/print/attribute/standard/JobKOctetsProcessed.html
javax/print/attribute/standard/JobKOctetsSupported.html
javax/print/attribute/standard/JobMediaSheets.html
javax/print/attribute/standard/JobMediaSheetsCompleted.html
javax/print/attribute/standard/JobMediaSheetsSupported.html
javax/print/attribute/standard/JobMessageFromOperator.html
javax/print/attribute/standard/JobName.html
javax/print/attribute/standard/JobOriginatingUserName.html
javax/print/attribute/standard/JobPriority.html
javax/print/attribute/standard/JobPrioritySupported.html
javax/print/attribute/standard/JobSheets.html
javax/print/attribute/standard/JobState.html
javax/print/attribute/standard/JobStateReason.html
javax/print/attribute/standard/JobStateReasons.html
javax/print/attribute/standard/Media.html
javax/print/attribute/standard/MediaName.html
javax/print/attribute/standard/MediaPrintableArea.html
javax/print/attribute/standard/MediaSize.Engineering.html
javax/print/attribute/standard/MediaSize.ISO.html
javax/print/attribute/standard/MediaSize.JIS.html
javax/print/attribute/standard/MediaSize.NA.html
javax/print/attribute/standard/MediaSize.Other.html
javax/print/attribute/standard/MediaSize.html
javax/print/attribute/standard/MediaSizeName.html
javax/print/attribute/standard/MediaTray.html
javax/print/attribute/standard/MultipleDocumentHandling.html
javax/print/attribute/standard/NumberOfDocuments.html
javax/print/attribute/standard/NumberOfInterveningJobs.html
javax/print/attribute/standard/NumberUp.html
javax/print/attribute/standard/NumberUpSupported.html
javax/print/attribute/standard/OrientationRequested.html
javax/print/attribute/standard/OutputDeviceAssigned.html
javax/print/attribute/standard/PDLOverrideSupported.html
javax/print/attribute/standard/PageRanges.html
javax/print/attribute/standard/PagesPerMinute.html
javax/print/attribute/standard/PagesPerMinuteColor.html
javax/print/attribute/standard/PresentationDirection.html
javax/print/attribute/standard/PrintQuality.html
javax/print/attribute/standard/PrinterInfo.html
javax/print/attribute/standard/PrinterIsAcceptingJobs.html
javax/print/attribute/standard/PrinterLocation.html
javax/print/attribute/standard/PrinterMakeAndModel.html
javax/print/attribute/standard/PrinterMessageFromOperator.html
javax/print/attribute/standard/PrinterMoreInfo.html
javax/print/attribute/standard/PrinterMoreInfoManufacturer.html
javax/print/attribute/standard/PrinterName.html
javax/print/attribute/standard/PrinterResolution.html
javax/print/attribute/standard/PrinterState.html
javax/print/attribute/standard/PrinterStateReason.html
javax/print/attribute/standard/PrinterStateReasons.html
javax/print/attribute/standard/PrinterURI.html
javax/print/attribute/standard/QueuedJobCount.html
javax/print/attribute/standard/ReferenceUriSchemesSupported.html
javax/print/attribute/standard/RequestingUserName.html
javax/print/attribute/standard/Severity.html
javax/print/attribute/standard/SheetCollate.html
javax/print/attribute/standard/Sides.html
javax/print/event/PrintEvent.html
javax/print/event/PrintJobAdapter.html
javax/print/event/PrintJobAttributeEvent.html
javax/print/event/PrintJobAttributeListener.html
javax/print/event/PrintJobEvent.html
javax/print/event/PrintJobListener.html
javax/print/event/PrintServiceAttributeEvent.html
javax/print/event/PrintServiceAttributeListener.html
javax/security/auth/AuthPermission.html
javax/security/auth/DestroyFailedException.html
javax/security/auth/Destroyable.html
javax/security/auth/Policy.html
javax/security/auth/PrivateCredentialPermission.html
javax/security/auth/RefreshFailedException.html
javax/security/auth/Refreshable.html
javax/security/auth/Subject.html
javax/security/auth/SubjectDomainCombiner.html
javax/security/auth/callback/Callback.html
javax/security/auth/callback/CallbackHandler.html
javax/security/auth/callback/ChoiceCallback.html
javax/security/auth/callback/ConfirmationCallback.html
javax/security/auth/callback/LanguageCallback.html
javax/security/auth/callback/NameCallback.html
javax/security/auth/callback/PasswordCallback.html
javax/security/auth/callback/TextInputCallback.html
javax/security/auth/callback/TextOutputCallback.html
javax/security/auth/callback/UnsupportedCallbackException.html
javax/security/auth/kerberos/DelegationPermission.html
javax/security/auth/kerberos/KerberosKey.html
javax/security/auth/kerberos/KerberosPrincipal.html
javax/security/auth/kerberos/KerberosTicket.html
javax/security/auth/kerberos/ServicePermission.html
javax/security/auth/login/AccountExpiredException.html
javax/security/auth/login/AppConfigurationEntry.LoginModuleControlFlag.html
javax/security/auth/login/AppConfigurationEntry.html
javax/security/auth/login/Configuration.html
javax/security/auth/login/CredentialExpiredException.html
javax/security/auth/login/FailedLoginException.html
javax/security/auth/login/LoginContext.html
javax/security/auth/login/LoginException.html
javax/security/auth/spi/LoginModule.html
javax/security/auth/x500/X500Principal.html
javax/security/auth/x500/X500PrivateCredential.html
javax/security/cert/Certificate.html
javax/security/cert/CertificateEncodingException.html
javax/security/cert/CertificateException.html
javax/security/cert/CertificateExpiredException.html
javax/security/cert/CertificateNotYetValidException.html
javax/security/cert/CertificateParsingException.html
javax/security/cert/X509Certificate.html
javax/sql/ConnectionEvent.html
javax/sql/ConnectionEventListener.html
javax/sql/ConnectionPoolDataSource.html
javax/sql/DataSource.html
javax/sql/PooledConnection.html
javax/sql/RowSet.html
javax/sql/RowSetEvent.html
javax/sql/RowSetInternal.html
javax/sql/RowSetListener.html
javax/sql/RowSetMetaData.html
javax/sql/RowSetReader.html
javax/sql/RowSetWriter.html
javax/sql/XAConnection.html
javax/sql/XADataSource.html
javax/swing/AbstractSpinnerModel.html
javax/swing/InternalFrameFocusTraversalPolicy.html
javax/swing/JFormattedTextField.AbstractFormatter.html
javax/swing/JFormattedTextField.AbstractFormatterFactory.html
javax/swing/JFormattedTextField.html
javax/swing/JSpinner.DateEditor.html
javax/swing/JSpinner.DefaultEditor.html
javax/swing/JSpinner.ListEditor.html
javax/swing/JSpinner.NumberEditor.html
javax/swing/JSpinner.html
javax/swing/LayoutFocusTraversalPolicy.html
javax/swing/Popup.html
javax/swing/PopupFactory.html
javax/swing/SortingFocusTraversalPolicy.html
javax/swing/SpinnerDateModel.html
javax/swing/SpinnerListModel.html
javax/swing/SpinnerModel.html
javax/swing/SpinnerNumberModel.html
javax/swing/Spring.html
javax/swing/SpringLayout.Constraints.html
javax/swing/SpringLayout.html
javax/swing/TransferHandler.html
javax/swing/plaf/SpinnerUI.html
javax/swing/plaf/basic/BasicBorders.RolloverButtonBorder.html
javax/swing/plaf/basic/BasicFormattedTextFieldUI.html
javax/swing/plaf/basic/BasicSpinnerUI.html
javax/swing/plaf/metal/MetalRootPaneUI.html
javax/swing/plaf/multi/MultiRootPaneUI.html
javax/swing/plaf/multi/MultiSpinnerUI.html
javax/swing/text/DateFormatter.html
javax/swing/text/DefaultFormatter.html
javax/swing/text/DefaultFormatterFactory.html
javax/swing/text/DocumentFilter.FilterBypass.html
javax/swing/text/DocumentFilter.html
javax/swing/text/InternationalFormatter.html
javax/swing/text/MaskFormatter.html
javax/swing/text/NavigationFilter.FilterBypass.html
javax/swing/text/NavigationFilter.html
javax/swing/text/NumberFormatter.html
javax/swing/text/html/ImageView.html
javax/transaction/xa/XAException.html
javax/transaction/xa/XAResource.html
javax/transaction/xa/Xid.html
javax/xml/parsers/DocumentBuilder.html
javax/xml/parsers/DocumentBuilderFactory.html
javax/xml/parsers/FactoryConfigurationError.html
javax/xml/parsers/ParserConfigurationException.html
javax/xml/parsers/SAXParser.html
javax/xml/parsers/SAXParserFactory.html
javax/xml/transform/ErrorListener.html
javax/xml/transform/OutputKeys.html
javax/xml/transform/Result.html
javax/xml/transform/Source.html
javax/xml/transform/SourceLocator.html
javax/xml/transform/Templates.html
javax/xml/transform/Transformer.html
javax/xml/transform/TransformerConfigurationException.html
javax/xml/transform/TransformerException.html
javax/xml/transform/TransformerFactory.html
javax/xml/transform/TransformerFactoryConfigurationError.html
javax/xml/transform/URIResolver.html
javax/xml/transform/dom/DOMLocator.html
javax/xml/transform/dom/DOMResult.html
javax/xml/transform/dom/DOMSource.html
javax/xml/transform/sax/SAXResult.html
javax/xml/transform/sax/SAXSource.html
javax/xml/transform/sax/SAXTransformerFactory.html
javax/xml/transform/sax/TemplatesHandler.html
javax/xml/transform/sax/TransformerHandler.html
javax/xml/transform/stream/StreamResult.html
javax/xml/transform/stream/StreamSource.html
org/ietf/jgss/ChannelBinding.html
org/ietf/jgss/GSSContext.html
org/ietf/jgss/GSSCredential.html
org/ietf/jgss/GSSException.html
org/ietf/jgss/GSSManager.html
org/ietf/jgss/GSSName.html
org/ietf/jgss/MessageProp.html
org/ietf/jgss/Oid.html
org/omg/CORBA/LocalObject.html
org/omg/CORBA/ParameterMode.html
org/omg/CORBA/ParameterModeHelper.html
org/omg/CORBA/ParameterModeHolder.html
org/omg/CORBA/PolicyErrorCodeHelper.html
org/omg/CORBA/PolicyErrorHelper.html
org/omg/CORBA/PolicyErrorHolder.html
org/omg/CORBA/StringSeqHelper.html
org/omg/CORBA/StringSeqHolder.html
org/omg/CORBA/UnknownUserExceptionHelper.html
org/omg/CORBA/UnknownUserExceptionHolder.html
org/omg/CORBA/WStringSeqHelper.html
org/omg/CORBA/WStringSeqHolder.html
org/omg/CORBA/WrongTransactionHelper.html
org/omg/CORBA/WrongTransactionHolder.html
org/omg/CosNaming/BindingIteratorPOA.html
org/omg/CosNaming/NamingContextExt.html
org/omg/CosNaming/NamingContextExtHelper.html
org/omg/CosNaming/NamingContextExtHolder.html
org/omg/CosNaming/NamingContextExtOperations.html
org/omg/CosNaming/NamingContextExtPOA.html
org/omg/CosNaming/NamingContextExtPackage/AddressHelper.html
org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.html
org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.html
org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.html
org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.html
org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.html
org/omg/CosNaming/NamingContextPOA.html
org/omg/CosNaming/_NamingContextExtStub.html
org/omg/Dynamic/Parameter.html
org/omg/DynamicAny/AnySeqHelper.html
org/omg/DynamicAny/DynAny.html
org/omg/DynamicAny/DynAnyFactory.html
org/omg/DynamicAny/DynAnyFactoryHelper.html
org/omg/DynamicAny/DynAnyFactoryOperations.html
org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.html
org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.html
org/omg/DynamicAny/DynAnyHelper.html
org/omg/DynamicAny/DynAnyOperations.html
org/omg/DynamicAny/DynAnyPackage/InvalidValue.html
org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.html
org/omg/DynamicAny/DynAnyPackage/TypeMismatch.html
org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.html
org/omg/DynamicAny/DynAnySeqHelper.html
org/omg/DynamicAny/DynArray.html
org/omg/DynamicAny/DynArrayHelper.html
org/omg/DynamicAny/DynArrayOperations.html
org/omg/DynamicAny/DynEnum.html
org/omg/DynamicAny/DynEnumHelper.html
org/omg/DynamicAny/DynEnumOperations.html
org/omg/DynamicAny/DynFixed.html
org/omg/DynamicAny/DynFixedHelper.html
org/omg/DynamicAny/DynFixedOperations.html
org/omg/DynamicAny/DynSequence.html
org/omg/DynamicAny/DynSequenceHelper.html
org/omg/DynamicAny/DynSequenceOperations.html
org/omg/DynamicAny/DynStruct.html
org/omg/DynamicAny/DynStructHelper.html
org/omg/DynamicAny/DynStructOperations.html
org/omg/DynamicAny/DynUnion.html
org/omg/DynamicAny/DynUnionHelper.html
org/omg/DynamicAny/DynUnionOperations.html
org/omg/DynamicAny/DynValue.html
org/omg/DynamicAny/DynValueBox.html
org/omg/DynamicAny/DynValueBoxOperations.html
org/omg/DynamicAny/DynValueCommon.html
org/omg/DynamicAny/DynValueCommonOperations.html
org/omg/DynamicAny/DynValueHelper.html
org/omg/DynamicAny/DynValueOperations.html
org/omg/DynamicAny/FieldNameHelper.html
org/omg/DynamicAny/NameDynAnyPair.html
org/omg/DynamicAny/NameDynAnyPairHelper.html
org/omg/DynamicAny/NameDynAnyPairSeqHelper.html
org/omg/DynamicAny/NameValuePair.html
org/omg/DynamicAny/NameValuePairHelper.html
org/omg/DynamicAny/NameValuePairSeqHelper.html
org/omg/DynamicAny/_DynAnyFactoryStub.html
org/omg/DynamicAny/_DynAnyStub.html
org/omg/DynamicAny/_DynArrayStub.html
org/omg/DynamicAny/_DynEnumStub.html
org/omg/DynamicAny/_DynFixedStub.html
org/omg/DynamicAny/_DynSequenceStub.html
org/omg/DynamicAny/_DynStructStub.html
org/omg/DynamicAny/_DynUnionStub.html
org/omg/DynamicAny/_DynValueStub.html
org/omg/IOP/CodeSets.html
org/omg/IOP/Codec.html
org/omg/IOP/CodecFactory.html
org/omg/IOP/CodecFactoryHelper.html
org/omg/IOP/CodecFactoryOperations.html
org/omg/IOP/CodecFactoryPackage/UnknownEncoding.html
org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.html
org/omg/IOP/CodecOperations.html
org/omg/IOP/CodecPackage/FormatMismatch.html
org/omg/IOP/CodecPackage/FormatMismatchHelper.html
org/omg/IOP/CodecPackage/InvalidTypeForEncoding.html
org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.html
org/omg/IOP/CodecPackage/TypeMismatch.html
org/omg/IOP/CodecPackage/TypeMismatchHelper.html
org/omg/IOP/ComponentIdHelper.html
org/omg/IOP/ENCODING_CDR_ENCAPS.html
org/omg/IOP/Encoding.html
org/omg/IOP/IOR.html
org/omg/IOP/IORHelper.html
org/omg/IOP/IORHolder.html
org/omg/IOP/MultipleComponentProfileHelper.html
org/omg/IOP/MultipleComponentProfileHolder.html
org/omg/IOP/ProfileIdHelper.html
org/omg/IOP/ServiceContext.html
org/omg/IOP/ServiceContextHelper.html
org/omg/IOP/ServiceContextHolder.html
org/omg/IOP/ServiceContextListHelper.html
org/omg/IOP/ServiceContextListHolder.html
org/omg/IOP/ServiceIdHelper.html
org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.html
org/omg/IOP/TAG_CODE_SETS.html
org/omg/IOP/TAG_INTERNET_IOP.html
org/omg/IOP/TAG_JAVA_CODEBASE.html
org/omg/IOP/TAG_MULTIPLE_COMPONENTS.html
org/omg/IOP/TAG_ORB_TYPE.html
org/omg/IOP/TAG_POLICIES.html
org/omg/IOP/TaggedComponent.html
org/omg/IOP/TaggedComponentHelper.html
org/omg/IOP/TaggedComponentHolder.html
org/omg/IOP/TaggedProfile.html
org/omg/IOP/TaggedProfileHelper.html
org/omg/IOP/TaggedProfileHolder.html
org/omg/IOP/TransactionService.html
org/omg/Messaging/SYNC_WITH_TRANSPORT.html
org/omg/Messaging/SyncScopeHelper.html
org/omg/PortableInterceptor/ClientRequestInfo.html
org/omg/PortableInterceptor/ClientRequestInfoOperations.html
org/omg/PortableInterceptor/ClientRequestInterceptor.html
org/omg/PortableInterceptor/ClientRequestInterceptorOperations.html
org/omg/PortableInterceptor/Current.html
org/omg/PortableInterceptor/CurrentHelper.html
org/omg/PortableInterceptor/CurrentOperations.html
org/omg/PortableInterceptor/ForwardRequest.html
org/omg/PortableInterceptor/ForwardRequestHelper.html
org/omg/PortableInterceptor/IORInfo.html
org/omg/PortableInterceptor/IORInfoOperations.html
org/omg/PortableInterceptor/IORInterceptor.html
org/omg/PortableInterceptor/IORInterceptorOperations.html
org/omg/PortableInterceptor/Interceptor.html
org/omg/PortableInterceptor/InterceptorOperations.html
org/omg/PortableInterceptor/InvalidSlot.html
org/omg/PortableInterceptor/InvalidSlotHelper.html
org/omg/PortableInterceptor/LOCATION_FORWARD.html
org/omg/PortableInterceptor/ORBInitInfo.html
org/omg/PortableInterceptor/ORBInitInfoOperations.html
org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.html
org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.html
org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.html
org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.html
org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.html
org/omg/PortableInterceptor/ORBInitializer.html
org/omg/PortableInterceptor/ORBInitializerOperations.html
org/omg/PortableInterceptor/PolicyFactory.html
org/omg/PortableInterceptor/PolicyFactoryOperations.html
org/omg/PortableInterceptor/RequestInfo.html
org/omg/PortableInterceptor/RequestInfoOperations.html
org/omg/PortableInterceptor/SUCCESSFUL.html
org/omg/PortableInterceptor/SYSTEM_EXCEPTION.html
org/omg/PortableInterceptor/ServerRequestInfo.html
org/omg/PortableInterceptor/ServerRequestInfoOperations.html
org/omg/PortableInterceptor/ServerRequestInterceptor.html
org/omg/PortableInterceptor/ServerRequestInterceptorOperations.html
org/omg/PortableInterceptor/TRANSPORT_RETRY.html
org/omg/PortableInterceptor/USER_EXCEPTION.html
org/omg/PortableServer/AdapterActivator.html
org/omg/PortableServer/AdapterActivatorOperations.html
org/omg/PortableServer/Current.html
org/omg/PortableServer/CurrentHelper.html
org/omg/PortableServer/CurrentOperations.html
org/omg/PortableServer/CurrentPackage/NoContext.html
org/omg/PortableServer/CurrentPackage/NoContextHelper.html
org/omg/PortableServer/DynamicImplementation.html
org/omg/PortableServer/ForwardRequest.html
org/omg/PortableServer/ForwardRequestHelper.html
org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.html
org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.html
org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.html
org/omg/PortableServer/IdAssignmentPolicy.html
org/omg/PortableServer/IdAssignmentPolicyOperations.html
org/omg/PortableServer/IdAssignmentPolicyValue.html
org/omg/PortableServer/IdUniquenessPolicy.html
org/omg/PortableServer/IdUniquenessPolicyOperations.html
org/omg/PortableServer/IdUniquenessPolicyValue.html
org/omg/PortableServer/ImplicitActivationPolicy.html
org/omg/PortableServer/ImplicitActivationPolicyOperations.html
org/omg/PortableServer/ImplicitActivationPolicyValue.html
org/omg/PortableServer/LIFESPAN_POLICY_ID.html
org/omg/PortableServer/LifespanPolicy.html
org/omg/PortableServer/LifespanPolicyOperations.html
org/omg/PortableServer/LifespanPolicyValue.html
org/omg/PortableServer/POA.html
org/omg/PortableServer/POAHelper.html
org/omg/PortableServer/POAManager.html
org/omg/PortableServer/POAManagerOperations.html
org/omg/PortableServer/POAManagerPackage/AdapterInactive.html
org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.html
org/omg/PortableServer/POAManagerPackage/State.html
org/omg/PortableServer/POAOperations.html
org/omg/PortableServer/POAPackage/AdapterAlreadyExists.html
org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.html
org/omg/PortableServer/POAPackage/AdapterNonExistent.html
org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.html
org/omg/PortableServer/POAPackage/InvalidPolicy.html
org/omg/PortableServer/POAPackage/InvalidPolicyHelper.html
org/omg/PortableServer/POAPackage/NoServant.html
org/omg/PortableServer/POAPackage/NoServantHelper.html
org/omg/PortableServer/POAPackage/ObjectAlreadyActive.html
org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.html
org/omg/PortableServer/POAPackage/ObjectNotActive.html
org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.html
org/omg/PortableServer/POAPackage/ServantAlreadyActive.html
org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.html
org/omg/PortableServer/POAPackage/ServantNotActive.html
org/omg/PortableServer/POAPackage/ServantNotActiveHelper.html
org/omg/PortableServer/POAPackage/WrongAdapter.html
org/omg/PortableServer/POAPackage/WrongAdapterHelper.html
org/omg/PortableServer/POAPackage/WrongPolicy.html
org/omg/PortableServer/POAPackage/WrongPolicyHelper.html
org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.html
org/omg/PortableServer/RequestProcessingPolicy.html
org/omg/PortableServer/RequestProcessingPolicyOperations.html
org/omg/PortableServer/RequestProcessingPolicyValue.html
org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.html
org/omg/PortableServer/Servant.html
org/omg/PortableServer/ServantActivator.html
org/omg/PortableServer/ServantActivatorHelper.html
org/omg/PortableServer/ServantActivatorOperations.html
org/omg/PortableServer/ServantActivatorPOA.html
org/omg/PortableServer/ServantLocator.html
org/omg/PortableServer/ServantLocatorHelper.html
org/omg/PortableServer/ServantLocatorOperations.html
org/omg/PortableServer/ServantLocatorPOA.html
org/omg/PortableServer/ServantLocatorPackage/CookieHolder.html
org/omg/PortableServer/ServantManager.html
org/omg/PortableServer/ServantManagerOperations.html
org/omg/PortableServer/ServantRetentionPolicy.html
org/omg/PortableServer/ServantRetentionPolicyOperations.html
org/omg/PortableServer/ServantRetentionPolicyValue.html
org/omg/PortableServer/THREAD_POLICY_ID.html
org/omg/PortableServer/ThreadPolicy.html
org/omg/PortableServer/ThreadPolicyOperations.html
org/omg/PortableServer/ThreadPolicyValue.html
org/omg/PortableServer/_ServantActivatorStub.html
org/omg/PortableServer/_ServantLocatorStub.html
org/omg/PortableServer/portable/Delegate.html
org/w3c/dom/Attr.html
org/w3c/dom/CDATASection.html
org/w3c/dom/CharacterData.html
org/w3c/dom/Comment.html
org/w3c/dom/DOMException.html
org/w3c/dom/DOMImplementation.html
org/w3c/dom/Document.html
org/w3c/dom/DocumentFragment.html
org/w3c/dom/DocumentType.html
org/w3c/dom/Element.html
org/w3c/dom/Entity.html
org/w3c/dom/EntityReference.html
org/w3c/dom/NamedNodeMap.html
org/w3c/dom/Node.html
org/w3c/dom/NodeList.html
org/w3c/dom/Notation.html
org/w3c/dom/ProcessingInstruction.html
org/w3c/dom/Text.html
org/xml/sax/AttributeList.html
org/xml/sax/Attributes.html
org/xml/sax/ContentHandler.html
org/xml/sax/DTDHandler.html
org/xml/sax/DocumentHandler.html
org/xml/sax/EntityResolver.html
org/xml/sax/ErrorHandler.html
org/xml/sax/HandlerBase.html
org/xml/sax/InputSource.html
org/xml/sax/Locator.html
org/xml/sax/Parser.html
org/xml/sax/SAXException.html
org/xml/sax/SAXNotRecognizedException.html
org/xml/sax/SAXNotSupportedException.html
org/xml/sax/SAXParseException.html
org/xml/sax/XMLFilter.html
org/xml/sax/XMLReader.html
org/xml/sax/ext/DeclHandler.html
org/xml/sax/ext/LexicalHandler.html
org/xml/sax/helpers/AttributeListImpl.html
org/xml/sax/helpers/AttributesImpl.html
org/xml/sax/helpers/DefaultHandler.html
org/xml/sax/helpers/LocatorImpl.html
org/xml/sax/helpers/NamespaceSupport.html
org/xml/sax/helpers/ParserAdapter.html
org/xml/sax/helpers/ParserFactory.html
org/xml/sax/helpers/XMLFilterImpl.html
org/xml/sax/helpers/XMLReaderAdapter.html
org/xml/sax/helpers/XMLReaderFactory.html

JDK 1.4 lost two classes (org.omg.CORBA.Initializer and org.omg.CORBA.Repository), but gained a whopping 885 classes and interfaces (2723 - 1840 + 2). It is not surprising that XML processing, logging, and NIO are heavily represented in this list of new classes and interfaces.


Conclusion

Although the Groovy script provided earlier in this post is relatively simple, it demonstrates several nice features of Groovy. Additionally, the script provides an easy, lightweight way to take a stroll down memory lane and remember how far the Java SDK has come. As part of this story telling of Java's past, I've tried to use the appropriate naming conventions for each version of Java discussed.