Home / Community / Blog / UML and Graphs in Redmine Wiki

UML and Graphs in Redmine Wiki

Preparation:

yum install java-1.7.0-openjdk graphviz

Downloaded wiki_external_filter:

wget "https://github.com/luckval/wiki_external_filter/archive/master.zip" \
-O /tmp/redmine_wiki_external_filter-commitdce52f32c5-2014-04-12.zip

Downloaded PlanUML jar file into /usr/local/bin.

Installation Redmine Wiki External Filter plugin

Unpack into redmine plugins directory and copy config file info main:

cd /var/www/redmine/plugins
unzip /tmp/redmine_wiki_external_filter-commitdce52f32c5-2014-04-12.zip
mv wiki_external_filter-master wiki_external_filter
cd ..
cp plugins/wiki_external_filter/config/wiki_external_filter.yml config/

renaming directory in necessary.

Standard plug in installation procedure (and restart httpd in the end):

cd /var/www/redmine
bundle install
/etc/init.d/httpd graceful

I have to run bundle install to install missing open4 gem.

Then you have to configure cache settings using Administration -> Plugins -> Wiki External Filter Plugin: Configure. I've set Cache expiration time to 2 second because my server is rather slow.

Testing graphs

I've added two lines (prolog and epilog) in config/wiki_external_filter.yml

  graphviz:
    description: "Constructs graph image from its textual description in DOT language, see http://www.graphviz.org"
    template: image
    outputs:
      - command: "/usr/bin/dot -Tsvg"
        content_type: "image/svg+xml"
    #  - command: "/usr/bin/dot -Tpng"
    #    content_type: "image/png"
        prolog: "digraph G {"
        epilog: "}"

and then put:

{{graphviz
A->B
}}

in Redmine wiki page and it was pretty rendered.

Testing UML diagrams

I've created /usr/local/bin/plantuml.bash file:

#!/bin/bash

/usr/bin/java -Djava.awt.headless=true -Djava.io.tmpdir=/var/tmp -jar /opt/PlantUML/plantuml.jar -charset UTF-8 ${@}

set to executable

chmod a+x /usr/local/bin/plantuml.bash

and then correct path in wiki_external_filter.yml file

  plantuml:
    description: "Constructs UML diagram image from its textual description in PlantUML language, see http://plantuml.sourceforge.net"
    template: image
    outputs:
      - command: "/usr/local/bin/plantuml.bash -pipe"
        content_type: "image/png"
        prolog: "@startuml"
        epilog: "@enduml"

and then put:

{{plantuml
A->B
}}

in Redmine wiki page and UML diagram should be shown.

"Should" - in my case - VPS with a little amount of RAM - I can see only

Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

but it's well known lack of memory problem and even -Xmx64m doesn't help.

For some simple diagrams adding -Xmx8m in /usr/local/bin/plantuml.bash fix that problem.

Comments

Log in or create a user account to comment.

Just my blog...

Mon Tue Wed Thu Fri Sat Sun
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31