Version 41 (modified by jri, 12 years ago) (diff)


Release Notes

2012-09-18: DeepaMehta 4.0.12

This release is all about publishing and collaboration. For the first time there are an Access Control mechanism and Security features. This enables new usage scenarios for DeepaMehta. Topicmap Publishing: everybody can access published topicmaps in a read-only fashion while the topicmaps are still fully interactive. Team Collaboration: per-object Access Control Lists (ACL) and 5 differentiated user roles allow fine control about who has access to what. File Sharing: authorized users can upload files to a structured repository and provide common access.

For usage and configuration hints about the new use cases see this mailing list posting:

The remaing is a comprehensive list of all changes in DeepaMehta 4.0.12

New Features:

  • Access Control Foundation (#262).
    • Each topic, association, and type is attached with a Access Control List. There are 2 operations: WRITE, CREATE. There are 5 user roles: CREATOR, OWNER, MEMBER, USER, EVERYONE.
    • Scenario 1: Publishing fully interactive read-only topicmaps (#269).
    • Scenario 2: Fully closed workgroup installations [a661efb0].
  • Backend Security (#293).
  • Shared File Repository (#291).


  • The detail panel lists the topics associated with the selected association (#306).
  • Modelers can utilize a Checkbox Renderer for multiple selection (#270) [6c4d87ad].
  • Launching and reloading the Webclient is speeded up (#286).

Bug Fixes:

  • For plugin developers: Hot Deployment works as expected. When a plugin is re-compiled the OSGi runtime shuts it (and only it!) down and redeploys it automatically. All dependencies to other plugins are handled by the framework (#272, #274).
  • Pressing the Return key inside a (multi-line) text area, e.g. the CKEditor's source view, does not trigger the OK button (#206, #288).
  • The default Topic Renderer works with hidden many composite child topics (#283).

Plugin Development Framework:

  • More Convention Over Configuration:
    • A plugin's REST resources and (JAX-RS) Provider classes are registered automatically. Plugins must no longer provide (JAX-RS) Application classes nor do manual configuration (#272) [a39e39c1].
    • All (JAX-RS) Provider classes are available to all plugins automatically [44d49e12].
    • A plugin's client-side main file is picked up automatically (#276) [b30004d6].
    • A plugin's custom renderers are picked up automatically (#284) [19aca819].
    • A plugin's CSS stylesheets are picked up automatically (#285) [2bee421c].
    • Plugin developers must no longer care about firing PRE_SEND (formerly POST_FETCH) events (#297, #268).
    • A plugin's client-side part is no longer required to contain a main file (plugin.js). This is perfect for plugins whose only purpose is to provide custom renderers [3a4a0cbe].
  • Plugin infrastructure:
    • A plugin can publish a directory of the server's file system to the web (#292) [dea0910b].
    • A plugin can register a (Servlet API) filter (#293) [520c95c0].
    • A plugin's client-side part is namespaced per URI for friendly co-existence (#275) [082a4651][faf8d006].
    • Custom renderer implementations (page renderers, simple renderers, multi renderers) are namespaced per URI for friendly co-existence (#282) [9bb0c6a7][4aab34b1].
    • A plugin can register listeners for 4 new Core Events: PRE_CREATE_ASSOCIATION, POST_CREATE_ASSOCIATION, PRE_SEND_ASSOCIATION [98fb628d], INITIALIZE_PLUGIN [435f4285].
    • A plugin can operate on the logged in user's HTTP session (#293) [faa7485e].
  • Renderer Framework:
    • New renderer type: Multi Renderer. A plugin can provide custom renderers for multi-value topics (in conjunction with cardinality "Many") (#270) [6c4d87ad][7fe0a806].
    • Topicmap renderers have a server-side part as well (#294).
  • Core consolidation and optimization:
    • The core service is now able to process update requests where aggreagted composite child topics are involved (#30, #267).
    • For handling core events plugins implement listener interfaces instead of overriding methods. A plugin's listeners are registered automatically. The core delivers events to the registered listeners instead of iterating over all plugins. This is the more efficient approach (#261) [b59fff18].
    • The application layer is separated from the network layer. This avoids high-rate firing of unnecessary core events (#268).
    • Core is modularized and its API is cleaned up (#281).
  • Miscellaneous:
    • The Proxy plugin is dropped. Its features are transfered to the Files plugin (#292).
    • The Facets plugin is included to the DeepaMehta Standard Distribution (required by the Access Control and Workspaces plugins).
    • The Javadoc Maven plugin is configured to generate cross-referenced API Docs with inlined class hierarchy diagrams [5d6b13bc].
    • A lot of API changes and extensions in various plugins, e.g. the Facets API supports multi-value facets.
    • Updated jQuery 1.7 -> 1.7.2 and jQuery UI 1.8.16 -> 1.8.21

2012-05-19: DeepaMehta 4.0.11

This release provides substantial improvements for users and a serious bunch of under-the-hood improvements for developers. For regular users the highlight feature is Implicit Saving: the user must no longer care about saving; DM automatically ensures nothing is lost. The highlight feature for power users who create custom data models is the Type Editor with support for Cardinality "Many" at last. Last but not least 3 external plugins have been updated in order to be compatible with this release.


  • Implicit Saving. The user must no longer care about saving. DM ensures nothing is lost, e.g. when the user selects another topic while being in edit mode. The "Save" and "Cancel" buttons are replaced by an "OK" button. The "OK" button just allows the user to say "I'm done with editing". There is no need to press it. (#243).
  • The detail panel's type editor is now fully functional. Select a type and press "Edit". You can change the Association type (Composition or Aggregation) and Cardinality (#77).
  • Consolidated data model: the "many" cardinality is now operational. For "many" the detail panel's form generator automatically provide the user with "Add another ..." and "Remove" buttons. Thus, its easy to add e.g. another phone number or email address to a Person topic (#76).
  • Nested detail panel rendering: The detail panel visualizes the composite structure as nested boxes, filled with a distinct color for each nesting-level. This is useful in particular with cardinality "many" (#104).

Bug Fixes:

  • Links in the detail panel's Associations list are truncated (#247).
  • Invalid association definitions doesn't prevent the Webclient from starting (#253).

Plugin development framework:

  • Webclient: revised FieldRenderer? and PageRenderer? APIs make the plugin code more clean [ebcbb429][7e5cdfd0][d0a960cc][d3f656e2].
  • Core: An ObjectFactory? supports the development of system-near plugins, like e.g. the Type Editor [c57ca5fb][c0034f0c][2b77e475].
  • The core service accepts update requests in 2 formats: the canonic format and a simplified format. The former contains full topic models and is required for cardinality "many" associations. The latter contains just the topic values and is sufficient for cardinality "one" associations. Within one request both formats can be mixed (#237).
  • The updateTopicType() core service call returns a set of directives. Thus, a client is provieded with detailed hints about how to keep the GUI in-sync [377ed738].
  • New directive DELETE_TOPIC_TYPE [37c66c51].

Compatibility with 3 updated plugins (optional install):

Updating from DeepaMehta 4.0.7 or later is supported.
See the README for installation and update instructions.

2012-03-24: DeepaMehta 4.0.10

This minor release just contains 2 bug fixes.

Due to other work like building the new website this release took a comparatively long time. Now we're back on the development track.

Bug fixes:

  • The Back button works cross-topicmap again (#231).
  • Building from scratch with a pristine maven repo works again (#234).

Updating from DeepaMehta 4.0.7 or later is supported.
See the README for installation and update instructions.

2012-02-03: DeepaMehta 4.0.9

This is a pure bug fix release that fixes the new CKEditor (introduced in yesterday's release).

Bug fix:

  • CKEditor works in non-english environments (#191).

Thanks Matthias Melcher for reporting!

Updating from DeepaMehta 4.0.7 or later is supported.
See the README for installation and update instructions.

2012-02-02: DeepaMehta 4.0.8

This release features an alternative WYSIWYG editor. CKEditor provides a much better look & feel than TinyMCE. Furthermore it loads faster, that is it appears more instantly when pressing the Edit button.

GUI improvement:

  • CKEditor replaces TinyMCE (#189).

Plugin development framework:

  • Client-side "post_destroy_form" hook replaces "post_submit_form" and has slightly changed semantics [a9939b89].

Updating from DeepaMehta 4.0.7 is supported.
See the README for installation and update instructions.

2012-01-19: DeepaMehta 4.0.7

The main feature of this release is the compatibility with the "DM4 Kiezatlas 2.0" plugin and the attendant plugin development framework extensions. Furthermore there are some general GUI improvements and bug fixes.

Compatibility with 1 new plugin (optional install):

Compatibility with 2 updated plugins (optional install):

GUI improvements:

  • Auto-positioned topics appear near selection. This results in less mouse drags and less canvas clutter (#174).
  • New icon for "search result" that replaces the bucket: a pile of balls [69aa3fd4].

Bug fixes:

  • The topicmap state (translation) is persistent after auto scroll (#170).
  • Deleted associations resulting from combobox value changes are removed from the canvas (#176).

Plugin development framework:

  • Webclient performance improvement through new hook mechanism: hook code is explicitly registered at the webclient (instead of placed in dedicated methods) (#173).
  • Customizable GUI:
    • Decouple canvas from page panel: the topic selected on the canvas and the topic displayed on the page panel can be a different one [ce27623b][ac819a9a].
    • Customizable page panel rendering in case of nothing is selected (new hook default_page_rendering). Splash screen by default. [40cb0f8f].
    • The default page renderer and form generator are customizable (new hook pre_render_page) [69866e36][bb7cc70b][af4f2ff9].
  • More flexible update requests: plugins can attach application-specific data to update requests and provide the corresponding server-side processing logic [b54822fc].
  • More convenient client-side API for accessing (nested) topic values [616e35d6].
  • Cleaner exception logs from REST resource methods [ebd02479].

2011-11-27: DeepaMehta 4.0.6

This release has mostly improvements for plugin developers. It is compatible with 2 new external plugins (see below). There are some GUI improvements though.

The DeepaMehta 4.0.6 installation is described in the README. You must perform a clean install. You can't use content from a previous DeepaMehta installation.

New feature for plugin developers:

  • Map type extension architecture: plugins can provide additional map types, e.g. a geo map or a time map (#52). Each map type can have a distinguished data model, rendering facility, and interaction style.

Improvements for plugin developers:

  • Clients can benefit from an extended composite value format (#146).
  • Server-side plugins can extend a topic before it is send to the client (new postFetchTopicHook) [874271b8].
  • Client-side plugins can access the model of the selected topicmap (#147).
  • Client-side plugins can set/get the split panel's slider position (#148).

GUI improvements:

  • Topicmaps remember their translation (#154).
  • Design: the toolbar is more plain and saves screen space.
  • Design: the entire GUI uses an uniform font.

GUI fix:

  • Menus opened within dialog boxes are not constrained to the dialog box dimension (#165).

Compatible with 2 new plugins (optional install):

Updated 3rd party components:

  • jQuery 1.7 (updated from 1.4.2)
  • jQuery UI 1.8.16 (updated from 1.8.2)

2011-10-20: DeepaMehta 4.0.5

There are crucial Windows and Apache related bug fixes and 3 hot features.

New features:


Improvements for developers and power users:

  • Plugins can interfere with browser history and permalink construction (#106) [448e95cd].
  • Extended webclient view configuration: also complex child types can be non-viewable/non-editable.
  • Extended REST API: create association types. See REST API.

2011-09-27: DeepaMehta 4.0.4

Main features of this release are file management, GUI customization, and daemon support.

New features:

  • Icon picker: change the topic type icons (#49). See usage info.
  • Custom icons: attach your own icons to topic types (#49). See usage info.
  • User-defined topic labeling rules (#41). See usage info.
  • File management*): View/play your text/image/audio/video/PDF files right in DeepaMehta (#78). See usage info.
  • File browser*): browse your disk (#90). See usage info.
  • Configurable proxy service*): access local and remote resources (#90). Interesting for client-server installation. See usage info.
  • Running DeepaMehta server as a daemon (#46). Interesting for client-server installation. See Ubuntu daemon setup.


  • User-defined child type order (for content panel rendering) (#77). See usage info.
  • First support for larger topic amounts (thousands of topics) (#98).
  • Search results are alphabetically sorted (#69).
  • Design: smaller icon rendering in content panel and menus.

*)These features doesn't work on the Windows platform. There is a known bug (#91). It will be fixed in the upcoming 4.0.5 release.

2011-08-22: DeepaMehta 4.0.3

After a long series of backend changes the focus of this release is to bring the frontend on a par. This release brings 2 new featues and a lot of GUI improvements and fixes.

New features:

  • Webbrowsing (early state): render webpages directly in DM! Right in the content panel or in a separate window/tab. URL topics provide 2 commands: "Open URL" and "Open URL in new window". (#21, #73)
  • Type Search: query all topics of a given type (#68)


  • More intuitive Create menu (#11)
  • Focus first input field when creating a new topic (#12)
  • Trigger Save by hitting Return (#13)
  • Create topics via keyboard (#14)
  • Type Resource is now called Web Resource. URL field first. (#20)
  • The webclient has a "favicon" (#44)
  • Creating a bunch of topic types without caring about unique URIs (#58)
  • The webclient's URL is simply http://localhost:8080/ (#66)
  • Topic type menus are sorted (#68)
  • About box with version/license info and credits (#36, #70)
  • Minor design and layout improvements


  • Closing menus when clicking elsewhere (#29)
  • Proper dragging when creating an association (#31)
  • Searching requires a given search term (#57)
  • Toolbar menus reflect renamed topicmaps and workspaces (#59)
  • Suppress pointless browser window scrollbars (#60)
  • Long menus do scroll instead the entire browser window (#71)
  • Fix canvas drawing and event handling oddities (#72)

Improvements for Developers:

  • No webclient 404/503 errors when build from source (#17) [4391f3ef]
  • Multi-context commands: A plugin can attach its commands to both at the same time, the context menu and the page panel (#21) [baad6eb7]
  • Revised file upload support [b593ce31]
  • URL topics can be queried by their URL (#55) [a58824f2]
  • Plugin authors can specify a custom URI namespace where the plugin's web resources are mapped to (#66) [3aa32aba]
  • A request to a / web resource is mapped to /index.html (#66) [3aa32aba]
  • REST API: "getRelatedTopics" request provides 3 more filter parameters [45e6dc93]
  • Page Renderer classes can CSS style the content panel [326556d8]
  • Access the webclient's toolbar via a dedicated toolbar object [80754bd8]
  • JavaScript? GUIToolkit API simplified and more object-like [aa9f8453][be5c4133]

2011-08-02: DeepaMehta 4.0.2

This release fixes a bug ( There was an encoding issue with the binary distribution in a client/server setup. This is now fixed. No problems with umlauts anymore.


For installation and update instructions see the README:

2011-07-28: DeepaMehta 4.0.1

This release fixes a bug: when editing an association (e.g. retyping) the role types are not compromised (ticket #18).
Thanks Malte for reporting!

You can update a 4.0 installation while keeping your content.
However, a 4.0.1 clean install is recommended (see comments on ticket #18).

See the README for installation and update instructions:


Build/Update? from Source:

Furthermore, these 3rd party components are updated in 4.0.1:

  • Jersey 1.5 -> 1.8
  • Jettison 1.2 -> 1.3
  • Neo4j Mehtagraph 0.7 -> 0.8

2011-07-24: DeepaMehta 4.0

Related to the 1st release candidate (4 days ago) there is just one Firefox-related bug fix.
Thanks Matthias for reporting!


Build from Source:

Further information in the README:

2011-07-20: DeepaMehta 4.0 RC1

This is the first release with the all-new property-less data model as recently described:>

The version planned as "DeepaMehta 3 v0.5" now become "DeepaMehta 4.0".
From now on DeepaMehta's version numbers follow the classic major.minor.bugfix schema.

Improvements for users:

  • new type editor. All values are represented as reusable semantics-attached topics.
  • new topic type "Resource" to collect web resources
  • new icons
  • bug fix in topicmap handling (when you have multiple topicmaps open)
  • cleaner display, less clutter

The cleaner display is because not all the plugins (workspaces, time, access control, ...) are adapted to the new data model so far. So, for the moment there is not so much meta data displayed (timestamps, workspaces assignments, creator, modifier, ...).

Improvement for developers:

  • New core service API. All the domain objects (Topic, Association, ...) are attached to the database. So, the developer must not care about DB-updates.
  • Domain models (type definitions) provided by a plugin can be build upon the domain models provided by other plugins. The dependencies are handled by the framework.

Download the release: Start as usual via the provided startscripts.

Build from Source:

For further information see the README:

If the browser shows 404 while this exception appears in the terminal ...
com.sun.jersey.api.container.ContainerException: No WebApplication provider is present
... then refresh the HTTP Jetty Bundle by typing "refresh 1" in the terminal (checkout the proper bundle ID before by using the "lb" command).

Thanks go to Jürgen and Danny who helped to organize this release!