JDX Beta 2 is a GPL'd "Pure Java desktop for Linux x86 users. JDX provides better GUI JVM control, runtime class management and optimizations on the system with a totally Java centered Desktop."
IBM's alphaWorks has released the Location Transponder, a "real-time location data reporter for location-based applications and servers. It is designed to facilitate research and development of location-based services (LBS) and applications. The transponder reads time-stamped data records representing coordinate positions of mobile objects (such as cell phone users) from a trace file and transmits the data to a receiving LBS application or server using HTTP requests, SOAP calls, UDP datagrams, or a user-provided custom method. The transmission of location updates is paced to perfectly match the time stamps indicated in the location trace file. This allows the user to simulate and test location-based services and applications in real time."
Sun's posted the maintenance review draft specification for the Java Media Framework 2.1.1 to the Java Community Process (JCP). Comments are due by May 28. There are only a couple of minor proposed changes.
Sun's also posted the maintenance review draft specification for the JAIN Java Call Control Specification to the JCP. This is probably only interesting if you work for a phone company. Comments are due by May 28.
Lorenzo Bettini's GNU Source-highlight is a C program that generates syntax colored HTML documents from Java, C/C++, Prolog, Perl, and PHP3 programs.
IBM's released the IBM High Resolution Time Stamp Facility. This is a Java and C Windows library that can "measure activities of less than one second's duration using highly accurate time stamps that can be converted to dates and times of day."
Sun's released final specs for two Operation Support Systems (OSS) Java Specification Requests (JSRs), OSS Service Activation API (JSR 89) and OSS Common API (JSR 144). They've also posted reference implementations and technology compatibility kits. OSS is mostly used in the telecommunications industry (i.e. phone companies).
Sun's posted the second proposed draft specification of the Java API for XML - Based RPC in PDF and HTML format.
Bob McWhirter's posted the first release candidate of Jaxen 1.0, an open source, model-independent XPath engine for Java that supports DOM, JDOM, dom4j, and ElectricXML. This is not quite a complete implementation of XPath 1.0, but it's close. An earlier beta of Jaxen is discussed in Chapter 16 of Processing XML with Java. A few important class names have changed in this release, so I'll be updating that chapter soon.
Nokia's submitted Java Specification request (JSR) 184 Mobile 3D Graphics API for J2ME to the Java Community Process. According to the JSR,
This proposal specifies a lightweight, interactive 3D graphics API, which sits alongside J2ME and MIDP as an optional package.
The API shall be flexible enough for a wide range of applications, including games, animated messages, screen savers, custom user interfaces, product visualization, and so on. It shall not be limited to any particular type of application. It shall also be simple enough to use to make rapid development of compelling 3D applications feasible.
The API is targeted at CLDC class devices that typically have very little processing power and memory, and no hardware support for 3D graphics or floating point math. The API shall be defined such that implementations on that kind of hardware are feasible. However, the API shall also scale up to higher-end devices featuring a color display, a DSP, a floating point unit, or even specialized 3D graphics hardware. The API may therefore support features that are not strictly necessary on the very low-end platforms.
Comments are due by May 6.
I'm speaking at the Software Development 2002 West conference in San Jose this week so updates may be a little slow until I get back to New York next week. In the meantime, you can check out the notes for my four presentations:
The first release candidate of Mozilla 1.0 has been posted for the usual batch of platforms (Mac, Windows, Linux, et al). RC1 implements one-button publishing in Mozilla Composer, reorganizes the menu bar and context menus for improved usability, implements LDAP over SSL, implements Mail Return receipts, and adds a new Download Manager. Mozilla supports XML, XHTML, HTML, CSS, XSLT, MathML, and more. My absolute favorite feature is the ability to turn of pop-up ads. This has been my default browser on Windows for almost a year now, but the Macintosh version still has at least one show stopping bug in AppleScript that keeps me from using it regularly.
In related news, Patrick C. Beard's posted the first final candidate build of the Macintosh Runtime for Java plug-in for Mozilla/Netscape 6.x on MacOS X.
The Apache Jakarta Project has posted the first release candidate of
log4j 1.2, a logging package for Java
that allows developers to enable logging at runtime without modifying the application binary.
Version 1.2 adds Java Management Extensions (JMX)
support, mapped diagnostic
contexts, JDBC logging, a graphical log viewer, and buffered
class replaces the
Level class replaces the
class "to facilitate migration from the JDK 1.4 logging API to log4j."
Aside from the removal of previously deprecated methods, 1.2 should be mostly backwards
compatible with 1.1.3.
I've posted JDOM, Chapter 14 of Processing XML with Java, on Cafe con Leche. This chapter introduces JDOM, an open source, pure Java, tree-based API for processing XML that's much simpler than DOM. This chapter covers the basic design of JDOM, as well as parsing and serializing XML documents with JDOM. As always, all comments are appreciated.
The Apache POI project provides APIs for manipulating various file formats based upon Microsoft's OLE 2 Compound Document format in pure Java including many Microsoft Office files such as .xls (Excel) and .doc (Word). Currently Excel 97 and Word 97 are supported.
The first release candidate of JBoss 3.0.0 has been posted. JBoss is an open source, standards-compliant, Enterprise JavaBeans application server implemented in pure Java. Java 1.3 or later is required.
Sun's posted the Jini Technology Starter Kit 1.2.1 FCS. This contains implementations of the Jini technology infrastructure as well as supporting helper classes and services. It's released under the Sun Community Source License 3.0/Jini Technology Specific Attachment 1.0.
Sun's posted the proposed final 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.
The Expert Group for JSR 116 has posted a public review draft specification of the SIP Servlet API, a "high-level extension API for SIP servers. It enables SIP applications to be deployed and managed based on the servlet model." SIP, the Session Initiation Protocol, establishes and manages multimedia IP sessions. Again the document is in PDF format. Comments are due by May 9.
Fruity Framework 1.00 is a Java library for rendering for scalable graphics that supports shape primitives (lines, rectangles, arcs, etc.) and images. It's not clear what, if anything, this will do that the Java 2D API won't. However it is released under the GNU General Public License (GPL).
EJBCA 1.3.2 is a Certificate Authority written in Java using J2EE.
The MinTC Embeddable Servlet Container (current version 0.6 alpha) has a very small footprint for devices like the Sharp Zaurus. This release adds support for JSPs, Apache XML-RPC, and various bug fixes.
leJOS 1.0.5 is a Java-based replacement firmware (OS) for the Lego Mindstorms RCX. New features in this release include 3KB extra memory, MacOS X support, and the Java Communications API.
IBM's alphaWorks has released Enterprise Media Beans, a "rich media framework based on the JSR086 standard proposal for J2EE-compliant applications; media is treated as just another data type. EMB enables applications to integrate rich media data, such as audio, video, or image, into applications based on Enterprise Java Beans (EJB) Entity BeansTM within the J2EE application development model. It allows the embedding of rich media assets into business logic without the worry about client type, server media protocols, media format, or streaming technology. It is a standardized, component-based application model for rich media integration throughout the enterprise -- back-end and infrastructure." Windows 2000 is required.
Sun's posted early access release 0.6 of the Java Accessibility Helper on the Java Developer Connection (registration required). This tool "aids developers in making their JFC-based programs accessible to users with disabilities. A report is generated that includes a prioritized list of problems and potential problems with the application being tested. For example, the Helper verifies that all input fields in an application can be reached using only the keyboard. The Helper does not require the source code for the application being tested and will work with any AWT- or Swing-based application." Improvements since the previous release include:
Sun's released version 1.1 of the Java Message Service (JMS) Specification. (No implementation yet though.)
JJEdit 0.4 is a light-weight Integrated Development Environment (IDE) for Java programming on MacOS X. It includes a text editor for editing Java source code with features such as code coloring, auto-indenting, bracket-matching and auto-completion of Java class names. JJEdit is $5 shareware.
Siemens AG has submitted Java Specification Request 182, JPay - Payment API for the Java Platform to the Java Community Process (JCP). According to the JSR,
This JSR requests the creation of the Payment API for the Java Platform (JPay) specification. The JPay API will support payments in an open, Web-like environment.
In particular, the JPay API will allow Java applications (typically Web applications or Java enabled content servers) to utilize a 3rd party's payment service to charge users for using the application or accessing the content. The payment service could be for instance a Parlay gateway providing the Parlay Content Based Charging function or an implementation of the emerging PayCircleTM Payment Web Service specification.
The payment service will conduct payments between the content provider, who runs the Java application, and a consumer, who uses the application. The JPay API will provide the application programmer with local access to the payment functionality provided by the 3rd Party's payment service.
The functionality to be provided to the application programmer via the JPay API will be as close as possible to the Parlay 4, 3GPP/OSA Rel-5 and ETSI/OSA 2 Content Based Charging API and to PayCircle's Payment Web Service specification. It will provide access to these APIs, independent of a particular implementation or distribution technology. It will provide means to
- reserve a certain amount from a consumer's account for an anticipated payment.
- capture all or part of a previously reserved amount.
- release a reservation.
- transfer a certain amount from the content provider's account to the consumer's account, e.g. as a refund after a dispute.
Comments are due by April 15.
BEA Systems has submitted Java Specification Request 181, Web Services Metadata for the Java Platform to the Java Community Process. According to the JSR,
This specification will define an annotated Java syntax for programming Web Services.
The principal goal of the specification is to provide a simplified model for web services development that is easy to learn and quick to develop with. The specification will focus on enabling the commonly needed forms of web services required for achieving robust, maintainable, and highly interoperable integration.
The Web Services Metadata for the JavaTM Platform will build on the JavaTM Language Metadata technology (JSR 175) to provide an easy to use syntax for describing web services at the source-code level for the J2EE platform.
Comments are due by April 15.
Slava Pestov's released jEdit 4.0, an open source programmer's editor written in Java, and my personally primary text editor on Windows. Right now I'm using 3.2, but the new features in 4.0 () especially soft wrap) look compelling enough to get me to upgrade jEDit is published under the GPL. Java 1.3 or later is required.
JBossMX 1.0 is an open source JBoss application server implementation of the Java Management Extensions technology. It is optimized for speed in the MBean server invocation bus, and will support many advanced features such as security, transactions, MBean server federation, and fail-over.
Luxor Beta 4 is an GPL'd Java toolkit for rendering the XML User Interface Language (XUL) on top of Swing. Luxor includes a multi-threaded Web server, a portal engine, and a template engine.
IBM's alphaWorks has released ServletManager, an "XML-based servlet controller package (in the model/view/controller paradigm) that allows a Web application programmer to declare the entire application's flow, application state rules, exception handling, authorization rules, model code (business logic) per state, and view code (Java server pages (JSPs) per state in an XML-based state table."
FormProc 1.0b1 is an open source Java library for handling and validating various types of forms including Web forms. Forms are represented as objects which manage a collection of form elements. Submitted data can be validated through several mechanisms including regular expressions, BSF-supported scripting languages, and custom Java classes.
ej-technologies GmbH's JProfiler 1.1 is $199 payware profiler based on the Java virtual machine profiling interface (JVMPI) that features CPU profiling, memory profiling, thread profiling, and VM telemetry information. Version 1.1 adds full integration into Forte/Netbeans, a dynamic allocation view, and garbage collector views.
WaspSoft has released Wasp 3.1, a static error checker that uses data flow analysis to detect run-time errors and weak points in Java programs. Version 3.1 is now compatible with Java 1.3 and 1.4, and has been heavily optimized. Wasp is $699 payware.
DataBrowser 2.8.2 is a $95 payware Java-based tool for browsing SQL databases such as Oracle and MySQL. The DataBrowser allows you to execute dynamic SQL, import and export data, view the schema in a treeview, and view query results in a table view. This release adds better CLOB support in Oracle, extends the SQL grammar in the syntax highlighting bean, and fixes various bugs.
Sun's posted the proposed final draft of JSR-40 Java Metadata Interface 1.0 in the Java Community Process in PDF format. According to the spec,
The Java™ Metadata Interface (JMI) Specification defines a dynamic, platform-neutral infrastructure that enables the creation, storage, access, discovery, and exchange of metadata. JMI is based on the Meta Object Facility (MOF) specification from the Object Management Group (OMG), an industry-endorsed standard for metadata management.
The MOF standard provides an open-ended information modeling capability, and consists of a base set of metamodeling constructs used to describe technologies and application domains, and a mapping of those constructs to CORBA IDL (Interface Definition Language) for automatically generating model-specific APIs. The MOF also defines a reflective programming capability that allows for applications to query a model at run time to determine the structure and semantics of the modeled system. JMI defines a Java mapping for the MOF.
I've posted the first draft of XSLT, Chapter 17 of Processing XML with Java on Cafe con Leche. This chapter includes three major sections:
I'm particularly pleased with the first section. I've written several XSLT tutorials before, but this one is radically different. It considers XSLT primarily as a functional programming language and focuses on the ability to call templates recursively. I doubt there's anything here that hasn't been discovered or invented by someone somewhere before, but certainly I had never seen some of the things you could do with XSLT until I invented them for this chapter. I wouldn't recommend this as your first exposure to XSLT (for that see Chapter 17 of the XML Bible ) but if you're already familiar with XSLT basics, this chapter may show you a few new tricks.
The end is in sight. I've just got a couple more quick chapters about JDOM to write and a few appendixes and I'll be done. This book may yet see print this Spring as planned. Keep your fingers crossed. As usual all comments and criticisms are appreciated.
New developments on the Cryptonomicon/QuickSilver front. Nicholas Plummer wrote in to suggest (based on earlier discussion in rec.arts.sf.written) that "Enoch Root is an alchemist who carries the philosopher's stone around in a cigar box. He really did die in WWII but was re-vivified by the stone." He makes a surprisingly strong case for this idea, and suggests that Root may be a character in the prequel due out sometime in the next year. Plummer also helped me to locate several more telling passages about the cigar box. Details have been appended to the Enoch Root page.
Sun's posted an early access version of the JavaMail API 1.3 on the Java Developer Connection (registration required). Version 1.3 "includes over 30 bug fixes, plus minor API changes. Many of these changes expand JavaMail's conformance with Internet standards, or make JavaMail more tolerant of messages that don't quite conform to the standards." This is likely to be the last JavaMail release that will support Java 1.1, unless there's a lot of user feedback that says 1.1 is still important. Personally, I think it is.
Tomek Zielinski's drawboard 0.71 is a networked whiteboard Java applet. When you draw something on your table, all remote users can see it. It features a client-server architecture and a high-color palette. I wrote about tools like this way back in the first edition of Java Network Programming in 1996. It's nice to see my predictions come true.
wingS 1.0-alpha is a servlet development framework for Web applications that features Swing-like components and utilizes Swing models, Swing events, and a Swing-like API. A special LayoutManager allows you to place components on HTML templates. The HTML code generation of the components themselves supports the Pluggable Look and Feel so you can create different outputs such as HTML, HTML+CSS, and WML.
Jim Menard's TwICE 1.1.0 is an open source Java implementation of the Information and Content Exchange (ICE) protocol 1.1. TwICE provides both an ICE syndicator (publisher) and an ICE subscriber.
jDictionary 1.2.1 is an open souurce GUI dictionary application written in Java. It includes a plug-in architecture that can add support for other languages and potentially other useful features. jDictionary is published under the LGPL.
Michael Fuchs has posted version 0.18 of his
DocBook Doclet that creates DocBook SGML and XML documents from JavaDoc.
This release adds support for the
colspan attribute of
th elements as well as sample property files.
ObjectWeb's's JORAM is an open source Java Message Service (JMS) provider that supports the JMS 1.0.2b specification.
XGen 1.1.0 is an open source tool creates Java source code from an XML document. It's "primary function is to generate JDBC compliant beans that allow object level persistence to relational databases. It has full support for all JDBC 2.0 datatypes."
Jive Software's Jive Forums 2.5.0 is a web/e-mail/newsgroup accessible, database backed forum/BBS/community system written in Java. It features full threading, a plugin architecture, user-defined skins, and keyword searching. New features in this release include clustering support, forum categories, password resetting, and dictionaries for four new languages. Jive Forums is payware and costs between $100 and $2000 depending on version.
WebArts Design's jOggPlayer 1.1.3 is an open source, platform-independant, graphical Ogg Vorbis player written Java. It can play individual or multiple files files from a hard drive or a URL sequentially or random.
Nathan Fiedler's posted version 1.5.9 of JSwat, a graphical, stand-alone Java debugger, based on the Java PLatform Debugging Architecture (JPDA). JSwat supports breakpoints, source code viewing, single-stepping, watching variables, viewing stack frames, and printing variables.
Dominik Werthmueller's JarBuilder 0.70 is an open source GUI tool for creating JAR files.
Jazzy 0.2 is an open source Java spell checker library based on the algorithms used by aspell. Jazzy is published under the LGPL.
In-Fusio SA has submitted a Java Specification Request (JSR) to the Java Community Process (JCP) for a Wireless Game Profile. This proposes a Java 2 Micro Edition (J2ME) Profile "for the purposes of game development targeting low-end and mass market consumer phones." Comments are due by today, April 8.
Nokia has submitted JSR-179 Location API for J2ME to the Java Community Process. This JSR proposes "an Optional Package that will enable developers to write mobile location-based applications for resource-limited devices. The API shall work on the J2ME Connected, Limited Device Configuration (CLDC) v1.1."
Nokia has also submitted JSR-180 SIP API for J2ME. This would be a Session Initiation Protocol (SIP) API for J2ME clients that enables SIP applications to be executed in memory limited devices, especially cell phones. SIP is used to establish and manage IP sessions for instant messaging, presence and gaming services. Comments on both JSRs are due by today, April 8. (Sorry for the late notice. I'm cleaning out my inbox now.)
Fujitsu's posted the public review draft specification of JSR-87 Java Agent Services in the Java Community Process. Acccording to the JSR,
This specification defines a set of objects and service interfaces to support the deployment and operation of autonomous communicative agents.
It is based upon the Abstract Architecture developed by FIPA, the Foundation for Intelligent Physical Agents (see section 3.1). This Abstract Architecture defines how agents may register and discover each other, and how agents interact by exchanging intentional messages which are grounded in speech-act theory and first-order predicate logic.
The specification defines two kinds of entities:
- Java classes for objects corresponding to the various elements of ACL (agent communication language) and SL (content language), as well as FIPA agent names and descriptions.
- Java interfaces corresponding to the agent services for agent registration, discovery, and communication.
It is intended that the service interfaces may be implemented in terms of a number of different technologies, including both existing Java standards and proprietary systems. (In this respect the specification is similar to previous specifications such as JMS, the Java Message Service.)
Comments are due by April 19.
The expert group for Java Specification Request (JSR) 118 has posted a public review draft of the Mobile Information Device Profile 2.0. Comments are due by April 18.
Luis Parravicini's Java YEnc Decoder 0.2 decodes files encoded with yEnc. Version 0.2 adds support for multipart archives and some bug fixes. yEnc is an an "efficient and CRC protected binary encoding for Usenet messages."
Christopher Clemens Lee has released JavaNCSS 16.34, a GPL'd source measurement suite for Java. It can tell you how many "Non Commenting Source Statements" (NCSS) there are in your code as well as calculating the "Cyclomatic Complexity Number (McCabe metric)". This release adds the ability to to recursively parse all Java files including those in subdirectories, adds support for Java 1.4 assert statements, and allows "\r\n" as end-of-line characters for JavaNCSS's ascii output.
Version 0.5 of the†Java JVMDI Coverage Analyzer fixes a nasty bug in version 0.4 announced here Friday. This is a shared library that reports on which lines of code have been executed during a test run. Output is produced in XML. Java 1.4 or later is required.
The Object Refinery has posted version 0.8.1 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.1 adds localised resource bundles for French, German and Spanish, a new area XY plot and meter chart, new symbol plots, and various other "minor enhancements and bug fixes."
IBM's released their port of the Java Development Kit 1.3.1 for Linux on Intel, PowerPC, and S/390.
IBM's alphaWorks has updated their FoCuS code coverage tool with some improvements and bug fixes.
Sun's posted the proposed final draft of Java Specification Request (JSR) 131, ECperf 1.1, to the Java Community Process (JCP). ECperf is a benchmark designed to measure the performance and scalability of J2EE servers. ECperf 1.1 is a maintenance release of ECperf 1.0.
The Java JVMDI Coverage Analyzer is a shared library that reports on which lines of code have been executed during a test run. Output is produced in XML. The current version is 0.4. Java 1.4 or later is required.
The Zaval Light-Weight Visual Components Library (LwVCL) is an alternative to the AWT and Swing. Unlike Swing it does not sit on top of the AWT. (I wonder how that works? Maybe they mean it still uses the AWT for display, but does not extend the AWT classes? i.e. delegation rather than inheritance?) Version 1.0 is about 120K total.
Compiere Looks 1.0 - is a Swing look and feel based on the Metal Look and Feel that adds 3D, color and texture backgrounds, hierarchical tabs, and better support for color-blind users. Java 1.4 is required.
jCharts 0.4 is a pure Java charting utility.
Slava Pestov's posted beta 9 of jEdit 4.0, and open source programmer's editor written in Java. This beta fixes a few bugs and tunes up performance in particular areas.
Version 1.2 of BlueJ has been released. BlueJ is a free integrated devlopment environment (IDE) for Java aimed at education. This release is the first version that is compatible with Java 1.4 and provides full support for the new 1.4 features, such as assertions. Version 1.4 also adds a native Windows installer and a native Windows BlueJ executable.
|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|