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 is mainly a bug fix release, but also includes a number of improvements.
The following improvements have been made:
log4j_config
context parameter in web.xml.class
attribute which maps directly to an HTML class attribute.lang
and the Vizlet takes a command line argument with the same name. The default value is en
.controlsVisible
applet parameter to false
. Note that it is possible to get the controls back by selecting the appropriate entry in the context menu.The following bugs have been fixed:
This is a bug fix and optimization release. A number of bug fixes and performance improvements have been made to the RDBMS backend. If you are not using the RDBMS backend, you can ignore this release. If you are using the RDBM backend we strongly recommend that you upgrade to this version.
In this release, only the OKS code and the database schemas/scripts have been updated. To upgrade an existing installation, all you need to do is replace the oks-*.jar
file.
The following improvements have been made:
autoCommit
flag to false, overriding any defaults.This is a bug fix release.
The following bugs have been fixed:
The following bugs have been fixed:
This is a bug fix release.
The following improvements have been made:
The following bugs have been fixed:
The following bugs have been fixed:
The following improvements have been made to the Navigator Framework:
$TOMCAT_HOME/server/lib/oks-realm.jar
.run
in TreeWidget
and of getSingleValue
in ContextUtils
.The following improvements have been made to the Web Edit Framework:
The following bugs have been fixed:
The following improvements have been made to the RDBMS backend:
trove.jar
).The following bugs have been fixed:
This release adds substantial new functionality, primarily significant performance enhancements in the RDBMS backend, but also support for LTM 1.3, the JAAS module, and the accessctl web application. More detail on these is provided below. There are some violations of backwards compatibility, so please read the release notes carefully.
The Omnigator now supports exporting topic maps to LTM format.
The following bugs have been fixed:
The following improvements have been made to the Navigator Framework:
tm-sources.xml
file has been reduced.The following bugs have been fixed:
The following improvements have been made to the Vizigator:
The following bugs have been fixed:
The following improvements have been made to the Web Editor Framework:
forwardBehaviour
element is no longer allowed in actions.xml
. This because the machinery for multi-frame applications has been signficantly changed.AssignRolePlayer
action has been signficantly extended.ProcessServlet
produce log output has been added, and the logging itself improved.actionGroup
attribute has been removed from the webed:actionid
tag.The following bugs have been fixed:
trim
attribute on webed:field
does not workThe following improvements have been made to the Query Engine:
value
predicate or dynamic occurrence predicates is now significantly optimized.The following bugs have been fixed:
The following new functionality has been added to the engine:
getRolesByType(TopicIF)
and getRolesByType(TopicIF, TopicIF)
methods has been added to the TopicIF
interface. This can be convenient in some cases, and is used to improve the performance of the RDBMS backend.net.ontopia.topicmaps.xml.CanonicalXTMWriter
class has been added, with support for the 2004-11-01 draft of Canonical XTM.net.ontopia.topicmaps.utils.ltm.LTMTopicMapWriter
class has been added, with support for exporting topic maps to LTM 1.3.The following bugs have been fixed:
The following improvements have been made to the RDBMS backend:
The following bugs have been fixed:
This release is almost exclusively a bug fix release.
The following changes have been made to the Omnigator:
The following bugs have been fixed:
Only one change has been made here: the “oks” JSP variable is now set in request scope instead of page scope.
Two bugs have been fixed in the Vizigator:
The following changes have been made to the Web Editor Framework:
trim
attribute has been added to the webed:field
tag to control whether whitespace is removed from its contents or not. (Bug #1374.)runIfNoChanges
attribute has been added to the webed:invoke
tag to control whether the invoked action is to be run if no other actions run.The following bugs have been fixed:
jsp:include
.The RDBMS tolog implementation now makes better use of the optimizers developed for the in-memory implementation, which should improve performance in some cases.
One bug has been fixed:
The following API changes have been made:
clear
method has been added to the TopicMapReferenceIF
interface.delete
method on the TopicMapStoreIF
interface has been deprecated.One bug has been fixed:
delete
method on RDBMSTopicMapStore
would in some cases leave orphan rows in the *_SCOPE
tables.This release adds major new functionality, substantial internal changes, as well an overhaul of the API where many packages and classes are made INTERNAL or deprecated. You are recommended to read this section carefully before installing this version.
The Omnigator now has two new plug-ins:
The following bugs have been fixed:
The tm
, logic
, output
, and value
tag libraries have now been deprecated, in favour of the new tolog
tag library. The old tag libraries and their documentation are still included with the OKS, but they are now officially deprecated, and no new functionality should be developed using them. They will not be removed from the product as long as there are users for them.
There are also some important changes in how the Navigator Framework works with the RDBMS backend; these are documented in section 3.5 of the Navigator Framework Developer’s Guide, and all users are encouraged to read this section.
Parts of the Navigator Framework API have been marked as INTERNAL or been deprecated. A few methods that have been deprecated for a long time have been removed altogether. The following class has also been added to the API.
net.ontopia.topicmaps.nav2.utils.TreeWidget
class has been added.The Vizigator is now out of beta, and officially part of the OKS. A substantial number of bugs have been fixed, and new functionality added. We do not describe the details here; for a description of the functionality, see the Vizigator User’s Guide.
The params
attribute in the Web Editor Framework tag library now supports tolog URI prefixes declared with the new tolog:declare
tag. This makes it possible to refer to topics without creating framework variables for them first.
The action implementations included in the Web Editor Framework now perform much stricter checking on the parameters passed to them, which means that they provide much more useful error messages, but also that in certain cases they will complain about parameters they would earlier allow.
The AddSubjectIndicator
, RemoveSubjectIndicator
, SetSubjectIndicator
, AddSourceLocator
, RemoveSourceLocator
, and SetSourceLocator
actions have been updated to accept string parameters as well as locator parameters.
Parts of the API have been marked as INTERNAL or been deprecated in this version. In addition, the cloneAndOverride
method has been added to the ActionParametersIF
interface to make it possible to trigger existing actions from within an action.
The following bugs have been fixed:
The tolog query language has been extended with comparator predicates (that is, the normal <
, >
, =
, <=
, >=
operators). In addition, the object-id
predicate has been added.
The query engine has been reworked somewhat internally, adding some new optimizations, as well as type analysis on variables. This is not obvious to external code, but improves performance.
An API for preparsing declarations (as opposed to queries) and storing the resulting context so that later queries can be parsed in a particular declaration context has been added.
The following bugs have been fixed:
Parts of the API have been marked as INTERNAL or been deprecated.
The oracle_text
platform must now be listed on the net.ontopia.topicmaps.impl.rdbms.Platforms
database property for Oracle Text support to be enabled, e.g. to enable Oracle Text support with Oracle 10g set the property to oracle_text,oracle10g,oracle,generic
. This change will break backward compatibility, but will allow Oracle users to use the default rdbms fulltext support using the LIKE operator instead of using Oracle Text. See the fulltext developers guide for more information.
The LuceneIndexer
class now has a new command line option --analyzer
which takes the class name of an analyzer.
Parts of the API have been marked as INTERNAL or been deprecated.
The core interfaces of the engine have now changed substantially, for the first time since the release of version 1.0. Concepts left over from the HyTM syntax have now officially been deprecated, such as facets, facet values, mnemonics, effective scope, and scope on topics and topic maps. If you didn’t know these things existed: don’t worry, the effect on your code is likely to be nil. In addition, a large number of non-core interfaces, classes, and methods have been marked as INTERNAL or been deprecated.
In addition, the following API changes have been made:
close
method has been added to the TopicMapRepositoryIF
interface.lenient
property on the RDF path topic map source has been added, making it possible to ignore some errors in the RDF mappings.DuplicateSuppressionUtils
class has a new method called removeDuplicateAssociations
which will remove all duplicate associations of a particular topic.Some performance optimizations have been made in import and export:
The net.ontopia.topicmaps.entry
package has been reworked a bit, and the following changes have been made:
TopicMapReferenceIF
interface now has two new methods: open
and isDeleted
.TopicMapReferenceIF
interface now throws a StoreDeletedException
if the topic map has been deleted.TopicMapReferenceIF
no longer delete the file in the file system when delete
is called unless the deleteFiles
property is set to true.Locators output by XTM, CXTM and HyTM serializers are now written in its external form and no longer the internal form.
The following bugs have been fixed:
The internals of the RDBMS backend have been substantially reworked to provide better support for concurrent transactions. A number of RDBMS properties have been added to control the internal workings of this. To find out what these are, please consult the RDBMS Backend Installation Guide and the Developer’s Guide. Note also that some behaviours that never were allowed, but which used not to cause problems now will cause problems. Caution, and careful testing, should be applied.
The two main new features in the RDBMS Backend are shared cache and topic map store pooling. The first lets topic map store instances share information so that the network traffic to the database is reduced and thus performance improved. The second feature makes it possible to reuse topic map store instances across transactions. This improves scalability in multi-user access to the database and will also improve resource management in applications.
A few new database properties has been added. All the properties are related to either shared cache settings or topic map store pooling. See the RDBMS Installation Guide for more in-depth information on the supported database properties.
The following properties are no longer supported/used, so if you use them in your database properties file consider removing them:
The following properties are only used for database platforms for which there are no built-in support, and should therefore not normally be specified in database properties:
The property net.ontopia.topicmaps.impl.rdbms.Platforms is now inferred from the net.ontopia.topicmaps.impl.rdbms.Database property value and should therefore normally not be specified.
The SQL IN-operator used by RDBMS tolog no longer uses a predefined max elements size, but retrieves the setting from the net.ontopia.persistence.query.sql.InMaxElements database property instead. Default is that there now is no limit to the maximum number of elements.
Poolman is no longer supported and has been dropped from the distribution. Jakarta Commons DBCP is now the default connection pool implementation. Connection pooling is now enabled by default.
Prepared statement pool is enabled by default by the DBCP connection pool.
URI locators stored in the RDBMS did not get externalized properly in getExternalForm and resolveAbsolute. This has now been fixed.
The RDBMSDelete command line utility has been added.
The following bugs have been fixed:
This release resolves a couple of Java 1.3 compatibility issues and two issues regarding the use of locators.
'|'
characters in file URLs were incorrectly escaped by URILocator.getExternalForm()
.
<output:locator>
now uses LocatorIF.getExternalForm()
instead of LocatorIF.getAddress()
to output locator addresses.
This release is mainly a bug fix release. It resolves a couple of issues in the RDBMS backend. There are also improvements in the XTM import utility.
The way merging is done during XTM import has been improved. The importer code now avoids creating temporary topics in the cases where the temporary object later would be merged with an existing object. Temporary object creation is avoided where possible. This should lead to improved performance in certain situations.
The following bugs have been fixed:
This release is a bug fix release. It resolves a couple of Web Editor bugs and a bug in the RDBMS Backend.
The following bugs have been fixed:
Some debugging statements were written to the console in the previous release. These have now been removed.
This release is a bug fix release. It also adds previews of the RDF2TM Omnigator plug-in and the Vizigator. The RDF2TM plug-in is turned off by default, and not yet much documented. The Vizigator has separate documentation included.
Prototypical support for TMAPI has been added. This does not quite conform to the final version, and will have to be updated.
The RDF importer now supports a new generateNames
property, which enables it to automatically generate names for nameless topics created by the mapping based on their URLs.
The following bugs have been fixed:
The RDBMS implementation of tolog will now produce queries that in some situations are significantly faster, especially in PostgreSQL.
The following bugs have been fixed:
The interpretation of the index
attribute on the tm:fulltext
tag has changed. See the tag library reference documentation for details.
The webed:field
tag now supports hidden fields.
This release is a bug fix release, but also contains some optimizations and minor additions of new functionality, about which, more below. The main extension is the experimental support for the new Canonical XTM syntax proposed for inclusion in the ISO 13250 standard.
The following improvements have been made:
The following bugs have been fixed:
The following bugs have been fixed:
rulesfile
attribute on tm:tolog
was brokenThe following improvements have been made:
webed:invoke
tag has been added. This tag can be useful for actions that always need to be invoked when a form is submitted.webed:form
, webed:field
, webed:list
, and webed:button
tags now all have an id
attribute, which can be used to attach JavaScript actions to the HTML form controls they produce.AssignRolePlayer
action has been extended to support use from checkboxes, by making it accept an additional argument.The following bugs have been fixed:
The tolog query engine has been modified to do extensive type inferencing internally, in order to work out the possible types that can be assigned to each variable. This information is now used to optimize away some predicates that can never succeed because of type conflicts.
value-like
predicate was sensitive to predicate ordervalue-like
predicate misbehaved with empty search stringsThe following improvements have been made:
getExternalForm
method has been added to the LocatorIF
interface. This in order to allow URIs to be correctly escaped on output.setDuplicateSuppression
method was added to the RDFTopicMapReader
class.TopicVariantNameGrabber
class has been added in order to make it possible to grab variant names from topics.The following bugs have been fixed:
The following improvements have been made:
queries.xml
and mapping.xml
files are no longer read from the current directory by default, but instead from the .jar file. Their location can still be overridden using the properties file.TEXT
(instead of VARCHAR
), which gives unlimited-length strings.This release contains mainly bug fixes and improvements. One important change in this release is that the version number is included in the $OKS_HOME directory name. This was introduced, so that one can easily keep different versions apart and also avoid versions being copied on top of each other.
Two improvements have been made:
These bugs were fixed in the topic map engine:
One improvement has been made:
In addition the following bug was fixed in the tolog engine:
One change has been made:
The following improvements have been made:
One improvement has been made:
In addition the following bug were fixed:
The following improvements have been made:
This release contains mainly bug fixes and improvements.
New functionality has been added to the RDF support:
In addition the following bug was fixed in the engine test suite:
Two improvements have been made:
One improvement has been made:
The following changes have been made:
This is the first OKS release for quite some time, and so there are substantial changes, many bug fixes, and some new features. The changes are so substantial that some minor changes are not listed, and some minor bug fixes omitted.
The following functionality has been added to the Omnigator:
The following bugs have been fixed in the Omnigator:
startup.bat
batch script would not work on Windows 98.The following changes have been made to the Navigator Framework:
${basedir}/config/jsp-11
must be used.rulesfile
attribute was added to the tm:tolog
tag. This attribute makes it possible to load tolog rules files in order to make the queries in them accessible to applications.parameter
attribute was added to the tm:lookup
tag. This attribute makes it possible to look up a topic map object from a request parameter.to
attribute was added to the tm:associated
tag. This attribute makes it easier to find the associations between two topics.order
attribute was added to the logic:foreach
tag. This attribute makes it possible to reverse the order in which the loop traverses the collection being iterated over.value:sequence
tag has been added, which makes it possible to build collections in any desired order.template:split
tag has been added, in order to support more advanced uses of templates.stringifier
attribute to the output:content
tag.output:debug
tag.NonExistentObject
exception, which is now thrown whenever an application is passed an invalid topic map object ID to a page. This allows applications to route the error to a page that displays the error in the way they want.NoEscapeStringifier
class, which is useful for outputting strings containing special XML/HTML characters without escaping.The following bugs have been fixed in the Navigator Framework:
The Web Editor Framework is now out of beta and is now ready for use in applications. The Framework has changed substantially since version 1.4.2, and has also been extended considerably. A large number of bugs have been fixed, and in general the use of the Framework has been simplified substantially.
The changes are sufficiently comprehensive that we have decided not to document them in detail. In general, it can not be expected that applications developed with 1.4.2 will run with 2.0.
The following changes have been made to the Topic Map Engine:
net.ontopia.topicmaps.utils.rdf
package. This package provides support for RDF import and export. (See separate documents in the distribution for details.)getStore
method has been added to the TopicMapIF
interface.getAddIds
and setAddIds
methods to the XTMTopicMapWriter
class, in order to make it possible to control whether or not id attributes should be generated for elements which do not represent reified topic map constructs.URLTopicMapStore
class, which supports downloading an individual topic map from a specified URL.mergeInto
method to the MergeUtils
class which merges a topic from one topic map into a different topic map.remove
method to the DeletionUtils
class. This method removes a topic map object from the containing topic map, regardless of what type of topic map object it might be.removeTopic(TopicIF topic, boolean removeAssociations)
method to the DeletionUtils
class. This method makes it possible to control whether associations the topic participates in are deleted or not.clearTopicMap
method to the DeletionUtils
class. This method removes the contents of a topic map.deleteTopicMap
method to the DeletionUtils
class. This method removes an entire topic map.net.ontopia.products.license.LicenseInfo
command-line tool has been added. This tool shows where the OKS looks for the license key, and also where it finds the one it uses (if indeed it does find one).toString
methods to the TopicStringifiers
class, which produce a name for a topic with various possible scope settings.TMDeciderUtils
class, which can easily create various kinds of useful deciders.getByType
method has been added to the CharacteristicUtils
class. The method returns the first characteristic that is of a given type within a collection.The following bugs have been fixed in the Topic Map Engine:
getInstancesOf
method in ClassInstanceUtils
was broken.URILocator
class allowed ‘#’ characters inside fragments.mergeInto
method in MergeUtils
that merges topics in the same topic map did not remove duplicates.mergeMap
elements in XTM files could cause loading to fail.topic
elements.removeTopic
method in DeletionUtils
would sometimes throw concurrent modification exceptions.The following changes have been made to the Query Engine:
execute(String query, Map params)
method to the QueryProcessorIF
interface. This provides support for dynamic parameters to preparsed queries.execute(Map params)
method to the ParsedQueryIF
interface. This provides support for dynamic parameters to preparsed queries.The following bugs in the Query Engine have been fixed:
count
aggregate function would also count duplicate results in the in-memory implementations.The only changes to the Schema Tools have been the following bug fixes:
The RDBMS tolog implementation has been updated to support the full tolog 1.0. The following bugs has been fixed: