Amin Ahmad has released Ropes for Java 1.2.5, an open source (GPL) implementation of the rope data structure in Java. "A rope is a high performance replacement for Strings. The datastructure, described in detail in "Ropes: an Alternative to Strings", provides asymptotically better performance than both String and StringBuffer for common string modifications like prepend, append, delete, and insert. Like Strings, ropes are immutable and therefore well-suited for use in multi-threaded programming." This is a bug fix release. All users should upgrade.
Sun has released NetBeans 6.5.1, its open source IDE for Java, Ruby, JavaScript, C++, and now PHP and Groovy. This release upgrades Glassfish to 2.1, and fixes numerous bugs.
I'm curious what will happen to NetBeans in the evevnt of an IBM takeover. I suspect it will be quietly abandoned in favor of Eclipse, which would be a shame. NetBeans is a nice product even if it's never gotten the uptake Eclipse and IntelliJ have. On the other hand maybe IBM can put some of the NetBeans team obvious talent to good use deuglifying Eclipse. The appearance and usability of NetBeans is just leaps and bounds beyond Eclipse. It's pretty obvious there's at least one person on the NetBeans team, probably several, who have some understanding of usability. It's equally obvious there aren't any such developers in Eclipse land.
The Legion of the Bouncy Castle has released version 1.42
of the Bouncy Castle Java Cryptography API, an open source,
clean-room implementation of the Java Cryptography Extension (JCE).
It supports X.509 certificates, PKCS12, S/MIME, CMS, PKCS7, TEA, XTEA, SHA224, and lots of other juicy acronyms. It also includes its own light-weight crypto API that works in Java 1.0 and later, and does not depend on the JCE.
According to the announcement:
This release adds Grain v1, and Grain128, as well as basic support for AuthenticatedData to the CMS API. Further work has been done to improve the BC APIs working with Provider objects rather than provider names and JDK 1.5 and 1.6 jars are now pack200 friendly.
Download it while it's still legal.
Bill Pugh of the University of Maryland has released FindBugs 1.3.8, an automated open source tool for finding potential bugs in Java code. New bug detectors in this release include:
@NoWarning FindBugs annotation.@ExpectedWarning FindBugs annotation.
Ivan Szkiba has released ini4j 0.4.1, an
open source (Apache 2.0) Java library for parsing Windows .ini files.
It includes a Java Preferences API
implementation based on the .ini file.
Sun has posted the proposed final draft of JSR-318 Enterprise JavaBeans 3.1. New features in 3.1 include:
- A simplified Local view that provides Session Bean access without a separate Local Business interface.
- Packaging and deployment of EJB components directly in a .war without an ejb-jar.
- An embeddable API for executing EJB components within a Java SE environment.
- A Singleton session bean component that provides easy access to shared state, as well as application startup/shutdown callbacks.
- Automatically created EJB Timers.
- Calendar based EJB Timer expressions.
- Asynchronous session bean invocations.
Comments are due by November 3.
I am pleased to announce the release of XOM 1.2.1, my free-as-in-speech (LGPL) dual streaming/tree-based API for processing XML with Java. Version 1.2.x adds several minor new features including:
toXML to generate malformed output when a namespace URI contained an ampersand.1.2.1 fixes one very minor glitch in 1.2.0. (The version number was still printing 1.0 on System.out.) XOM 1.2.1 should be fully backwards compatible with code written to 1.0 and 1.1 APIs. 1.2.1 should also be somewhat easier to compile and edit due to various changes with UnicodeUtil and Jaxen.
My apologies that this one took so long. There should have been a release in 2007, but late 2007-2008 was a very challenging time. (Moved across the country; new jobs, etc.) On the plus side, several additional bugs did get fixed over the last year.
At this point XOM is essentially feature-complete. I have no plans for major additions to the API though I will continue to fix any bugs that are discovered and improve performance as opportunities suggest themselves.
Mort Bay Consulting has released Jetty 6.1.15, an open source servlet engine that supports version 2.5 of the Java Servlet API and version 2.1 of Java Server Pages, and my personal favorite embeddable web server. This is a bug fix release.
Sun has released JavaMail 1.4.2. JavaMail is a basic library for performing POP, SMTP, and IMAP. I wrote about this in the final chapter of Java Network Programming. Accoording to Bill Shannon:
The 1.4.2 release contains several bug fixes, performance improvements, and enhancements, including the following significant changes:
- Improvements to InternetAddress parsing. By setting the System property "mail.mime.address.strict" to "false", no addresses in mail messages will cause parsing errors.
- "Be liberal in what you accept." In addition to the above, several other System properties can be set to allow JavaMail to accept bogus messages of various types.
- Significant rewrite of IMAP locking to avoid deadlocks.
- Significant rewrite of IMAP message cache to delay creating IMAPMessage objects until needed. This significantly reduces memory consumption with very large IMAP mailboxes.
- The JavaMail DSN support now also supports parsing Message Delivery Notifications.
- Simplified SSL support. It's now even easier to enable SSL support in JavaMail. Instead of using the SSL protocol names, you can simply set the mail.<protocol>.ssl.enable property. This means you don't have to remember to (for example) change the property "mail.smtp.host" to "mail.smtps.host", instead you can continue to set "mail.smtp.host" and also set "mail.smtp.ssl.enable" to "true" to enable use of SMTP over SSL.
- RFC 2595 server identity check. Enable the server identity checks specified in RFC 2595 to prevent man in the middle attacks by setting the property "mail.<protocol>.ssl.checkserveridentity" to "true".
Java 1.4 or later is required.