Salmon LLC is pleased to announce the latest release of SOFIA, the Salmon Open Framework for Internet Applications, version 2.0. For those unfamiliar with SOFIA, it is an open source tool set for quickly building database-driven applications in the J2EE and/or Swing Set. SOFIA consists of:

1) An extensive Java class library of foundation components for building Web and Swing applications. The class library uses design patterns such as Model View Controller, GUI components, and event listeners to abstract and hide a lot of the plumbing code required in a typical Java database-driven application. This allows you to concentrate on business requirements and not spend a lot of time on low-level infrastructure.

2) A custom tag library for building Web pages that eliminates the need for any in-line Java in JSPs. The tag library contains over 40 GUI components, with everything from simple buttons and edit fields to complex components such as trees, tables, data grids, calendars, and navigation bars. All the GUI components can be attached to back-end data sources— like relational databases, XML files, or Enterprise Java Beans—with no additional coding.

3) Tight integration with best-of-breed off-the-shelf tools: Dreamweaver for painting Web pages and IntelliJ IDEA or Eclipse for the Java code. These tools combine to create a rapid application development environment similar to Dot Net Studio that makes development with the J2EE quick and easy. Unlike Dot Net Studio, this RAD tool is open source, vendor neutral, and the resulting applications can be deployed to any server with J2EE support.

Since the initial release of SOFIA last year we’ve had over 60,000 downloads and a great deal of positive feedback and contributions from the open source community. Version 2.0 adds the following new features:

1) SOFIA Swing Set Extensions. In SOFIA 2.0 we’ve extended the Swing Set components so that they can be bound to SOFIA model components. This allows the Swing components to do data retrieval, validation, and update with only a few lines of code. Java Applets and applications can use the SOFIA-bound components to communicate with remote database engines via HTTP or HTTPS without the need for signing jars or opening firewall ports.

2) Declarative data validation rules in SOFIA models. Now you can centrally define business rules in your models with only a few lines of script and they will automatically be enforced whenever a user changes the data, whether the data entry is Swing-based or JSP-based.

3) Personalization. We’ve added the ability to define skins in SOFIA that can be applied to both JSP- and Swing-based applications.

4) Support for Ingres, Postgres, and Firebird SQL engines. This is in addition to the support already provided for Oracle, Sybase, MS SQL Server, mainframe and desktop DB2, and MySQL.

5) Integration with industry standard logging packages, Log4J, and/or JDK 1.4 logging.

6) Improved support for all of the latest tools such as Tomcat 4.1, Eclipse 2.1, IntelliJ IDEA 3.0, and Dreamweaver MX.

7) Numerous improvements and bug fixes to SOFIA components such as the Navigation Bar, Tree Control, Drop Down List, and Applet provided by Salmon LLC and by the open source community.

For more information on SOFIA take a look at

SOFIA can be downloaded at