December, 2007 Java News

Monday, December 31, 2007 (Permalink)

Collabnet has released Subversion 1.4.6, an open source version control system designed to replace CVS. 1.4.6 is a bug fix release.

Sunday, December 30, 2007 (Permalink)

Apache has released version 1.2.26 of the Tomcat mod_jk web server connector. This connector enables Apache web server users to forward servlet requests to Tomcat while still using Apache for static pages. Version 1.2.26 is a bug fix release.

Friday, December 28, 2007 (Permalink)

Oracle has released Berkeley DB Java Edition 3.2.68. This is an open source, non-relational embedded database written in Java. The data is exposed through "a Java Collections-style interface, as well as a programmatic interface similar to the Berkeley DB API." This is a bug fix release.

Thursday, December 27, 2007 (Permalink)

For what I think is the 10th or 11th year in a row, I'll be attending Software Development West in Santa Clara in March. Pre-registration is now open, if you register by January 11, 2008 with the discount code SDGIFT you'll get an extra $40 off the usual super early bird price. :-)

Wednesday, December 26, 2007 (Permalink)

The Apache Jakarta Project has released JMeter 2.3.1, an open source (Apache 2.0 license) load testing application written in Java. "Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load." New features in this release include:

  • Proxy spoofing can now be restricted to certain URLs only
  • GUI supports file revert and remembers the last few file names used
  • GUI has collapse all / expand all options
  • remote testing is enhanced; properties can be passed to remote servers and can be used in file names
  • JDBC supports INOUT and OUT parameters and per-thread connections
Tuesday, December 25, 2007 (Permalink)

Excelsior has released JET 6.0, a Java virtual machine for Linux and Windows that uses a combination of a traditional native code compiler and just-in-time compilation from byte code. According to Dmitry Leskov, "The main reason to upgrade is Java SE 6 support." JET costs start at $1200 and run up to $4500 depending on which version and how much support you want. Support is available by e-mail and Web site only.

Monday, December 24, 2007 (Permalink)

Harold Ogle reports from the Java Community Process:

JSR 235 (Service Data Objects), which was filed in December 2004, has been dormant for almost three years now as a result of a dispute over the use of a supplemental agreement to be signed by any prospective EG member as a prerequisite for joining the expert group. This dispute has now been resolved. The original intention of the supplemental agreement was to enable an external specification, which had already been published with royalty-free patent grants for essential claims, to remain in sync with any enhancements done by the Expert Group while the Expert Group was completing its work. To that end, the supplemental agreement changes the timing of some of the IP grants that the EG members must make. The agreement to use a supplemental license agreement for JSR 235 should not be interpreted as a precedent for subsequent JSRs, nor a commitment that the JCP's processes will be modified to permit such agreements in other cases.

