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

Structurizr EMC Driver #112

Open
kolovos opened this issue Jul 17, 2024 · 6 comments
Open

Structurizr EMC Driver #112

kolovos opened this issue Jul 17, 2024 · 6 comments
Labels
enhancement New feature or request

Comments

@kolovos
Copy link
Contributor

kolovos commented Jul 17, 2024

Structurizr is a textual DSL for software architecture diagrams that appears to be gaining momentum. It would be nice to develop an EMC driver for it on top of its Java API.

@kolovos kolovos added the enhancement New feature or request label Jul 17, 2024
@dandelion-lowcode
Copy link

I have created a first draft with tests and code coverage (~90%). I will improve it during these weeks.

If this is valuable, I may also need some guidance regarding the project format (Maven, packages...) towards a potential PR.

@kolovos
Copy link
Contributor Author

kolovos commented Sep 5, 2024

Wow - this is amazing! It'd be nice to also include a .dt plugin in the PR for consistency with the rest of the drivers. Please let me know if there's anything I can help with!

@dandelion-lowcode
Copy link

dandelion-lowcode commented Sep 5, 2024

Thanks. I have created the .dt plugin and uploaded the tests.

Required stuff:

  • Fixing the feature and updatesite plugins - I don't recall how to do it. At the moment they are just placeholder folders.
  • Fixing the tests:
    • they use resources that I have put on a folder and, although they "work on my machine" :) in a Maven build, but I couldn't get them to work in a plugin scenario.
    • Created StructurizrTestSuite and StructurizrTests classes and now resources are gathered using FileUtil.getFileStandalone. Still, I get compilation problems.

Finer stuff:

  • An implementation which differentiates between getAllOfType and getAllOfKind
  • Right now the property getter/setter acts upon a limited set of properties (i.e., name, description, tag). While these may be sufficient, perhaps this could be improved by allowing to access all the existing getters and setters. (JavaPropertyS/Getter?)
  • There are probably too many dependencies. I have been adding JARs until there were no more ClassNotFound exceptions. I may have messed up re-exports in the plugins or something.
  • Probably writing a blog entry (?)

@kolovos
Copy link
Contributor Author

kolovos commented Oct 1, 2024

Fixing the feature and updatesite plugins - I don't recall how to do it. At the moment they are just placeholder folders.

If you're considering contributing the driver to Epsilon, it may make sense to fork Epsilon and edit its update site, target platform etc. If you'd like to keep it in a separate repo for a while until it becomes more mature, you could check out the features and update site plugins from the Cameo driver

Right now the property getter/setter acts upon a limited set of properties (i.e., name, description, tag).

Interpeting foo.x as foo.getX()/foo.setX() is something that the existing JavaPropertyGetter/JavaPropertySetter classes already do for all objects in an Epsilon program, so the Structurizr property getters/setters shouldn't need to deal with such properties in a special way.

@dandelion-lowcode
Copy link

Thanks, Dimitris. I think it is sensible to leave it in a separate repository for now. Also, do you think it makes sense to transfer it to epsilonlabs? I would need permissions for that, though.

@kolovos
Copy link
Contributor Author

kolovos commented Oct 7, 2024

You're more than welcome to move the repo to epsilonlabs! I've just invited you to the organisation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants