Changes between Version 130 and Version 131 of ReleaseNotes


Ignore:
Timestamp:
20.10.2015 18:57:13 (6 years ago)
Author:
jri
Comment:

4.7 release notes, pt. 3

Legend:

Unmodified
Added
Removed
Modified
  • ReleaseNotes

    v130 v131  
    99You can update any !DeepaMehta 4 installation which is not older than !DeepaMehta 4.1. For installation and update instructions see the [[https://github.com/jri/deepamehta#readme|README]]. 
    1010 
    11 For plugin developers: see the BREAKING CHANGES in the tickets marked in **#bold**. 
     11For plugin developers and server administrators: see the BREAKING CHANGES in the tickets marked in **#bold**. 
    1212 
    1313New features: 
     
    2121Bug fixes: 
    2222* Anonymous can browse public file repos (#573). 
     23* A file whose path contains a "+" character is properly rendered in the detail panel (#819). 
     24* A folder created by the File Browser's "Create Folder" command show's up in the detail panel immediately (#820). 
     25* Creating a file browser when one already exists doesn't throw an error (#826). 
    2326 
    2427Changes: 
    2528* We switched back from Pax Web to Felix HTTP due to the way Pax Web handles an OSGi `HttpContext` (#448). 
    2629* The `dm4.webservice.path` config property allows switching between Pax Web and Felix HTTP without recompiling the Core (#448). 
    27 * The default value for the dm4.filerepo.path config property is `/` instead of empty. `/` regards the entire file system as the DM file repo (#832). 
     30* The default value for the dm4.filerepo.path config property is `/` instead of empty. `/` regards the entire file system as the DM file repo (**#832**). 
     31* A file repository path contained in a `/files/` or `/filerepo/` request must be encoded as a URI component (**#819**). 
    2832* The `WebPublishingService` is an internal Core facility. It is deliberately not consumable as an OSGi service (#834). 
    2933 
    3034Plugin Development Framework: 
    3135* **Configuration Facility** (#830). 
    32 * The `@Inject` annotation allows a plugin the injection of arbitrary OSGi services, not only services provided by other DM plugins (#835). 
    33 * More "Convention over Configuration": A service interface must no longer extend `PluginService` and must no longer be located in the plugin's `service` package. Instead the service interface name must end with `Service` (**#836**). 
    34 * The standard workspace assignment can be suppressed on a per-code block basis (instead of per-request) (**#752**). 
    35 * Changes in 2 JSON utility methods (**ticket:832#comment:3**). 
     36* Core module: 
     37    * The `@Inject` annotation allows a plugin the injection of arbitrary OSGi services, not only services provided by other DM plugins (#835). 
     38    * Core API: get associations by key/value (#807). 
     39    * More "Convention over Configuration": A service interface must no longer extend `PluginService` and must no longer be located in the plugin's `service` package. Instead the service interface name must end with `Service` (**#836**). 
     40    * The standard workspace assignment can be suppressed on a per-code block basis (instead of per-request) (**#752**). 
     41    * `preInstall()` hook (#843). 
     42    * The DM Core Service can be statically accessed from everywhere. This is useful e.g. in JAX-RS provider classes (#812). 
     43    * Changes in 2 JSON utility methods (**ticket:832#comment:3**). 
     44* Webservice module: 
     45    * Exception handling is unified for static and dynamic resources, in particular: 1) Logging the exception, and 2) Enriching the response with an error entity (#484). 
    3646* Webclient module: 
     47    * The Webclient supports **Hierarchical Menus** (#758). 
    3748    * Redesigned search mode extension mechanism (**#839**). 
    3849    * `dm4c.open_error_dialog()` opens an error dialog and renders a server response (ticket:815#comment:16). 
    39 * `preInstall()` hook (#843). 
    4050* Bug fixes: 
    4151    * If an error occurs in a plugin's `shutdown()` hook the error is logged and stopping the plugin proceeds (#831). 
     52    * Core `AccessControl`'s `assignToWorkspace()` method works also for associations (#827). 
    4253 
    4354----