Since the JSR was submitted, multiple enhancements have been made to the input specification, including additional specifications for other languages, many implementation are currently available in both commercial products and in open source (see http://www.osoa.org/display/Main/Implementation+Examples+and+Tools for a list), and the non-Java language versions of the specification are about to begin standardization at OASIS. In March 2007 it was announced that the standardization of the Java version of SDO in the JCP (JSR 235) would be resuming. We are now ready to do so and the JSR 235 page on http://jcp.org will be updated to identify the new spec leads (Radu Preotiuc-Pietro of BEA and Kelvin Goodson of IBM) and to post a copy of the supplemental agreement (SCLA) which prospective EG members must sign in order to join the expert group.

We are now restarting the call for experts to join the JSR 235 EG to complete the standardization of SDO. If you are interested, and are willing to sign the supplemental agreement, please sign up for the EG in the usual manner.

Sunday, December 23, 2007 (Permalink)

Bill Pugh of the University of Maryland has released FindBugs 1.3.1, an automated open source tool for finding potential bugs in Java code. New rules in this release include:

  • VA_FORMAT_STRING_ARG_MISMATCH: A format-string method with a variable number of arguments is called, but the number of arguments passed does not match with the number of % placeholders in the format string. This is probably not what the author intended.
  • IO_APPENDING_TO_OBJECT_OUTPUT_STREAM: This code opens a file in append mode and that wraps the result in an object output stream. This won't allow you to append to an existing object output stream stored in a file. If you want to be able to append to an object output stream, you need to keep the object output stream open. The only situation in which opening a file in append mode and the writing an object output stream could work is if on reading the file you plan to open it in random access mode and seek to the byte offset where the append started.
  • NP_BOOLEAN_RETURN_NULL: A method that returns either Boolean.TRUE, Boolean.FALSE or null is an accident waiting to happen. This method can be invoked as though it returned a value of type boolean, and the compiler will insert automatic unboxing of the Boolean value. If a null value is returned, this will result in a NullPointerException.
Saturday, December 22, 2007 (Permalink)

BlueJ 2.2.1, a free integrated development environment (IDE) for Java aimed at education, has been released. "This is a smallish bug fix release (with a small number of feature improvements). This release has been made mainly as a preparation for larger changes in the next BlueJ version, where we will drop support for JDK 1.4. This release in intended to bring some up-to-date bug fixes into the last JDK 1.4-compatible version."

Friday, December 21, 2007 (Permalink)

Bare Bones Software has released version 8.7.2 of BBEdit, my preferred text editor on the Mac, and what I'm using to type these very words. Besides bug fixes, the major new feature in this release is that you can now scroll background windows with the scroll wheel on Mac OS X 10.5 Leopard. BBEdit is $199 payware. Upgrades from 8.5 and 8.6 are free. Upgrades from 8.0-8.2 cost $30 and upgrades from 7.x cost $40. Mac OS X 10.4 or later is required.

Thursday, December 20, 2007 (Permalink)

The Jolt award finalists are out and Beautiful Code made the list. W00t! Processing XML with Java also made the finalists a few years back, but did not win. Maybe 2008 is the year I finally get to go up on stage (with a couple of dozen co-authors).

Wednesday, December 19, 2007 (Permalink)

Apple has posted the first beta of Java 6 for Mac OS X 10.5 (Leopard) on the Apple Developer Connection (first born child required). This release is only for the Intel 64-bit systems though.

Monday, December 31, 2007 (Permalink)

Collabnet has released Subversion 1.4.6, an open source version control system designed to replace CVS. 1.4.6 is a bug fix release.

Sunday, December 30, 2007 (Permalink)

Apache has released version 1.2.26 of the Tomcat mod_jk web server connector. This connector enables Apache web server users to forward servlet requests to Tomcat while still using Apache for static pages. Version 1.2.26 is a bug fix release.

Friday, December 28, 2007 (Permalink)

Oracle has released Berkeley DB Java Edition 3.2.68. This is an open source, non-relational embedded database written in Java. The data is exposed through "a Java Collections-style interface, as well as a programmatic interface similar to the Berkeley DB API." This is a bug fix release.

Thursday, December 27, 2007 (Permalink)

For what I think is the 10th or 11th year in a row, I'll be attending Software Development West in Santa Clara in March. Pre-registration is now open, if you register by January 11, 2008 with the discount code SDGIFT you'll get an extra $40 off the usual super early bird price. :-)

Wednesday, December 26, 2007 (Permalink)

The Apache Jakarta Project has released JMeter 2.3.1, an open source (Apache 2.0 license) load testing application written in Java. "Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load." New features in this release include:

  • Proxy spoofing can now be restricted to certain URLs only
  • GUI supports file revert and remembers the last few file names used
  • GUI has collapse all / expand all options
  • remote testing is enhanced; properties can be passed to remote servers and can be used in file names
  • JDBC supports INOUT and OUT parameters and per-thread connections
Tuesday, December 25, 2007 (Permalink)

Excelsior has released JET 6.0, a Java virtual machine for Linux and Windows that uses a combination of a traditional native code compiler and just-in-time compilation from byte code. According to Dmitry Leskov, "The main reason to upgrade is Java SE 6 support." JET costs start at $1200 and run up to $4500 depending on which version and how much support you want. Support is available by e-mail and Web site only.

Monday, December 24, 2007 (Permalink)

Harold Ogle reports from the Java Community Process:

JSR 235 (Service Data Objects), which was filed in December 2004, has been dormant for almost three years now as a result of a dispute over the use of a supplemental agreement to be signed by any prospective EG member as a prerequisite for joining the expert group. This dispute has now been resolved. The original intention of the supplemental agreement was to enable an external specification, which had already been published with royalty-free patent grants for essential claims, to remain in sync with any enhancements done by the Expert Group while the Expert Group was completing its work. To that end, the supplemental agreement changes the timing of some of the IP grants that the EG members must make. The agreement to use a supplemental license agreement for JSR 235 should not be interpreted as a precedent for subsequent JSRs, nor a commitment that the JCP's processes will be modified to permit such agreements in other cases.

