HOME      NEWS      MAP

The migration toward Svek architecture is finished!

Previous architecture

For all diagrams (but sequence diagrams), Graphviz/Dot is used by PlantUML to compute and draw UML diagrams. Graphviz/Dot makes a great job for node positionning, but unfortunatly, the drawing capabilities of Graphviz/Dot are somehow limited. Don't be wrong : Graphviz/Dot is a great software, but it has not been designed to draw UML diagrams. So PlantUML has to use a lot a tricks to generate nice UML diagrams. The drawbacks of the old architecture was :

Current architecture : Svek

So, since several months, a new architecture is under build that will allow a lot of nice new features in PlantUML.

This new architecture (which codename is Svek) still uses Graphviz/Dot, but with a very important change:

Graphviz/Dot is only used to compute nodes position, the drawing itself is fully done in Java.

The main advantage is that, since PlantUML does the drawing, the software is now less dependent of Graphviz/Dot.

The code is also simplier, because the two steps (node computation then graphical rendering) are clearly separated. There is no need to generate some temporary files. With this new architecture, Graphviz/Dot generates a simplified SVG output (whatever is the actual output format need by the user), and those simplified SVG data are parsed by PlantUML. The drawing is then done by PlantUML.

For East Asian users don't have to use change the font to be able to display East Asian Characters.

One major drawback is that there is a lot of code to write to do this drawing, and it's difficult to release a 100% bug free version.

Another drawback is that the -tdot option will be not supported anymore.

Migrate smoothly

The migration is finished now!

All diagrams are 100% functionnal, so any feedback is welcome on the forum.

You can disable the shadowing using the skinparam shadowing false command.

So rather than waiting to have a fully functionnal version with Svek architecture, it has been decided to include both versions into new PlantUML releases. By default, the "old" architecture is used, and the vast majority of users won't notice any change.

In some future, the Svek architecture will be enable by default for class diagrams. Other diagrams will then migrate one by one to this architecture (actually, all diagrams are working : you can give a try). When all diagrams will use Svek, the "old" architecture will be finally removed.

It's very simple to switch to the Svek architecture using a skinparam command, so that users can have a look of what the future of PlantUML will be. The advantage of this approach (add/remove a skinparam command) is that non-regression tests are quickly done. As you can see, shadowing has been added in the Svek version. This is an example of something that was very easy to do with the Svek architecture, and almost impossible with the "old" one. This also allows to quickly identify wether a diagram has been generated with the "old" or with the Svek architecture.

HOME      NEWS      MAP