November, 2008 Java News

Thursday, November 27, 2008 (Permalink)

Apple has released version 3.1.2 of Xcode, "Apple's tool suite and integrated development environment (IDE) for creating Mac OS X Universal Binaries that run natively on PowerPC and Intel-based Macintosh computers. The IDE provides a powerful user interface to many industry-standard and open-source tools, including GCC, javac, jikes, and GDB. Xcode is designed to fully support the Carbon and Cocoa frameworks and Java. It contains templates for creating applications, frameworks, libraries, plug-ins, Java applications and applets, and command-line tools. Developers can use Xcode to construct a user interface, test code performance, and perform many other common development tasks." "3.1.2 is an update release of the developer tools for Mac OS X. This release provides additional GCC and LLVM compiler options, general bug fixes, and must be installed on Leopard, Mac OS X 10.5.0 and higher."

Xcode and its updates are free beer. With Mac OS X, Apple wisely stopped charging for developer tools. You'll still need an ADC membership (including the free membership) to get a copy.

Wednesday, November 26, 2008 (Permalink)

In the "Why didn't someone think of this sooner?" category, JBrownie 1.2 Onyxbits has released JBrownie 1.2, a "a wrapper around the system default javac Java compiler, that monitors Java sourcecode and automatically recompiles any files found changed. The focus of this tool is to assist software developers, who prefer to use a plain text editors over a resourcehungry IDE, but still want their code to be autocompiled on the fly without delay and without having to manually start javac over and over again. Checking for syntax errors becomes now as easy as just saving the file in question." Java 6 or later is required. JBrownie is published under the Apache 2.0 license.

Tuesday, November 25, 2008 (Permalink)

Sun has posted the Call for Participation for JavaOne. takes place March 18, 2009 in Manhattan. JavaOne takes place at Moscone Center in San Francisco from June 2-June 5. Java 7 should be solidfying by then so this could be an interesting year to go. Proposals are due by December 19.

Thursday, November 20, 2008 (Permalink)

Sun has released NetBeans 6.5, its open source IDE for Java, Ruby, JavaScript, C++, and now PHP and Groovy. New features in 6.5 "include a robust IDE for PHP, JavaScript debugging for Firefox and IE, and support for Groovy and Grails. The release also delivers a number of enhancements for Java, Ruby on Rails, and C/C++ development. Java highlights include: built-in support for Hibernate, Eclipse project import, and compile on save."

NetBeans has been steadily improving for years now and may have finally caught up with IntelliJ and Eclipse, though I haven't yet had a chance to put this version through its paces. Sadly it doesn't have the large library of third party plugins that Eclipse does, which is why I'm still using Eclipse (and occasionally IntelliJ) for my day job.

Wednesday, November 19, 2008 (Permalink)

IBM's alphaWorks has released HeapAnalyzer 2.9, a tool for locating possible memory leaks through "heuristic search engine and analysis of the Java heap dump in Java applications. Java heap areas define objects, arrays, and classes. When the Garbage Collector allocates areas of storage in the heap, an object continues to be live while a reference to it exists somewhere in the active state of the JVM; therefore the object is reachable. When an object ceases to be referenced from the active state, it becomes garbage and can be reclaimed for reuse. When this reclamation occurs, the Garbage Collector must process a possible finalizer and also ensure that any internal JVM resources that are associated with the object are returned to the pool of such resources. Java heap dumps are snap shots of Java heaps at specific times." This is a bug fix release.

Monday, November 17, 2008 (Permalink)

Sun has posted the Call for Participation for CommunityOne East and West. "CommunityOne is a conference sponsored by Sun Microsystems focused on open source innovation and implementation. It brings together developers, technologists and students for technical education and exchange. In 2009, CommunityOne will focus on the free and open platforms, tools and services that can be found powering the Internet, running enterprises, and enabling high-performance computing. We're open to all your ideas but are specifically looking for sessions on cloud computing and virtualization, dynamic languages and scripting (PHP, Ajax, Python, Ruby, JavaScript), databases (MySQL, postgreSQL), web and application servers (GlassFish, Apache), operating systems (OpenSolaris, Linux), mobile development (Java ME, Android, Symbian), and tools (NetBeans, Eclipse, Sun Studio)." CommunityOne East takes place March 18, 2009 in Manhattan. CommunityOne West take splace June 1, 2009 at the Moscone Center in San Francisco Proposals are due by December 11.

Friday, November 14, 2008 (Permalink)

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

  • static analysis of uses of format strings, checking for missing or extra arguements, invalid format specifiers, or mismatched format specifiers and arguments (e.g, passing a String value for a %d format specifier). \\
  • BIT_ADD_OF_SIGNED_BYTE
  • EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS, a warning when an equals method checks to see if an operand is an instance of a class not compatible with itself. For example, if the Foo class checks to see if the argument is an instance of String. This is either a questionable design decision or a coding mistake.
  • Invoking hashCode() on an array
  • Using x.removeAll(x) to rather than x.clear() to clear an array.
  • Calls such as x.contains(x), x.remove(x) and x.containsAll(x).
