Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consume DI refactoring in Eclipse Integration #418

Closed
tortmayr opened this issue Oct 13, 2021 · 0 comments · Fixed by eclipse-glsp/glsp-eclipse-integration#45
Closed

Consume DI refactoring in Eclipse Integration #418

tortmayr opened this issue Oct 13, 2021 · 0 comments · Fixed by eclipse-glsp/glsp-eclipse-integration#45
Assignees
Labels

Comments

@tortmayr
Copy link
Contributor

In order to consume eclipse-glsp/glsp-server#127 the code base of the eclipse-integration needs to refactored.

As part of this change we can also remove the workaround of creating a new server for each editor tab as now all editor tabs/diagram widget can be handled by one glsp server instance.

tortmayr added a commit to eclipse-glsp/glsp-server that referenced this issue Oct 17, 2021
#421 Improve implementation of DefaultGLSPServer
- Update `DefaultGLSPServer` implementation so that request methods throw `ResponseErrorExceptions` instead of `GLSPServerExceptions` (see also [LSP4J core concepts](https://github.com/eclipse/lsp4j/blob/main/documentation/jsonrpc.md#response-errors)
-Refactor and rename `createClientSession` method of `ClientSessionManager` to `getOrCreateClientSession`
- Update behavior of `initialize` and `initializeClientSession` requests to enable multiple invocations with the same parameters.

#423 Rework "ServerConnectionListener" 
Refactor `ServerConnectionListener` to `GLSPServerListener` and allow listening to the following events:
- GLSPClient proxy connection
- Server initialization
- Server shutdown 

This also means that the server no longer needs to new which resources it should dispose on shutdown. Instead classes that should be disposed can listen on the shutdown-event and dispose themselves (e.g. ClientSessionManager)

Also: Improve general extensibility by changing the visibility of private fields of classes in the websocket package to `protected`
Improve interface documentation and mention when methods should notify a listener.

Fixes eclipse-glsp/glsp/issues/421
Fixes eclipse-glsp/glsp/issues/423

Required for eclipse-glsp/glsp/issues/418
tortmayr added a commit to eclipse-glsp/glsp-server that referenced this issue Oct 18, 2021
* #421 Improve implementation of DefaultGLSPServer


#421 Improve implementation of DefaultGLSPServer
- Update `DefaultGLSPServer` implementation so that request methods throw `ResponseErrorExceptions` instead of `GLSPServerExceptions` (see also [LSP4J core concepts](https://github.com/eclipse/lsp4j/blob/main/documentation/jsonrpc.md#response-errors)
-Refactor and rename `createClientSession` method of `ClientSessionManager` to `getOrCreateClientSession`
- Update behavior of `initialize` and `initializeClientSession` requests to enable multiple invocations with the same parameters.

#423 Rework "ServerConnectionListener" 
Refactor `ServerConnectionListener` to `GLSPServerListener` and allow listening to the following events:
- GLSPClient proxy connection
- Server initialization
- Server shutdown 

This also means that the server no longer needs to new which resources it should dispose on shutdown. Instead classes that should be disposed can listen on the shutdown-event and dispose themselves (e.g. ClientSessionManager)

Also: Improve general extensibility by changing the visibility of private fields of classes in the websocket package to `protected`
Improve interface documentation and mention when methods should notify a listener.

Fixes eclipse-glsp/glsp/issues/421
Fixes eclipse-glsp/glsp/issues/423

Required for eclipse-glsp/glsp/issues/418

* Suggestions for minor improvements

Co-authored-by: Philip Langer <planger@eclipsesource.com>
@tortmayr tortmayr self-assigned this Oct 21, 2021
tortmayr added a commit to eclipse-glsp/glsp-eclipse-integration that referenced this issue Oct 27, 2021
Server
- Update  dependencies to consume latest DI rework
- Update .tpd file and rename it to `r2021-03`
- Adapt existing server code to conform to latest API changes
- Align prefix for eclipse-integration specific classes. (Use `Ide` over `Eclipse`)
- Update  .settings/org.eclipse.jdt.ui.prefs for glsp.ide.editor to ensure that the copyright header for new files has the correct year.
- Introduce a wrapper `GLSPClient` implementation (`IdeGLSPClient`) that handles dedicated GLSPClient proxies for each client session and can be  connected to the `GLSPServer` (#420)
- GLSPDiagramEditor:
-- Refactor Browser-URL generation
-- Generate applicationID and send to client via url query
- Add command to DiagramMenu to open the current DiagramWidget in an external browser for debugging purposes.

Client:
- Update dependencies to latest glsp nightlies
- Adapt code to conform to latest protocol changes
- [WF-Example] Retrieve application id from url params
- [WF-Example] Update webpack config to  webpack 4 and ensure proper source-map generation for debugging

Fixes eclipse-glsp/glsp/issues/418
Fixes eclipse-glsp/glsp/issues/420
tortmayr added a commit to eclipse-glsp/glsp-eclipse-integration that referenced this issue Oct 27, 2021
Server
- Update  dependencies to consume latest DI rework
- Update .tpd file and rename it to `r2021-03`
- Adapt existing server code to conform to latest API changes
- Align prefix for eclipse-integration specific classes. (Use `Ide` over `Eclipse`)
- Update  .settings/org.eclipse.jdt.ui.prefs for glsp.ide.editor to ensure that the copyright header for new files has the correct year.
- Introduce a wrapper `GLSPClient` implementation (`IdeGLSPClient`) that handles dedicated GLSPClient proxies for each client session and can be  connected to the `GLSPServer` (#420)
- GLSPDiagramEditor:
-- Refactor Browser-URL generation
-- Generate applicationID and send to client via url query
- Add command to DiagramMenu to open the current DiagramWidget in an external browser for debugging purposes.

Client:
- Update dependencies to latest glsp nightlies
- Adapt code to conform to latest protocol changes
- [WF-Example] Retrieve application id from url params
- [WF-Example] Update webpack config to  webpack 4 and ensure proper source-map generation for debugging
- [WF-Example] Fix webpack build to support codicons (#406)

Fixes eclipse-glsp/glsp/issues/418
Fixes eclipse-glsp/glsp/issues/420
Part of eclipse-glsp/glsp/issues/406
tortmayr added a commit to eclipse-glsp/glsp-eclipse-integration that referenced this issue Nov 5, 2021
* #418#420 Consume server DI rework

Server
- Update  dependencies to consume latest DI rework
- Update .tpd file and rename it to `r2021-03`
- Adapt existing server code to conform to latest API changes
- Align prefix for eclipse-integration specific classes. (Use `Ide` over `Eclipse`)
- Update  .settings/org.eclipse.jdt.ui.prefs for glsp.ide.editor to ensure that the copyright header for new files has the correct year.
- Introduce a wrapper `GLSPClient` implementation (`IdeGLSPClient`) that handles dedicated GLSPClient proxies for each client session and can be  connected to the `GLSPServer` (#420)
- GLSPDiagramEditor:
-- Refactor Browser-URL generation
-- Generate applicationID and send to client via url query
- Add command to DiagramMenu to open the current DiagramWidget in an external browser for debugging purposes.

Client:
- Update dependencies to latest glsp nightlies
- Adapt code to conform to latest protocol changes
- [WF-Example] Retrieve application id from url params
- [WF-Example] Update webpack config to  webpack 4 and ensure proper source-map generation for debugging
- [WF-Example] Fix webpack build to support codicons (#406)

Fixes eclipse-glsp/glsp/issues/418
Fixes eclipse-glsp/glsp/issues/420
Part of eclipse-glsp/glsp/issues/406
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant