Regression in 2018.03 -> 2018.11 component diagram layout

0 votes
asked Oct 19 in Bug by Sander

Text is hidden under components in 2018.11 where it was not hidden in 2018.03.

Output from 2018.03
https://imgur.com/8o06hqa

Output from 2018.11
https://imgur.com/ewFD3cO


@startuml

package "xxxxxx" {
    [XXXXXXXXXXXXXXX] as IFE

    [xxxxxxxxxxxxxxxxxxxxxx] as ICS

    IFE -left-ICS

    () "xxxxxxxxxxxxxxxxxxxxxx" as apiCS

    ICS -down- apiCS

    [xxxxxxxxxxxxxxxxxxxx] as adapterCS1
    [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] as adapterCS2

    adapterCS1 -[hidden]down- adapterCS2

    apiCS - adapterCS1
    apiCS - adapterCS2

    [xxxxxxxx] as gatewayCS1
    [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] as gatewayCS2

    adapterCS1 - gatewayCS1
    adapterCS2 - gatewayCS2
}

[xxxxxxxxxxxxxx] as teleportCS1
[xxxxxxxxxxxxxxxxxxxxxxxxxx] as teleportCS2

gatewayCS1 - teleportCS1
gatewayCS2 - teleportCS2

@enduml
commented Oct 19 by syrdbaw4 (140 points)
To clarify, it's the interface name that is being hidden by the box to the right of it. Especially visible if the box to the right is multiline (on the anonymized example it is just a bit closer, not directly overlapping - but it will eventually overlap with other text).

1 Answer

+1 vote
answered Oct 19 by plantuml (184,600 points)

We are facing some GraphViz limit here : when we fix something, it breaks this one...

This is not perfect, but we have added a new skinparam to fix this one in last beta http://beta.plantuml.net/plantuml.jar

@startuml
skinparam fixCircleLabelOverlapping true
package "xxxxxx" {
    [XXXXXXXXXXXXXXX] as IFE

    [xxxxxxxxxxxxxxxxxxxxxx] as ICS

    IFE -left-ICS

    () "xxxxxxxxxxxxxxxxxxxxxx" as apiCS

    ICS -down- apiCS

    [xxxxxxxxxxxxxxxxxxxx] as adapterCS1
    [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] as adapterCS2

    adapterCS1 -[hidden]down- adapterCS2

    apiCS - adapterCS1
    apiCS - adapterCS2

    [xxxxxxxx] as gatewayCS1
    [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] as gatewayCS2

    adapterCS1 - gatewayCS1
    adapterCS2 - gatewayCS2
}

[xxxxxxxxxxxxxx] as teleportCS1
[xxxxxxxxxxxxxxxxxxxxxxxxxx] as teleportCS2

gatewayCS1 - teleportCS1
gatewayCS2 - teleportCS2

@enduml

Right now, this is the best we can have. I hope that it's ok for you.

commented Oct 22 by syrdbaw4 (140 points)
Ouch. That is painful. Is it possible for me to pass this "fix" parameter via commandline? Does this fix also break other things?

I develop scripting for multiple other users and run plantuml.jar via command line. I do not wish to burden my users with having to know about such fixes that have to be manually enabled, so I would like to at minimum include it on the command line (alternatively I would have to stay on 2018.03).
commented Oct 22 by plantuml (184,600 points)
You can use  -S option to set skinparam on command line
commented Oct 23 by syrdbaw4 (140 points)
Thanks. I confirm that this workaround fixes this problem for me. I hope the workaround will one day not be necessary.
...