9 | | One main aspect of this release is to revoke the **Performance** loss introduced in !DeepaMehta 4.0.12 in conjunction with Access Control. !DeepaMehta 4.0.13 uses a different approach to store the access control information and returns to the old performance. Further highlights include: **Geomaps** are a new map type that displays geo-related topics on a [[http://www.openstreetmap.org/|OpenStreetMap]]. An **Association Type Editor** let the user create custom association types. Furthermore, a whole bunch of GUI changes improves usability e.g. through **Cluster Moves** and more informed **Topic Revelation**. |
10 | | |
11 | | Of interest for administrators of a !DeepaMehta client-server installation might be the new [[http://karaf.apache.org/|Apache Karaf]]-based !DeepaMehta distribution. This makes it easy to run !DeepaMehta as a daemon process and to access via a remote shell. So, starting from version 4.0.13 !DeepaMehta comes in 2 flavors: the known "Standard Distribution" which focuses on easy setup for single users and the "Karaf Distribution" for client-server setups. |
| 9 | One main aspect of this release is to revoke the **Performance** loss introduced in !DeepaMehta 4.0.12 in conjunction with Access Control. !DeepaMehta 4.0.13 uses a different approach to store the access control information and returns to the old performance. Further highlights include: **Geomaps** are a new topicmap type that display geo-related topics on a [[http://www.openstreetmap.org/|OpenStreetMap]]. An **Association Type Editor** let the user create custom association types. Furthermore, a whole bunch of GUI changes improves usability e.g. through **Cluster Moves** and more informed **Topic Revelation**. |
| 10 | |
| 11 | Of interest for administrators of a client-server !DeepaMehta installation might be the new [[http://karaf.apache.org/|Apache Karaf]]-based !DeepaMehta distribution. This makes it easy to run !DeepaMehta as a daemon process and to access via a remote shell. So, starting from version 4.0.13 !DeepaMehta comes in 2 flavors: the known "Standard Distribution" which focuses on small download size and easy setup for single users and the **Karaf Distribution** for client-server setups. |
| 12 | |
| 13 | !DeepaMehta 4.0.13 is ready for **server-side HTML generation** based on [[http://www.thymeleaf.org/|Thymeleaf]] templates. So, along with single-page AJAX applications, the !DeepaMehta plugin/application developer can choose between 2 architectural styles. To start with server-side HTML generation install the external [[https://github.com/jri/dm4-webactivator|DeepaMehta 4 Web Activator]] plugin. |
| 14 | |
| 15 | Several improvements in the !DeepaMehta framework simplify the life of plugin developers, in particular when listening to events and providing/consuming services. Last but not least several 3rd-party components are updated, most notably [[http://www.neo4j.org/|Neo4j]] 1.2 -> 1.8 |
58 | | * A plugin consumes services by annotation. The `consumedServiceInterfaces` config property is no longer required (#367). |
59 | | * A plugin's provided service is automatically picked up by the Core. The `providedServiceInterface` config property is no longer required (#368). |
60 | | * Flexible REST resources registration: a plugin which provides no Root Resource can still provide JAX-RS provider classes [2b464811]. |
61 | | * Client-side load mechanism for auxiliary scripts: scripts located in `script/helper/` are loaded synchronously ''before'' the plugin is loaded (#372). |
62 | | * The "association" part of a RelatedTopic is serialized (#266). |
63 | | * More efficient aggregation update logic and idempotent operations (#319). |
64 | | * Refactored internal object fetch/store code (#340). |
65 | | * 3 new core events: `PreUpdateAssociation`, `PostUpdateAssociation`, `IntroduceAssociationType` [654d9c7b][3645932c]. |
66 | | * New client-side event `option_topics` allows filtering selection lists (comboboxes and checkbox lists) (#345). |
67 | | * Webclient API: the Topic's and Association's `composite` property contains true `Topic` objects (formerly plain JavaScript objects) [3105fee2]. |
| 62 | * Simplified service providing/consumption: |
| 63 | * A plugin consumes services by annotation. The `consumedServiceInterfaces` config property is no longer required (#367). |
| 64 | * A plugin's provided service is automatically picked up by the Core. The `providedServiceInterface` config property is no longer required (#368). |
| 65 | * Further server-side improvements: |
| 66 | * The concept of "internal plugin events" is replaced by method overriding. This, importing certain listener interfaces is no longer required (#366). |
| 67 | * Flexible REST resources registration: a plugin which provides no Root Resource can still provide JAX-RS provider classes [2b464811]. |
| 68 | * More efficient aggregation update logic and idempotent operations (#319). |
| 69 | * 3 new core events: `PreUpdateAssociation`, `PostUpdateAssociation`, `IntroduceAssociationType` [654d9c7b][3645932c]. |
| 70 | * The "association" part of a RelatedTopic is serialized (#266). |
| 71 | * Refactored internal object fetch/store code (#340). |
| 72 | * Client-side improvements: |
| 73 | * Client-side load mechanism for auxiliary scripts: scripts located in `script/helper/` are loaded synchronously ''before'' the plugin is loaded. This allows e.g. several renderers to share common code (#372). |
| 74 | * New client-side event `option_topics` allows filtering selection lists. Applies to both, comboboxes and checkbox lists (#345). |
| 75 | * Webclient API: the Topic's and Association's `composite` property contains true `Topic` objects (formerly plain !JavaScript objects) and thus enables the use of the Topic API [3105fee2]. |