Comments (4)
As already mentioned in #127 you can also use https://gitlab.com/iternity/jplantuml to transform a PlantUML string into a selfcontained PlantUML URL.
This makes it very easy and light weight to include a link to a UML visualization in your Assert messages...
from archunit.
Hi,
I know Degraph, and yes, the visualization feature would be something cool for ArchUnit as well 😃
The reason there is no visualization yet, is really that I simply had no time and wanted to focus on my core issue, the API to specify rules.
We've started to create an HTML visualization using d3, the POC looks pretty promising (we already have a JSON export and a graph visualizing the imported classes).
I also thought about Graphml, since it provides better layout out of the box (this is something we're still struggling with, with d3). On the other hand I sometimes had problems in the past, if there were too many nodes, somehow, and the d3 version only needs a browser to create a nice and fluent interactive report. (might have been my version of yED though)
An advantage of Graphml would also be, that it doesn't need any extra libraries to create the visualization, on the contrary to d3.
I would definitely be interested to add a Graphml visualization as well, if you're interested, it would be good to have a choice, if one visualization doesn't work out for the use case.
There are just some considerations that come to my mind
- we're gonna create a new module
archunit-visual
for the HTML report, so it might be a good idea, to put all the visualization together (I'll probably add some service loader mechanism, to extend the core library for extra features like visualization) - to robustly visualize violations the ArchUnit core must probably be extended, because at the moment, there is no way to retrieve both origin and target from a violation, except for parsing the message, which would obviously be a bad idea 😉
Anyway, if you find the time and motivation, to write a Graphml violation visualization, I'd be happy to merge it. And as soon as our HTML POC is somewhat more developed, we'll also add that as a feature branch for testing (and it will very likely go into version 0.5.0 then)...
from archunit.
I think we agree on the pro and cons of Graphml. Back then it was (and probably still is) the easiest way to get nice visuals with a flexible layout.
I'll try to look into it.
from archunit.
In case it helps: I tried to add an API with #16 to access information about violations of ArchRule
s. It's just a first shot, and the SPI is still missing, but it might be easier to program against this interface, than to parse String messages or fall back on some shady reflection 😉
from archunit.
Related Issues (20)
- How To : Is there way to filter classes when using `importJar()` HOT 1
- DEPRECATED_API_SHOULD_NOT_BE_USED does not consider constants nor final fields HOT 2
- ASM is not up-to-date
- Jakarta Inject package name incorrect in BE_ANNOTATED_WITH_AN_INJECTION_ANNOTATION rule HOT 1
- How can I find out which gradle module a class belongs to HOT 7
- Problem with maven multi module project HOT 2
- False positive results when I use ArchRuleDefinition.noClasses() HOT 7
- Check access classes only works for some cases HOT 1
- ArchUnit do not correctly check Annotation on enum Constants HOT 2
- ArchUnit thinks "Switch with arrows" produces non-final fields HOT 2
- Feature suggestion: Expose synchronized blocks in core API
- Performance: archunit-junit5 may scan complete JDK for `@ArchTest` HOT 4
- SimpleName-Check failing because of trailing file extension (Kt) HOT 8
- ArchUnits - get name of lambda method HOT 1
- How to fail tests if no classes are imported? HOT 1
- Configuring a Custom gradle Plugin to Run on Client Project HOT 3
- Tests fail when using non-default "target" folder HOT 1
- DEPRECATED_API_SHOULD_NOT_BE_USED has false positive if a user doesn't actually use deprecated features HOT 5
- Enforce test failures based on the priority set HOT 1
- Duplicate error messages for noClasses().should().dependOnClassesThat().resideInAPackage(...) when culprit is in finally clause HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from archunit.