- [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
- [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
- [diagram] Add support for rendering ghost/template elements during node creation #221
- [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 theargs
map #181 - [websocket] Remove listing on
stdin
fromWebsocketServerLauncher
#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 forSelectAction
s #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 toCLIParser
#214 - [deps] Remove upper bounds version constraints for Guice and Guava #216
- [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
- This includes breaking changes due to major API changes in Jetty and the following new minimum versions:
- [operation] Rework
OperationHandler
to provide an optional command instead of direct execution to allow more execution control #187Abstract<XYZ>
base implementations were deprecated in favor ofGModelOperationHandler
andEMFOperationHandler
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
andEMFNotationModelState
are now interfaces instead of classes- Add
EMFModelStateImpl
andEMFNotationModelStateImpl
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 ofRequestModelAction
as proper request action- Introduce a
submitInitialModel
method that is called by theRequestModelActionHandler
- Introduce a
- Remove
configureClientActions
fromDiagramModule
as client actions are now implicitly configured viaInitializeClientSession
request - Remove
ClientActionHandler
and replace withClientActionForwarder
- Rename
ServerStatusAction
->StatusAction
andServerMessageAction
->MessageAction
- Refactor
- [deps] Set Java compliance level to Java 17 as Java 11 is now EOL #217
- [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 avoidNullPointerExceptions
s 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
- [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
ModelSourceLoader
→SourceModelStorage
ModelSourceWatcher
→SourceModelWatcher
- Added method to
SourceModelStorage
- [model] Refactoring as part of adding new GLSP examples #159, #161
- Renamed
setRoot
toupdateRoot
in model state to better reflect dependent updates, remove re-generation of command stack in method but add index re-generation
- Renamed
- [operation] Refactoring as part of cleaning up operation handlers #164
- Renamed
CreateEdgeOperationHandler
toAbstractCreateEdgeOperationHandler
- Renamed
CreateNodeOperationHandler
toAbstractCreateNodeOperationHandler
- Renamed
- [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 prefixGModel
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
toSourceModelChangedAction
including handlers #171
- [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 theDiagramConfiguration
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 allGModelElement
s. This can be used to provide additional information in form of anargs
map without having to extend theGModel
type #100 - [model] Extended default type mapping and added builder for
GArgumentable
elements and corresponding utility classes #105 - [protocol] Added
fileUri
property toSaveModelAction
and updatedSaveModelActionHandler
accordingly #103 - [protocol] Added optional
reason
string property toSetDirtyStateAction
. 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 theActionDispatcher
. This enables queuing of actions until the next model update has been processed. #141 - [protocol] Align server-side action definitions with protocol definition. #142
- [diagram] Merged the
ServerLayoutConfiguration
API into theDiagramConfiguration
API. The standaloneServerLayoutConfiguration
is now deprecated and no longer supported #95 - [model] Renamed
ModelFactory
toModelSourceLoader
and adapted interface method. This also affects implementing classes like theJsonFileModelFactory
#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 importorg.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
andDisposeClientSessionAction
. #123 - [di] Complete rework of DI architecture. Your main module now has to extend
DiagramModule
instead ofGLSPModule
. 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.