From 8817a38dffd60d77d0714ffe07817e2a6dc46e62 Mon Sep 17 00:00:00 2001 From: Patrik Nordwall Date: Tue, 18 Sep 2012 10:19:40 +0200 Subject: [PATCH] Remove graphviz diagram generation in docs build, see #2505 * Plain image for the circuit breaker --- akka-docs/common/circuitbreaker.rst | 23 +------------------- akka-docs/conf.py | 2 +- akka-docs/images/circuit-breaker-states.dot | 19 ++++++++++++++++ akka-docs/images/circuit-breaker-states.png | Bin 0 -> 22126 bytes 4 files changed, 21 insertions(+), 23 deletions(-) create mode 100644 akka-docs/images/circuit-breaker-states.dot create mode 100644 akka-docs/images/circuit-breaker-states.png diff --git a/akka-docs/common/circuitbreaker.rst b/akka-docs/common/circuitbreaker.rst index bd13927c8e..ddce833178 100644 --- a/akka-docs/common/circuitbreaker.rst +++ b/akka-docs/common/circuitbreaker.rst @@ -51,28 +51,7 @@ What do they do? * Callbacks can be provided for every state entry via `onOpen`, `onClose`, and `onHalfOpen` * These are executed in the :class:`ExecutionContext` provided. -.. graphviz:: - - digraph circuit_breaker { - rankdir = "LR"; - size = "6,5"; - graph [ bgcolor = "transparent" ] - node [ fontname = "Helvetica", - fontsize = 14, - shape = circle, - color = white, - style = filled ]; - edge [ fontname = "Helvetica", fontsize = 12 ] - Closed [ fillcolor = green2 ]; - "Half-Open" [fillcolor = yellow2 ]; - Open [ fillcolor = red2 ]; - Closed -> Closed [ label = "Success" ]; - "Half-Open" -> Open [ label = "Trip Breaker" ]; - "Half-Open" -> Closed [ label = "Reset Breaker" ]; - Closed -> Open [ label = "Trip Breaker" ]; - Open -> Open [ label = "Calls failing fast" ]; - Open -> "Half-Open" [ label = "Attempt Reset" ]; - } +.. image:: ../images/circuit-breaker-states.png ======== Examples diff --git a/akka-docs/conf.py b/akka-docs/conf.py index 63afaa3bb8..8f58ba0d87 100644 --- a/akka-docs/conf.py +++ b/akka-docs/conf.py @@ -8,7 +8,7 @@ import sys, os # -- General configuration ----------------------------------------------------- sys.path.append(os.path.abspath('_sphinx/exts')) -extensions = ['sphinx.ext.todo', 'includecode', 'sphinx.ext.graphviz'] +extensions = ['sphinx.ext.todo', 'includecode'] templates_path = ['_templates'] source_suffix = '.rst' diff --git a/akka-docs/images/circuit-breaker-states.dot b/akka-docs/images/circuit-breaker-states.dot new file mode 100644 index 0000000000..be7b628029 --- /dev/null +++ b/akka-docs/images/circuit-breaker-states.dot @@ -0,0 +1,19 @@ + digraph circuit_breaker { + rankdir = "LR"; + size = "6,5"; + graph [ bgcolor = "transparent" ] + node [ fontname = "Helvetica", + fontsize = 14, + shape = circle, + color = white, + style = filled ]; + edge [ fontname = "Helvetica", fontsize = 12 ] + Closed [ fillcolor = green2 ]; + "Half-Open" [fillcolor = yellow2 ]; + Open [ fillcolor = red2 ]; + Closed -> Closed [ label = "Success" ]; + "Half-Open" -> Open [ label = "Trip Breaker" ]; + "Half-Open" -> Closed [ label = "Reset Breaker" ]; + Closed -> Open [ label = "Trip Breaker" ]; + Open -> Open [ label = "Calls failing fast" ]; + Open -> "Half-Open" [ label = "Attempt Reset" ]; \ No newline at end of file diff --git a/akka-docs/images/circuit-breaker-states.png b/akka-docs/images/circuit-breaker-states.png new file mode 100644 index 0000000000000000000000000000000000000000..fc1d6a2d7f5a9b5c2e99ee132459e69ee06ad6fd GIT binary patch literal 22126 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 tW_TZZtKR&VLfX