Metadata Editor v 1.2


Description
Dependencies
Copyright and Licensing
Validated Platforms
Installation and Configuration
   MDE Quick Start
   Configuring MDE to use an MDSR
   Using an Apache webserver with Mod proxy
   Custom MDE Installation
Changes Since Last Release
Known Limitations
Bugs and Workarounds
Bugs Fixed in this Release

Description

These notes describe the Metadata Editor (MDE), a generic Web 2.0 based service for maintaining high quality, schema-based metadata developed at the University of Queensland eResearch Unit (UQERU). It requires a web services container (see dependencies) that provides the launching point for an interactive, browser based metadata editor. It works in conjunction with the UQERU's Service Provider Interface (SPI) jar which must be deployed and configured as described in the documentation README for that component.

Dependencies

A working MDE installation consists of (at least) the following:

The server-side components of MDE require a Java 5 JRE and Tomcat 5.5 installation as described below.

MDE requires some form of repository to hold metadata schemas. Currently there are two alternatives:

Metadata schemas for use by MDE are expressed as MSS files. These are prepared using the Metadata Schema Editor (MSE) that is distributed as part of the UQERU "MSF" tarball.

Copyright and Licensing

The MDE software and documentation are Copyrighted by the University of Queensland, and licensed under the GPL 3.0. A copy of the GPL 3.0 license may be found in GPL_LICENSE.txt.

The "org.json" library is covered by an open source license that places minimal restrictions on use, modification and redistribution. The relevant license may be found in JSON_LICENSE.html file.

The MDE package also includes a copy of Ext JS version 2.0.2. This version of Ext JS is dual licensed under LGPL 3.0 or a commercial license. The relevant license information may be found in the embedded copy of Ext JS in the mde.zip file; look in the zip file for "/lib/ext/LICENSE.txt".

(Note: later versions of Ext JS replace LGPL 3.0 with GPL 3.0.)

Validated Platforms

This component has been validated for the following platforms, and 3rd-party components.

Server side:

Client side:

