Enhydra 5.1 release notes

Chapter 1. System requirements

The minimum recommended system configuration is:

Note: The disk space specified above reflects the minimum system requirements to install and run the Enhydra example applications. A minimum installation consists of:

Chapter 2. What's new

The following sections list the new or updated features associated with Enhydra 5.1.

What's new in Enhydra 5.1

Core improvements

  • Enhydra runtime version - minimal configuration for running applications

  • Cache Admin Enhydra application - cache administration in Enhydra applications

  • Added file quick_start.html on Windows Desktop. It provides easier start of multiserver, services and documentation.

  • Logging in Enhydra completly changed and based on Log4J project

  • Added CHAINSAW log4j Viewer - GUI for log4j. Provides easy observing log files, with possibilities of filtering and sorting.

  • logj4 has the possibility of writing data on console. Amount of data depends on verbose level.

  • Fixed bug about unability of setting relative paths for enhydra applications. Now, enhydra application is portable as WAR file

  • Under Linux, servises are installed with the assistance of the wrapper. It observes work of virtual machine. In the case virtual machine crashes, it detects when (if it happens) the virtual machine starts up again, and then, restarts services

  • WebDocWf patches for Enhydra 3.1 are adapted and included in Enhydra 5.1

  • WebDocWf changes are included in Dods templates - xsl files

  • DODS supports two sets of templates (one set includes code for work with multi databases, and other includes code for security (users) and DataStore)

  • Dods Generator is replaced by new dods-ejen based on xsl transformation, jakarta ant end ejen project

  • New Dods templates are xsl files, based on ejen project

  • Dods GUI removed from Enhydra

  • Added support for QED database

  • Now, DodsConf.xml (Dods.conf) is in xml format.

  • Dods generator creates java code independent of database. Database dependence is relocated to Database Manager (dods-runtime.jar)

  • The maximal size of the cache and user wildcards are defined in application's configuration file.

  • Multi databases included in DODS. This is possibility of working with more than one database at the same time.

  • Added index element in doml file. Added support for unique and clustered indexes.

  • SQLSplitter is included in DODS Generator as a tool (options) for creating more separated SQL files (for creating tables, creating indexes, primary keys, foreign keys...)

  • Implemented LRU cache method in DODS Generator. This class extends class LinkedHashMap which is standard jdk1.4 class

  • Added possibility to DODS to convert doml file into three types of papers: html, pdf and xmi. This can be done from DODS Generator Wizard, or manually

  • new command-line script for convertion of doml 3.1 file into doml 5.* file

  • Fixed transactions, the change of cache content is performed after commit() of the transaction

  • Fixed thread safe lazy-loading

  • Added statistics

    New DODS maintains statistics on the level of tables. This means that following information are kept:

    • number of queries performed on the table

    • number of queries by OID performed on the table

    • number of insert, update and delete (DML) operations perfomed on table

    • number of lazy-loadings that happened (considering one table)

    If caching is available, next information are also kept:

    • maximal cache size

    • size of currently used cache

    • number of cache hits (number of queries that were performend successfully on the cache)

    Data about this statistic is kept in the class org.enhydra.dods.statistics.TableStatistics. Methods that use and update this class are in DO class and they are:

    • public static TableStatistics getStatistics() - returnes the state of the statistics

    • public static void refreshStatistics() - refreshes statistics (makes new statistics object)

  • Added new methods that work with cache:

    public static void readCacheConfiguration() - reads cache configuration from application's configuration file

    public static int getMaxCacheSize() - returns maximal cache size

    public static void setMaxCacheSize(int maxSize) - sets maximal cache size

    public static int getCacheSize() - returns size of currently used cache

    public void evict() - removes object from cache, if that is possible (LRU caching)

    public static void evict(DiscDO[] DOs) - removes array of object from cache, if that is possible (LRU caching)

  • Added new methods for refreshing objects from database:

    public void refresh() - refreshes object from database

    public static void refresh(DiscDO[] DOs) - refreshes array of object from database

  • Kelp 5.1

    • Supports Netbeans 3.4, 3.4.1

    • Added option of starting DODS generator during project's rebuild

    • doml file is presented like xml file (before presented only as a text)

    • Right mouse click on doml file shows menu with DODS generator option and with different options for xml files (generation, validation,...)

    • Supports Eclipse 2.0

  • Patches (Petr Stehlik): pointsToPO() function is broken for URLs with query that contains a ".po". xHTML patch: new revision from w3.org of xhtml1-transitional.dtd (modules/xHTML/src/org/enhydra/xml/xhtml/xhtml1-transitional.dtd)- the key thing is that ALL XHTML tags can now contain the "ID" - for example also the <TITLE>.

  • Patches Mike Schuber: public synchronized Session getSaveSession(Thread thread, String sessionKey).Each time a session is returned via this method, the session's last used (referenced) time is NOT!!! updated to the current time.

  • Patches Lionel Bouton: The MultipartMimeInputStream class does the detection of the last part of a multipart wrongly.

  • Added new Enhydra demo applications (samples of using Soap, Baracuda and Cactus)

  • New modular Enhydra 5.1 consists of followed separated jar files:

    Server side:

    • core.jar,

    • tomcat.jar,

    • enhydra.jar

    • dods-runtime.jar

    Enhydra tools:

    • xmlc.jar (version 2.1)

    • jtidy.jar version ver. r7 - patched

    • xerces.jar version 1.4.4 - patched - xmlc 2.1 patches

    • gnu-regexp.jar version 1.1.4

    • wireless.jar

    • xhtml.jar

    Enhydra build:

    • dods.jar - Data Object Design Studio

    • toolbox.jar

    • ejen.jar version 1.0 - patched

    Support jars:

    • servlet.jar,

    • admin.jar - Administration application,

    • snoop.jar - Snoop servlet (read and display HTTP request parameters)

    Support tools:

    • Barracuda - version 1.1.1

    • Zeus - version 3.5

    • Xalan - version 2.3.1

    • Soap - version 2.3.1.

    • Cactus - version 1.4.1

    • idb (Instant Database) - version 3.27

    • fop - version 0.20.4

    Patches for ejen.jar version 1.0:

    • class ejenConstants.java

      Added attribute CTX_DOM_SOURCE_FILE - path of DOM source file.

    • class EjenSourceNode.java

      Added method putInGlobalContext (in method setFile(String)). This method puts DOM_SOURCE_FILE in Global Context.

    • class EjenTemplateNode.java

      Added attribute _outdated. It is true if output file needs to be generated.

      Added method setOutdated(String)which sets attribute _outdated.

      Added method outdated(String fileName) which checks if source file is newer than output file.

    Enhydra demo applications with short explanation .

Chapter 3. Installation, platform, and system information


  • Enhydra 5.1 is a complete release, and should not be installed over an existing Enhydra installation. Follow the Enhydra installation instructions on the CD to install Enhydra 5.1.

  • Added new shortcuts in Windows installation. Source code for building installations is included in source distribution.

  • Enhydra as a service is a new feature of Enhydra 5.1

Platform support

Through the open-source development process, Enhydra has been used on a wide variety of platforms and with many different JDBC-supported databases.

Enhydra Kelp 5.1

Enhydra Kelp currently supports the following third-party Integrated Development Environments (IDEs):

  • Borland JBuilder 4, 5, 6 and 7 on Windows and Linux

  • NetBeans 3.3.1, 3.3.2 and 3.4 on Windows and Linux

Dods generator (dods-ejen) is included in Kelp 5.1 (JBuilder) as an Open Tool.


  • Oracle8i with the Oracle JDBC Driver

  • PostgreSQL 7.0.2 with the PostgreSQL JDBC Driver

  • Microsoft SQL Server 7.0 and 2000 on NT Server, and 2000 with the JTurbo 2.0 JDBC Driver

  • InstantDB

  • DB2

  • PostgreSQL

  • Sysbase

  • Informix

  • HSQL

  • QED


  • Sun JDK 1.4.* and Sun JDK 1.4.1 on Windows NT & 2000, Linux, Solaris

Chapter 4. Documentation

The documentation for this release is located in

Enhydra5.1 has a lot of updated documentation.