Weird ordering when interfacing complex components

0 votes
asked Feb 18, 2015 in Bug by anonymous
edited Feb 20, 2015

I'm struggling with the ordering of complex components that interface to each other. First of all, I want to "export" certain interfaces to the outside of my super components with a horizontal line to the "owning" sub components. This does not seem to be possible out-of-the box, so I'm using !pragma horizontalLineBetweenDifferentPackageAllowed. That helps a bit, but there is something weird going on with where the connecting components are placed. The below example should illustrate some of the issues. I'd provide an output image, too, but apparently I'm too dumb to figure our how... Essentially, the problem is that "Another System" appears to the right of "A system", with interface connections crossing over to the left-hand-side. Obviously, it would be better to put "Another System" on the left. Also, aStateDb and aNetwork are swapped around for no apparent reason.

If I mess around with the ordering of the items, using or not using "left" and "right" etc, the image changes, but I can't seem to find any way to make it look right. Defining the interfaces inside the super component does not really help a lot, either.

@startuml
!pragma horizontalLineBetweenDifferentPackageAllowed

component "A System" {
  database "Configuration" as aConfigDb
  database "Observations" as aDataDb
  database "Data\n----\nStatus" as aStateDb

  [Inversion] as aNetwork

  aDataDb -up-> aNetwork
  aNetwork -left-> aStateDb
  aConfigDb --> aNetwork
}

() "Spread\nconfiguration" as config
aConfigDb -left- config
() "Output\nData" as data
aStateDb -left- data

component "Another System" {
  [Config\nReceiver] as receiver1
  [Config\nReceiver] as receiver2
  receiver1 -[hidden]- receiver2
}

receiver1 -right-( config
receiver2 -right-( data

@enduml

[ Edit ]

Here is an image generaterd as per the instruction in the blow comment:

 

 

commented Feb 20, 2015 by rmric (2,140 points)
In order to provide an output image, you may go to http://www.plantuml.com/plantuml/beta, write (or copy/paste) your plantuml code, then copy the shortcut address (ie URL) of the "View as PNG" link. Finally, insert image in your post by clicking the "Image" icon and pasting the URL.
Rem: it's not available for a comment. Only for Question/Answer.
commented Feb 20, 2015 by anonymous
OK. Thanks. I noticed that you could link to an image URL, of course, but didn't really have a good (publicly accessible) place to put the images...

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.
...