Skip to content

Latest commit

 

History

History
81 lines (70 loc) · 8.1 KB

CHANGELOG.md

File metadata and controls

81 lines (70 loc) · 8.1 KB

Eclipse GLSP Server Changelog

v2.0.0 - 14/10/2023

Changes

  • [elk] Fix a bug in the GLSElkLayoutEngine that skipped layouting of certain edges #23 - Contributed on behalf of STMicroelectronics
  • [launch] The message sent after successful startup now also contains the effective socket port #30 - Contributed on behalf of STMicroelectronics
  • [launch] Fix a bug that caused the server to not properly dispose all resources when shutdown was called #33 - Contributed on behalf of STMicroelectronics
  • [diagram] Fix a bug to ensure that the copy&paste feature is working properly #35
  • [api] Ensure that all Promises and MaybePromises have proper rejection handling #36- Contributed on behalf of STMicroelectronics
  • [launch] Add a launcher component for starting WebSocket based GLSP servers #41
  • [validation] Add explicit support and API for live and batch validation #43
  • [launch] Launcher components now auto allocate a free port if the port argument is 0 #42
  • [server] Add support for server progress reporting #52
  • [diagram] Add support for handling reconnection requests to RequestModelActionHandler #54
  • [server] Update AbstractJsonModelStorage to ensure that Windows file paths are properly converted #55
  • [deps] Remove unneeded dependency to fs-extra #56
  • [diagram] Provide generic reusable base operation handlers for JSON-based source models #59
  • [diagram] Add support for dynamic edge type hints
    • Provide EdgeCreationChecker API. Adopters can implement this to handle dynamic edge creation validation requests. #60
  • [model] Introduce new GForeignObjectElement + builder class #61

Breaking Changes

  • [graph] Align GGraph model with newest changes from glsp-server #22 - Contributed on behalf of STMicroelectronics
    • Renamed interfaces:
      • EdgePlacement -> GEdgePlacement (affected classes: GEdgeLayoutable, GLabel)
      • GLayoutContainer -> GLayouting (affected classes: GCompartment, GGraph, GNode)
      • GShapePreRenderedElement -> GShapedPreRenderedElement
  • [deps] Update minimum requirements for Node to >=16.11.0 #32
  • [api] Restructure @eclipse-glsp/server-node package to provide entry points for both node and browser-only environments #37
    • The package has been renamed to @eclipse-glsp/server. This change affects all import namespaces.
    • New namespaces for environment specific code:
      • @eclipse-glsp/server/node
      • @eclipse-glsp/server/browser
  • [operation] Implement Command API and rework OperationHandler to provide an optional command instead of direct execution to allow more execution control (including undo & redo support) #38 #59
    • This includes major breaking changes across the whole API:
      • OperationHandler has been refactored from an interface to a common abstract base class. The execute method now has to return a MaybePromise<Command|undefined>
      • Refactor CreateOperationHandler to an interface instead of a class
      • Rename the services and handlers of the direct GModel library => consistent use of GModel prefix
      • The ModelState interface no longer has an isDirty flag. Dirty state is now handled by the CommandStack
  • [server] Default port has changed from 5007 (and 8081 for websocket) to 0, which implies autoassignment by the OS #42
  • [server] Refactored GLSPServer and GLSPServerLauncher API #44 - Contributed on behalf of STMicroelectronics
    • Server type definitions are now consumed from @eclipse-glsp/protocol
    • GLSPServer implementation is no longer relies on json-rpc implementation details.
    • JSON-RPC setup is now done with JsonRpcGLSPServerLauncher
  • Provide CommandStack API to support undo/redo of model changes #38 #39 - Contributed on behalf of STMicroelectronics
    • ModelState no longer has a isDirty property
    • Breaking refactor of OperationHandler API
  • [deps] Update to inversify 6.x and Typescript 5.x. #48
    • GLSP uses a synchronous inversify context this means with inversify 6.x decorator methods (e.g. @postConstruct) with asynchronous results are no longer supported
  • Revise model loading and client action handling #57 #58
    • 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

Inception of the Node GLSP Server. This project provides the Node based server component for the Eclipse Graphical Language Platform (GLSP). The implementation of this server is aligned with the default Java based GLSP Server. The initial implementation was contributed on behalf of STMicroelectronics. The following list composes changes that have been made since the initial implementation.

Changes (since the initial contribution )

  • [core] Implement dispatchOnNextUpdate method that enables queuing of actions that should be dispatched after the next graphical model update. #1 - Contributed on behalf of STMicroelectronics
  • [diagram] Implement LayoutEngine API for server-side autolayouting & provide an integration package for layout engines based on ELK. #2 #5 - Contributed on behalf of STMicroelectronics

Breaking Changes

  • [model] Source model refactorings #11
    • ModelSourceLoaderSourceModelStorage
    • Added method to SourceModelStorage
  • [model] Refactor ModelState API #20
    • Introduce updateRoot method
    • DefaultModelState => make root setter protected
  • [gmodel] Refactor & Move all base & helper classes for the direct GModel usecase into own gmodel-lib subdirectory #16