Thursday, November 13, 2008 (Permalink)

Sun has posted the early draft review of JSR-316, Java Platform, Enterprise Edition 6 (Java EE 6) Specification , to the Java Community Process. The download site seems to be acting up at the moment, and won't let me read the draft, but according to the JSR,

This JSR will not itself define any new APIs, rather it will enumerate APIs defined in other JSRs or through the JCP maintenance process.

Java EE 6 is the Enterprise Edition of version 6 of the Java platform, and thus will be built on Java SE 6.

We propose to include the following new JSRs in Java EE 6:

  • JSR-196 Java Authentication SPI for Containers
  • JSR-236 Timer for Application Servers
  • JSR-237 Work Manager for Application Servers
  • JSR-299 Web Beans
  • JSR-311 JAX-RS: Java API for RESTful Web Services

In addition, we expect to update the following existing technologies for Java EE 6:

  • Enterprise JavaBeans
  • Java Persistence API
  • Servlets
  • JavaServer Faces
  • JAX-WS
  • Java EE Connector API

The exact set of technologies to be included will be determined by the expert group and will be based on partner and customer requirements.

Comments are due by November 22.

Tuesday, November 11, 2008 (Permalink)

JetBrains has released IntelliJ IDEA 8.0. New features in 8.0 include:

  • SQL-92, MySQL, SQLite with coding assistance and Console to run SQL scripts from the IDE
  • Template languages: FreeMarker, Velocity
  • XPath/XSLT, including XPath expression evaluation
  • Groovy/Grails with advanced editing, new refactorings and Gant
  • JBoss Seam
  • Struts 2
  • Spring 2.5
  • Spring Webflow
  • Spring MVC
  • Spring Dynamic Modules
  • GWT 1.5
  • 7 New Java Refactorings
  • Dataflow to This — see where an arbitrary parameter value comes from
  • Create new test for class intention and navigation between classes/tests
  • UML class diagrams with navigation to the source code and refactorings
  • Thread dump analyzer
  • Automatic namespace import for HTML/XML/JSP
  • JavaScript debugger
  • Flex debugger
  • Advanced Flex code editor for MXML and ActionScript files, with Flash 10 generics
  • Maven: create new module from archetype, Repository Browser, pom.xml validation and editing assistance
  • Subversion 1.5 merge tracking support

IDEA is $599 payware (up from $499). Upgrades are $299. At my day job, my team has been switching back and forth between IntelliJ 7 and Eclipse 3.4 lately. Right now I'm finding them about equally annoying. I'll have to give IntelliJ 8 a whirl and see if it's improved the usability at all.

Monday, November 10, 2008 (Permalink)

Atlassian has released Clover 2.4, a $1200 payware test coverage tool. Clover modifies the source code to enable it to follow which statements are executed when, and keeps a running count of how many times each statement is executed during the test suite. Any statement that executes zero times is not being tested. I use Clover with Ant, but there's also an Eclipse plug-in. Clover can generate test coverage reports in XML, HTML, PDF, or via a Swing Viewer. Version 2.4 simplifies Ant and Maven integration and "now has the ability to optimise test runs, greatly reducing the time it takes to test a code change."

Sunday, November 9, 2008 (Permalink)

Mort Bay Consulting has released Jetty 6.1.12, 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. New features include:

  • Cometd now uses a stable release of Dojo and a mvn release of cometd API
  • Improved Terracotta clustering support
  • Integrated with Gigaspaces for grid computing.
  • Async HttpClient now supports proxies, SSL and authentication
Friday, November 7, 2008 (Permalink)

Apache has released version 1.2.27 of the Tomcat mod_jk web server connector. This connector enables Apache web server, Microsoft IIS and Sun Web Server to forward servlet requests to Tomcat while still using the base server for static pages. Enhancements in 1.2.27 include:

  • Watchdog Thread
  • Improved Connection Probing
  • Mount Extensions
  • Better IIS Support
  • Enhanced Status Worker
Thursday, November 6, 2008 (Permalink)

Red Hat's Gavin King has posted the public review draft of JSR-299, Web Beans in the Java Community Process (JCP). According to the draft,

Web Beans provides a powerful new set of services to Java EE components. This specification defines:

  • The lifecycle and interactions of stateful components bound to well-defined contexts, where the set of contexts is extensible
  • A sophisticated, typesafe dependency injection mechanism, including a facility for choosing between various components that implement the same Java interface at deployment time
  • Integration with the Unified Expression Language (EL), allowing any component to be used directly within a JSF or JSP page
  • Generalization of the method and component lifecycle interceptors defined by EJB 3.0 to other kinds of components, along with an improved approach to binding interceptors to components and a new type of interceptor, called a decorator
  • An event notification model
  • A web conversation context in addition to the three standard web contexts defined by the Java Servlet specification
  • An SPI allowing third-party frameworks that execute in the Java EE environment to integrate cleanly with Web Beans

To take advantage of these facilities, the Java EE component developer provides additional component-level and application-level metadata in the form of Java annotations and/or XML-based deployment descriptors.

