jhipster / generator-jhipster

JHipster is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures.
https://www.jhipster.tech
Apache License 2.0
21.34k stars 4.01k forks source link

[Feature request] Integrate Structurizr #2345

Closed thomastardy closed 8 years ago

thomastardy commented 8 years ago

Hi everyone,

I've seen the presentation by Simon Brown (@simonbrowndotje) about "Software architecture as code" at Devoxx BE where he showed off Structurizr (https://www.structurizr.com). I think this is a great way to have more up-to-date diagrams of your code.

I will integrate this in applications I generated using jhipster. But I thought it could be a good idea to integrate that in the generator itself. If all the generated apps already come with such documentation, which then can easily be updated while changing the application, I think this will result in much more documented applications.

What do you think about this?

If you think this is a good idea, I would like to take this chance and do the integration myself and contribute to jhipster.

jdubois commented 8 years ago

This is a non-OSS, paying product, see https://www.structurizr.com/pricing , so we can't integrate it into our project. I've already had lots of trouble with companies trying to put their for-pay product into JHipster, and clearly I don't want to go this way in the main generator. If one day we do the "plug in" system we're currently discussing, then this could be the solution -> companies could do their own proprietary plugin, that they would maintain themselves, and that would be separated from the main project.

simonbrowndotje commented 8 years ago

Thanks for the kind words @wibbo ... I think it's probably better if I add support for JHipster into the open source "Structurizr for Java" client library (https://github.com/structurizr/java) if needed. Since JHipster is creating Spring Boot apps though, this shouldn't be too tricky as Spring MVC is already supported. I'll take a look at creating a software architecture model for the sample app (https://github.com/jhipster/jhipster-sample-app) and let you know how I get on.

jdubois commented 8 years ago

@simonbrowndotje I'm not familiar with your product, of course, but it looks a bit like what we do at https://jhipster.github.io/jhipster_uml.html -> we have a DSL that could perhaps work with your product, maybe you could work something with the JHipster UML team

simonbrowndotje commented 8 years ago

Hi @wibbo ... here's some code that will generate a software architecture model for the Spring Boot part of the sample JHipster application -> https://github.com/structurizr/java/blob/master/structurizr-examples/src/com/structurizr/example/jhipster/JHipsterSampleApplication.java

And here are the diagrams -> https://structurizr.com/public/5651

Feel free to e-mail me with thoughts, comments, questions, etc.

thomastardy commented 8 years ago

Hi @simonbrowndotje Thanks a lot! I will have a look at it an integrate it in one of our applications.

deepu105 commented 8 years ago

The diagrams look nice On 15 Nov 2015 22:08, "Simon Brown" notifications@github.com wrote:

Hi @wibbo https://github.com/wibbo ... here's some code that will generate a software architecture model for the Spring Boot part of the sample JHipster application -> https://github.com/structurizr/java/blob/master/structurizr-examples/src/com/structurizr/example/jhipster/JHipsterSampleApplication.java

And here are the diagrams -> https://structurizr.com/public/5651

Feel free to e-mail me with thoughts, comments, questions, etc.

— Reply to this email directly or view it on GitHub https://github.com/jhipster/generator-jhipster/issues/2345#issuecomment-156813986 .

cbornet commented 8 years ago

Looks really nice. Too bad it's not free...

simonbrowndotje commented 8 years ago

Hosting on Pivotal Web Services isn't free either @cbornet ;-) But ... the free tier is free. As is the entirety of the client library (https://github.com/structurizr/java), which is the part that creates an architecture model by extracting information from, in this case, Spring Boot apps. The open source library also includes exporters to Graphviz and websequencediagrams, plus you can build whatever visualisation you want of the model. Anyway, as I said, the free tier is free. Here are the same diagrams for the JHipster sample application hosted on a free account -> https://structurizr.com/public/5421

jdubois commented 8 years ago

Pivotal Web Services is based on Cloud Foundry, which is Open Source Software.

But that's not really the point, of course:

That's why I want to move that kind of thing out of the main project, so that each company can participate without adding code to the main project. In the end, my goal is that we have some kind of "marketplace", where proprietary as well as OSS software can provide their own JHipster sub-generators, and those would not be maintained by the JHipster team. If we do it well, that would be where @simonbrowndotje you could host your application. Of course, as we are all doing this on our free time, and as we all have a real job outside, this can take some time before it's available.

simonbrowndotje commented 8 years ago

I can see my PWS comment may have caused some confusion ... structurizr.com is hosted on PWS CF, which I'm paying for. And it's an awesome platform, BTW. Although I would like to offer a totally free architecture diagramming SaaS, that's obviously impractical. :-)

jdubois commented 8 years ago

No problem for me, anyway we have a plan to support this kind of need. I'll re-open this and update you if/when we have that plugin system ready.

pascalgrimaud commented 8 years ago

@wibbo @simonbrowndotje We have a new "module" system. Here is :

It will be interesting to have a module for Structurizr

jdubois commented 8 years ago

Yes this is done for projects like yours! Sorry I didn't add a comment here earlier. Hope you like it, don't hesitate to send comments or ask for more features.