Skip to content

Latest commit

 

History

History
137 lines (110 loc) · 14.6 KB

CHANGELOG.md

File metadata and controls

137 lines (110 loc) · 14.6 KB

Eclipse GLSP Server Changelog

v2.3.0 - active

Changes

  • [API] Fix: do not bind the DefaultActionDispatcher as ActionHandler, so it can be correctly disposed and the thread is closed at the end of a session #246 - Contributed on behalf of Axon Ivy AG

Potentially Breaking Changes

Changes

  • [build] Restrict log4j version to 2.19.0 <= x <= 2.23.1 for maven #230
  • [model] Allow definition of resize handle locations for GShapeElements #231
  • [api] Improve extensibility of DefaultActionDispatcher #235- Contributed on behalf of Axon Ivy AG

Changes

  • [diagram] Add support for rendering ghost/template elements during node creation #221

Changes

  • [graph] Updated the Graph model and add Layoutable interface #175 - Contributed on behalf of STMicroelectronics
  • [layout] Extend ComputedBoundsAction to also provide route data for client-side routed edges and store source/target point in the args map #181
  • [websocket] Remove listing on stdin from WebsocketServerLauncher #189
  • [diagram] Fix a bug that prevented stable ids within one session when using the IdKeeperAdapter #192 - Contributed on behalf of STMicroelectronics
  • [API] Introduce deselectAll flag for SelectActions #204
  • [API] Add support for progress reporting #205
  • [diagram] Add support for handling reconnection requests to RequestModelActionHandler #208
  • [diagram] Add support for dynamic edge type hints #210
    • Provide EdgeCreationChecker API. Adopters can implement this to handle dynamic edge creation validation requests.
  • [launch] Add hostname arg to CLIParser #214
  • [deps] Remove upper bounds version constraints for Guice and Guava #216

Breaking Changes

  • [websocket] Update to Jetty Websocket 10 #185 #186 - Contributed on behalf of STMicroelectronics
    • This includes breaking changes due to major API changes in Jetty and the following new minimum versions:
      • Jetty 9.x -> Jetty 10.0.13
      • LSP4J -> 0.8.0 -> 0.11.0
      • ELK 0.7.0 -> 0.8.1
  • [operation] Rework OperationHandler to provide an optional command instead of direct execution to allow more execution control #187
    • Abstract<XYZ> base implementations were deprecated in favor of GModelOperationHandler and EMFOperationHandler base classes
    • Long-term deprecated and unused Basic<XYZ> base classes were removed
  • [modelstate] Use interface-injection for all subclasses of GModelState (EMFModelState, EMFNotationModelState) #199
    • EMFModelState and EMFNotationModelState are now interfaces instead of classes
    • Add EMFModelStateImpl and EMFNotationModelStateImpl classes
    • Update related modules to inject these GModelState sub-types as a Singleton
  • [validation] Add explicit support and API for live and batch validation #200
  • [server] Change default ports from 5007 (and 8081 for websockets) to 0, which implies autoassignment by the OS #198
  • [API] Remove deprecated GConstants.STACK constant #209
  • [API] Revise model loading and client action handling #211
    • Refactor ModelSubmissionHandler to enable handling of RequestModelAction as proper request action
      • Introduce a submitInitialModel method that is called by the RequestModelActionHandler
    • Remove configureClientActions from DiagramModule as client actions are now implicitly configured via InitializeClientSession request
    • Remove ClientActionHandler and replace with ClientActionForwarder
    • Rename ServerStatusAction -> StatusAction and ServerMessageAction -> MessageAction
  • [deps] Set Java compliance level to Java 17 as Java 11 is now EOL #217

Changes

  • [documentation] Improved existing API javadoc and added missing documentation for service interfaces. #164 - Contributed on behalf of STMicroelectronics
  • [graph] Fixed a bug that lead to incomplete GModelIndex initialization #143
  • [example] Improved styling and cleaned up code of the workflow example #148 #156
  • [gson] Ensure that DefaultServerGsonConfigurator properly disposes temporary DI diagram sessions after server initialization.#151
  • [layout] Ensure that LayoutEngine is injected as optional field to avoid NullPointerExceptionss if no implementation is bound #153
  • [build] Remove dependency to org.apache.commons.io #157
  • [emf] Inception of new org.eclipse.glsp.server.emf package + example models
    • Provides reusable base classes for EMF-based source models #159
  • [graph] Introduced GShapePrerenderedElementBuilder to enable easy construction of shaped prerendered elements eg. foreign object elements. #168
  • [diagram] Fixed a bug that could occur during saving by ensuring that all pending actions are dispatched before a client session is disposed. #172

