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

Cleanup/Refactor protocol for GLSPClient (JsonRpc) #94

Closed
tortmayr opened this issue Aug 11, 2020 · 1 comment
Closed

Cleanup/Refactor protocol for GLSPClient (JsonRpc) #94

tortmayr opened this issue Aug 11, 2020 · 1 comment
Assignees

Comments

@tortmayr
Copy link
Contributor

Currently the protocol defines a couple of different Notifications/Requests types:

  • ActionMessageNotification
  • InitializeRequest
  • ShutdownRequest
  • ExitNotification

This was previously necessary because we did not support request/response actions. Now we could clean this up and only communicate with the server via ActionMessageNotifications. The other requests/notifications can be refactored into actions.

tortmayr added a commit to eclipse-glsp/glsp-client that referenced this issue Aug 24, 2020
- Clean up communication and move implementation into glsp client
- Define a "clean" `GLSPClient` interface that is independent from the underlying communication protocol
- Provide a base implementation for a jsonrpc-based `GLSPClient`
- Update dependencies to sprotty 0.9.0
- Align dependency versions with Theia versions
- Add new DisposeClientAction to notify the server if a specific diagram client/widget can be disposed (e.g. on editor tab close)

Part of:
- eclipse-glsp/glsp/issues/104
- eclipse-glsp/glsp/issues/94
tortmayr added a commit to eclipse-glsp/glsp-server that referenced this issue Aug 24, 2020
- Refactor client-server communication into a base protocol and a jsonrpc specific implementation (#94)
- Cleanup protocol and implement (previously unused) shutdown method
- Add ClientSessionManager to track lifecycle of GLSP client connections (#96)
- Add listener-mechanism to react to lifecycle changes (used in 
DefaultModelStateProvider)
- Remove (now obsolete) GLSPClientProxyProvider
- Fix wrong version of guava in org.eclipse.glsp.graph pom.xml
- Add unique applicationId to InitializeParameters

Part of:
- eclipse-glsp/glsp/issues/104
- eclipse-glsp/glsp/issues/94
- eclipse-glsp/glsp/issues/96
tortmayr added a commit to eclipse-glsp/glsp-client that referenced this issue Aug 24, 2020
- Clean up communication and move implementation into glsp client
- Define a "clean" `GLSPClient` interface that is independent from the underlying communication protocol
- Provide a base implementation for a jsonrpc-based `GLSPClient`
- Update dependencies to sprotty 0.9.0
- Align dependency versions with Theia versions
- Add new DisposeClientAction to notify the server if a specific diagram client/widget can be disposed (e.g. on editor tab close)

Part of:
- eclipse-glsp/glsp/issues/104
- eclipse-glsp/glsp/issues/94
- eclipse-glsp/glsp/issues/96
tortmayr added a commit to eclipse-glsp/glsp-theia-integration that referenced this issue Aug 24, 2020
- Remove deprecated glsp client protcol and reuse the new API provided by @eclipse-glsp/client (#94 #96)
- Update dependencies to align with sprotty 0.9.0 and Theia 1.3.0. (104)
- Refactor glsp contributions to avoid dependencies on the (now deprecated) @theia/language module (#105)
- Provide a dedicated TheiaGLSPClient that uses the MessageService to propagate connection errors. (#39)
- Use unique application id in widgetId.

Requires: eclipse-glsp/glsp-client/pull/79

Part of:
- eclipse-glsp/glsp/issues/104
- eclipse-glsp/glsp/issues/94
- eclipse-glsp/glsp/issues/96
- eclipse-glsp/glsp/issues/105
- eclipse-glsp/glsp/issues/39
tortmayr added a commit to eclipse-glsp/glsp-theia-integration that referenced this issue Aug 24, 2020
- Remove deprecated glsp client protcol and reuse the new API provided by @eclipse-glsp/client (#94 #96)
- Update dependencies to align with sprotty 0.9.0 and Theia 1.3.0. (104)
- Refactor glsp contributions to avoid dependencies on the (now deprecated) @theia/language module (#105)
- Provide a dedicated TheiaGLSPClient that uses the MessageService to propagate connection errors. (#39)
- Use unique application id in widgetId.

Requires: eclipse-glsp/glsp-client/pull/79

Part of:
- eclipse-glsp/glsp/issues/104
- eclipse-glsp/glsp/issues/94
- eclipse-glsp/glsp/issues/96
- eclipse-glsp/glsp/issues/105
- eclipse-glsp/glsp/issues/39
tortmayr added a commit to eclipse-glsp/glsp-server that referenced this issue Aug 24, 2020
- Refactor client-server communication into a base protocol and a jsonrpc specific implementation (#94)
- Cleanup protocol and implement (previously unused) shutdown method
- Add ClientSessionManager to track lifecycle of GLSP client connections (#96)
- Add listener-mechanism to react to lifecycle changes (used in 
DefaultModelStateProvider)
- Remove (now obsolete) GLSPClientProxyProvider
- Fix wrong version of guava in org.eclipse.glsp.graph pom.xml
- Add unique applicationId to InitializeParameters

Part of:
- eclipse-glsp/glsp/issues/94
- eclipse-glsp/glsp/issues/96
tortmayr added a commit to eclipse-glsp/glsp-server that referenced this issue Aug 24, 2020
- Refactor client-server communication into a base protocol and a jsonrpc specific implementation (#94)
- Cleanup protocol and implement (previously unused) shutdown method
- Add ClientSessionManager to track lifecycle of GLSP client connections (#96)
- Add listener-mechanism to react to lifecycle changes (used in 
DefaultModelStateProvider)
- Remove (now obsolete) GLSPClientProxyProvider
- Fix wrong version of guava in org.eclipse.glsp.graph pom.xml
- Add unique applicationId to InitializeParameters

Part of:
- eclipse-glsp/glsp/issues/94
- eclipse-glsp/glsp/issues/96
tortmayr added a commit to eclipse-glsp/glsp-examples that referenced this issue Aug 24, 2020
-Update dependencies to conform to sprotty 0.9.0 and Theia 1.3.0
- Adapt code to confrom to client/server changes
- Change argument for passing the server port to "WF_GLSP"

Requires: 
- eclipse-glsp/glsp-server/pull/73
- eclipse-glsp/glsp-theia-integration/pull/44

Part of:
- eclipse-glsp/glsp/issues/104
- eclipse-glsp/glsp/issues/94
- eclipse-glsp/glsp/issues/96
- eclipse-glsp/glsp/issues/105
@tortmayr
Copy link
Contributor Author

The attached PRs provide a refactoring. All client/widget id dependent communication is now done via ActionMessage. However there are still some scenarios where action messages are not really suitable. In particular these are:

  • Server initialization and server shutdown.

tortmayr added a commit to eclipse-glsp/glsp-client that referenced this issue Aug 25, 2020
* #94 #104 #96  Clean up communication protocol 

- Clean up communication and move implementation into glsp client
- Define a "clean" `GLSPClient` interface that is independent from the underlying communication protocol
- Provide a base implementation for a jsonrpc-based `GLSPClient`
- Update dependencies to sprotty 0.9.0
- Align dependency versions with Theia versions
- Add new DisposeClientAction to notify the server if a specific diagram client/widget can be disposed (e.g. on editor tab close)

Part of:
- eclipse-glsp/glsp/issues/104
- eclipse-glsp/glsp/issues/94
- eclipse-glsp/glsp/issues/96

* Fix minors

* Adapt copyright headers

Co-authored-by: Philip Langer <planger@eclipsesource.com>
tortmayr added a commit to eclipse-glsp/glsp-server that referenced this issue Aug 25, 2020
* #96 #94 Cleanup and refactor client-server communication

- Refactor client-server communication into a base protocol and a jsonrpc specific implementation (#94)
- Cleanup protocol and implement (previously unused) shutdown method
- Add ClientSessionManager to track lifecycle of GLSP client connections (#96)
- Add listener-mechanism to react to lifecycle changes (used in 
DefaultModelStateProvider)
- Remove (now obsolete) GLSPClientProxyProvider
- Fix wrong version of guava in org.eclipse.glsp.graph pom.xml
- Add unique applicationId to InitializeParameters

Part of:
- eclipse-glsp/glsp/issues/94
- eclipse-glsp/glsp/issues/96

* Fix minors

* Adapt copyright headers and fix checkstyle warnings

Co-authored-by: Philip Langer <planger@eclipsesource.com>
tortmayr added a commit to eclipse-glsp/glsp-theia-integration that referenced this issue Aug 25, 2020
#44)

* #105 #104 #96 #94 #39 Cleanup and refactor client-server communication

- Remove deprecated glsp client protcol and reuse the new API provided by @eclipse-glsp/client (#94 #96)
- Update dependencies to align with sprotty 0.9.0 and Theia 1.3.0. (104)
- Refactor glsp contributions to avoid dependencies on the (now deprecated) @theia/language module (#105)
- Provide a dedicated TheiaGLSPClient that uses the MessageService to propagate connection errors. (#39)
- Use unique application id in widgetId.

Requires: eclipse-glsp/glsp-client/pull/79

Part of:
- eclipse-glsp/glsp/issues/104
- eclipse-glsp/glsp/issues/94
- eclipse-glsp/glsp/issues/96
- eclipse-glsp/glsp/issues/105
- eclipse-glsp/glsp/issues/39

* Fix minors and remove dep to @theia/languages

Co-authored-by: Philip Langer <planger@eclipsesource.com>
@tortmayr tortmayr self-assigned this Aug 25, 2020
tortmayr added a commit to eclipse-glsp/glsp-examples that referenced this issue Aug 25, 2020
* #105 #104 #96 #94 #39 Refactor client-server communication

-Update dependencies to conform to sprotty 0.9.0 and Theia 1.3.0
- Adapt code to confrom to client/server changes
- Change argument for passing the server port to "WF_GLSP"

Requires: 
- eclipse-glsp/glsp-server/pull/73
- eclipse-glsp/glsp-theia-integration/pull/44

Part of:
- eclipse-glsp/glsp/issues/104
- eclipse-glsp/glsp/issues/94
- eclipse-glsp/glsp/issues/96
- eclipse-glsp/glsp/issues/105

* Update launch config to changed env args

* Adapt copyright headers

* Update versions

Co-authored-by: Philip Langer <planger@eclipsesource.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant