Or there is a problem when it tries to access the server (maybe you block it ?) which cause the macro to fallback on Graphviz (which you probably did not install). You might find more information on what exactly went wrong in your application server log.
I have the same Issue on a localhost environment (XWiki Jetty HSQLDB 15.10.11) and the same behavior on our XWiki SAS Cloud environment (XWiki 15.10.10). I didn’t change any configuration and I didn’t block the server. The log-file is empty at every log-level.
All good for me with the 15.10.11 demo package and
{{plantuml}}
@startuml
:Customer: -> (Withdraw)
note right of (Withdraw) : This is an example.
@enduml
{{/plantuml}}
now maybe I have Graphviz installed locally, not sure.
Edit: I do apparently seems to have a graphviz package installed on Ubuntu 24.04 (seems to be a dependency of Gimp). So it’s possible that’s why it’s working, maybe the extension has some problem with the default server and does not log anything about it.
After installing PlantUML Administration and setting the server to PlantUML Web Server it works after refreshing the page (hard reload). Setting the server manually with {{plantuml server="http://www.plantuml.com/plantuml"}} works as well.
As PlantUML Administration is not installed as a dependency, the only alternatives are 1) to hard code a default PlantUML server or 2) to say that we must use the server parameter of the PlantUML macro at least you install and use PlantUML Administration or set a server in xwiki.properties.
It is a bit confusing to me. Why don’t install PlantUML Administration and PlantUML Macro as mutually dependent? In particular Maxime (I don’t know how to reach him!), @vmassol, what do you think?
Thanks! I will read and think about it. I’m afraid it is far beyond my skills to contribute to that discussion. But I don’t understand why “circular” can not be acceptable in some circumstances.
If you have A that depends on B, it means that B must be installed first since it could have stuff that is needed for A to be installed. And if B depends on A too, then the same happens. Thus there’s no way to choose which one to install first.
And why the order does matter? Can’t declare both extensions “mutually dependent”. A can’t be installed without installing B. And B can’t be installed without installing A. I don’t mind what extension I install in the first place. Logically, I would expect to need an administrator if I have anything to administrate, but as both are “extensions”, I can survive at forgetting that logic!
[…] it could have stuff that is needed for A to be installed […]
Example:
A JAR extension (A) provides a java interface for a component
Extension (B) implements the interface.
If you don’t install A before B then the installation of B will fail.
The same can happen for XARs.
So what we would need to implement what you said would be to have a way for developers to declare in an extension that its dependencies are only needed when the extension is used but not needed to install it.
Note that when the extensions are being installed, anyone navigating to some pages of the extension would generate errors and problems because of the missing deps too.