A Java EE component with a lifecycle bound to a Web Beans context is called a Web Bean. Any Web Bean may be injected into other Java EE components by the Web Beans dependency injection service.

The use of Web Beans significantly simplifies the task of creating Java EE applications by integrating the Java EE web tier with Java EE enterprise services. In particular, Web Beans allows EJB 3 components to be used as JSF managed beans, thus integrating the the component models of EJB and JSF and significantly simplifying the programming model when EJB and JSF are used together. In an environment that supports Web Beans, all EJB 3 session and singleton beans are Web Beans—no Web Beans specific metadata is required.

Furthermore, Web Beans makes it easy to use most plain Java classes as Java EE components that may inject, or be injected into, other Java EE components such as EJBs or Servlets. Web Beans promotes plain Java classes to the status of managed Java EE components. In particular, in an environment that supports Web Beans, all JavaBeans are Web Beans—no Web Beans specific metadata is required. Even when EJB, or JSF, or both, are not used, Web Beans may be used to simplify development of the business-logic layer of an application. It is even possible for applications developed using third-party frameworks to take advantage of the services provided by Web Beans via a framework integration SPI.

Comments are due by December 1.

Wednesday, November 5, 2008 (Permalink)

Nokia has released the completed JSR 293 - Location API 2.0. According to the draft:

JSR 179 ([JSR179]) specification defined a Java ME Optional Package that enabled mobile location-based applications for resource limited devices (referred to as 'terminals' in the following). The API was designed to be a compact and generic API that produces information about the present geographic location of the terminal to Java applications. JSR 179 covers obtaining information about the present geographic location and orientation of the terminal and accessing a database of known landmarks stored in the terminal.

JSR 293 Location API 2.0 for Java ME extends JSR 179 Location API. This means that JSR 179 specification is part of the JSR 293 specification. Therefore applications written for Location API are upwards compatible with Location API 2.0 and will work without any changes in the Location API 2.0 compliant terminals. In addition to minor clarifications to Location API, the version 2.0 adds several new features like geocoding, map and navigation services and landmark exchange to the API. These features are described in more detail later in this overview.

Tuesday, November 4, 2008 (Permalink)

Sun's fiscal first quarter numbers are in, and they're every bit as bad as expected. For the quarter that ended Sept. 28, Sun booked a net loss of $1.68 billion, or $2.24 a share, compared to a small $89 million profit in the first fiscal quarter of 2008. Revenue was down 7 percent, to $2.99 billion.

With the economy heading into a recession (though not nearly as bad a one as if the other guy had won tonight) and Wall Street imploding (though probably not as badly as if the other guy had won) I'm beginning to think Sun may never recover. Solaris is an also-ran. The hardware is good but not great. Their acquisitions have almost all tanked to varying degrees. (The quarter's losses include a $1.45 billion charge to write down the value of past acquisitions.) Sun still has a bunch of cash, but can't seem to do anything profitable with it. At the current stock price, their market cap isn't that much more than cash on hand, a real bargain for a company that knows what to do with them. Thank God Sun open sourced Java so it doesn't have to go down with the sinking ship. Maybe it's time for Apple to buy Sun, and turn it into their server division. :-)

Monday, November 3, 2008 (Permalink)

Andrew O'Malley has posted Quokka 0.3, "an open source Java build system, hoping to overcome many of the annoyances and limitations of Maven." According to O'Malley, key features include

  • Modular Builds: Build tasks such as compilation, or source code formatting are packaged into plugins. Each project can be tailored to include specific plugins as required. Build configurations (including plugins, dependencies and other resources) can be bundled into a dependency set for re-use amongst projects. Projects can include any number of such dependency sets, and sets may nest other sets within them, providing varying degrees of reuse.
  • Fine-grained Dependency Management: Quokka allows any number of paths of dependencies to be defined for use within a project. Selected paths can also be exported to the repository for reuse within other projects. If your project depends on another project, Quokka can automatically include its dependencies recursively. In such cases you have full control down to any level as to which dependencies are included using Path Specifications.
  • Extensibility: Ad hoc targets can be added using standard Ant files. Alternatively, ad hoc targets may be written in a variety of scripting languages via the Script plugin
  • Reproducible Builds: Quokka uses bootstrapping, a versioned global repository, explicit plugin and dependency versions, and a Release plugin to ensure that builds are reproducible. i.e. Building a 6 month old branch from version control today will result in exactly the same build as when it was intially checked in.
Saturday, November 1, 2008 (Permalink)

Stephen Colebourne has released Joda-Time 1.6, an open source (Apache license) calendar library. "Joda-Time provides a quality replacement for the Java date and time classes. The design allows for multiple calendar systems, while still providing a simple API. The 'default' calendar is the ISO8601 standard which is used by XML. The Gregorian, Julian, Buddhist, Coptic, Ethiopic and Islamic systems are also included, and we welcome further additions. Supporting classes include time zone, duration, format and parsing." Joda-Time is a definbite improvement on the standard java.util.Calendar/java.util.Date classes. It still strikes me as excessively complicated, but maybe that's just because time and dates are excessively complicated. Java 1.4 or later is required.


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

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

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