Why do containers and elements have differing semantics with respect to arrow orientation (left, right, up, down)?

0 votes
asked Feb 1 in Bug by kasra (960 points)

Hi,

For those dealing with complex, professional-grade diagrams, this could represent one of the most frustrating  bugs in PlantUML 

Thanks in advance for your help

commented Feb 1 by albert (3,520 points)
Please share the underlying plantuml definitions so it is possible to reproduce / advise.
commented Feb 1 by kasra (960 points)

@startuml (id=CLASS_DG)

title

class diagram %version()

end title

'skinparam Linetype ortho

allow_mixing

!$container=package

class LeftClass

class RightClass

class UpClass

class DownClass

class CenterClass

CenterClass -left-> LeftClass

CenterClass -right-> RightClass

CenterClass -up-> UpClass

CenterClass -down-> DownClass

$container ContainerLeft as C1 {

class LeftClass

}

$container ContainerRight as C2 {

class RightClass

}

$container ContainerUp as C3 {

class UpClass

}

$container ContainerDown as C4 {

class DownClass

}

$container CenterClass2

CenterClass2 -left-> C1

CenterClass2 -right-> C2

CenterClass2 -up-> C3

CenterClass2 -down-> C4

@enduml

@startuml (id=COMP_DG)

title

component diagram %version()

end title

'package node folder frame cloud database

!$container=database

[Component] -left-> [left]

[Component] -right-> [right]

[Component] -up-> [up]

[Component] -down-> [down]

$container center

$container ContainerLeft as C1 {

[cleft]

}

$container ContainerRight as C2 {

[cright]

}

$container ContainerUp as C3 {

[cup]

}

$container ContainerDown as C4 {

[cdown]

}

center -left-> C1

center -right-> C2

center -up-> C3

center -down-> C4

@enduml

commented Feb 1 by kasra (960 points)

@startuml (id=UC_DG)

title

usecase diagram %version()

end title

'skinparam Linetype ortho

!$container=rectangle

:user1: -left-> (UCLeft)

:user1: -right-> (UCRight)

:user1: -up-> (UCUp)

:user1: -down-> (UCDown)

$container ContainerLeft as R1 {

usecase "some use case" as R1_UC1

}

$container ContainerRight as R2 {

usecase "some use case" as R2_UC1

}

$container ContainerUp as R3 {

usecase "some use case" as R3_UC1

}

$container ContainerDown as R4 {

usecase "some use case" as R4_UC1

}

$container Center

Center -left-> R1

Center -right-> R2

Center -up-> R3

Center -down-> R4

@enduml

commented Feb 1 by kasra (960 points)

I wanted to test ELK layout engine

from documentation

ELK is distributed as an independent library. So you have to build it yourself, or you can download the complete jar file here.

Both plantuml.jar and elk-full.jar have to be in the very same folder. You cannot rename elk-full.jar

Once installed, you can invoke ELK instead of GraphViz with the !pragma layout elk directive.

But My ecosystem uses a local plantuml server and  I don't know how to make it work.

the command is : 

mvn -DPLANTUML_SECURITY_PROFILE=ALLOWLIST -Dplantuml.include.path=/my/path/ -Dplantuml.allowlist.url=http://127.0.0.1:3001/  jetty:run  

And I have a java.lang.IllegalArgumentException: java.lang.ClassNotFoundException: org.eclipse.elk.graph.util.ElkGraphUtil

The documentation gives info when we use the jar : 

java -jar plantuml.jar -Playout=elk

But What should I do in my context ? 

Thanks a lot if you can help me there too.

Thanks,

Kasra

commented Feb 1 by albert (3,520 points)
Is this related to the original issue or a new issue, in the later case open a new issue.
commented Feb 1 by kasra (960 points)
I already ask in the discord server. I will wait If I don't get the answer I will open a new issue here.

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:

[Antispam2 Feature: please please wait 1 or 2 minutes (this message will disappear) before pressing the button otherwise it will fail](--------)
To avoid this verification in future, please log in or register.
...