Installation and Configuration

  1. Quick Start

    The delivered MDE and SPI components (and Reference Implementation) have been pre-configured to work together "out of the box" using default JNDI names, servlet names, and relative paths. For the simplest deployment:
    1. If a Tomcat instance is running, stop it.
    2. Ensure that the SPI jar package has been deployed and configured as described in the SPI_README file.
    3. Ensure that the JSON library has been installed as described in the JSON_README file.
    4. Important! If you are upgrading from a previous release, be sure to delete any jar files from $CATALINA_HOME/common/lib that match the following patterns before continuing:

      au.edu.archer.metadata.msf.mss_*.jar
      org.eclipse.*.jar
    5. Run the Configure.pl script with the --with-ff-repos option to create a flat file based schema repository resource bundle named mde.war.
    6. Copy the mde.war and mde.refimpl.war files to $CATALINA_HOME/webapps.
    7. Copy the au.edu.archer.metadata.msf.mss_*.jar file to $CATALINA_HOME/common/lib (the "*" will match the version number in the distribution).
    8. Copy all the org.eclipse.*.jar files to $CATALINA_HOME/common/lib.
    9. Copy the log4j-1-2.14.jar files to $CATALINA_HOME/common/lib.
    10. Start Tomcat by running "$CATALINA_HOME/bin/startup.sh", or "$CATALINA_HOME/bin/catalina.sh start", or the equivalent. (Don't use "$CATALINA_HOME/bin/jsvc ..."; see known Bugs below.)
    11. Confirm that MDE has deployed correctly. If it is able to locate its dependencies, lines like the following will appear in the log file:
      Feb 18, 2008 11:34:22 AM org.apache.catalina.core.ApplicationContext log
      INFO: **** MDE repos init complete OK ****
      
      (the logfile is located in $CATALINA_HOME/webapps/mde/logs)
    12. Confirm that the MDE "refimpl" application has deployed correctly by using a supported web browser to visit "http://localhost:8080/mde.refimpl". You should see a page with the heading "Metadata Repository" followed by a table of links for viewing and editing a collection of sample and test records. Generally speaking, clicking on a "View" or "Edit" link should launch MDE and load the corresponding record. (Note: some of the test links towards the bottom of the table refer to malformed records that do not load properly.)
  2. Configuring MDE to use an MDSR

    By default metadata schemas are supplied from a simple flat file based "repository" with the schema files included in the MDE WAR file. If you have deployed and populated an MDSR with the relevant schemas, you can configure MDE to use them by changing the "web.xml" file as follows:

    1. Make a backup copy of the "mde.war" file, then upack it using the "jar" utility.
    2. Locate the "WEB-INFO/web.xml" file, and open it using your favourite test editor.
    3. In the editor, locate the following section:
        <context-param>
          <param-name>registry.wrapper.class</param-name>
          <param-value>au.edu.archer.metadata.mde.schema.SchemaRepositoryFileImpl</param-value>
        </context-param>
        <context-param>
          <param-name>registry.uri</param-name>
          <param-value>file:test/data/schema</param-value>
        </context-param>
      
    4. Change it to the following:
        <context-param>
          <param-name>registry.wrapper.class</param-name>
          <param-value>au.edu.archer.metadata.mde.schema.SchemaRepositoryMDSRImpl</param-value>
        </context-param>
        <context-param>
          <param-name>registry.uri</param-name>
          <param-value>http://localhost:8080/mdsr</param-value>
        </context-param>
      
      replacing "localhost" and "8080" with the MDSR hostname and port number as required.
    5. Save the file and exit the editor.
    6. Use the "jar" utility to repack the "mde.jar" file.
    7. Deploy the "mde.war" file and restart Tomcat.
  3. Using an Apache webserver with Mod proxy

    Mod proxy allows you to redirect requests from an Apache webserver to some other server. In this case, we are going to use Mod proxy to redirect to the Tomcat server that hosts the MDE servlets.

    1. In your Apach installation tree, make sure that the following line is enabled in the "httpd.conf". (Remove the leading "#" if it is present.)
      LoadModule proxy_module modules/mod_proxy.so
    2. If you are loading tomcat configuration file from a different location. Find your tomcat configuration file. Then
    3. Add the following lines to the tomcat.conf file or to the same "httpd.conf" file in the case that you are not using a different configuration file for tomcat.
       ProxyPass /mde.refimpl/ http://[host*]:[port]/mde.refimpl/
       ProxyPassReverse /mde.refimpl/ http://[host]:[port]/mde.refimpl/
      
       ProxyPass /mde/ http://[host]:[port]/mde/
       ProxyPassReverse /mde/ http://[host]:[port]/mde/
      
       * host example: metadata.net
       † port example: 8080
      
    4. Restart both apache and tomcat.
    5. Other things to consider in case there are problems: mod_proxy.so is installed in httpd/modules directory VirtualHost configurations are correct
  4. Custom MDE Installation

    To change the servlet name, or JNDI name for the Record Broker Factory, unpack the war file, edit the WEB_INF/web.xml file, then repack and deploy.

    Note that the MDE package ships with a copy of the EXT library in the WAR file to ensure that the correct, tested version is selected. This may change in the future as the platform SOE matures.

  5. Command-line Tool Installation

    The MDE package includes a "bin" and a "lib" directory that contain the wrapper script for a batch record validator utility. You can execute the script directly from the location where you have unpacked the MDE distribution, or you can copy the 'bin' and 'lib' trees to a more appropriate location. In the latter case, you need to make sure that the 'lib' tree can be accessed from the 'bin' tree as "../lib". If this is not appropriate, edit the script in the 'bin' tree and alter the "LIB=../lib" line to suit your requirements.

Changes Since Last Release

Release 1.2

  1. The MDE server-side has been converted to use 'log4j' logging instead of classic Java logging. The controlling "log4j.properties" file is in the WAR file's WEB-INF directory. (#203, #234)
  2. The MDE user interface now includes basic element type information in the hover-text. (#161)
  3. The MDE application SPI has been extended so that that an application can throw a variety of Java exceptions to indicate problems. The MDE server-side translates these exceptions into different HTTP response codes.(#251)
  4. Metadata record validation now supports complex Constraint expressions involving lists. New features include a new kind of Operation which supports local 'variables', and the new Operators 'Let', 'Exists', 'ForAll', 'Map', 'Reduce' and 'Range'; refer to the MSF User Manual for more details. (Note that the changes to the MSS metamodel are backwards compatible; existing MSS schema do not need to be converted.) (#58)

Release 1.1

  1. The editor now supports schemas with nested elements. (#197)
  2. The editor now supports XML date/time format 'gYear', 'gYearMonth', 'date' and 'dateTime' in elements as specified in the schema. (#32)
  3. The editor now internally uses arbitrary precision representations for all calculations involving numeric types. (#113, #171)
  4. MDE's server-side constraint evaluator now supports collection values, and a number of new Operators. (#45)
  5. There is now a command-line tool for batch validating metadata record files. (#16)
  6. Installation requires deployment of additional archives (JAR files) to $CATALINA_HOME/common/lib. See Quickstart items 7 and 8.
  7. The editor now displays the 'units' attribute from the record's schema if present. (#57)
  8. Records may be sent to the editor for read-only display.
  9. MDE's local MDSR cache lifetime can now be tuned using a servlet context parameter. (#202)
  10. MDE's default language (for MSS descriptions, etc) can now be set using a servlet context parameter. (#224)
  11. The performance of MDE's server-side schema handling and validation has been improved.

Known Limitations

  1. While MDE does a lot of client-side validation during data entry, it does not do a complete job. A lot of errors are only detected and displayed when the user invokes server-side validation by clicking Validate or by attempting to save the current record.
  2. When server-side validation errors are detected, the MDE client-side adds decorations to the displayed elements to show the errors. These decorations may be removed or overwritten before the corresponding error has been corrected. They may be restored by clicking Validate again. (#175)
  3. MDE does not support records that are not well-formed XML and do not satisfy the schema identification and other requirements as documented in the MDE Developer Guide.
  4. This release of MDE does not support qualified Dublin Core; e.g. 'encoding', 'language' and element 'refinements'.
  5. This release of MDE does not support Thesauri or Ontologies. Support for controlled lists is limited to case sensitive term lists with strict compliance.
  6. The Settings button on the MDE user interface does nothing. MDE currently has no user specifiable settings. (#87)
  7. A bug in Tomcat 5.5.26 and earlier causes truncation of metadata records > 8k bytes long when they are sent to the MDE server-side. The bug is fixed in Tomcat 5.5.27, so if this is causing problems for you the solution is to upgrade Tomcat. (#233)

Bugs and Workarounds

  1. Browser caching of Javascript may hide new or changed functionality. It has been observed on Firefox 2.x under Linux that the MDE javascript files referenced by the editor may be served from a stale browser-side cache. The edit functionality then appears not to have changed, despite a newer release having been deployed. The current workaround is the Browser F5 key to force an actual server provided refresh. This should not be a problem once the distribution stabilizes. However, alternative approaches to browser-side cache management will be investigated. (#37)
  2. When Tomcat is launched using the "jsvc" binary using the arguments given in the Tomcat 5.5 documentation, the container ends up with broken Java logging. To avoid this, use "startup.sh" or "catalina.sh" to launch Tomcat. (#140)
  3. MDE does not allow IEEE 754 "NaN" and "Inf" values in float and double fields.
  4. The MDE client-side incorrectly reports errors for 'date' and 'dateTime' values with a negative year representing BC dates. Ignore the error indications is you need to enter BC dates. (The MDE server-side validator allows these values, so they should not be flagged as errors when you save a record.)
  5. The MDE client-side does not validate all components of Date values. For example, it does not fully validate the minutes and seconds component of a 'dateTime' or the hours and minutes components of timezone offsets. (MDE server-side validation will detect and report the errors.)

Bugs Fixed in this Release

Release 1.2

  1. MDE was not correctly reading records with large text fields (>4Kbytes) in Firefox. (#77)
  2. MDE was not correctly reading records with large text fields (>4Kbytes) in Firefox. (#77)
  3. MDE's client-side used to reject records where the xsi:schemaLocation attribute included (harmless) undeclared namespaces. (#133)
  4. MDE's Save and Cancel functions were incorrectly reporting validation errors after previous errors had been corrected and saved. (#231)
  5. An element's 'dirty' flag was not consistently cleared following a successful save. This resulted in MDE incorrectly reporting that the record needed saving when the Close button was clicked. (#232).
  6. A number of MDE client-side bugs in the handling of 'unknown' elements have been fixed. (#124, #239, #241, #242)

Release 1.1

  1. A user can now identify the schema that is used by the metadata record currently open in the editor.
    Positioning the mouse pointer over the root element of the Tree View panel will display the schema identifier as hover-text. If any description of the schema is available, it will be displayed following the identifier. Users should include this information when reporting defects.
  2. XML elements nested within elements that supposedly represent metadata fields caused the MDE client-side code to hang on IE7. (#97)
  3. MDE's server-side constraint evaluation code did not detect overflow and underflow in integer computations. (#171)
  4. MDE's server-side validation now reports XML element names with incorrect casing as a distinct error case. (#194)
  5. MDE previously would "gobble" invalid characters entered into numeric fields without providing feedback to the user. It now add the characters to the field, and highlight the field as being in error. A hover text error message is provided. (#228)
  6. MDE displayed the wrong descriptions for elements in hover text help. (#210)

 

-oOo-

 


The ARCHER project is a joint development by the James Cook University, Monash University, and the University of Queensland. It is funded by the Department of Innovation, Industry, Science and Research (DIISR) through the Australian Research Information Infrastructure Committee (ARIIC), 2008.