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

#455 #456 #348 Update coffee-editor to latest versions and run servers as JAR products #457

Merged
merged 34 commits into from
Nov 4, 2022

Conversation

ndoschek
Copy link
Contributor

@ndoschek ndoschek commented Sep 7, 2022

#455 Update to Model Server V2 and latest GLSP version

  • Migrate Model Server to latest version and to V2
  • Migrate GLSP Server to latest version 1.1.0
  • Reuse EMF server and modelserver glsp integration code and remove obsolete classes

#456 Consider running backend services as JAR products

  • Run Model Server product as Java application instead of Eclipse product
    • Package Model Server as standalone JAR
  • Run GLSP Server product as Java application instead of Eclipse product
    • Package GLSP server as standalone JAR

General

  • Move example project 'SuperBrewer3000' to client/workspace and adapt all paths accordingly
  • Rename frontend folder to client and adapt all paths

Client

  • Update client code to Theia 1.27.0 an current versions of glsp, sprotty and emfcloud components
  • Update to newer typescript version and adapt code accordingly
  • Update theia plugins to newest compatible versions to ensure cpp and java debugging
  • Reuse tsconfig, eslint and prettier configs by eclipse-glsp
  • Align build scripts, devDependencies and package.json descriptions
  • Fix custom file icons alignment
  • Migrate run.sh to nodejs #348 Replace run.sh script with ts-node scripts and yarn scripts
  • Create parent package.json that offers the main build scripts build:server and build:client as well as a convenience script that combines those two
  • Move copying of backend products in the build of the repsonsible client package coffee-servers and replace with ts-node script
  • Move all server backend registrations to coffee-servers package
  • Fix ESLint warnings and leftovers
  • Update Getting Started
    • Enhance styling and replace outdated Theia variables
    • Structure Java and CPP features in detail sections
    • Improve link styling, behaviour and add titles
  • Add EclipseSource application branding
  • Align icons in diagram editor and coffee tree editor
  • Align CSS stylings (diagram editor, coffee tree editor, workflow analyser)
  • Update coffee-tree-editor
    • Update tree node factory and assign actual types and ids to the tree nodes for easier navigation and identification of the tree nodes
    • Update commands to new ModelServerCommand structure
    • Introduce typescript version of the semantic model (coffee-model) and provide type checks for all coffee model elements
    • Update add/remove/edit tree elements either via custom commands (e.g. add/removing nodes and flows), otherwise use json patches for editing

Model Server

  • Update coffee model and use ID attributes for EObjects
    • Rename RAM member type to ramType to avoid possible overlaps with json attributes $type and type
  • Fix Coffee resource handling
    • Remove obsolete coffee codec
    • Use basic generated coffee resource implementation
    • Remove unused CoffeeModelServerClient
  • Cleanup id attribute handling and naming
  • Fix Coffee commands
    • Ensure UUIDs are used as id attributes
    • Reuse notation element commands from modelserver-glsp-integration

WorkflowAnalyzerServer

  • Fix debugging of WorkflowAnalyzerServer
    • Clean up start up arguments
    • Start wf-analyzer server with arguments to be able to connect from client in debug mode (either start:debug oder launch config external servers)

Remark:

Resolves #455
Resolves #456
Resolves #348
Resolves #449
Resolves #180
Resolves #260
Resolves #246

#455 Update to Model Server V2 and latest GLSP version
- Migrate Model Server to latest version and to V2

#456 Consider running backend services as JAR products
- Run Model Server product as Java application instead of Eclipse product
  - TODO: Package as standalone JAR
#455 Update to Model Server V2 and latest GLSP version
- Migrate GLSP Server to latest version 1.1.0
- Reuse EMF server and modelserver glsp integration code and remove obsolete classes

#456 Consider running backend services as JAR products
- Run GLSP Server product as Java application instead of Eclipse product
  - TODO: Package as standalone JAR
#456 Consider running backend services as JAR products
- Run Model Server product as Java application instead of Eclipse product
  - Package as standalone JAR
- Run GLSP Server product as Java application instead of Eclipse product
  - Package as standalone JAR
- Move example project 'SuperBrewer3000' to client/workspace and adapt all paths accordingly
- Rename frontend folder to client and adapt all paths
- Update client code to Theia 1.27.0 an current versions of glsp, sprotty and emfcloud components
- Update to newer typescript version and adapt code accordingly
- Update theia plugins to newest compatible versions to ensure cpp and java debugging
- Reuse tsconfig, eslint and prettier configs by eclipse-glsp
- Align build scripts, devDependencies and package.json descriptions
- Fix custom file icons alignment
-  #348 Replace run.sh script with ts-node scripts and yarn scripts
  - Create parent package.json that offers the main build scripts build:server and build:client as well as a convenience script that combines those two
  - Move copying of backend products in the build of the repsonsible client package coffee-servers and replace with ts-node script
  - Move all server backend registrations to coffee-servers package
