Sun's released Java 1.5 (Excuse me: Java 2 Standard Edition 5.0 Kit Java Development Kit 1.5 Java Legalese Marketing Speak Crap 15.0™). It's available for Linux, Windows, and Solaris. If you're so bothered by ClassCastExceptions and old-fashioned for-loops that you absolutely have to have the latest features, you may want to upgrade, but most users would be better served by waiting for the next .1 or _01 release when Sun should fix some of the numerous known bugs in this release, as well as probably a few more as yet unknown issues. Java 1.5 is not yet available for Mac OS X or Mac OS 9, and will probably never be available to 100% of the current installed Mac base. Apple seems likely to require an OS upgrade to get Java 1.5, and this will probably be available sometime in the first half of next year.
Subversion 1.1.0, an open source version control system designed to replace CVS, has been released. New features in 1.1 include:
Damn It. Somebody just sent me a spoiler for The System of the World. It's a 900 page book that came out two days ago! You may not have a life, but I do. Please give me a little time to read the thing before sending me commentary. I am officially not reading or answering any e-mail on the subject of Enoch Root, Neal Stephenson, Cryptonomicon, or The Baroque Cycle until I have finished The System of the World. However, if you've finished Cryptonomicon yourself, you may be interested in new content I added yesterday to the What's up With Enoch Root? page. If you've finished The Confusion and Quicksilver, go ahead and read the new Baroque Cycle page which introduces some hyptoheses and evidence about the nature of Enoch Root from the first two books in the cycle.
The Eclipse Project has posted the second milestone of Eclipse 3.1, an open source integrated development environment (IDE) for Java. It also doubles as a base platform for your own applications, an alternative to the AWT and Swing, and a powerful floor wax and dessert topping. The main new features in 3.1 are Ant 1.6.2, quick fixes for serial version IDs, and some (still incomplete) support for Java 1.5. New features in this milestone include:
View all available keyboard shortcuts directly from the user interface or all keyboard shortcuts assigned in Eclipse from the Workbench > Keys preference page
The SWT Browser widget on Linux now works with Mozilla 1.7 GTK2 as well as with previous Mozilla 1.4 GTK2 and above.
CVS Outgoing commit sets allow you to organize outgoing changes into logical groups before they are committed.
CVS label decorations can be configured to use color and font to highlight file states.
Plug-ins can be downloaded in the background
Breakpoint groups sounds potentially helpful, though I don't think this yet gives me the feature I really want (breakpoint conditioned on another breakpoint being reached. For instance, I want to break inside my SAX ContentHandler
's startElement()
method only if it's being invoked from the testBigDocument()
method).
Improved Java 1.5 support
Carnegie-Mellon University has posted the first beta of Sphinx-4, an open source speech recognition engine written in pure Java. features include:
Java 1.4 or later is required.
IBM's alphaWorks has released version 1.2.3 of the IBM Toolkit for MPEG-4, a Java class library for working with MPEG-4 video and audio. Version 1.2.3 makes various bug fixes.
I've just received my copy of The System of the World, the final volume in Neal Stephenson's Baroque Cycle. At this point, there's no real question that something very strange is indeed up with Enoch Root. Unless Stephenson, the person, (as distinguished from Stephenson, the narrator) is deliberately lying to us, Enoch Root is one individual who has somehow managed to live for at least several centuries. Exactly how he has managed to do this is still an open question (unless perhaps it's answered in the latest volume, which I have not yet read). Hypotheses to date include:
There are other possibilities; Root could be the wandering Jew. He could be a space alien. The most ridiculous explanation I've heard yet is that Root is the Riemann Zeta function. Jon Paul Henry has recently suggested to me that Root is a robot, based on what seems to me to be over-reaching based on one small description in the text. But perhaps if I toss that hypothesis out, some other people may point out additional points in the text that support this hypothesis. (And even if Root is a robot, this still leaves open the question of who made the Root robot hundreds of years ago, which leads to the possibility of time travel.) Still the three , I've listed seem to be the main, reasonable theories; and honestly the whole Root=Gandalf business seems to me as symbolism and a possible deliberate allusion to The Trilogy in Stephenson's own trilogy, but not really a practical explanation of just what's up with Enoch Root. I'm a little surprised the first two books in the Baroque Cycle didn't reveal more, but Root wasn't really a major character in either one. Perhaps all will be revealed in the The System of the World, or perhaps we'll have to wait for the final third of Cryptonomicon, set in the future, to be published, before we discover the answer. (Stephenson originally planned the story of Cryptonomicon to have three parts: one in the past, one in the present, and one in the future; but he dropped the future part when it was obvious the book was getting too long.) In the meantime I'm going to spend a little time today collating and collecting the various comments made on this over the last year. Since many of them rely on information contained in Quicksilver and The Confusion, I've started a new Baroque Cycle page to avoid spoiling the fun for anyone who's only read Cryptonomicon.
By the way, I think all these books are wonderful. If you haven't read them yet, you really ought to, starting with Cryptonomicon. I know they're a bit large and intimidating—it took me two years to open Cryptonomicon—but they're well worth the effort. I know a few readers were turned off by the more cerebral nature of Quicksilver. If that's the case, don't hesitate to read The Confusion. It's a real page turner with lots of swashbuckling, conspiracies, exotic locales, court intrigue, and just a generally fun read all around. The Confusion focuses almost exclusively on Jack and Eliza (and a little of Bob Shaftoe too) with almost no Daniel Waterhouse or Isaac Newton. Of course, this looks to change in the final book when all the major characters arrive in London at the same time, though what happens then I don't yet know. Check back next month.
Senior Airman Ahmad I. al-Halabi, the second of three soldiers assigned to Guantánamo Bay and arrested for being Muslim (well, officially for espionage, but let's face facts: this never would have happened to a white Christian) has been cleared. He had originally been arrested for attempting to bring classified documents to Syria. Of course, it turned out that the documents on which the case was based weren't actually classified. Throughout, the case was marked by prosecutorial misconduct including witness tampering and lying to the defense team. In an ironic twist, the initial chief investigator in the case, Marc Palmosina, was pulled from the case after he took classified documents to his home, the same offense he was investigating al-Halabi for.
It's not a complete victory for al-Halabi. He pleaded guilty to four minor counts of taking photographs, lying to investigators, and improperly handling sensitive materials, spent ten months in jail, was demoted, and will probably be dishonorably discharged from the Air Force. (The discharge will be appealed.) Even these charges were questionable, but I suspect al-Halabi just wanted to get this over with and out it behind him.
Beyond the serious and trumped charges levelled at al-Halabi and three others, the various legal actions in the cases have revealed numerous instances of petty, racist bigotry in the military. One of his sergeants referred to him as al-Qaida instead of al-Halabi. Non-Muslims at Guantánamo made various derogatory comments about the Muslim translators, and sent each other Abu Ghraib style posed photos of Muslims praying via e-mail. This whole disgusting affair should be yet another warning to any Muslims considering joining the U.S. military that they're not welcome.
In related news, Colonel Jackie Farr, the only white, non-Muslim accused in this fashion, has all charges against him dropped. He allegedly received "nonjudicial punishment", whatever that means. The discrepancy in treatment of Muslims and non-Muslims for the same minor offenses is particularly telling. Not that I think Colonel Farr should have been demoted, spent ten months in prison, and dishonorably discharged for minor oversights. By I do wish justice were applied equally without considering the defendant's religion and race. Sadly that seems unlikely in today's army. The one remaining case is against civilian translator Ahmed Mehalba. He's been in jail for about a year now. Hopefully his case will come to trial soon, and he too will be released.
The first release candidate of XDoclet 1.2.2 has been posted. The web page aptly describes this:
XDoclet is an open source code generation engine. It enables Attribute-Oriented Programming for java. In short, this means that you can add more significance to your code by adding meta data (attributes) to your java sources. This is done in special JavaDoc tags.
XDoclet will parse your source files and generate many artifacts such as XML descriptors and/or source code from it. These files are generated from templates that use the information provided in the source code and its JavaDoc tags.
XDoclet lets you apply Continuous Integration in component-oriented development. Developers should concentrate their editing work on only one Java source file per component.
This approach has several benefits:
- You don't have to worry about out dating deployment meta-data whenever you touch the code. The deployment meta-data is continuously integrated.
- Working with only one file per component gives you a better overview of what you're doing. If your component consists of several files, it's easy to lose track. If you have ever written an Enterprise Java Bean, you know what we mean. A single EJB can typically consists of 7 or more files. With XDoclet you only maintain one of them, and the rest is generated.
- You dramatically reduce development time, and can concentrate on business logic, while XDoclet generates 85% of the code for you.
XDoclet requires an Ant based build system. 1.2.2 is a bug fix release that also adds support for Java Server Faces, J2EE 2.1, and Java Data Objects 2.
Peter Graves has released version 0.21 of j, an open source, multiwindow programmer's editor written in pure Java. It can syntax color Java, C, C++, XML, HTML, CSS, JavaScript, Lisp, Perl, PHP, Python, Tcl/Tk, Verilog, and VHDL code. Features include automatic indentation, directory buffers, regular expressions, multifile find and replace, autosave and crash recovery, undo/redo, FTP/HTTP support, customizable keyboard mappings and themes. Version 0.21 is now compatible with Java 1.5 and includes Armed Bear Common Lisp 0.0.4. j is published under the GPL.
Stefan Reich has released SuperVersion 1.1, a single user version control system suitable for small projects, as opposed to multiuser, server-based systems like CVS and Subversion. According to the web page, "Superversion 1.1 is feature-complete, very stable and suitable for everyday use. It can be (and is!) used for local versioning today; an extension for client/server operation is under development." Version 1.1 adds the ability to classify files as binary or text. Superversion is published under the GPL.
Bare Bones Software has released version 8.0.1 of BBEdit, my preferred text editor on the Mac. This is primarily a bug fix release BBEdit is $179 payware. Upgrades from 8.0 are free. Upgrades from earlier versions are $49 for 7.0 owners and $59 for owners of earlier versions.
Version 1.0.8 of the open source Subversion source code control repository has been released to plug a minor security leak. "mod_authz_svn, the Apache httpd module which does path-based authorization on Subversion repositories, is not correctly protecting all metadata on unreadable paths....This security issue is not about revealing the contents of protected files: it only reveals metadata about protected areas such as paths and log messages. This may or may not be important to your organization, depending on how you're using path-based authorization, and the sensitivity of the metadata....These issues only affects users of mod_authz_svn, not people using native httpd.conf directives (such as <Limit> or <LimitExcept>) directives to limit general readability on whole repositories." There's also a new release candidate of Subversion 1.1 that includes this fix.
Apple has released the Java 1.4.2 Update 2 to all users via software update. This update "provides improved behavior for applets in Safari, and increased stability for desktop Java applications. Java 1.4.2 Update 2 also includes all the improvements from Java 1.4.2 Update 1. The system will be updated to Java 1.4.2 Update 2. If the system currently has Java 1.4.1, it will be removed. Any previous Java 1.4.2 installation will be completely replaced." Mac OS X 10.3.4 or later is required.
Novell has released Mono 1.1.1, an open source implementation of Microsoft's .NET framework that runs on Linux, Unix, Mac OS X, and Windows. Mono includes an ECMA Common Language Infrastructure (CLI) runtime engine, a cross platform IKVM Java runtime engine, a C# 1.0 compiler, class libraries implementing the .NET 1.1 profile, the Gtk# 1.0 GUI programming toolkit, GNU Classpath for the CLI and a Visual Basic runtime. Version 1.1.1 is a development release. New features include:
According to the Mono Project, "Plenty of optimizations have been implemented at every level: from low-level JIT optimizations to tuning and stress testing the higher class libraries. For example, the C# compiler in the 1.1.x series is 20% faster over the 1.0.x series while doing more work." Mono is published under the GPL.
For the more risk-averse developer, Novell has also released Mono 1.0.2, an open source implementation of Microsoft's .NET framework that runs on Linux, Unix, Mac OS X, and Windows. Mono includes an ECMA Common Language Infrastructure (CLI) runtime engine, a cross platform IKVM Java runtime engine, a C# 1.0 compiler, class libraries implementing the .NET 1.1 profile, the Gtk# 1.0 GUI programming toolkit, GNU Classpath for the CLI and a Visual Basic runtime. 1.0.2 is a bug fix release.
The Eclipse Project has released the Eclipse Visual Editor 1.0, an open source GUI designer tool for the Eclipse IDE. It currently supports both the Swing and SWT GUI toolkits and can be extended to support others.
The Eclipse Project has also released version 3.0.1 of their namesake integrated development environment. This is a bug fix release. Java 1.4 or later is required. Eclipse runs on Windows, Linux, Mac OS X, and probably other Unixes.
C.N. Medappa has posted beta 2 of JRex, a Java HTML rendering component based on the Mozilla Gecko engine. JRex should work on Windows and Linux. Java 1.4 and Mozilla 1.4 or later are required.
David A. Hall has posted Generic Algorithms for Java 0.6, a free-as-in-speech (LGPL) collection of generic algorithms not included in the Java class library. According to the web page,
The primary functionality to be provided is:
- a set of functors and predicates that may be applied both the generic collections and to other areas of the standard java library.
- basic utility algorithms for use with java collections such as those found in STL
- implementations of standard java classes that are intended to be user-derivable that apply the algorithms and functors for general benefit (for example, implementations of standard swing models that take advantage of predicates and functors)
YourKit, LLC has released the YourKit Java Profiler 3.0, a 295€ payware tool for detecting memory leaks and memory consumption bottlenecks. It features Automation of memory leak detection, an object heap browser, JUnit integration, IntelliJ IDEA, Borland JBuilder integration. Version 3.0 features a redesigned user interface including a new "Allocations HotSpots" view. It also allows you to see the merged call tree and back-traces for a method. It also adds support for Java 1.5. The profiler runs on Windows or Linux.
Websina has released BugZero 3.9, a $1299 payware (+$300 for maintenance) Web-based bug tracking system that supports multiple projects, group-based access, automatic bug assignment, file attachment, email notification, and metric reports. Bug Zero is written in Java and can run on top of various backend databases including MySQL. 3.9 is mostly a bug fix release.
Mark Stephens has released JPedal 2.25, 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. According to Stephens, "version 2.25 adds a number of significant features, the most major being support for outlines and thumbnails of the screens and ability to highlight text onscreen....This is a major release which also includes a large number well of fixes and substantial speed improvements." JPedal is published under the GPL.
Sun has submitted Java Specification Request 255, Java Management Extensions (JMX) Specification, version 2.0, to the Java Community Process. According to the JSR,
This specification will update the JMX and JMX Remote APIs to improve existing interfaces, notably with respect to ease-of-use, and to add new functionality whose usefulness has become clear since those APIs were completed. Some key changes that are proposed are:
- Use generics in the JMX API, for example have MBeanServer.queryNames return Set rather than just Set.
- Use annotations to make writing MBeans easier.
- Make Open MBeans easier to use to address interoperability and versioning concerns.
- Generalize monitors so that they can monitor attributes that are not simple types, and so that their thresholding is customizable.
- Support cascaded (federated) MBean Servers.
It is a key goal of this JSR to be incorporated into version 6.0 of the J2SE platform (Mustang), and this might mean that some of these proposed changes end up being postponed to a later JSR.
Comments are due by October 4.
Enterprise Distributed Technologies has released edtFTPj 1.4.4, a free (LGPL) FTP library for Java. A $1999 payware version adds support for FTP over SSL. 1.4.4 is a bug fix release.
ej-technologies GmbH has released version 3.2 of JProfiler, a $698 payware profiler based on the Java virtual machine profiling interface (JVMPI that can report on CPU usage, memory size, threads, and "VM telemetry" (whatever that is). New features in 3.2 line number resolution, Comma Separated Values and XML export, and two different hot spot calculation modes.
The Jakarta Apache Project has posted the second alpha of HTTPClient 3.0. "Although the java.net package provides basic functionality for accessing resources via HTTP, it doesn't provide the full flexibility or functionality needed by many applications. The Jakarta Commons HttpClient component seeks to fill this void by providing an efficient, up-to-date, and feature-rich package implementing the client side of the most recent HTTP standards and recommendations....Designed for extension while providing robust support for the base HTTP protocol, the HttpClient component may be of interest to anyone building HTTP-aware client applications such as web browsers, web service clients, or systems that leverage or extend the HTTP protocol for distributed communication." Changes since 2.0 include:
"At this point HttpClient is fully feature-complete and is just a few issue reports short of being code and documentation complete. All of the important new features such as the new preferences architecture and exception handling framework are completely documented. We strongly encourage comment and criticism of the current API so we can have everything worked out by the first beta release. Following this release the development effort will focus on stabilizing the 3.0 API and adding more documentation. Depending on on how well this release is received, as well as the quality and quantity of feedback, we are looking at an API freeze in one to two months time."
I've posted beta 5 of XOM, my dual streaming/tree API for processing XML with Java.
This beta primarily focuses on fixing bugs in XInclude and improving performance of builders when reading from files. It also deprecates the setNodeFactory()
method in XSLTransform
which will be removed in the next drop. In its place, there's a new constructor:
public XSLTransform(Document stylesheet, NodeFactory factory)
Finally, the four XSLTransform
constructors deprecated in the last release have been removed.
I don't have any other major issues in the TODO list for 1.0. If nobody finds any bugs in this beta, I may label the next drop release candidate 1.
JXTA J2SE 2.3.1 has been released. JXTA "is a set of open protocols that allow any connected device on the network ranging from cell phones and wireless PDAs to PCs and servers to communicate and collaborate in a P2P manner. JXTA peers create a virtual network where any peer can interact with other peers and resources directly even when some of the peers and resources are behind firewalls and NATs or are on different network transports." Version 2.3.1 is API and protocol backwards compatible with previous 2.x releases. It fixes bugs and trims about half a meg from the JARs.
Subversion 1.0.7 has been released. Subversion is an open source version control system designed to replace CVS, the open source version control system we've all learned to hate. This is a bug fix release.
Nathan Fiedler has released version 2.27 of JSwat, a graphical, stand-alone Java debugger built on top of the Java Platform Debugger Architecture. Features include breakpoints, source code viewing, single-stepping, watching variables, viewing stack frames, and printing variables. Version 2.27 fixes some bugs and remembers the expressions typed in the evaluate dialog. JSwat is published under the GPL.
BlueJ 2.0, a free integrated development environment
(IDE) for Java aimed at education, has been released.
The major new feature in 2.0 is support for Java 1.5 (a.k.a Java 5).
Other new features include
full keyboard navigation for the class diagram and object bench,
the Code Pad for interactive Java code evaluation,
and an enhanced extensions API.
The Apache Jakarta Project has released three new JSP tag libraries:
The Jakarta Apache Project has posted Tomcat 5.5.2, an open source servlet container for the Apache web server and the official reference implementation of the Java Servlet API and Java Server Pages (JSP). "Tomcat 5.5 is designed to run on J2SE 5.0 and later, and requires configuration to run on J2SE 1.4....In addition, Tomcat 5.5 uses the Eclipse JDT Java compiler for compiling JSP pages. This means you no longer need to have the complete Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment (JRE) is sufficient. The Eclipse JDT Java compiler is bundled with the binary Tomcat distributions. Tomcat can also be configured to use the compiler from the JDK to compile JSPs, or any other Java compiler supported by Apache Ant." This implements version 2.4 of the Java Servlet API 2.4 and version 2.0 of Java Server Pages. The version numbering is funky. This is really more like an alpha release and is definitely not considered to be ready for production.
Gaudenz Alder has released JGraph 5.0.2, a free-as-in-speech graph component for Swing that requires Java 1.4 or later. JGraph is accompanied by Graphpad, an open-source diagram editor for Swing that offers Automatic Layout, Printing, Zoom, and much more. It is available in English, German and French. Version 5.0.2 adds an edge renderer gradient painting mode and fixes bugs.
The third release candidate of Subversion 1.1.0, an open source version control system designed to replace CVS, has been posted. "The term 'release candidate' means the Subversion developers feel that this release is stable and ready for production use, so we encourage people to test this release thoroughly. The final 1.1.0 release is scheduled for late-September, in order to provide plenty of time for testing." New features in 1.1 include:
Rob Lougher has released JamVM 1.2.0, a free (GPL) Java Virtual Machine that "conforms to the JVM specification version 2 (blue book). In comparison to most other VM's (free and commercial) it is extremely small, with a stripped executable on PowerPC of only ~100K, and Intel 80K. However, unlike other small VMs (e.g. KVM) it is designed to support the full specification, and includes support for object finalisation, the Java Native Interface (JNI) and the Reflection API." Like most free VMs it relies on the GNU Classpath library. 1.2.0 fixes bugs and speeds up code execution. JamVM only interprets code. It does not have a Just-In-Time compiler.
Werner Randelshofer has released the Quaqua Look and Feel 2.0, "an extension for Apple's implementation of the Aqua Look for Swing. Quaqua aims at fixing inconsistencies between user interface elements implemented in Swing and those of native Mac OS X applications. To achieve this, Quaqua selectively replaces UI elements of Apples Aqua Look And Feel with elements of its own." Quaqua is dual licensed under the BSD license model and the LGPL. Java 1.3 or later and Mac OS X 10.2 or later are required.
Gaudenz Alder has released JGraph 5.0.1, a free-as-in-speech graph component for Swing that requires Java 1.4 or later. JGraph is accompanied by Graphpad, an open-source diagram editor for Swing that offers Automatic Layout, Printing, Zoom, and much more. It is available in English, German and French. Version 5.0.1 makes various small API changes including the ability to disable cell selection.
The Apache Project has posted the second milestone release of Geronimo, their open source J2EE application server. "The aim of the project is to produce a large and healthy community of J2EE developers tasked with the development of an open source, certified J2EE server, that is ASF licensed and passes Sun's TCK reusing the best ASF/BSD licensed code available today and adding new code to complete the J2EE stack."
Martin Fowler points out some really weird behavior in JUnit. Apparently JUnit creates a new test object for each test. I understand why it does that, and I agree with the principles behind it. But this has some other implications:
setUp()
method?
Why not just use the constructor? tearDown()
makes a tad more sense, but not much; and I've never actually needed to use it in practice.
Several people have now tried to explain this to me, including Bill Venners, and it still doesn't make a lot of sense. The only real difference appears to be that the constructor is called before any tests are run and the setUp
method is called immediately before each test is run. I suppose if the fixture did something like open a file for writing that only one object could do at a time you might have to use setUp
but barring that there's not a whole lot of reason to
use setUp
.
SpaceRoots has released Mantissa 5.3, "a collection of various mathematical tools aimed towards for simulation. It is not a complete mathematical library like GSL, NAG or IMSL, but it contains various algorithms useful for dynamics simulation and 3D geometry computation." Its algorithms include:
André Simon has released Highlight 2.2-3, a free-as-in-speech (GPL) source code formatter that understands 85 programming languages including Java and generates HTML, XHTML, RTF, TeX, LaTeX, and XSL-FO output. Highlight is a command line application written in C++ for Unix and Windows.
Frank Karlstrøm has posted the second beta of JCache 1.0, an open source caching system for Java database-based applications based on the JSR-107 JCache API. This is mostly a bug fix release. JCache is published under the LGPL.
Siemens and Motorola have submitted Java Specification Request 253, Mobile Telephony API (MTA), to the Java Community Process. According to the JSR,
Mobile Telephony API (MTA) defines a set of functions for controlling calls and using network services suitable for Java applications written for J2ME devices. An example of Java application that uses MTA can be conference application, scheduled calls, or voice services. The MTA must be suited to small devices in terms of functionality and processing. Existing APIs such as JTAPI and JAIN JCC do not suit these requirements.
It is not intended to model the whole telephony network, nor is it necessarily intended to expose every telephony feature available in every wireless network. The goal is to define a portable API basis that exposes common telephony features available in most wireless handsets. The design targets extensibility such that unique features available in some networks can be made available as option packages.
The MTA supports call and supplementary services handling as well as access to the call-related parameters that are required for call management. The interface is an abstraction of the underlying protocols (GSM, CDMA, or UMTS), therefore call and call-related functions must be generalized in order to be applicable independent of the network protocol. The API does not deal with any service functionality and call control on the operator side. The API neither deals with user interfaces nor any presentation issues. The Mobile Telephony API allows java applications to access call-related functionality such as:
- Initiate voice and emergency calls
- Receive/accept an incoming call
- Control and end an existing call
- Receive event notifications of call state changes
- Receive event notifications of network state changes (e.g. roaming to a different network)
- Access network information such as Network ID and "Network Selection Modes"
- Use supplementary services such as multiparty calls, and call forwarding
- Get status information about supplementary services
- Activate/deactivate supplementary services
- Send/receive Unstructured Supplementary Service Data
- Manage call-related phone and user parameters such as "Phone Identity Presentation Restriction" or "User Group"
The resulting APIs will be suitable on both the CLDC and CDC platforms.
This JSR does not define mapping of the Mobile Telephony API to underlying protocols and does not deal with any protocol details. The choice of the underlying protocol to use is a responsibility of the API implementation.
Comments are due by September 20.
Jason Hunter has released JDOM 1.0, an open source, tree based API for processing XML with Java. The API is unchanged since beta 10. A few bugs have been fixed. Java 1.2 or later is required.
Sleepycat Software has released Berkeley DB Java edition 1.5.3. Berkeley DB JE is a 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. Licensing is unclear, but it seems to be some weird form of semi-viral open source license. Java 1.4.2 or later is required.
From the "I thought this died years ago deparment", I'm pleased to note that the Alpha Cabal has posted beta 16 of AlphaX 8.0, a Mac OS X native text editor that Tcl/Tk as a scripting language and supports Java, Perl, Tcl, TeX, HTML, C, C++, Fortran, and Pascal. It includes syntax coloring, grep search/replace, unlimited undo/redo, and other features.
IBM's alphaWorks has released the Resource Bundle Inspector For Java, a tool that "enables initial verification and inspection of translated messages in resource bundles before product testing is done. These translated messages have come from different geographical translation centers. This tool helps testers to speed up the verification of messages before integrating them into any product. Bugs found in translated messages can be detected at early stage of product testing cycle; this helps in increasing the testing cycle efficiency."
Apple has posted the Java 1.4.2 Update 2 Final Candidate on the Apple Developer Connection (registration and Mac OS X 10.3 required). Apple warns, "Please note that this is a prerelease build which will overwrite the existing Java 1.4.x installation on Panther. Please install this build on non-critical systems if you are concerned with changes that may affect your work or Java applications. The only way to revert to the standard Panther 1.4.1 will be to archive or erase reinstallation of Panther." No word yet on what's been fixed in this version.
I'm in the process of combining three different computers onto a single Mac OS X desktop. So far it's mostly going well, though the Mac has had some troubles talking to my SGI monitor. But the SGI 1600SW monitors I use are very funny beasts that predate the introduction of DVI, and Linux and Windows both have had trouble supoorting them. Software wise, almost everything seems to work, with the notable exception of Java 1.5, which is a pretty serious omission, and means I'll have to keep the Linux box going for awhile longer. The latest scuttlebutt out of Apple is that Java 1.5 won't ship until Tiger does (Apple's Tiger, Mac OS X 10.4; not Sun's Tiger, JDK 1.5) and likely won't ever run on Mac OS 10.3 and earlier. Unnecessary obsolescense to force paid upgrades is a bad thing, and something Apple didn't use to do. Microsoft is much better in this respect.
Other notes from the transition:
I've been using Mac OS X (on another machine) for a year and a half now, and I'm still weirded out about how file names in the shell aren't case sensitive.
Expose didn't impress me when it was announced, but it's actually quite useful. On the other hand it's very annoying that the Finder doesn't behave like any other application. Specifically, it's windows don't come to the front automatically when I bring it to the front like they did in Mac OS 9. One step forward. One step back.
The Scripts menu is a very nice touch.
Why won't any browser except Mozilla (not even Firefox) let me type my Google searches in the location bar? More importantly, why won't any browser (not even Mozilla) default to a Google search when what I type in the location bar contains spaces and is obviously not a URL or host name?
I just used Mozilla Mail for a little while until I could get Eudora installed on this new machine, but I like it and I think I may stick with it. That's one less payware program to upgrade every year. The decent Unicode support is probably the killer feature for Mozilla. I'd only put the switch off this long, because I hadn't noticed that you could configure Mozilla to open messages in new Windows like Eudora does. On the other hand, I do miss Eudora's on-the-fly spell checking; and neither Mozilla nor Eudora for Mac OS X comes with any screen font as nice as the old Mishawaka from classic Eudora. I'll have to find where it's hiding on my old machine and copy it over. I do wish Mozilla had an option to queue all messages instead of just sending them immediately.
The wireless keyboard and mouse are a nice touch. However, the keyboard is too low for me and doesn't have legs like previous flat boards. These would have been a lot easier to set up if the Bluetooth antenna were built into the case, rather than being an extra two centimeter long part I had to plug in (and which was not mentioned in the wireless mouse and keyboard installation instructions, on top of getting lost in a huge box.) My fingers are already hurting, and the number of my typos has gone through the roof. It may be time to switch back to my big, clunky, USB keyboard.
The Apache Jakarta Commons Project has posted the first release candidate of Commons Math 1.0, an open source library providing many mathematical functions for statistics, random data generation,
linear algebra, root finding,
interpolation,
erf, gamma and beta functions,
arrays, factorials,
complex numbers, distributions, matrices, and solving linear systems.
It looks like it covers most prctical math you might encounter at roughly the level of a typical undergraduate course in
mathematical methods for physics. Based on spot checks of the Complex
class and the factorial function, this looks like pretty solid work. I don't see any of the usual mistakes I'm used to seeing in such classes. For instance, the MathUtils.factorial()
method throws an
ArithMeticException
if the result overflows the bounds of a long
.
Commons Math is published under the Apache 2.0 license.
The Gnu Project has released version 3.4.2 of GCC,
the GNU Compiler Collection.
GCC contains frontends for C, C++, Objective C, Chill, Fortran, Ada, and Java as well as libraries for these languages.
GCC is a clean room implementation of Java that doesn't use any Sun code,
so it doesn't always exactly match Sun release versions, but this is roughly at the Java 1.4 level with some omissions. 3.4.2 is a bug fix release. It isn't immediately obvious if any of the bug fixes apply to
the Java parts of the compiler but it looks like a few of them might.
The Apache Jakarta Commons Project has released JEXL 1.0. "Java Expression Language (JEXL) is an expression language engine which can be embedded in applications and frameworks. JEXL is inspired by Jakarta Velocity and the Expression Language defined in the JavaServer Pages Standard Tag Library version 1.1 (JSTL) and JavaServer Pages version 2.0 (JSP)." However, JEXL is not a compatible implementation of EL as defined in JSTL 1.1 and JSP 2.0.
ej-technologies has released Install4j 3.0.2, a $698 payware cross platform tool for building native installers and application launchers for Java applications. New features in 3.0.2 adds a couple of methods to the API.
YourKit, LLC has posted the seventh early access release of the YourKit Java Profiler 3.0, a 295€ payware tool for detecting memory leaks and memory consumption bottlenecks. It features Automation of memory leak detection, an object heap browser, JUnit integration, IntelliJ IDEA Borland JBuilder integration. Version 3.0 features a redesigned user interface including a new "Allocations HotSpots" view. It also allows you to see the merged call tree and back-traces for a method. The tool runs on Windows or Linux.
Slava Pestov has released
jEdit 4.2,
an open source programmer's editor written in Java with extensive plug-in
support and
my preferred text editor on Windows and Unix.
New features in 4.2 include:
In my initial testing, it appears to have somewhat improved dialog focus. In previous versions, the failure to correctly focus dialogs like Find was responsible for a lot of mistyped text that ended up in windows other than the one it was intended for. However, there are still some dialogs like "No Matches Found" that don't properly get the focus when shown.
jEdit is published under the GPL. Java 1.3 or later is required.
Linus Tolke has posted ArgoUML 0.16.1, an open source UML modelling tool written in Java. This is a bug fix release. ArgoUML is published under a BSD license.
Jonas Bonér and Alexandre Vasseur have posted the first release candidate of AspectWerkz 1.0, an open source aspect oriented programming framework for Java. According to the web page, "AspectWerkz utilizes runtime bytecode modification to weave your classes at runtime. It hooks in and weaves classes loaded by any class loader except the bootstrap class loader. It has a rich join point model. Aspects, advices and introductions are written in plain Java and your target classes can be regular POJOs. You have the possibility to add, remove and re-structure advices as well as swapping the implementation of your introductions at runtime. Your aspects can be defined using either an XML definition file or using Runtime Attributes." AspectWerkz is published under an "LGPL-style license".
Michael B. Allen has posted jCIFS 0.9.8,
a free (LGPL) SMB client library written in pure Java. It
supports Unicode, named pipes, batching, multiplexing I/O of threaded callers, encrypted authentication, full transactions, domain/workgroup/host/share/file enumeration, NetBIOS sockets and name services, the smb:// URL protocol handler, RAP calls, and more. The API is similar to
java.io.File
. Version 0.9.8 fixes a few bugs including one security bug.
Michael Jakl has posted FProfiler 0.6.3, an open source instrumenting profiler for Java based on BCEL and log4j. It inserts the needed instructions directly into the bytecode of the classes. 0.6.3 is a bug fix release. FProfiler is published under the GPL.
Sun has submitted Java Specification Request (JSR) 252, Java Server Faces 1.2 to the Java Community Process (JCP). According to the JSR, "JavaServer Faces 1.2 provides a minimal enhancement of the JavaServer Faces 1.1 specification. It is not a new feature JSR. The primary goal of this JSR is handling the Faces side of the JSP/Faces alignment issues addressed in the parallel JSR-245." Comments are due by September 13.
Dan Creswell has released version 2.1.5 of the Blitz JavaSpaces Server Edition and version 0.9.3 of the pure Java edition. Bltiz is an open source (BSD license) implementation of JavaSpaces that is Jini 2.0 enabled and implements smart indexing, tuneable persistence, and active/passive lease cleanup. This release adds a utility for making memory and disk consumption estimates a new HostStat statistic that provides details of the machine Blitz is executing on, and event and task throttling.
Michael Fuchs has posted version 0.59 of his DocBook Doclet that creates DocBook SGML and XML documents from JavaDoc. This release adds support for JavaHelp, user-customized fo drivers, and fixes some bugs.
Teodor Danciu's posted version 0.6.1 of JasperReports, an open source Java library for generating reports from XML templates and customizable data sources (including JDBC). The output can be displayed on the screen, printed, or written to XML or PDF files. Version 0.6.1 adds a lastPageFooter section. He's also released JasperAssistant 1.3.1, a $59 payware, Eclipse plug-in visual report designer for JasperReports.
Enterprise Distributed Technologies has released edtFTPj 1.4.3, a free (LGPL) FTP library for Java. A $1500 payware version adds support for FTP over SSL.
JCraft, Inc has posted JSch 0.1.17, an open source, pure Java implementation of SSH2 that supports port forwarding, X11 forwarding, file transfer, etc. This version adds some minor features including handling hostkeys included in known_hosts file and setting timeout values for opening sockets. Java 1.2 or later and the JCE are required. JSch is released under a BSD license.
Websina has released BugZero 3.8, a $1299 payware (+$300 for maintenance) Web-based bug tracking system that supports multiple projects, group-based access, automatic bug assignment, file attachment, email notification, and metric reports. Bug Zero is written in Java and can run on top of various backend databases including MySQL. 3.8 adds an "editasgn" project access code that allows users to edit only issues assigned to them.
YourKit, LLC has posted the sixth early access release of the YourKit Java Profiler 3.0, a 295€ payware tool for detecting memory leaks and memory consumption bottlenecks. It features Automation of memory leak detection, an object heap browser, JUnit integration, IntelliJ IDEA Borland JBuilder integration. Version 3.0 features a redesigned user interface including a new "Allocations HotSpots" view. It also allows you to see the merged call tree and back-traces for a method. The tool runs on Windows or Linux.
SolarMetric Inc. has released Kodo JDO 3.1.5, an implementation of Sun's Java Data Objects (JDO) 1.0 specification plus "preview features of the upcoming JDO 2.0 specification." JDO permits Java objects to be transparently stored in relational databases. This is mostly a bug fix release. Kodo JDO Standard Edition sells for $600 per developer license, and Kodo JDO Enterprise Edition sells for $3000 per developer license and adds J2EE application server support.
SolarMetric has also posted the first release candidate of Kodo 3.2.0, which focuses on support for the JDO 2 standard.
Sun's posted a release candidate of Java 1.5, a.k.a Java 5, a.k.a Java 2 Standard Edition 5.0 Java Development Kit, a.k.a Java 2004 SuperSized Edition 50.0 Release Candidate For Developers Lord Only Knows What This Will Be Called Next Week 50.0. They claim more than 99% of their tests are passing, and they think fixing the remaining < 1% of test failures is too risky. The tentative release data is September 30th.
The Apache Jakarta Project has released Commons Validator 1.1.3, an extensible framework for defining validation methods. Although it uses XML to define the validation rules, this component is intended for general data validation, not specifically or even primarily XML validation. It is published under the Apache 2.0 license.
Stefan Reich has posted beta 9 of SuperVersion 1.0, a single user version control system suitable for small projects, as opposed to multiuser, server-based systems like CVS and Subversion. Beta 9 adds new CVS-compatible keywords ($RCSfile, $Source, and $Date) and recognizes UTF-8 files as text. Superversion is published under the GPL.
Ben Litchfield has posted PDFBox 0.6.6, an open source (BSD license) Java library for manipulating PDF documents and extracting contents from existing PDF documents.
The Jakarta Apache Project has released Tomcat 5.5.0, an open source servlet container for the Apache web server and the official reference implementation of the Java Servlet API and Java Server Pages (JSP). "Tomcat 5.5 is designed to run on J2SE 5.0 and later, and requires configuration to run on J2SE 1.4....In addition, Tomcat 5.5 uses the Eclipse JDT Java compiler for compiling JSP pages. This means you no longer need to have the complete Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment (JRE) is sufficient. The Eclipse JDT Java compiler is bundled with the binary Tomcat distributions. Tomcat can also be configured to use the compiler from the JDK to compile JSPs, or any other Java compiler supported by Apache Ant." The announcement didn't mention anything about the versions of servlets and JSP supported, so I assume this still implements version 2.4 of the Java Servlet API 2.4 and version 2.0 of Java Server Pages like Tomcat 5 did. The version numbering is funky. This is really more like an alpha release and is not considered to be ready for production.
For those who prefer to bleed a little less, the Jakarta Apache Project has also released Tomcat 5.0.28. "This release addresses a number of bugs and contains updated documentation, status, and dependencies."