I'm travelling this week. Updates will probably be a little slow until Thursday.
Sun's posted the public review draft specification for Java Specification Request 86 Enterprise Media Beans on the Java Community Process site. Comments are due by May 27. Enterprise Media Beans are a framework for integrate multimedia data into applications based on EJB Entity Beans within J2EE.
I've updated the Cryptonomicon/Enoch Root report with another possible explanation from Robert Houghton and a very interesting e-mail from Eric Raymond about what Neal Stephenson told him about Enoch Root. Anmong other things, Raymond suggests that more will be revealed in Stephenson's next book. This is probably QuickSilver, which is due out in March 2003.
According to Stephenson, "Quicksilver is set 300 years ago, and it's still a work in progress. Since its not done, I am still pretty reluctant talk about it in specifics. It is a continuing effort to go farther back into the history of these technologies and to think about how they formed the way the technological world is structured today." and "There are familial connections between the 2 books. it will take place a few hundred years in the past, and include some ancestors of Cryptonomicon characters."
In a Locus interview, Stephenson revealed a little bit more:
Originally, I planned to have storylines in Cryptonomicon set in the present, past, and future, but I pulled out the one set a couple of generations in the future – more the kind of stuff that people are accustomed to seeing from me. Though it previously looked as though it was going to be kind of sparse, now it was looking like it could stand on its own, but it would take a lot more time and work. And yet the WWII and present-day timelines were done, and it seemed crazy to hold up the entire thing any longer for the future one to get done, so we could bring that out first. So we decided to take this approach. Besides, the book was already at the limits of size! The future scenario will be a later book.
I have two sequels to Cryptonomicon planned, but they're in different time lines. I'm trying not to give the idea that it's a tightly locked together set of books. They're supposed to work as stand-alones. There are always a few strange little corners of the story that may not make sense outside of the context of the full series, but 99% of it can stand on its own reasonably well, I hope. It's kind of a wink to the science fiction readers out there: "See, it really is a science fiction book!"
Sun's posted the Operation Support Systems (OSS) Service Activation API 1.0 specification, reference implementation, and technology compatibility kit. This is primarily relevant to the telcommunication industry.
Sun's posted a minor maintenance update to the JDK 1.3. Version 1.3.1_03 FCS fixes about two dozen assorted bugs.
Sun's posted the public review draft of the Java Authorization Contract for Containers specification 1.0. This spec
java.security.Permissionclasses to satisfy the Java 2 Platform, Enterprise Edition (J2EETM) authorization model. The Java ACC specification defines the binding of container access decisions to operations on instances of these permission classes. It defines the semantics of policy providers that employ the new permission classes to address the authorization requirements of J2EE, including the following:
- The definition of roles as named collections of permissions
- The granting to principals of permissions corresponding to roles
- The determination of whether a principal has been granted the permissions of a role (ie.
- The definition of identifier to role mappings that bind application embedded identifiers to application scoped role names
The Java ACC specification defines the installation and configuration of authorization providers for use by containers. The specification defines the interfaces that a provider must make available to allow container deployment tools to create and manage permission collections corresponding to roles.
Slava Pestov's posted beta 8 of jEdit 4.0, and open source programmer's editor written in Java. New features in this release include syntax highlighting for output of Hex plugin and Informix 4GL syntax highlighting. Many bugs are fixed too.
The finished Java APIs for Bluetooth specification has been posted to the Java Community Processed. Bluetooth is an emerging standard for wireless integration of small devices.
The Apache Jakarta Project has released Tomcat 3.3.1, an open source servlet container/Java Server Page enginge for the Apache web server. Tomcat 3.3.x implements the Java Servlet 2.2 and JavaServer Pages 1.1 APIs. This release fixes a number of small bugs.
Unicode 3.2 has been released. Version 3.2 adds 1,016 additional characters including many new characters for mathematical and technical publishing, four indigenous scripts of the Philippines, recycling symbols, and Khmer. Java 1.4 and earlier still only support Unicode 3.0 and earlier, not UNicode 3.1 or 3.2.
Rajiv Mordani, the
maintenance lead for JSR-63 Java API for XML Processing, has posted
a change log for maintenance review.
Comments are due by April 22, 2002. I've been noticing a lot of incomplete specifications all over the
javax.xml packages lately, none of which are yet addresed by this document. I'm submitting them to the comments address. I'm curious to see what will happen.
Sun has also posted errata lists for maintenance review of JSR-4 ECperf Benchmark Specification and JSR-53 JavaServer Pages 1.2. Comments on these are also due by April 22.
The Apache Jakarta Project has posted the second beta of Tomcat 4.0.4, an open source servlet container/Java Server Page enginge for the Apache web server. Tomcat 4.x implements the Java Servlet 2.3 and JavaServer Pages 1.2 APIs. This beta fixes a few bugs and adds a "a new standalone HTTP/1.1 connector, called Coyote. Coyote brings increased performance and better scalability to Tomcat over the old connector. The connector can be enabled by uncommenting an element in the Tomcat server.xml configuration file."
BEA Systems has submitted an initial Java Specification Request (JSR) to the Java Community Process for a Streaming API for XML (StAX). This JSR proposes a Java-based, pull-parsing API for XML using "a simple iterator based API. This allows the programmer to ask for the next event (pull the event) and allows state to be stored in a procedural fashion." Comments are due by April 1.
Sun's Joshua Bloch has submitted JSR-175 A Metadata Facility for the Java Programming Language to the JCP. The proposal notes that "There has been a growing trend towards annotating fields, methods, and classes as having particular attributes that indicate they should be processed in special ways by development tools, deployment tools, or run-time libraries. We call such annotations metadata." The proposal is relatively extensive for this stage. It might eventually involve changes to the underlying syntax of the Java programming language itself, not just new libraries like most other JSRs. Comments are due by April 1.
Sun's submitted JSR-177 Security and Trust Services API for J2ME to the JCP. According to the JSR:
The purpose of this JSR is to define a collection of APIs that provide security services to J2ME enabled devices. These APIs are a necessary step for a device to become trusted, in other words provide security mechanisms to support a wide variety of application based services, such as access to corporate network, mobile commerce, and digital rights management.
Many of these services rely on the interaction with a Security Element in the device for secure storage and execution as described below:
- Secure storage to protect sensitive data, such as the user's private keys, public key (root) certificates, service credentials, personal information, etc.
- Secure execution, such as cryptographic operations to support payment protocols, data integrity, and data confidentiality.
- Custom and enabling security features that J2ME applications can rely on to handle many valued-added services, such as user identification and authentication, banking, payment, ticketing, loyalty applications, digital media play, etc.
A Security Element can be implemented in a variety of ways. Smart cards are most commonly used to implement a security element. They are widely deployed in wireless phones, such as SIM cards in GSM phones, UICC cards in 3G phones, and WIM applications in a SIM or UICC card in WAP-enabled phones. For instance in GSM networks, the network operator puts the network authentication data on a smart card, as well the subscriber's personal information such as the address book. This card, when inserted into a mobile handset, enables the handset to operate on the operators network for the benefits of the subscriber.
IBM and Sun have jointly submitted JSR-174 Monitoring and Management Specification for the Java Virtual Machine to the Java Community Process. This proposes APIs to:
provide Java applications, system management tools and RAS-related tools with the ability to monitor the health of the Java virtual machine as well as manage certain run-time controls such as:
- Health Indicators
- Class load/unload
- Memory allocation statistics
- Garbage collection statistics
- Monitor info & statistics
- Thread info & statistics
- Just-in-Time statistics
- Object info (show/count all objects in the Java heap)
- Underlying OS and platform info
- Run-Time Control
- Minimum heap size
- Verbose GC on demand
- Garbage collection control
- Thread creation control
- Just-in-Time compilation control
The APIs will be designed with the following characteristics:
- Very low performance impact, even when events are being monitored
- Restricted to low frequency events
- Interface should be self describing (i.e. interface should not be described statically)
- Mandatory and optional set of events and control values
Comments are due by April 1.
Sun's posted the public review draft of JSR-62 Personal Profile Specification. This is a J2ME device profile that describes devices that need "a high degree of Internet connectivity and web fidelity." (i.e. much better than WAP on a cell phone) Review closes on April 15.
Worldspot's posted the second proposed final draft of JSR-28 Java SASL Specification. SASL stands for "Simple Authentication and Security Layer." According to the Web page,
SASL defines a method for adding authentication support to connection-based protocols. To use this specification, a protocol includes a command for identifying and authenticating a user to a server and for optionally negotiating protection of subsequent protocol interactions. If its use is negotiated, a security layer is inserted between the protocol and the connection.
The unique value provided by SASL is in its protocol independence. A handler for a particular authentication mechanism (CRAM MD5, Kerberos, GSSAPI, ...) can potentially be used to authenticate connections over any protocol.
SASL is defined in RFC 2222. RFCs 2245, 2444, and 2831 describe particular SASL mechanisms, while RFC 2554 describes SASL used with SMTP, and RFC 2829 describes SASL used with LDAP. There are a number of Internet Drafts proposing additional SASL mechanisms.
Sun's published a response to the Apache Software Foundation's concerns about the ability for open source projects to implement Java specifications such as J2EE. I haven't been following this too closely, but Sun seems to be trying to do the right thing here.
One thing you have to remember when trying to figure out just what the hell is going on at Sun with regards to free and open-source software is that Sun is a very large company of many different people with many different opinions. Sun has always been very internally conflicted about open source at all levels from the top to the bottom. Sun presents a very schizophrenic face to the world in which various products like StarOffice and Java get pulled back and forth between the different warring camps inside Sun. The most common pattern is that the initial developers push for increased openness, and then management tries to pull the rights back in as the product becomes successful, but it can go in the other direction too as this latest news indicates.
Sun's posted three public review drafts of Java Specification Requests (JSRs) for various Java 2 Micro Edition (J2ME) components:
The Object Refinery has posted version 0.8.0 of the JFreeChart open source library. JFreeChart can produce pie charts, line charts, various kinds of bar charts, XY plots and scatter plots, time series, high/low/open/close charts, candle stick charts, and combination charts. Version 0.8.0 adds a new logarithmic axis, some additional JDBC and servlet sample code, moves user interface items into resource bundles for localization, and improves support for different time zones in the time series.
Sun's posted a prototype implementation of a Java compiler that supports generics (i.e. templates) on the Java Developer Connection (registartion required). The compiler produces class files that can be run on standard Java 1.3 and later virtual machines. This is interesting, but overall I think the Java generics proposal is severely hampered by the Java's distinction between primitive and object types.
Sun's posted the second proposed final draft of Java Specifcation request (JSR) 77, J2EE Management. "The JavaTM Platform, Enterprise Edition (J2EETM) Management Specfication defines a management information model for the J2EE platform, the J2EE Management Model. The model is designed to be interoperable with many management systems and protocols. This specification includes standard mappings of the model to the Common Information Model (CIM), an SNMP Management Information Base (MIB), and to the Java object model through a server resident Enterprise JavaBeansTM (EJBTM) component, known as the J2EE Management EJB Component (MEJB). The MEJB provides interoperable remote access to the model from any standard J2EE application."
Romain Guy's posted a prerelease version of Jext 3.1, an open source programmer's editor written in Java. It works much better with Java 1.4 than 3.0.2 did.
Sun's posted the second early access release of the Java Web Services Developer Pack and Java Web Services Tutorial. This includes the Java XML Pack Spring 02 release, the JavaServer Pages Standard Tag Library (JSTL) 1.0 Beta 1, Ant Build Tool 1.4.1, Java WSDP Registry Server 1.0 EA2, Web Application Deployment Tool, and the Apache Tomcat 4.1-dev servlet container. Changes in this release include:
The Spring 2002 version of the Java XML Pack is also available separately. This bundles various XML-related technologies for Java including the Java API for XML Messaging (JAXM) v1.0.1 EA2, the Java API for XML Processing (JAXP) v1.2 EA2, the Java API for XML Registries (JAXR) v1.0 EA2, and the Java API for XML-based RPC (JAX-RPC) v1.0 EA2. Notable additions to this version of the Java XML Pack include:
Note that if you're using this with Java 1.4, you'll need to put the JAR files in your jre/lib/endorsed directory to override the ones bundled with the JDK.
Luke Reeves's Java Financial Library 1.4 can convert currencies and retrieve stock information using Yahoo servers. It's published under the LGPL.
Enterprise Object Broker (EOB) 0.4.0 is an open source application server that "transparently distributes Java objects via their interfaces. Because of this EOB makes no distinction between Local and Remote objects, hence is not J2EE compliant. The developer builds beans that implement normal Java interfaces and the deployer decides where the beans are in a cluster of servers. AltRMI is used in place of RMI. It publishes plain interfaces locally and remotely. The interfaces do not have to extend the
Remote interface. Methods do not have to throw
RemoteException. EOB sits on top of Apache's Avalon-Phoenix server platform." This is released under the Apache license.
PDFGo.com has released the PDF Java Library, a $449 payware Java 1.3 library for PDF visualization and printing.
Sun's posted the first public draft of the JavaMail 1.3 specification. So far, this is just a description of the changes since JavaMail 1.2, which are mostly some convenience methods. There's nothing too radical here.
I've posted XPath, Chapter 16 of Processing XML with Java, on Cafe con Leche. It covers integrating XPath searches into your programs, a little-known but very powerful technique that should be in every XML developer's toolbox. XPath based programs are often far more robust and reliable than programs that use SAX or DOM to perform tree navigation and searching. XPath searches will often succeed even when the document format is not quite what you expected. For example, a comment in the middle of a paragraph of text may break DOM code that expects to see contiguous text. XPath wouldn’t be phased by this. Many XPath expressions are resistant even to much more significant alterations such as changing the names or namespaces of ancestor elements or adding or subtracting levels from the tree hierarchy. While you could write your SAX/DOM/JDOM programs to handle these cases, it's about a hundred times easier to do it with XPath.
For developers who aren't yet familiar with XPath, this chapter also includes with a brief tutorial on the XPath data model and expression syntax. Although I've written things like this before, this is the first one to treat XPath from the perspective of a Java developer using XPath rather than mainly as a part of XSLT.
Although I'm writing out of order right now, nothing in this chapter depends on anything in the unpublished chapters 14 and 15. If you've read the DOM chapters (or are reasonably familiar with DOM), you know everything you need to know before digging into this one. As usual, I'd like to hear of any comments, criticisms, corrections, caveats, calumnies, and any other C-words you may care to lob in my direction about this chapter.
Now that Java 1.4 has been released, Sun has begun thinking about Java 1.5. This is code named "Tiger" and tentatively scheduled for Fall, 2003, based on an 18-month update cycle. Details (not many yet) are available in Java Specification Request (JSR) 176 J2SE Tiger Release Contents. The JSR states, "It is expected that most of the effort in the Tiger release will be around product quality (bug fixing) and reliability, availability and serviceability with only a relatively small amount of new features and new APIs." Possible new APIs being considered for Tiger include:
Microsoft's posted the second beta of Visual J#.Net, "a development tool for Java-language developers who want to build applications and services on the Microsoft .NET Framework." It includes tools for converting old Visual J++ files to Visual Studio.Net.
Nathan Fiedler's JSwat 1.5.5 is a stand-alone, graphical Java debugger based on the Java Platform Debugging Architecture (JPDA). It has all of the basic features you'd expect: breakpoints, source code viewing, single-stepping, watching variables, viewing stack frames, and printing variables. JSwat is published under the GPL.
The JavaPLT group at Rice University has released DrJava, an integrated development environment for Java that supports interactive evaluation of expressions. DrJava is published under the GPL and requires JDK 1.3 or later.
Sun's posted the proposed final draft specification of the Java API for XML Registries (JAXR). JAXR "This version of the JAXR specification includes detailed bindings between the JAXR information model and both the ebXML Registry and the UDDI Registry v2.0 specifications."
ObjectWeb has released JORAM 3.0, an open source Java Message Service (JMS) provider. JORAM implements version 1.0.2b of the JMS 1.0.2b specification.
The Object Refinery has posted version 0.7.4 of JFreeChart, an open source chart library for Java. JFReeChart can produce pie charts, line charts, various kinds of bar charts, XY plots and scatter plots, time series, high/low/open/close charts, candle stick charts, and combination charts.
The Object Refinery has also posted JFreeReport 0.7.0, an open source Java class library for generating reports that outputs PDF. Java 1.3 or later is required. Both JFreeChart and JFreeReport are published under the GNU Lesser General Public Licence (LGPL).
TwICE 0.0.3 is an open source (Apache license) Java implementation of the Information and Content Exchange (ICE) protocol version 1.1. TwICE implements an ICE syndicator (publisher) and ICE subscriber.
Patrick Beard's Netscape Macintosh Runtime for Java plug-in, currently in its fourth beta release, allows Netscape 6.x and later on MacOS 9 and X to run applets.
Sun's posted the public review draft specification for Java Specification Request 52, A Standard Tag Library for JavaServer Pages. This defines standard tags for:
Comments are due by April 11. As usual the spec is only available in PDF instead of the much more convenient HTML. What's new is that when I attempted to download the spec, I was presented with a pop-up ad for JavaOne. I wonder if preregistration is running low? Almost all the shows I've been to since last summer have seen significant drops in attendance, especially in the U.S. For JavaOne specifically, I've been getting a lot more Sun PR about the show this year than usual, and I've also been hearing grumbling from both potential speakers and attendees about the increasingly Sun-centric focus of the show. Sun seems to be going to great efforts to make sure that only the official party-line on Java is heard this year. That may be having a negative effect on attendance.
IBM's alphaWorks has posted an updated version of Bridge2Java that adds Java 1.4 canvas support, byref variable fixes, and proxy generator fixes. Bridge2Java enables Java programs to communicate with ActiveX objects on Windows.
Slava Pestov's posted beta 7 of jEdit 4.0, an open source programmer's editor written in Java. He thinks this release is "very stable" and a release candidate should soon follow. New features in this release include:
Sun's released the specification for the Java Advanced Imaging API 1.1.
Sun filed a private antitrust suit against Microsoft on Friday. The suit seeks an undisclosed amount of damages, the Internet Explorer source code, interfaces between Windows and higher-level Microsoft software and asks for a preliminary injunction to require Microsoft to ship Java with Windows XP and Internet Explorer and stop shipping their own virtual machine
Frankly, I'm getting a little tired of Sun's legal antics. It's obvious they'll use any excuse to sue Microsoft. First they sue Microsoft because they do include Java, then they sue them because they don't. Why can't they make up their minds? The issues with Microsoft's implementation of Java were always trivial, the sorts of things that should have been dealt with in friendly, private communications between developers. Instead Sun sicced its lawyers on Microsoft and called a public press conference without even giving them a chance to fix the bugs first. Furthermore, Sun's enforcement of its license agreement was clearly discriminatory. At the time that Microsoft was actively developing Java, their virtual machine was far more complete and compatible than the ones Netscape and Apple were shipping, yet Sun never said word one about those VMs.
I'm not surprised that Microsoft's chosen to remove Java from Windows and IE since it's obvious that no matter what they do, Sun will sue them. Sun is simply not acting in good faith with respect to Java and Microsoft. Sun does not want to find a mutually beneficial arrangement. It just wants to beat up Microsoft anyway it can. In the face of such unwavering hostility, the only sensible response for Microsoft is exactly what they've done: remove all Sun code from their products and avoid any business relationship with Sun. This isn't good for customers, but the blame here clearly lies with Sun, not Microsoft.
I'm travelling right now so updates may be a little slow until March 14.
Sun's posted version 1.2.1_04 of the Java 3D API and implementation for Windows and Solaris. This release fixes a couple of dozen assorted bugs.
I'll be travelling for the next week so updates may be a little slow until March 14.
Luxor is a deliberately incomplete, GPL'd Java library for displaying user interfaces written in Mozilla's XML User Interface Language (XUL). It also includes a multi-threaded web server, a portal engine and Apache Velocity as its template engine.
jXUL may eventually be a more complete open source XUL library for Java, but is still being built.
I'll be travelling for the next week so updates may be a little slow until March 14.
Sun's posted version 0.8, the proposed final draft, of the Java API for XML-Based RPC (JAX-RPC) specification. The most obvious change is that the name is no longer as likely to be confused with XML-RPC.
The JAIN INAP API Specification, Java Specification Request (JSR) 35 has been released. JAIN INAP stands for "Java APIs for Integrated Networks Intelligent Network Application Protocol". It's used in the telecommunications industry.
Sun's submitted JSR 172, J2ME Web Services Specification, to the Java Community Process. "The purpose of this specification is to define an optional package that provides standard access from J2ME to web services" including support for XML. Comments are due by March 18.
NASA's posted the public review draft specification of JSR-38 Application Installation API Specification. This describes APIs for cross-platform installation and de-installation of both Java applications and platform-specific applications. Comments are due by April 4.
JFreeChart (current version 0.7.4) is an open source Java class library for producing charts including' horizontal and vertical bar charts (regular or stacked with optional 3D-effects), line charts, pie charts, XY plots, scatter plots, time series, high/low/open/close charts, candlestick plots, and combination charts. JFreeChart is published under the LGPL.
Sun's posted a public review draft of the Java Card 2.2 Platform Specification for running Java programs on smart cards and similarly memory constrained devices. New features in 2.2 include
The Apache Jakarta Project has posted the first beta of Tomcat 4.0.4, an open source servlet container for Apache. This fixes some bugs in 4.0.3 and adds a couple of minor new features. It supports version 2.3 of the Java Servlet API and version 1.1 of Java Server Pages.
The Apache Jakarta Project has posted the first release candidate of Tomcat 3.3.1, an open source servlet container for Apache. Version 3.3.1 fixes many bugs in the first beta. It supports version 2.2 of the Java Servlet API and version 1.1 of Java Server Pages.
The expert group for Java Specification Request 98 has published the final specification of the JAIN User Location and Status 1.0 API, the Java specification of the Parlay Mobility 2.1 API. "The API is intended to allow software developers to rapidly develop external Service Provider type applications using abstract primitives that hide the heterogeneity of underlying networks."
The Jakarta Apache Project has released Tomcat 4.0.3 to close a security hole in the sandboxing provided by the Java Security Manager. According to the announcement, "The request dipatcher functionality of the Servlet API could be used by a malicious servlet or JSP page to get access to any resource located on the server's filesystem, bypassing the Security Manager protection." If you're not using the Security Manager, then you're not affected by this problem.
The JPackage project aims to provide "a coherent set" of Java packages for Linux that are unburdened "by the lack of well-established installation standards and cross-platform issues we don't want to deal with." Currently, RPMs are offered for more than 100 different open source Java projects. These should work on any rpm-based Linux distribution such as Mandrake, RedHat, and Suse. Of the RPMs for the libraries I was most personally familiar with (mostly XML stuff), about half of them seemed to be noticeably out of date. This might help out with installation. However, you still need to be pretty familiar with the library before you can decide which packages you need.
Sun's posted the public review draft specification for JSR-131 ECPerf 1.1. ECperf is an Enterprise JavaBeans performance workload for benchmarking. Comments are due by March 30.
Sun's posted the Forte for Java Community Edition 3.0/JDK 1.4 Cobundle for Windows, Linux, and Solaris.
|January||January, 2002||January, 2001||January, 2000||January, 1999||January, 1998|
|February||February, 2002||February, 2001||February, 2000||February, 1999||February, 1998|
|March||March, 2002||March, 2001||March, 2000||March, 1999||March, 1998|
|April||April, 2002||April, 2001||April, 2000||April, 1999||April, 1998|
|May||May, 2002||May, 2001||May, 2000||May, 1999||May, 1998|
|June||June, 2002||June, 2001||June, 2000||June, 1999||June, 1998|
|July||July, 2002||July, 2001||July, 2000||July, 1999||July, 1998|
|August||August, 2002||August, 2001||August, 2000||August, 1999||August, 1998|
|September||September, 2002||September, 2001||September, 2000||September, 1999||September, 1998|
|October||October, 2002||October, 2001||October, 2000||October, 1999||October, 1998|
|November||November, 2002||November, 2001||November, 2000||November, 1999||November, 1998|
|December||December, 2002||December, 2001||December, 2000||December, 1999||December, 1998|