- Enhance styling and replace outdated Theia variables
- Structure Java and CPP features in detail sections
- Improve link styling, behaviour and add titles
- Remove obsolete coffee codec
- Use basic generated coffee resource implementation
- Remove unused CoffeeModelServerClient
- Ensure UUIDs are used as id attributes
- Reuse notation element commands from modelserver-glsp-integration
- Clean up start up arguments
- Start wf-analyzer server with arguments to be able to connect from client in debug mode (either start:debug oder launch config external servers)
- Align icons for workflow elements in 
  - GLSP tool palette
  - GLSP command palette
  - Theia tree editor
- Rename RAM member type to ramType to avoid possible overlaps with json attributes $type and type
- Update tree node factory and assign actual types and ids to the tree nodes for easier navigation and identification of the tree nodes
- Update commands to new ModelServerCommand structure
- Introduce typescript version of the semantic model (coffee-model) and provide type checks for all coffee model elements
- Update add/remove/edit tree elements either via custom commands (e.g. add/removing nodes and flows), otherwise use json patches for editing

Workarounds:
- To use custom commands for editing, a simple adaptation in the model-server-client-v2 needs to be made (see PR eclipse-emfcloud/emfcloud-modelserver-theia#116), currently, we have a custom modelserver client implementation which should be removed once the PR is merged
- The CoffeeMasterTreeWidget overrides the theia-tree-editor one to be able to select nodes via its unique id. If the tree-editor is updated this custom implementation should be removed again.
- Lover node engine requirement to node 14
- Update modelserver-theia dependency
- Remove custom CoffeeModelServerClient
- Update wfconfig and coffee test resources to match current metamodels
I will open a follow up for this.
Is no longer needed, as we create files with new URIs during the compare
sgraband
sgraband previously approved these changes Sep 21, 2022
Copy link
Contributor

@sgraband sgraband left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you Nina! Changes work great!

I tested them, but did not do a full code review due to the size of the PR. However while shortly checking the changes i noticed nothing.

I also provided feedback on your inline comments with my commits and fixed the model comparison. Could you test the script once more?

Then i would ask @koegel to do a last testing round.

@ndoschek
Copy link
Contributor Author

Thanks @sgraband! I also re-tested and updated some small bits in the README.
In general, the demo works for me, however if I run it via the docker container, I cannot get the cpp debugging to run, did it work for you in the container?

@sgraband
Copy link
Contributor

I just retested and the debugging works for me! Thank you for the README changes 👍

@sgraband
Copy link
Contributor

For further improvements i created these follow ups:
#460
#459
#458

(And i guess we need to update the jenkins build as it seems to stil reference the run.sh script)

@ndoschek
Copy link
Contributor Author

I just retested and the debugging works for me! Thank you for the README changes +1

Thanks a lot @sgraband, then it is fine for me as well, perhaps I overlooked something in the setup.

For further improvements i created these follow ups: #460 #459 #458

Great thank you!

(And i guess we need to update the jenkins build as it seems to stil reference the run.sh script)

No, the Jenkinsfile is already updated, we have again the random vscode-ripgrep issues, although we added the necessary credentials, but it fails again randomly, I will re-trigger a little later, hopefully it will be successful at some point.

- Update colors for weighted flows
- Merge comparison css rules and add rules for arrow heads
- Align CSS colors of workflow analyser with diagram colors
- Ensure element creation of nested components for new ControlUnits
- Add workspace specific Theia settings
  - Disable auto-save for example workspace
- Remove node version restriction (also works with node 16)
- Fix label edit validation in GLSP diagram
- Revert node version restriction to `>=14 <16`
Copy link
Contributor

@eneufeld eneufeld left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will test the code now. But it looks good to me.
I left some comments.

README.md Show resolved Hide resolved
@eneufeld
Copy link
Contributor

eneufeld commented Nov 3, 2022

All in all I suggest to create some follow up tickets and merge this big PR

- Remove unused variables
- Introduce CSS variables for common colors
- Update README
Copy link
Contributor

@sgraband sgraband left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you Nina! Since the follow up tickets were created we should merge this and get started with the follow ups 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants