Enhydra 5.1 release notes


Table of Contents

1. System requirements
2. What's new
Core improvements
DODS
Kelp 5.1
Patches
Structure of new modular Enhydra 5.1 (jar files and tools)
3. Installation, platform, and system information
Installation
Platform support
Enhydra Kelp 5.1
Databases
JDKs
4. Documentation

Chapter 1. System requirements

The minimum recommended system configuration is:

  • 128 MB RAM

  • 200 MHz processor or better

  • 120 MB disk space (see note below)

  • Java Development Kit (JDK) 1.4

  • JDBC-compliant SQL database for database access

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

  • JDK 1.4(approximately 50 MB)

  • Enhydra 5.1 (approximately 50 MB)

  • InstantDB (approximately 2 MB)

Chapter 2. What's new

This chapter lists the new or updated features associated with Enhydra 5.1, compared to Enhydra 5.0.

Core improvements

  • Enhydra runtime version - minimal configuration for running applications

  • Enhydra runtime installation works both with jdk 1.4.* or jre 1.4.*

  • Provided different optimizations/debugging during build process

  • Integrated NEC VobsEnhydra patches

  • Integrated Classloader and Admin-shutdown patches from Enhydra 5.0/JET scenarios

  • Corrected testAll target

  • Added IIS logging patch for W2K SP3 and XP

  • Fixed: class download bug

  • Cache Admin Enhydra application - cache administration in Enhydra applications ( html , pdf )

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

  • Enhydra supports starting multiserver as a service, with icon in systray (start, stop, remove)

  • Logging in Enhydra completly changed and based on Log4J project ( html , pdf )

  • IMAP Client application is added as a sample Enhydra application

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

  • Added Octopus 2.1 - binary version ( http://octopus.enhydra.org)

  • Configuration for log4j has been removed from application's configuration file to separate log4j.xml file.

  • Added creation of this new log4j.xml file in appwizard

  • 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 ( html , pdf )

  • Fixed bug about possibility of downloading class files as resource in Enhydra application.

  • Fixed bug about unability of executing shutdown() method in applications when Mutiserver is stopped from Admin console.

  • 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

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

  • Windows is installed with the assistance of NSIS 2.0b

  • Enhydra 5.1 can be used behind Apache tool, if Apache configuration file is adjusted like this: (html, pdf).

DODS

  • New DODS is independent from Enhydra. For more information, see "DODS independence" (html, pdf), the fourth chapter of the document "Using DODS" (html, pdf).

  • Separated DODS building (out of Enhydra); in Enhydra building, just copy DODS jars.

  • WebDocWf changes are included in Dods templates - xsl files.

  • Changed caching: there is only one type of caching - LRU (least recently used) caching.

  • LRU cache extends class LinkedHashMap which is standard jdk1.4 class.

  • Full caching is special case of LRU caching.

  • Added query caching. Query cache is devided in two parts: simple query cache and complex query cache.

  • DODS supports standard sets of templates:

    • standard

    • multidb (standard code and code for work with multi databases)

    • multidb_webdocwf (standard code and both multidb and webdocwf codes)

  • Provided possibility for users to make their own template sets.

  • 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 and MySQL database.

  • In DatabaseManager is put only standard funcionality of databases and made possibility for users to create their own jars. This is done dinamically (in configuration file declare it).

  • Included informix.jar and oracle.jar as examples of databases that differ from standard (jars are placed in lib/dbvendors directory).

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

  • Splitted DodsConf.xml file: one file for every database vendor. DodsConf has just information about location of templates and vendor configuration files.

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

  • Provided possibility of overwritting Vendor from domlfile by dods ant task. The possibility also added in DODS generator.

  • In application's configuration file are defined: maximal and default size of DO cache, maximal and default sizes of simple and complex query caches, the initial cache statement, whether the DO cache is read-only and user wildcards.

  • 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...).

  • Added possibility to DODS to convert doml file into four types of papers: html, pdf, xmi and ptl. 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)

    • time when statistics started

    • time when statistics has been stopped

    • average time for executing non-oid query

    • average time for executing oid query

    • cache type

    If caching is available, next information are also kept:

    • maximal DO cache size

    • maximal simple query cache size

    • maximal complex query cache size

    • size of currently used DO cache

    • size of currently used simple query cache

    • size of currently used complex query cache

    • number of queries performed on the DO cache successfully

    • number of query by OIds performed on the cache successfully.

    • number of queries found in simple query cache

    • number of queries found in complex query cache

    • how much cache is currently used.

    • how much simple query cache is currently used.

    • how much complex query cache is currently used.

    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

  • Added support for Eclipse 2.0 (Windows, Linux)

  • Added support for JDeveloper 9 (Windows)

  • Added support for JBuilder 8 (Windows, Linux)

  • New Kelp for Eclipse based on build.xml and Enhydra Ant. Core of new Kelp is IDE independent.

  • New build of Kelp project based on Ant with buildDistribution option

  • Added support for 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,...)

Patches

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

  • 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.

  • Patches (Together) for Enhydra 5.0: public static void stopAllServices () in MultiServer for graceful multiserver NT-service shutdown.

  • Patches (Together) for Enhydra 5.0: private ClassResource loadClassHere (String className) in MultiClassLoader. JIT-avoiding patch.

  • 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.

Structure of new modular Enhydra 5.1 (jar files and tools)

Server side:

  • core.jar,

  • util.jar,

  • tomcat.jar,

  • enhydra.jar

  • dods-runtime.jar

  • log4j.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

Enhydra demo applications with short explanation (html , pdf ) .

Chapter 3. Installation, platform, and system information

These release notes apply to Enhydra 5.1.

Installation

  • 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.

Databases

  • 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

JDKs

  • 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

<enhydra_root>/doc/index.html
Enhydra5.1 has a lot of updated documentation.

Documentation is written in XML format and transformed in HTML and PDF with javadocbook.jar, version 1.51.1.