Breaking Changes

  • [protocol] Align server actions with the definitions in @eclipse-glsp-protocol #142
    • Affects methods and return types of all action classes.
  • [model] Source model refactoring #154
    • ModelSourceLoaderSourceModelStorage
    • ModelSourceWatcherSourceModelWatcher
    • Added method to SourceModelStorage
  • [model] Refactoring as part of adding new GLSP examples #159, #161
    • Renamed setRoot to updateRoot in model state to better reflect dependent updates, remove re-generation of command stack in method but add index re-generation
  • [operation] Refactoring as part of cleaning up operation handlers #164
    • Renamed CreateEdgeOperationHandler to AbstractCreateEdgeOperationHandler
    • Renamed CreateNodeOperationHandler to AbstractCreateNodeOperationHandler
  • [gmodel] Move base diagram module and operation handlers that operate directly on GModels (as a model source) to the dedicated package org.eclipse.glsp.server.gmodel and add prefix GModel in the class name #165
  • [logging] Update from log4j 1.x to log4j 2.17.1. #163
    • Affects logger creation across all classes
  • [protocol] Rename ModelSourceChangedAction to SourceModelChangedAction including handlers #171

Changes

  • [websocket] Fixed issue that was caused by reusing a shared injector for each client connection #91
  • [navigation] Added a utility class for 'JsonOpenerOptions' #92
  • [diagram] Merged the ServerLayoutConfiguration API into the DiagramConfiguration API. #95
  • [model] Reworked model update flow. All aspects of the update process are now handled by the ModelSubmissionHandler #122
  • [model] Reworked and split ModelFactory API into a dedicated component responsible for loading the model source (ModelSourceLoader) and a component responsible for transforming the current modelstate into its GModel-representation (GModelFactory) #96
  • [protocol] Added implementation for SetViewportAction #99
  • [model] Introduced GArgumentable interface which is implemented by all GModelElements. This can be used to provide additional information in form of an args map without having to extend the GModel type #100
  • [model] Extended default type mapping and added builder for GArgumentable elements and corresponding utility classes #105
  • [protocol] Added fileUri property to SaveModelAction and updated SaveModelActionHandler accordingly #103
  • [protocol] Added optional reason string property to SetDirtyStateAction. This property indicates the reason that caused to dirty state change and enables more fine granular handling of dirty state changes #101
  • [build] Update dependencies of Google Guava (>= 30.1) and Google Guice (>= 5.0.0). #119
  • [protocol] Refactor the base communication protocol to support initializing and disposing a client session. #123
  • [server] The org.apache.log4j dependency is not reexported any more when consumed as p2 artifact. #43
  • [di] Complete rework of DI architecture. Move away from one global injector per application. Instead use one global server injector and dedicated child injectors for each diagram session. #127
  • [launch] Improve customizability of DefaultGLSPServerLauncher. #128
  • [model] Add properties map in model state to store arbitrary properties that are persistent between handler calls. #132
  • [server] Refactor json-rpc protocol and DefaultGLSPServerImplementation. #133
  • [action] Rework ActionHandler & OperationHandler API. #135
  • [action] Introduce dispatchAfterNextUpdate functionality for the ActionDispatcher. This enables queuing of actions until the next model update has been processed. #141
  • [protocol] Align server-side action definitions with protocol definition. #142

Breaking Changes

  • [diagram] Merged the ServerLayoutConfiguration API into the DiagramConfiguration API. The standalone ServerLayoutConfiguration is now deprecated and no longer supported #95
  • [model] Renamed ModelFactory to ModelSourceLoader and adapted interface method. This also affects implementing classes like the JsonFileModelFactory #96
  • [model] Reworked ModelSubmissionHandler API. This includes changes of method names and parameters #101 #197
  • [build] Update dependencies of Google Guava (>= 30.1) and Google Guice (>= 5.0.0). #119
  • [build] The org.apache.log4j dependency is not reexported any more when consumed as p2 artifact. You need to import org.apache.log4j in your own plugins if you use the log4j API there. #43
  • [protocol] Refactor the base communication protocol to support initializing and disposing a client session. Remove now obsolete InitializeClientSessionAction and DisposeClientSessionAction. #123
  • [di] Complete rework of DI architecture. Your main module now has to extend DiagramModule instead of GLSPModule. Includes restructurings,cleanups and refactorings that affect most of the API components. #127
  • [server] Refactor json-rpc protocol and DefaultGLSPServerImplementation. This includes changes of method names and parameters #133

This is the first release of Eclipse GLSP since it is hosted at the Eclipse Foundation. The 0.8.0 release includes new protocol message types and respective framework support for several new features, such as copy-paste, diagram navigation, etc. It also contains several clean-ups of the protocol and refactorings to simplify and streamline the API. The Eclipse Theia integration of GLSP features many improvements, such as problem marker integration, native context menu items and keybindings. Finally, several bug fixes and minor are part of this release as well.