This document describes what has changed in Ontopia between releases, both at a higher level, and in more detail.
5.3.0 2013-08-01
This release is a bug fix release.
Warning If you get the following error message when starting one of the web applications, then you must remove the DOCTYPE declaration from the top of the
actions.xml
file.
org.xml.sax.SAXParseException: Relative URI "actionConfig.dtd"; can not be resolved without a base URI.
This error occurs because of the XML parser cannot retrieve the DTD through the class loader.
The following change has been made:
The following change has been made:
The following change has been made:
The following change has been made:
log4j_config
, app_config
and action_config
web.xml context parameters will be attempted loaded through the class loader if not found on the file system. One can also use the file:
and classpath:
URI schemes directly.<logic:include>
will be loaded through the class loader if found there. Otherwise they will be loaded through the file system as before.The following change has been made:
<tolog:foreach>
tags failed on weblogic container when nested three or more levels. This has now been fixed.The following change has been made:
This release is a bug fix release.
The following change has been made:
The following change has been made:
The following changes have been made:
The following changes have been made:
This release is a primarily a bug fix release, but it also introduces a much requested extension to the event model in the topic map engine.
The following changes have been made:
TopicMapListenerIF
interface now has a new method called objectModified(TMObjectIF)
which will be called when a topic has been modified.AbstractTopicMapListener
has been introduced. This abstract class contains default implementations of all the callback methods. The class was primarily introduced so that listener implementations extending it can continue to work even though new methods get added to the listener interface in the future.The omnigator
, manage
and i18n
web applications was updated to use the new tag library URIs. This means that they will no longer use the .tld
files in the WEB-INF/jsp
directories.
The following bugs have been fixed:
The following bugs have been fixed:
The following bugs have been fixed:
This release is a bug fix release.
The following bugs have been fixed:
The following bugs have been fixed:
The following constructors of XTMTopicMapWriter
have been changed so that they are now declared to throw IOException
: XTMTopicMapWriter(File file, String encoding)
and XTMTopicMapWriter(Writer writer, String encoding)
. Note that this may cause compilation errors.
The following bugs have been fixed:
The following bugs have been fixed:
The experimental RDBMSPatternSingleTopicMapSource
class was added in the net.ontopia.topicmaps.impl.rdbms
package. This source can be used to swap topic maps used by an implementation at runtime.
The --title
and --comment
options for setting the title and comments of a topic map were added to the RDBMSImport
command-line utility.
This is a bug fix release. If you are using Ontopoly then it is important that you do an upgrade as this release fixes a serious problem with character encoding of form data in Ontopoly. This release includes a few more bug fixes as well.
The following bugs have been fixed:
The following bugs have been fixed:
The following bugs and improvements have been made:
MergeUtils
does not replace name types.MergeUtils
did not always compare name objects correctly. This could lead to duplicate names in some situations.TopicMapSourceIF.supportsDelete()
method, which must be true for it to be valid to call TopicMapReferenceIF.delete()
. This replaces the old deleteFiles property on topic maps sources.TopicMapRepositoryIF.createStore(String, boolean)
as a convenience method.TopicMapSynchronizer
class no longer produces duplicate characteristics on synchronized topics.The main change in this version of the OKS is various upgrades to Ontopoly, especially the improved locking support, and the new approach to sharing topic maps between web applications.
There is also a new OKS distribution, called Ontopoly Runtime, which is essentially OKS Samplers with the RDBMS backend and support for authentication. This means that the new distribution can be used by customers which want to use Ontopoly to create topic maps without developing new custom applications. The price also reflects this. See the OKS price list for more information.
The following improvements have been made:
en
instead of relying on the fallback locale given by the web browser.The following improvements have been made:
The recognition of compound terms (terms consisting of more than one word, like “Topic Maps”) has been improved, as has the scoring of these terms.
The following bugs have been fixed:
The Navigator Framework has been changed to use a new and much simpler API for sharing topic maps between applications. Please see the Navigator Framework Configuration Guide for details. The API has also been simplified, and a number of classes made INTERNAL.
The following bugs have been fixed:
The readonly
attribute has been introduced on many tags to allow applications to control whether or not forms and form controls should be read only.
The following improvements have been made:
TopicMaps
has been added to the net.ontopia.topicmaps.entry
package. This class can be used to access topic maps via tm-sources.xml
files in a simple and straightforward way. Please see the javadoc and the Navigator Framework Configuration Guide for details.XTMFragmentExporter
class is now PUBLIC.XMLConfigSource
class (and effectively tm-sources-xml) now uses <repository>
as the document element as this is more consistent with the naming of the topic maps repository. See the included tm-sources.xml for an example. The old syntax is still supported.The following bugs have been fixed:
The performance of the Vizlet has been improved substantially by changing how the Vizlet loads Topic Maps fragments from the server. The result is less network traffic and a more responsive Vizlet.
The following bugs have been fixed:
The source-locator
predicate has been renamed to item-identifier
. The old predicate will continue to work, but it is no longer documented.
The following improvements have been made:
db.sqlserver.props
and db.mysql.props
have been updated to reflect the latest JDBC driver releases.TM_OCCURRENCE.content
, TM_BASE_NAME.content
, TM_VARIANT_NAME.content
and TM_TOPIC_MAP.comments
have been extended from 2000 to 4000 characters on Microsoft SQL Server 2005 as this is the maximum length supported on nvarchar
columns.The following improvements have been made:
The main new addition in this release is the autoclassification module, which is still experimental. For more about this, see Automatic classification. There are also some new features in the Vizigator and a new string module in tolog, but beyond that the changes are mostly bug fixes.
The following changes have been made to the Engine:
The following changes have been made to the Query Engine:
The following changes have been made to the Navigator Framework:
The following changes have been made to the Omnigator:
The following changes have been made:
The following new features have been added to the Vizigator:
wallpaper_image
has been added, which makes it possible to display a background image in the Vizlet.net.ontopia.topicmaps.db2tm.SynchronizationServlet
that can be used to schedule regular DB2TM synchronizations. See the javadoc for more information.This module has been added, but in an experimental state. It is only accessible through a plug-in to Ontopoly, and is described in the Ontopoly User’s Guide. There is no publicly available API at the moment, but an API exists, and will be made available once we have received more feedback regarding customer requirements. Supported languages are English and Norwegian, but support for more languages can be added.
This release is a bug fix release.
net.ontopia.topicmaps.utils.ltm.LTMTemplateImporter
class that makes it possible to import LTM fragments outside of the Web Editor Framework.net.ontopia.topicmaps.query.core.BadObjectReferenceException
instead of net.ontopia.topicmaps.query.core.InvalidQueryException
when object references in the query cannot be resolved.This release is a bug fix release. If you are using the Web Editor Framework or DB2TM then an upgrade is recommended.
getProperty(String)
which returns the value of the given property. This method can be used to get hold of topic map store property values in an implementation independent manner. The second method is getImplementation()
that returns a constant that identifies the topic map implementation. This is useful to easily figure out if the topic map is stored in-memory or in an rdbms.This release is a small bug fix release.
This release is primarily a bug fix and improvements release, but some new functionality have been added. It contains a couple of important bug fixes, so an upgrade is recommended. Java 1.6 support has been verified.The main new features are the new management web application and native full-text support for PostgreSQL and Microsoft SQL Server.
net.ontopia.topicmaps.query.core.QueryProcessorIF.locale
. The properties file will be used by default, but it can also be specified as a system property. The value consists of three parts, e.g. no_NO_NO
, where the language, country and variant codes are separated by the underscore character. The ordering is implemented in terms of a java.text.Collator
.tolog:foreach
with groupBy
attribute triggered exception.DuplicateSuppressionUtils
now does prefetching of characteristics when applicable. This change leads to a huge performance improvement, especially with large topic maps.getTopicMap(ServletRequest request)
method has been added to the ContextUtils class. This makes it easy to get hold of the current topic map object from the parent tolog:context
tag.primary
attribute did not work as intented.net.ontopia.infoset.fulltext.impl.rdbms.RDBMSSearcher.type
property to postgresql
.net.ontopia.infoset.fulltext.impl.rdbms.RDBMSSearcher.type
property to sqlserver
.The main change in OKS 3.2 is that Ontopoly has been significantly extended with new functionality, described below, and that the DB2TM module now supports updating the topic map with changes from the source database. In addition, there is a long list of minor improvements and bug fixes to various parts of the product suite.
The modifications to Ontopoly are quite extensive, and have required changes to the Ontopoly meta-ontology. This means that all old topic maps have to be upgraded in order to make them editable in the new Ontopoly version. Ontopoly can handle this by itself, however. The main improvements are:
The following bugs have been fixed in Ontopoly:
The Vizigator has been extended slightly with two new pieces of functionality, described below. Note that it was also substantially extended in the OKS 3.1.1 release; you may want to check Vizigator as well.
The following bugs have been fixed in the Vizigator:
The “No name topics” choice on the topic map page now always appears, and without a count of nameless topics. This is a small step backwards in terms of functionality, but this query is very expensive, and has made it difficult to use the Omnigator with large topic maps. This problem is now gone.
The following bugs have been fixed in Omnigator:
The tolog query engine now has support for plugging in external full-text search predicates that behave much like the current built-in “value-like” predicate. To create a new full-text search predicate, one only needs to implement two Java interfaces. The new predicate will then be available in a module which can be imported into queries that need it.
The query engine now also supports getting a trace from a specific query as a string, instead of logging it to log4j. This support is available at the API level, and also in the Omnigator query plug-in. This makes it much easier to debug slow tolog queries.
The following bugs have been fixed in the query engine:
The main extension to DB2TM is the support for synchronizing the topic map with new information from the database. This makes it easy to keep the topic map up to date as the source database changes. See the documentation for more details on how this works.
The DB2TM module has been extended with support for mapping values in the database to new values using either a mapping table or a Java method. These mappings can now be declared in the XML mapping file.
The webed:link
and webed:form
tags now have a new attribute, target
, which tells the framework in which window/frame to open the next page.
The following bugs have been fixed in the Web Editor Framework:
param
must be set on webed:list
for multiple select listswebed:field
is emptyparams
attribute contains whitespace at beginning or endwebed:list
with unspecified=none
run even if no changes madeThe TMLoginModule
now exposes user-groups/roles names and privilege names as role principals. This means that applications can make use of the HttpServletRequest.isUserInRole(String rolename)
method to check privileges and user-group memberships.
The TMSync implementation has been extended so that it now supports using filter on the source topic map as well, to filter the characteristics to be included in the synchronization.
The DeletionUtils
class now has a new method for deleting a collection of topics in a single operation. This is much faster than deleting the topics individually.
The TM/XML exporter now accepts a filter that lets you control which parts of the topic map should be exported.
The TopicMapSourceIF
interface now has a new method createTopicMap
, which allows new topic maps to be created within the source. Some of the source implementations support this method, and there is a getSupportsCreate
method which can be used to query for such support.
The XTM path source now has a boolean property to control whether topic references to external documents should cause those documents to be merged in. This is implemented using a new class net.ontopia.topicmaps.utils.NoFollowTopicRefExternalReferenceHandler
which tells the XTM importer to not follow external topic references, but to still load any topic maps referenced by the mergeMap
element.
The Merger
command-line utility now has an option to enable name-based merging (which used to be enabled, because of a bug), and an option to do duplicate suppression on the resulting topic map.
The following bugs have been fixed in the Topic Maps Engine:
A new property net.ontopia.topicmaps.impl.rdbms.Cache.shared.identitymap.lru
has now been added, which can be used to control the size of the identity map LRU for the shared cache independently from the LRUs of the individual transactions.
Another new property is net.ontopia.infoset.fulltext.impl.rdbms.RDBMSSearcher.type
which is used to control how full-text searching in the RDBMS backend is done.
A new option has been added to the RDBMSImport
command-line tool, to control whether external references are followed or not.
The RDBMS backend now always sets the transaction isolation level, which it only did before when using a connection pool.
This release primarily consists of some new functionality and a couple of bug-fixes for Vizigator.
The following functionality has been added to Vizigator:
search.bar
menufile property to off
.For more information, please consult the Vizigator User’s Guide.
The following bugs have been fixed in Vizigator:
A problem regarding passing java.util.Map instances as parameters to web editor actions was resolved.
This release primarily consists of some new functionality for Vizigator, and support for Microsoft SQL Server. There is also improved support for TM/XML in Omnigator.
The following bugs have been fixed:
The following functionality has been added to Vizigator:
For more information, please consult the Vizigator User’s Guide.
The following bugs have been fixed in Vizigator:
The RDBMS backend has seen substantial internal reworkings that cause it to need fewer database connections per transaction, and which reduce lock contention in the database quite significantly. As a result of these changes the RDBMS backend now supports Microsoft SQL Server. A sample database properties file and database scripts can be found in ${OKS_HOME}/rdbms
.
It’s now possible to drop TM/XML files with the extension .tmx into the topicmaps
directory and have Omnigator detect them. It is also possible to topic maps to TM/XML in Omnigator using the export plug-in.
This release adds significant new functionality, primarily the DB2TM module and the new TMRAP version. However, the Vizigator has also been significantly improved, support for the TM/XML format has been added throughout the OKS, and an event API has been added to the engine. The improvements are described in more detail below.
Documentation of the two new modules (DB2TM and TMRAP) can be found as part of the OKS documentation.
The Vizigator has been extended with support for a default topic and association type configuration, as well as for controlling the rendering of topics which have more than one type.
The following bugs have been fixed in the Vizigator:
The main improvements to the Topic Maps engine are the addition of support for the TM/XML Topic Maps syntax and the event API. The event API is documented in the javadoc for the package net.ontopia.topicmaps.core.events
.
The following bugs have been fixed in the Topic Maps engine:
A number of performance improvements have been made to the RDBMS backend. The RDBMS backend now distinguishes between read-only and read-write transactions, where the former can be shared by several users (because no changes can be made), thus reducing the memory consumption. In addition, the use of synchronization has now been streamlined to allow better throughput with many concurrent transactions. The garbage collector now has an easier job because the soft references in the shared cache are more fine-grained, making it possible to collect smaller amounts of data on each iteration.
The default tolog implementation when using the RDBMS backend is now the in-memory implementation, and not the RDBMS implementation. Note that this change might affect the performance of existing installations. Existing installations may want to override the tolog implementation in the database properties file.
The following bugs have been fixed in the RDBMS backend:
Two new methods have been added to the NavigatorUtils
class: getTopicMapRepository(PageContext pageContext)
and getTopicMapRepository(ServletContext servletContext)
.
The code which finds the label to display for a topic has been replaced with a new implementation, which is much simpler, and much faster, thus resulting in improved performance.
The following bugs have been fixed in the Navigator Framework:
The TologDelete
action now accepts objects of any types as parameters, and not just topics.
The following bugs have been fixed in the Web Editor Framework:
webed:actionid
tag does not work correctly in read-only modeThe following bugs in Ontopoly have been fixed:
This release is a bug fixing release for the Vizigator. The last few versions of Vizigator have been somewhat buggy and unstable, and the behaviour of the Vizigator has not really been entirely consistent. This release fixes the known bugs, and makes the Vizigator behaviour much more consistent.
The following bugs have been fixed:
This a bug-fix release that includes fixes to three bugs.
Important:
If you are using the RDBMS Backend you should upgrade to this new version as there is a critical bug in the jdbcspy driver shipped with earlier OKS releases. This bug only occurs when using the jdbcspy driver, but to be on the safe side an upgrade is recommended. If you cannot upgrade then you must not use jdbcspy (disabled by default).
The following bugs have been fixed:
The following bugs have been fixed:
reference_id
column.This release is a major release that has seen changes to most parts of the OKS, as well as the inclusion of a major new component, the Ontopoly Topic Maps editor. Also, the distribution now includes Tomcat 5.5, instead of Tomcat 5.0.
Important:
If you are using the RDBMS Backend you will have to make a few changes to the database schema before proceeding. A description of how to do the upgrade can be found in the section called RDBMS backend in this document.
A new policy for error handling in the Web Editor Framework has been added, with support for distinguishing between critical and non-critical errors. The only change is really that it is now possible to report non-critical errors to the user.
The form tag library has been extended with better support for accessing JSP attributes, which greatly simplifies using the form tag library together with other tag libraries.
The pattern
attribute has been added to the webed:field
tag, providing support for validating user input against a regular expression.
The Velocity macros used by the Web Editor Framework tags have been moved into the OKS .jar file. It is still possible to use custom Velocity macros, but by default the macros used will be those in the .jar file. This greatly simplifies upgrades to new OKS versions. Existing applications will continue to use the Velocity macros in the file system, which they have been configured to use. We recommend that applications switch to using the .vm files in the .jar file.
The TLD files are now also stored in the OKS .jar file, and the tag libraries have been given identifying URIs that can be used to load these. We recommend that applications start using these URIs and remove local copies of the TLD files.
The following new actions have been added to the Framework:
tmobject.OSLValidate
is an action which can take any number of topics, association, and topic maps and validate them against the OSL schema registered for the current topic map.topic.SetSubjectLocator
is an action for setting the subject locator of a topic.occurrence.SetValue2
, occurrence.SetLocator2
, and topic.SetSubjectIndicator2
actions, all of which are slight modifications of existing actions that behave differently when given an empty string (they delete the value being operated on).The following bugs have been fixed in the Web Editor Framework:
The tolog tag library has been extended with better support for accessing JSP attributes, which greatly simplifies using the tolog tag library together with other tag libraries. In addition, the tolog:set
tag now supports setting JSP attributes in any scope (in addition to setting OKS variables), through the new scope
attribute.
The tolog:out
tag now has an attribute named escape
, which can be used to control whether or not the output string is to be HTML-escaped.
The TLD files are now stored in the OKS .jar file, and the tag libraries have been given identifying URIs that can be used to load these. We recommend that applications start using these URIs and remove local copies of the TLD files.
The tm-sources.xml
can now be loaded from the classpath, and in the distribution this is where it is now loaded from.
The Vizigator has been extended with support for filtering associations by scope. It also now has support for localization, and has been localized to Japanese and German.
The engine now supports typed names, in accordance with the TMDM.
The engine now supports automatically keeping the full-text index for a topic map up to date as changes are made to a topic map. This is primarily of interest with in-memory topic maps.
The topic map repository framework has now been extended so that topic map sources can create new topic maps. New methods have been added to the TopicMapSourceIF
interface to support this. The XMLConfigSource
class has also been extended with new methods to allow the configuration to be loaded from the classpath.
The following new additions have been made to the API:
setFollowTopicRefs
method has been added to the XTMTopicMapReader
, making it easier to prevent the XTM reader loading other XTM documents referred to by topicRef
elements.XTMTopicMapWriter
can now be given a DeciderIF
which will be used to filter the topic map during export.The following bugs have been fixed in the engine:
There has been a few minor changes to the database schema in this release. In order to upgrade your database instance you will have to execute the SQL statements listed below in your database.
If you do not have an existing database instance you should not perform the upgrade shown below, but instead follow the standard database installation procedure described in The RDBMS Backend Connector - Installation Guide.
Use the psql
command line tool to execute the statements below, or any other database access tool of your choice.
alter table TM_BASE_NAME add column type_id integer null;
alter table TM_TOPIC_MAP add column base_address varchar(512) null;
alter table TM_TOPIC_MAP add column title varchar(128) null;
create index TM_BASE_NAME_IX_myi on TM_BASE_NAME(topicmap_id,type_id,id);
If foreign keys are enabled the following command should also be issued:
alter table TM_BASE_NAME add constraint FK_TM_BASE_NAME_3 foreign key (type_id) references TM_TOPIC (id);
Use the sqlplus
command line tool to execute the statements below, or any other database access tool of your choice.
alter table TM_BASE_NAME add type_id integer null;
alter table TM_TOPIC_MAP add base_address varchar2(512) null;
alter table TM_TOPIC_MAP add title varchar2(128) null;
create index TM_BASE_NAME_IX_myi on TM_BASE_NAME(topicmap_id,type_id,id);
If foreign keys are enabled the following command should also be issued:
alter table TM_BASE_NAME add constraint FK_TM_BASE_NAME_3 foreign key (type_id) references TM_TOPIC (id);
The RDBMS backend schema has changed to support typed names.
The RDBMS backend schema has changed to store the base address of the topic map in the database. This solves the long-standing problem with porting ID-based topic maps applications from the in-memory store to the RDBMS backend, since the base address is now set on import (using the RDBMSImport
command-line tool) ID-based references will continue to work.
The RDBMSImport
command-line tool can now produce a SQL profiling report to show where the time is spent during an import.
The RDBMSImport
command-line tool will now automatically disable the shared cache, so that topic map documents of any size can be imported.
The RDBMSTopicMapStore
now has a new method that can dump the identity map, for debugging and performance monitoring purposes.
The net.ontopia.topicmaps.impl.rdbms.StorePool.SoftMaximum
database property was being incorrectly set, effectively making impossible to set an upper boundary on the store pool size. This is now fixed.