Hi
I wanted to try the Elk layout as suggested in
https://forum.plantuml.net/20132/control-package-layout-in-class-diagram?show=20390
I put in the source below, and got an error message. At the top of the exception trace, it said "You should send this diagram and this image to plantuml@gmail.com or post to
https://plantuml.com/qa to solve this issue." So that is what I am trying to do... when I tried to go to
https://plantuml.com/qa it took me to forum.plantuml.net.
Here is the URL:
https://www.plantuml.com/plantuml/uml/ZLPFK_is4BtxKspfmOUMpWzA0dGO1WAaS81c23rrUX3sEjPWQzsLd91s-jrhsJJ8YaZiKxBlxUxRFv9zfOrWKvT5z5t5Ob4AACIQQWDOl4MnPvkNQ8GIKHJ3FASL_03V0p6iSc5mYGolc14Z20N269QljS4VGIfjKAH0cGLaGYgAzPjKbM1HGb88hQ__Ppyqw5p-ZV3DviWaQnDL8daJ2uI3sSUFqmEuk9WIJGJ33PKLALJcyX8W-YU2BY3S2wveofXkBFRFL1OuOqfGQ-8Uyeow8gNnNgYqG8x-jVar9gJIRG6Zi82j_BTI9xJ4pqot8ilMmLGcbnp8TFHjQArt9aTMQAmdcaajYnJv2mhJ-peCFMDF6e1K1ZaJ2S93I-p2tw9EM5Q6GXIlFg_DVzMeFqJsVVV0RUjsu7TOCPM_LmM9D8WlKPbWNREYDkGwTXF9g6QJRu_aVF_mVoNon-oDecMqSx39x6EtFGlb6m_TWBQE9kQ2HLaw2LjxUB_bUoZZsT2CywV7sSDlcp9iHBHj3iGy6NXa7Ycj2mnKqGt8AyD37uKI2ySwaKhmkZlqM6tEVLixoaKU4lhphkBTjR75-pAwXcoiFdsEl9G9tf0oGgeGutg1oZZXV4imYWksYzKRifB1WHmD6BBjNB2ptMdjtGAT_MNw4j3dWPx9EVYTSCyZ5uqw2ZRLuY6Vzh88U-mJs9wMdQwRApkywSS36kihc0YD_MGUmwPq7lTLs3o7XvVzLyOly8o5H0saFhcZ_Tmexc4D6Pu813EjD2HKIhK0gWrGPbzO-YT7oVbm9J0UeCIzZGO7FXbIedlKBRkkNFxnGHJ7SUIJFCfE_2oiBaGz_rBSKKTcUqqv7as90qYZ8QJn4D9fW9JIIeLQvj4yrRlWqMvul1i-3SEElEQ9NGFitsphyS9hC0HIPKMDAi6Fp-06AZ0p5chx1QbaJ8majVN1h3SVpEwE7lwHopH5zQVjfDU7ArHfNHR_0G00
Here is the source. Names are anonymised because the diagram belongs to my employer:
@startuml
!pragma layout elk
' Show + # or whatever before an attribute, instead of an icon
'skinparam classAttributeIconSize 0
' first
package "Package 7" <<FooBar Component>>
{
class HarpoFred
class FredFileProcessor
class FredResponseHandler
}
' second
package "Package 5" <<FooBar Component>>
{
class HarpoDiscover
class DaffyResponseHandler
}
' third
package "Package 10" <<FooBar Component>>
{
class HarpoEthernetPacketBuilder
class HarpoEthernetProxy
class HarpoEthernetReponseHandler
interface IHarpoPacketDescriptor
interface IHarpoResponseHandler
class FredRequestPacket
interface IFredRequestPacket
interface IDaffyRequestPacket
interface IEepromUploadPacket
interface IEventHandler
interface IPlutoUploadPacket
}
' fourth
package "Package 9" <<FooBar Component>>
{
class GoofyResponseHandler
class HarpoGoofyProxy
}
' fifth
package "Package 6" <<FooBar Component>>
{
class HarpoPlutoProgrammer
class PlutoResponseHandler
}
' sixth
package "Package 8" <<FooBar Component>>
{
class HarpoSNMPIOProxy
}
' seventh
package "Package 4" <<FooBar Component>>
{
class HarpoModuleProgrammer
class UploadResponseHandler
class UploadManager
class BinaryFilePreprocessor
}
' eighth
package "Package 3" <<FooBar Component>>
{
interface ISNMPHandler
class SNMPIOHandler
interface ISNMPServiceContainer
interface ISNMPAgent
class SNMPAgent
class SNMPServiceContainer
class SNMPGoofyHandler
}
' ninth
package "Package 1" <<FooBar Component>>
{
class FileUploadManager
class IFredDescriptor
class TFTPServiceContainer
class TFTPServer
class TFTPFredRequestHandler
class TFTPShampooHandler
interface ITFTPHandler
class TFTPDaffyHandler
interface ITFTPServiceContainer
class TFTPPlutoHandler
interface ITFTPServer
}
' tenth
package "Package 2" <<FooBar Component>>
{
class ServiceContainerBase
interface IServiceContainer
}
"Package 7" --> "Package 10" : Relies on
"Package 5" --> "Package 10" : Relies on
' "Package 10" -- No arrows coming out of this.
"Package 9" --> "Package 10" : Relies on
"Package 6" --> "Package 10" : Relies on
"Package 8" --> "Package 10" : Relies on
"Package 4" --> "Package 10" : Relies on
'"Package 3" -up-> "Package 2"
'''
"Package 3" --> "Package 2"
"Package 3" --> "Package 8" : Relies on
"Package 3" --> "Package 9" : Relies on
'"Package 1" -right-> "Package 4"
'"Package 1" -right-> "Package 5"
'"Package 1" -right-> "Package 6"
'"Package 1" -right-> "Package 7"
'"Package 1" -down-> "Package 2"
'''
"Package 1" --> "Package 4"
"Package 1" --> "Package 5"
"Package 1" --> "Package 6"
"Package 1" --> "Package 7"
"Package 1" --> "Package 2"
' "Package 2" -- No arrows coming out of this.
' Try to influence layout
'left to right direction
'!pragma layout smetana
'"Package 4" -[hidden]down-> "Package 5"
@enduml