Since the JSR was submitted, multiple enhancements have been made to the input specification, including additional specifications for other languages, many implementation are currently available in both commercial products and in open source (see http://www.osoa.org/display/Main/Implementation+Examples+and+Tools for a list), and the non-Java language versions of the specification are about to begin standardization at OASIS. In March 2007 it was announced that the standardization of the Java version of SDO in the JCP (JSR 235) would be resuming. We are now ready to do so and the JSR 235 page on http://jcp.org will be updated to identify the new spec leads (Radu Preotiuc-Pietro of BEA and Kelvin Goodson of IBM) and to post a copy of the supplemental agreement (SCLA) which prospective EG members must sign in order to join the expert group.

We are now restarting the call for experts to join the JSR 235 EG to complete the standardization of SDO. If you are interested, and are willing to sign the supplemental agreement, please sign up for the EG in the usual manner.

Sunday, December 23, 2007 (Permalink)

Bill Pugh of the University of Maryland has released FindBugs 1.3.1, an automated open source tool for finding potential bugs in Java code. New rules in this release include:

  • VA_FORMAT_STRING_ARG_MISMATCH: A format-string method with a variable number of arguments is called, but the number of arguments passed does not match with the number of % placeholders in the format string. This is probably not what the author intended.
  • IO_APPENDING_TO_OBJECT_OUTPUT_STREAM: This code opens a file in append mode and that wraps the result in an object output stream. This won't allow you to append to an existing object output stream stored in a file. If you want to be able to append to an object output stream, you need to keep the object output stream open. The only situation in which opening a file in append mode and the writing an object output stream could work is if on reading the file you plan to open it in random access mode and seek to the byte offset where the append started.
  • NP_BOOLEAN_RETURN_NULL: A method that returns either Boolean.TRUE, Boolean.FALSE or null is an accident waiting to happen. This method can be invoked as though it returned a value of type boolean, and the compiler will insert automatic unboxing of the Boolean value. If a null value is returned, this will result in a NullPointerException.
Saturday, December 22, 2007 (Permalink)

BlueJ 2.2.1, a free integrated development environment (IDE) for Java aimed at education, has been released. "This is a smallish bug fix release (with a small number of feature improvements). This release has been made mainly as a preparation for larger changes in the next BlueJ version, where we will drop support for JDK 1.4. This release in intended to bring some up-to-date bug fixes into the last JDK 1.4-compatible version."

Friday, December 21, 2007 (Permalink)

Bare Bones Software has released version 8.7.2 of BBEdit, my preferred text editor on the Mac, and what I'm using to type these very words. Besides bug fixes, the major new feature in this release is that you can now scroll background windows with the scroll wheel on Mac OS X 10.5 Leopard. BBEdit is $199 payware. Upgrades from 8.5 and 8.6 are free. Upgrades from 8.0-8.2 cost $30 and upgrades from 7.x cost $40. Mac OS X 10.4 or later is required.

Thursday, December 20, 2007 (Permalink)

The Jolt award finalists are out and Beautiful Code made the list. W00t! Processing XML with Java also made the finalists a few years back, but did not win. Maybe 2008 is the year I finally get to go up on stage (with a couple of dozen co-authors).

Wednesday, December 19, 2007 (Permalink)

Apple has posted the first beta of Java 6 for Mac OS X 10.5 (Leopard) on the Apple Developer Connection (first born child required). This release is only for the Intel 64-bit systems though.

Friday, December 14, 2007 (Permalink)

Apple has released Java for Mac OS X 10.4, Release 6 for Mac OS X 10.4.10 and 10.4.11 (Tiger). This release plugs several security holes and "updates J2SE 5.0 to version 1.5.0_13 and Java 1.4 to version 1.4.2_16." Still no sign of Java 6 though. :-(

Thursday, December 13, 2007 (Permalink)

Atlassian has released FishEye 1.4, a $999 payware tool for viewing source code check-ins into CVS, Subversion, perforce, and so forth. Fisheye lets you see who's committing what when to the repository, what individual committers have been up to, what's going on in different branches, what's happened to particular files, and so forth. It automatically wraps up tarballs and zip files of the current code base. It's an invaluable tool for managers who want to track what their developers are up to. A programmer-manager can use to really follow the progress of a project, but even a non-technical manager can use it to get a a first order approximation of who's working hard and who's playing Internet scrabble all day. Version 1.4 improves Crucible integration and supports single sign-on across several Atlassian apps.

Wednesday, December 12, 2007 (Permalink)

Ivan Moore has released SimpleJester, The basic idea of Jester is that it mutates your source code, for instance by changing an == to a !=, runs all the tests, and sees if any of them report a failure. If none of them do, then the line of code tested is either unnecessary or untested. The results of a Jester run are often eye opening. This release make some much needed simplifications to the rather convoluted process of getting Jester to run.

Tuesday, December 11, 2007 (Permalink)

Michael Ernst has posted the early draft review specification of JSR 308: Annotations on Java Types . Quoting from the spec,

JSR 308 proposes an extension to Java’s annotation system [Bra04a] that permits annotations to appear on any use of a type. (By contrast, Java SE 6 permits annotations to appear only on class/method/field/variable declarations; JSR 308 is backward-compatible and continues to permit those annotations.) Such a generalization removes arbitrary limitations of Java’s annotation system, and it enables new uses of annotations.

This proposal also notes a few other possible extensions to annotations (see Section D). This document specifies the syntax of extended Java annotations, but it makes no commitment as to their semantics. As with Java’s existing annotations [Bra04a], the semantics is dependent on annotation processors (compiler plug-ins), and not every annotation is necessarily sensible in every location where it is syntactically permitted to appear. This proposal is compatible with existing annotations, such as those specified in JSR 250, “Common Annotations for the Java Platform” [Mor06], and JSR 305, “Annotations for Software Defect Detection” [Pug06]. (For a comparison of JSR 305 and JSR 308, see Section D.4.3, page 25.)

This proposal does not change the compile-time, load-time, or run-time semantics of Java. It does not change the abilities of Java annotation processors as defined in JSR 269 [Dar06]. The proposal merely makes annotations more general — and thus more useful for their current purposes, and also usable for new purposes that are compatible with the original vision for annotations

Here's an example from the spec:

@NonNullDefault
class DAG {

  Set<Edge> edges;

 // ...

 List<Vertex> getNeighbors(@Interned @Readonly Vertex v) @Readonly {
 List<Vertex> neighbors = new LinkedList<Vertex>();
 for (Edge e : edges) {
   if (e.from() == v) neighbors.add(e.to());
 }
 return neighbors;

}

I don't know. I could see how this could be useful, but it also make signatures even harder to read. I haven't yet made up my mind whether the benefits of this proposal outweigh the costs.

Monday, December 10, 2007 (Permalink)

LG Electronics Inc. has posted the early draft review specification of JSR 300: DRM API for Java ME. Quoting from the spec,

This specification defines an optional JavaME package that enables applications to access DRM protected content on the device in a secure manner. This package can be used along with the Connected Limited Devices Configuration (CLDC) or Connected Devices Configuration (CDC). This specification defines generic APIs to access DRM protected content, abstracting the difference between the underlying DRM agent implementations a device might have. i.e. the DRM APIs are not tied to any specific DRM technology.

The features of DRM APIs are following:

  • Generic interface for JavaME Applications to underlying DRM Agents.
  • Accessing the content in a secure manner for rendering
  • Identifying that the content is DRM protected.
  • Obtaining the information about the rights associated with the content.
  • Support for acquiring rights
  • Support for handling proprietary rights and properties.
  • Protecting locally created contents
  • Move, copy, backup and restore of contents

Content rendering is not in the scope of DRM API specification. DRM API can be used to pre process DRM protected data for rendering using content rendering APIs already available on a particular Java ME platform implementation.

Sunday, December 9, 2007 (Permalink)

David Heinemeier Hannsen has released Rails 2.0, a web development framework written in Ruby, Version 2.0 implements a much cleaner, far more RESTful design including sane URLs and HTTP Basic Authentication. Other new features include JSON and Atom support, CSRF protection, and broader exception handling.

I'll have to play with this some before I'm sure if it's really right, but it certainly feels more correct than 1.0, 1.1, and 1.2. Of course, even if Rails has finally gotten HTTP and REST right, it's still struggling with the wrong data store. Relational databases just don't fit web sites all that well. In fact, probably 80% of Rails and similar frameworks is dedicated to working around the hassle of shredding your pages into tables and then putting them back together again. If instead you build a web site on top of a native XML database such as eXist, there's just a lot less work to do in the first place.

Friday, December 7, 2007 (Permalink)

Oracle has posted the proposed final draft of Java Specification Request 225, the XQuery API for Java. Think of this as JDBC for native XML databases. Java 1.4 or later is required.

Thursday, December 6, 2007 (Permalink)

Syncro Soft has released Syncro SVN Client 2.6, a $59 GUI Subversion client written in Java. Besides bug fixes, version 2.6 makes some small user interface improvements.

Wednesday, December 5, 2007 (Permalink)

JBoss has posted a beta of JSFUnit 1.0, a unit testing framework for Java Server Faces based on based on Cactus and JUnit.
:

JSFUnit tests run inside the container, which provides the developer full access to managed beans, the FacesContext, EL Expressions, and the internal JSF component tree. At the same time, you also have access to parsed HTML output of each client request.

After each faces request, you get access to the full internal state of your application through the FacesContext. With the FacesContext in hand, you have the keys to the kingdom. Between the JSF API and the JSFUnit helper classes, you can see what "really happened" after each request. You can also make additional HTTP requests to simulate a user session. And, since your application is fully deployed, you can assert state at any level of abstraction all the way from the client HTML down to your database.

The typical usage pattern of JSFUnit is to programatically submit an http request and examine both the parsed HTML output and the JSF internals. JSFUnit makes this very easy to do.

Tuesday, December 4, 2007 (Permalink)

Sun's pushed out a new build of the OpenJDK 7, version b24. The most notable change in this snapshot is that the source has now been moved into a Mercurial repository which is publicly available, though there are still a few bugs in the system. I suspect all the current committers are Sun employees, but hopefully that too will change with time.

Monday, December 3, 2007 (Permalink)

Sun has released NetBeans 6.0, its pure Java IDE for various platforms. I'll have to stuff the wireless network here at XML 2007 for a few minutes and grab a copy. New features include:

  • Ruby/JRuby/Ruby on Rails support
  • Visual Game Designer
  • Integrated Profiling
Sunday, December 2, 2007 (Permalink)

Version 2.5 of Spring has been released. Spring is a layered Java/J2EE application framework based on inversion of control. As near as I've ever been able to figure out, Spring is designed to enable applications to use plain old Java objects (POJOs) in J2EE. Version 2.5 adds Java 6 and JDBC 4 support, JCA 1.5 message endpoint management, annotation-based dependency injection, auto-detection of Spring components on the classpath via annotations, annotation support for lifecycle methods, a new web controller model for routing requests to annotated methods, and a JUnit 4 and TestNG-based integration test framework. Java 1.4.2 or later is required. Spring is published under the Apache License 2.0.

Saturday, December 1, 2007 (Permalink)

IDRsolutions has released JPedal 3.40, a pure Java library for extracting content from PDF files and rasterizing them. Text fragments are extracted as XML elements with font and location information. Images are extracted in both their raw formats and their clipped and scaled formats as TIFF, PNG, or JPEG files. JPedal is published under the GPL.


Older news:

20072006200520042003
January, 2007 January, 2006 January, 2005 January, 2004 January, 2003
February, 2007 February, 2006 February, 2005 February, 2004 February, 2003
March, 2007 March, 2006 March, 2005 March, 2004 March, 2003
April, 2007 April, 2006 April, 2005 April, 2004 April, 2003
May, 2007 May, 2006 May, 2005 May, 2004 May, 2003
June 2007 June 2006 June, 2005 June, 2004 June, 2003
July, 2007 July, 2006 July, 2005 July, 2004 July, 2003
August, 2007 August, 2006 August, 2005 August, 2004 August, 2003
September, 2007 September, 2006 September, 2005 September, 2004 September, 2003
October, 2007 October, 2006 October, 2005 October, 2004 October, 2003
November, 2007 November, 2006 November, 2005 November, 2004 November, 2003
December, 2006 December, 2005 December, 2004 December, 2003

[ Cafe au Lait | Books | Trade Shows | FAQ | Tutorial | User Groups ]

Copyright 2007 Elliotte Rusty Harold
elharo@metalab.unc.edu