mirror of
https://github.com/jlengrand/baker.git
synced 2026-03-22 08:01:18 +00:00
* Initial structure for the documentation of Baker 3 * Added the examples module and started working on the design a recipe section * continued work on documentation * More work on documentation * Worked on the documentation * documentation work * documentation work * documentation work * documentation work * documentation work * documentation work * documentation work * documentation work * documentation work * documentation work * documentation work * documentation work * documentation work * documentation work * documentation work * documentation work * example work * Documentation work * Example app work * Example app work * Example web app done in Scala * Documentation work * Gatling setup * Work on example app metrics * Grafana setup * Loadtesting mods * Documentation work * Example app memory dump work * Load testing work * proof read
4.3 KiB
4.3 KiB
Visualization
A visualization is a visual graph representation of a Recipe and it is built from a compiled recipe.
You can see an example of the output and of a rendered visualization here.
import com.ing.baker.il.CompiledRecipe
import com.ing.baker.compiler.RecipeCompiler
val compiled = RecipeCompiler.compileRecipe(WebshopRecipe.recipe)
val visualization: String = compiled.getRecipeVisualization
import com.ing.baker.il.CompiledRecipe;
import com.ing.baker.compiler.RecipeCompiler;
CompiledRecipe recipe = RecipeCompiler.compileRecipe(JWebshopRecipe.recipe);
String visualization = recipe.getRecipeVisualization();
The aesthetics can be configured by passing a com.ing.baker.il.RecipeVisualStyle object to the
recipe.getRecipeVisualization() method, that object has scalax.collection.io.dot._ objects that will change how
your ingredients, events and interactions are rendered.
The default configuration is:
case class RecipeVisualStyle(
rootAttributes: List[DotAttr] = List(
DotAttr("pad", 0.2)
),
commonNodeAttributes: List[DotAttrStmt] = List(
DotAttrStmt(
Elem.node,
List(
DotAttr("fontname", "ING Me"),
DotAttr("fontsize", 22),
DotAttr("fontcolor", "white")
)
)
),
ingredientAttributes: List[DotAttr] = List(
DotAttr("shape", "circle"),
DotAttr("style", "filled"),
DotAttr("color", "\"#FF6200\"")
),
providedIngredientAttributes: List[DotAttr] = List(
DotAttr("shape", "circle"),
DotAttr("style", "filled"),
DotAttr("color", "\"#3b823a\"")
),
missingIngredientAttributes: List[DotAttr] = List(
DotAttr("shape", "circle"),
DotAttr("style", "filled"),
DotAttr("color", "\"#EE0000\""),
DotAttr("penwidth", "5.0")
),
eventAttributes: List[DotAttr] = List(
DotAttr("shape", "diamond"),
DotAttr("style", "rounded, filled"),
DotAttr("color", "\"#767676\""),
DotAttr("margin", 0.3D)
),
sensoryEventAttributes: List[DotAttr] = List(
DotAttr("shape", "diamond"),
DotAttr("style", "rounded, filled"),
DotAttr("color", "\"#767676\""),
DotAttr("fillcolor", "\"#D5D5D5\""),
DotAttr("fontcolor", "black"),
DotAttr("penwidth", 2),
DotAttr("margin", 0.3D)
),
interactionAttributes: List[DotAttr] = List(
DotAttr("shape", "rect"),
DotAttr("style", "rounded, filled"),
DotAttr("color", "\"#525199\""),
DotAttr("penwidth", 2),
DotAttr("margin", 0.5D),
),
eventFiredAttributes: List[DotAttr] = List(
DotAttr("shape", "diamond"),
DotAttr("style", "rounded, filled"),
DotAttr("color", "\"#3b823a\""),
DotAttr("margin", 0.3D)
),
firedInteractionAttributes: List[DotAttr] = List(
DotAttr("shape", "rect"),
DotAttr("style", "rounded, filled"),
DotAttr("color", "\"#3b823a\""),
DotAttr("penwidth", 2),
DotAttr("margin", 0.5D),
),
eventMissingAttributes: List[DotAttr] = List(
DotAttr("shape", "diamond"),
DotAttr("margin", 0.3D),
DotAttr("style", "rounded, filled"),
DotAttr("color", "\"#EE0000\""),
DotAttr("penwidth", "5.0")
),
choiceAttributes: List[DotAttr] = List(
DotAttr("shape", "point"),
DotAttr("fillcolor", "\"#D0D93C\""),
DotAttr("width", 0.3),
DotAttr("height", 0.3)
),
emptyEventAttributes: List[DotAttr] = List(
DotAttr("shape", "point"),
DotAttr("fillcolor", "\"#D0D93C\""),
DotAttr("width", 0.1),
DotAttr("height", 0.1)
),
preconditionORAttributes: List[DotAttr] = List(
DotAttr("shape", "circle"),
DotAttr("fillcolor", "\"#D0D93C\""),
DotAttr("fontcolor", "black"),
DotAttr("label", "OR"),
DotAttr("style", "filled")
),
// this will be removed soon
sieveAttributes: List[DotAttr] = List(
DotAttr("shape", "rect"),
DotAttr("margin", 0.5D),
DotAttr("color", "\"#7594d6\""),
DotAttr("style", "rounded, filled"),
DotAttr("penwidth", 2)
)
)
Recipe Instance State Visualizations
Another type of visualization that can be done is the Baker.getVisualState(recipeInstanceId) API, this will generate the
same GraphViz string but of the state of a currently running ProcessInstance, referenced by the input recipeInstanceId.