From BioCASe Provider Software
Current Version 3
Version 3.4.1 [2013-04-04]
- in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
- in dbmod_mysql (MySQL) for unicode databases.
- in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
- Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
- for non-ASCII characters in element attributes (used to break the request).
Version 3.4 [2013-02-20]
- XML archiving re-implemented:
- Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
- XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
- Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
- DwC archive transformation simplified.
- Archiving page overhauled.
- Archiving information shown in datasource configuration page overhauled.
- New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
- Corrections in layout of DB structure page in datasource configuration tool.
- Default record limit for web service set to 1000.
- Change in dbmod_tsql: Do not display tables/views of schemas INFORMATION_SCHEMA and sys.
- Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
- Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
- Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
- Fix for dbmod_orcale: Synonyms for tables now included in table lists.
- Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
- Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
Version 3.3.2 [2012-11-26]
- Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
- Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
Version 3.3.1 [2012-11-09]
- Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
- Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
- dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
- dbmod_oracle/oracle now use correct format for date/datetime conversion
- base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
- Bugfix for conversion of XML data type "date"
Version 3.3 [2012-10-04]
- Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
- Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
- Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
- Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
- Dummy files added to empty folders to prevent WinZip from ignoring them.
- Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
Version 3.2 [2012-07-09]
- DarwinCore Archives fully integrated into config tool interface
- Changes for XML archiving:
- Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
- Log files of failed or cancelled archiving runs can be viewed later
- If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
- Format of output changed
- Fixes for page DB Structure:
- DB graph generation works now also when IIS is used
- No exception thrown in case there is no connection to the database
- Other fixes:
- Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
- install/readme files updated
Version 3.1 [2012-04-23]
- Fixes for XML archives:
- Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
- Webinterface overhauled; reacts faster now because server interaction has been reduced
- If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
- XML declaration added to documents
- If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
- Bugfix for the case that no results are returned for the chosen mapping.
- Archiving binary moved from archive working folder to archive lib folder
- Metadata retrieval added for pymssql (SQL Server connectivity package)
- Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
- "Wrong" error messages removed for unicode datasources and in mapping editor
- Setup script now fixes write permissions for archive folders (working/download directory)
- Hint on the usage of literals and concatenation added to mapping editor
- Bugfix in library test page (for the case that Apache has different access privileges than Python)
- Bugfix in Mapping Editor for literals containing unicode characters
- Bugfixes for deleting a datasource:
- Archive folders will now be correctly removed (both working and download directory)
- Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
- Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
- Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
Version 3.0.1 [2012-04-05]
replaced by 3.1
Version 3.0 [2011-12-14]
- New feature: XML Archives (integrated into UI), DwC Archives (separate application)
- List of table/column names now also available for Oracle databases
- "Report a bug" links added
- Fixes in wrapper core:
- ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
- Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
- Optimization in wrapper core:
- Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
- Db_mod Oracle now uses paging optimization.
Version 3.0RC2 [2011-11-24]
Version 3.0RC1 [2011-11-01]
Version 2 History
Version 2.6.1 [2011-08-23]
- Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
- Help links now point to the respective sections of the new PyWrapper Wiki.
- Link to FAQ added to the encoding error page (which can be used to alter system enocding).
- Non-existing upgrade function removed from setup script.
- Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
- Bugfix in XML Handler for unary operators (isNull, isNotNull).
Version 2.6.0 [2011-06-07]
- Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
- Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
- When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
- Support for DNA extension of ABCD (data model for the DNA Bank network) added
- Mapping Editor shows XML Path for current element
- Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
- Several confirmation dialogs and smaller changes in UI.
- mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
- "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
- Session management: User gets logged out only when inactive for more than 30 mins.
- Bugfix for unicode characters in mapped literals.
- Mapping editor: Added elements do not disappear temporarily any more.
- Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
- Graphviz dot binary now works also when installed in a folder with a name containing spaces
- Creating multiple mapping files for same namespace will be prevented now
- Display issues for paths containing "\b" and "\t"
- Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
Version 2.5.4 [2010-09-14]
Withdrawn; changes included in version 2.6
Version 2.5.3 [2010-05-12]
- Support for HISPID5 added
- Bugfix CMF upgrade
- Bugfix QueryTool (Stylesheet transformation error)
Version 2.5.2 [2009-10-01]
- Bugfix QueryTool (Unicode conversion error)
Version 2.5.1 [2009-01-25]
- Security Bugfix (database credentials removed from debug output)
Version 2.5.0 [2008-04-29]
- replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
- removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
- Introduced a new cache directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
- remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
- Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
- When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
- Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
- new sesion based login that stays
- updated setup.py script
- changed the library test page
- and last but not least for developers: cleaned up quite some code
Version 2.4.2 [2006-11-16]
- configtool mapping pane. use anchors to go back to last editing position
- typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
- ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
Version 2.4.1 [2006-06-26]
- Football Worldcup 2006 logos included
- minor bugfixes (dead links)
- admin password management fixed
Version 2.4.0 [2006-04-06]
- move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
- webapps log into rotating files instead of screen
- updated CMF parser service link
- configtool catches errors for unknown static aliases
- querytool XSLTs for abcd & abcdefg2.06
- remove wrapper_config.xml
- removed character encoding bug in CMF pickling.
Version 2.3.2 [2006-03-06]
- ABCDEFG extension 1.0 for Earth sciences included
- List available character encodings for python2.4 and 64bit systems
- QueryTool capable of querying DiGIR providers for details.
- new synthesys/biocase QT skin
Version 2.3.1 [2005-11-30]
- new 4th dimension dbmod!
- record filters inside CMFs fixed
- works with NoDIT v2 again
- GCP Passport 1.03 added
Version 2.3.0 [2005-11-03]
- compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
- Graphviz's dot is being used to visualize the database structure.
- ABCD 2.06 included instead of ABCD2.05
Version 2.2.4 [2005-10-13]
- include PonTaurus example db
- scans without a filter crashed with some dbmods. bug fixed.
- use select distinct in access for scans
- ConfigTool includes graphical view of the db structure graph through graphviz dot images
- CMF filters with scan filters crashed the wrapper. solved.
- typeconverter: fixed bug in transforming zero-length strings to integers.
Version 2.2.3 [2005-09-01]
- "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
- abcd2.05 debugform templates included
- fixed scan problem with oracle8 module
- fixed connection problem with native firebird module
- Querytool allows to view raw xml
- Querytool can handle unicode queries now
- Concatenation with pure whitespace works now in wrapper output
- database module is logged again into the protocol header. was broken before
- if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
- configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
Version 2.2.2 [2005-07-22]
- Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
- Update MCPD CMF template to include w3c types.
- Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
- Alternative root tables for SPICE wrappers work now correctly.
- Hierarchy requests in SPICE parse correct ID parameters now.
- corrected SPICE1.3 CMF template
- full Berlin Model SPICE CMF example
Version 2.2.0 [2005-07-18]
- System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
- setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
- SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
- ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
- Bugfixes in configtool, mapping section:
- Internet Explorer compatability fixed (no tablealias names were saved)
- CMF filter display fixed. Colored green now
- Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
- Fixed minor display problems with attributes
- fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
- Allow case insensitive like searches in oracle if wanted.
- The performance debug logging works again
- CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
- SPICE search: bug removed with genus search including the wildcard
- SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
- optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
- cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
- oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
- attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
- bug in local conditional mapping removed.
- logging fixed (error and request)
- only use "text" instead of "string" and "unicode" everywhere now in the code.
- ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
- SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
- Limit for Oracle via ROWNUM implemented for ora8,9&10
- Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
- SQLLite module added
- ABCD 2.0 CMF included
- Lot of little bugs solved.
- Make possible to map attributes
- Be able to delete mappings
- Alert user when several CMFs with the same namespace exist for a datasource
- Allow full xpaths to be entered directly into the add path form
- allow datasource admin to delete all serialized objects
- More inteligent XSLT for processing
- Solved error with wrapper not presenting attributes
- Empty elements are now excluded in the output.
- SPICE protocol supported for Species2000 CDM 1.20
- completely rewritten config tool including a concept retrieval interface to search for concepts
- completely rewritten an adaptable query tool with skin support
Version 1 history
- needs at least version 1.4b of the pywrapper
- added pywrapper skeleton for new species2000 protocol
- cleaned the querytool sourcecode (thanks to Doreen Pahlke)
- added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
- Removed authorization bug when entering non ascii characters as the password.
- added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
- NoDIT v2 metaprofile templates and preconfigured database corrected
- added a GBIF registration method in the configtool
- added a query engine prototype for CMF concepts to the configtool
- more database modules supported (Oracle8, FoxPro)
- added URL encoding service in cgi-test.
- added AltText to images.
- removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
- Updating the cgi-test script to fully support Unix systems.
- Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
- template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
- private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
- first release including the query-tool