From 264500fbee23d463769f4ad045badc1e738101b4 Mon Sep 17 00:00:00 2001 From: Martin Goik <goik@hdm-stuttgart.de> Date: Thu, 4 Dec 2014 15:27:55 +0100 Subject: [PATCH] Explanation Maven Windows profile --- .../Screen/EclipseConfig/windowsCmdJdkJre.png | Bin 0 -> 10829 bytes Sd1/swd1.xml | 360 ++- Sda2/Ref/Fig/concurrentOptimisticFail.svg | 2076 +++++++++++++++++ glossary.xml | 112 +- 4 files changed, 2384 insertions(+), 164 deletions(-) create mode 100644 Sd1/Ref/Screen/EclipseConfig/windowsCmdJdkJre.png create mode 100644 Sda2/Ref/Fig/concurrentOptimisticFail.svg diff --git a/Sd1/Ref/Screen/EclipseConfig/windowsCmdJdkJre.png b/Sd1/Ref/Screen/EclipseConfig/windowsCmdJdkJre.png new file mode 100644 index 0000000000000000000000000000000000000000..cf90c90b475c458acf82facd7f5ba12ae6a1416d GIT binary patch literal 10829 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 U;!of!pwo7Q?Al(v?H^hH3nea44gdfE literal 0 HcmV?d00001 diff --git a/Sd1/swd1.xml b/Sd1/swd1.xml index 29026bbb8..4ac97a287 100644 --- a/Sd1/swd1.xml +++ b/Sd1/swd1.xml @@ -16,7 +16,7 @@ <glosslist> <glossentry> - <glossterm>HdM mail server</glossterm> + <glossterm><xref linkend="glo_HdM"/> mail server</glossterm> <glossdef> <para>Either</para> @@ -145,7 +145,8 @@ </glossentry> <glossentry> - <glossterm>Eclipse IDE</glossterm> + <glossterm><xref linkend="glo_Eclipse"/> <xref + linkend="glo_IDE"/></glossterm> <glossdef> <itemizedlist> @@ -169,7 +170,8 @@ <listitem> <para>Configure <filename xlink:href="http://maven.mi.hdm-stuttgart.de/Archetypes/catalog.xml">catalog.xml</filename> - in your Eclipse IDE at + in your <xref linkend="glo_Eclipse"/> <xref + linkend="glo_IDE"/> at <guimenu>Window-->Preferences-->Maven-->Archetypes-->Add Remote Catalog</guimenu>. Click <guibutton>verify</guibutton> to assure correct configuration.</para> @@ -222,8 +224,8 @@ </listitem> <listitem> - <para>Video tutorials based on older eclipse 3.3 version but still - (march 2014) valid.</para> + <para>Video tutorials based on older <xref linkend="glo_Eclipse"/> + 3.3 version but still (march 2014) valid.</para> <itemizedlist> <listitem> @@ -287,7 +289,8 @@ <listitem> <para>Reference documentation to be considered later: The - <productname>Greenfoot</productname> Java API for <link + <productname>Greenfoot</productname> Java <xref + linkend="glo_API"/> for <link xlink:href="http://www.greenfoot.org/files/javadoc">online</link> or <link xlink:href="http://www.greenfoot.org/files/greenfoot-javadoc.zip">offline @@ -553,9 +556,9 @@ <para>You may evaluate the result by actually watching its moving direction. Is there another way?</para> - <para>Hint: The <productname>Greenfoot</productname> framework - allows you to inspect an object's internal attribute - values.</para> + <para>Hint: The <productname>Greenfoot</productname> <xref + linkend="glo_framework"/> allows you to inspect an object's + internal attribute values.</para> </question> <answer> @@ -2138,7 +2141,8 @@ long sum = (long)a + b;</programlisting> <para>Implement a class representing fractions. You may find a dummy implementation containing some (not yet working) sample usage code being contained in a <code>main()</code> method. This - Maven archive also includes a Junit test.</para> + Maven archive also includes a <xref linkend="glo_Junit"/> + test.</para> <annotation role="make"> <para role="eclipse">P/fraction/V05</para> @@ -3292,7 +3296,8 @@ Is 2016 a leap year? true</programlisting> <para>Creating a local Maven jar archive export by executing <quote><command>mvn</command> <option>install</option></quote> in project <xref linkend="sd1QandaGcd"/> at the command line. - Alternatively you may right click on your pom.xml file in Eclipse + Alternatively you may right click on your <xref + linkend="glo_pom.xml"/> file in <xref linkend="glo_Eclipse"/> hitting <quote>Run as Maven build</quote> using <parameter>install</parameter> as goal.</para> </listitem> @@ -5054,7 +5059,7 @@ sin(4 * PI)=4518.2187229323445, difference=4518.2187229323445</programlisting> <para>The above link contains a skeleton file <filename>project.zip</filename>. You may import this project - into your eclipse workspace by:</para> + into your <xref linkend="glo_Eclipse"/> workspace by:</para> <itemizedlist> <listitem> @@ -5069,8 +5074,9 @@ sin(4 * PI)=4518.2187229323445, difference=4518.2187229323445</programlisting> <listitem> <para>Choose File-->Import-->Maven-->Existing - maven projects in Eclipse and navigate to the - <quote>myProject</quote> folder to import it.</para> + maven projects in <xref linkend="glo_Eclipse"/> and + navigate to the <quote>myProject</quote> folder to import + it.</para> </listitem> </itemizedlist> @@ -5083,7 +5089,7 @@ sin(4 * PI)=4518.2187229323445, difference=4518.2187229323445</programlisting> </listitem> <listitem> - <para>A <productname>Junit</productname> test + <para>A <xref linkend="glo_Junit"/> test <classname>IntStoreTest</classname> which allows you to test your ongoing implementation of <classname>BoundedIntegerStore</classname>. This class @@ -5179,7 +5185,7 @@ sin(4 * PI)=4518.2187229323445, difference=4518.2187229323445</programlisting> </listitem> </orderedlist> - <para>Modify and add <productname>Junit</productname> tests + <para>Modify and add <xref linkend="glo_Junit"/> tests accordingly to reflect the new behaviour. Especially test correct capacity reallocation for larger numbers of values being added.</para> @@ -5211,17 +5217,14 @@ sin(4 * PI)=4518.2187229323445, difference=4518.2187229323445</programlisting> <methodname>void clear()</methodname> enabling a user to support different sets of values.</para> - <para>Do not forget to extend your - <productname>Junit</productname> tests. You may want to import - an <link + <para>Do not forget to extend your <xref linkend="glo_Junit"/> + tests. You may want to import an <link xlink:href="Ref/api/P/Array/integerStoreStat/eclipse.zip">eclipse skeleton project</link> to start from.</para> <caution> <para>When testing for equality of double values you may - find the <productname - xlink:href="http://junit.org">Junit</productname> method - <methodname + find the <xref linkend="glo_Junit"/> method <methodname xlink:href="http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertEquals(double,%20double)">assertEquals()</methodname>to be marked as <link xlink:href="http://docs.oracle.com/javase/1.5.0/docs/guide/javadoc/deprecation/deprecation.html">deprecated</link>. @@ -5280,14 +5283,14 @@ sin(4 * PI)=4518.2187229323445, difference=4518.2187229323445</programlisting> xlink:href="http://docs.oracle.com/javase/tutorial/java/annotations">Lesson: Annotations</link>. Don't worry if you do not understand the complete article. The primary intention is about understanding the - <code>@Test</code> annotation in <productname>Junit</productname>, - see next topic.</para> + <code>@Test</code> annotation in <xref linkend="glo_Junit"/>, see + next topic.</para> </glossdef> </glossentry> <glossentry> - <glossterm>Unit testing using - <productname>Junit</productname></glossterm> + <glossterm>Unit testing using <xref + linkend="glo_Junit"/></glossterm> <glossdef> <para>Read <link @@ -5714,7 +5717,8 @@ public class Driver { <para>You may either construct a suitable copy containing the current elements yourself or get - enlightened by reading the API documentation of <link + enlightened by reading the <xref linkend="glo_API"/> + documentation of <link xlink:href="http://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#copyOfRange-int:A-int-int-">copyOfRange(...)</link>.</para> </caution> </listitem> @@ -5743,9 +5747,9 @@ for (final int i: unsortedValues) { <para>Do not forget to consider value sets which include duplicates and write tests accordingly!</para> - <para>Hint: The <productname - xlink:href="http://junit.org">Junit</productname> - framework provides a (convenience) method <methodname + <para>Hint: The <xref linkend="glo_Junit"/> <xref + linkend="glo_framework"/> provides a (convenience) method + <methodname xlink:href="http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertArrayEquals(int[],%20int[])">assertArrayEquals(...)</methodname>.</para> </listitem> @@ -5912,9 +5916,9 @@ for (final int i: unsortedValues) { <para>Do not forget to consider value sets which include duplicates and write tests accordingly!</para> - <para>Hint: The <productname - xlink:href="http://junit.org">Junit</productname> - framework provides a (convenient) method <methodname + <para>Hint: The <xref linkend="glo_Junit"/> <xref + linkend="glo_framework"/> provides a (convenient) method + <methodname xlink:href="http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertArrayEquals(int[],%20int[])">assertArrayEquals(...)</methodname>.</para> </listitem> @@ -6108,7 +6112,8 @@ values newArray | 1| 2| F| 7| 9| | ...</programlisting> <listitem> <para>Read the <link xlink:href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html">String - API</link>. Try to understand methods concerning:</para> + <xref linkend="glo_API"/></link>. Try to understand methods + concerning:</para> <itemizedlist> <listitem> @@ -6132,6 +6137,178 @@ values newArray | 1| 2| F| 7| 9| | ...</programlisting> <section xml:id="sd1StringExercise"> <title>Exercises</title> + <section xml:id="greenfootConfigureEclipse"> + <title>Developing <xref linkend="glo_Greenfoot"/> applications using + the <xref linkend="glo_Eclipse"/> <xref linkend="glo_IDE"/>.</title> + + <para>Steps being described in this section are optional and only + required if you like to develop <xref linkend="glo_Greenfoot"/> + applications using <xref linkend="glo_Eclipse"/>.</para> + + <para>When using the <xref linkend="glo_Greenfoot"/> <xref + linkend="glo_IDE"/> your <xref linkend="glo_Java"/> code uses services + from the underlying <productname>Greenfoot</productname> <xref + linkend="glo_framework"/> which in turn uses another framework called + <xref linkend="glo_BlueJ"/>. If you want to use <xref + linkend="glo_Eclipse"/> for <xref linkend="glo_Greenfoot"/> + development based on <xref linkend="glo_Maven"/> you have to define + <xref linkend="glo_Greenfoot"/> within the project's <xref + linkend="glo_pom.xml"/> file's dependency section. You must provide + both dependencies (at least locally on your workstation):</para> + + <glosslist> + <glossentry> + <glossterm>Locally install <xref linkend="glo_BlueJ"/> + dependencies</glossterm> + + <glossdef> + <para>Download <uri + xlink:href="http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/Ref/api/P/Maven/bluej/eclipse.zip">http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/Ref/api/P/Maven/bluej/eclipse.zip</uri> + and unzip it to a subfolder <filename>Bluej</filename>. Import + this Folder as a Maven project into <xref + linkend="glo_Eclipse"/> and right click on pom.xml choosing + <guisubmenu>mvn install</guisubmenu>. This will compile the + sources and install <xref linkend="glo_BlueJ"/> into your local + <xref linkend="glo_Maven"/> repository below + <filename>yourHomeDirPath/.m2</filename>.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm>Locally install <xref linkend="glo_Greenfoot"/> + dependencies</glossterm> + + <glossdef> + <para>Repeat the previous step for <uri + xlink:href="http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/Ref/api/P/Maven/greenfoot/eclipse.zip">http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/Ref/api/P/Maven/greenfoot/eclipse.zip</uri> + using a subfolder <filename>Greenfoot</filename>.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm>Adding <xref linkend="glo_Maven"/> dependency to your + <productname>Greenfoot</productname> game project</glossterm> + + <glossdef> + <para>You may now create your own <xref + linkend="glo_Greenfoot"/> Maven <xref linkend="glo_Eclipse"/> + project by adding the newly created <xref + linkend="glo_Greenfoot"/> Maven artifact as a project + dependency:</para> + + <programlisting language="none">... + <dependencies> + ... + <emphasis role="bold"><dependency> + <groupId>de.hdm-stuttgart.mi</groupId> + <artifactId>greenfoot</artifactId> + <version>2.3.0</version> + </dependency></emphasis> + </dependencies>...</programlisting> + + <para>Due to <xref linkend="glo_Greenfoot"/>'s simplicity and in + contrast to common <xref linkend="glo_Java"/> <quote>best + practice</quote> you'll off course have to create all classes + inside the <quote>default</quote> package ignoring or + suppressing related compiler warnings.</para> + </glossdef> + </glossentry> + </glosslist> + + <caution> + <para>Caveat: Windows and Mac users may require further + configuration described below.</para> + </caution> + + <para>On Windows you'll have to instruct <xref linkend="glo_Eclipse"/> + to use a <xref linkend="glo_JDK"/> and not just a <xref + linkend="glo_JRE"/> (being the default). Whenever you install a <xref + linkend="glo_JDK"/> (like <link + xlink:href="http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html">JDK + 1.8.0</link>) on Windows a so called private <xref linkend="glo_JRE"/> + is being installed as well by default as well:</para> + + <informalfigure> + <mediaobject> + <imageobject> + <imagedata fileref="Ref/Screen/EclipseConfig/windowsCmdJdkJre.png"/> + </imageobject> + </mediaobject> + </informalfigure> + + <para>The problem: A library tools.jar being required by <xref + linkend="glo_BlueJ"/> is part of a <xref linkend="glo_JDK"/> but not + of a <xref linkend="glo_JRE"/>. Different resolutions are being + subsequently listed in descending order of ugliness (authors + opinion):</para> + + <glosslist> + <glossentry> + <glossterm>Explicitly defining the <xref linkend="glo_JDK"/> in + <xref linkend="glo_Eclipse"/></glossterm> + + <glossdef> + <para>Modify <filename>eclipse.ini</filename> in your <xref + linkend="glo_Eclipse"/> root installation directory pointing to + a <xref linkend="glo_JDK"/> in favour of the <xref + linkend="glo_JRE"/> default. The highlighted lines must appear + <emphasis role="bold">before</emphasis> any + <option>-vmargs</option> options.</para> + + <programlisting language="none">... +-showsplash +org.eclipse.platform +--launcher.XXMaxPermSize +256m +--launcher.defaultAction +openFile +--launcher.appendVmargs +<emphasis role="bold">-vm +C:\Program Files\Java\jdk1.8.0_25\bin/javaw +</emphasis>-vmargs +-Dosgi.requiredJavaVersion=1.6 +-Xms40m +-Xmx2048m</programlisting> + </glossdef> + </glossentry> + + <glossentry> + <glossterm>Fix <envar>JAVA_HOME</envar></glossterm> + + <glossdef> + <para>Define the environment variable <envar>JAVA_HOME</envar> + on operating system level pointing to your <xref + linkend="glo_JDK"/> of choice's root directory:</para> + + <programlisting language="none"><emphasis role="bold">set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_25</emphasis></programlisting> + </glossdef> + </glossentry> + + <glossentry> + <glossterm>Setting a static path in <xref + linkend="glo_pom.xml"/></glossterm> + + <glossdef> + <para>Explicitly set the required dependencies fully qualified + pathname in each <xref linkend="glo_pom.xml"/>:</para> + + <programlisting language="none"><dependency> + <groupId>com.sun</groupId> + <artifactId>tools</artifactId> + <version>1.8.0</version> + <scope>system</scope> + <emphasis role="bold"><systemPath>C:\Program Files\Java\jdk1.8.0_25\lib\tools.jar</systemPath></emphasis> + </dependency></programlisting> + </glossdef> + </glossentry> + </glosslist> + + <para>Needless to mention these path settings have to be revised + accordingly whenever your <xref linkend="glo_JDK"/> receives an update + to e.g. <xref linkend="glo_JDK"/> 1.8.0_31. The author humbly welcomes + any advice towards a better solution.</para> + </section> + <section xml:id="sd1LifeWorld"> <title>Creating the Game of life's world</title> @@ -6140,85 +6317,18 @@ values newArray | 1| 2| F| 7| 9| | ...</programlisting> xlink:href="http://en.wikipedia.org/wiki/Conway's_Game_of_Life">Game of Life</quote>'s world</title> - <para>The following exercises may be carried out using the - <productname>Greenfoot</productname> environment. If you however - prefer Eclipse for development and use - <productname>Greenfoot</productname> just for running the examples - you may follow the subsequent steps.</para> - - <para>Actually your Java game code uses the - <productname>Greenfoot</productname> runtime which in turn uses - another framework called <productname - xlink:href="http://www.bluej.org">blueJ</productname>. If you want - to use Eclipse for actual development you have to provide both Bluej - and Greenfoot to your project. This may be achieved by:</para> - <glosslist> - <glossentry> - <glossterm>Locally install <xref linkend="glo_BlueJ"/> - dependencies</glossterm> - - <glossdef> - <para>Download <uri - xlink:href="http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/Ref/api/P/Maven/bluej/eclipse.zip">http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/Ref/api/P/Maven/bluej/eclipse.zip</uri> - and unzip it to a subfolder <filename>Bluej</filename>. Import - this Folder as a Maven project into Eclipse and right click on - pom.xml choosing <guisubmenu>mvn install</guisubmenu>. This - will install Bluej into your local Maven repository below - <filename>yourHomeDirPath/.m2</filename>.</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Locally install <xref linkend="glo_Greenfoot"/> - dependencies</glossterm> - - <glossdef> - <para>Repeat the previous step for <uri - xlink:href="http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/Ref/api/P/Maven/greenfoot/eclipse.zip">http://www.mi.hdm-stuttgart.de/freedocs/topic/de.hdm_stuttgart.mi.swd1/Ref/api/P/Maven/greenfoot/eclipse.zip</uri> - using a subfolder <filename>Greenfoot</filename>.</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Open your own <productname>Greenfoot</productname> - game project</glossterm> - - <glossdef> - <para>You may now create your own <xref - linkend="glo_Greenfoot"/> Maven <xref linkend="glo_Eclipse"/> - project by adding the newly created <xref - linkend="glo_Greenfoot"/> Maven artifact as a project - dependency:</para> - - <programlisting language="none">... - <dependencies> - ... - <dependency> - <groupId>de.hdm-stuttgart.mi</groupId> - <artifactId>greenfoot</artifactId> - <version>2.3.0</version> - </dependency> - </dependencies>...</programlisting> - - <para>Due to <productname>Greenfoot</productname>'s simplicity - and in contrast to common Java practice you'll off course have - to create all classes inside the <quote>default</quote> - package ignoring or suppressing compiler warnings.</para> - </glossdef> - </glossentry> - <glossentry> <glossterm>Exporting to your separate <productname>Greenfoot</productname> environment</glossterm> <glossdef> <para>As soon as you actually want to run your game copy all - Java files from your eclipse project to your - <productname>Greenfoot</productname> environment. A graphical - file manager might assist you or you may simply use shell - commands (You'll need to do this next term in <quote>Operating - Systems</quote> anyway) like e.g.:</para> + Java files from your <xref linkend="glo_Eclipse"/> project to + your <productname>Greenfoot</productname> environment. A + graphical file manager might assist you or you may simply use + shell commands (You'll need to do this next term in + <quote>Operating Systems</quote> anyway) like e.g.:</para> <programlisting language="none">goik@goiki:~$ cd ~/workspace/life/src/main/java goik@goiki:~/workspace/life/src/main/java$ ls @@ -6433,7 +6543,7 @@ goik@goiki:~/workspace/life/src/main/java$ cp *.java ~/my-scenarios/Life</progra xlink:href="http://www.greenfoot.org/files/javadoc/greenfoot/Actor.html#act()">Actor</link>. You'll learn about the temporal order in which these are being invoked by the <productname>Greenfoot</productname> - framework.</para> + <xref linkend="glo_framework"/>.</para> </listitem> <listitem> @@ -6541,7 +6651,8 @@ goik@goiki:~/workspace/life/src/main/java$ cp *.java ~/my-scenarios/Life</progra <para><code>Hey, Roy! Am I mayor? Yeh!</code> --> <code>heyroyamimayoryeh</code></para> - <para>You may search the API of class <classname + <para>You may search the <xref linkend="glo_API"/> of + class <classname xlink:href="http://docs.oracle.com/javase/8/docs/api/java/lang/Character.html">Character</classname> assisting you to distinguish letters from non-letters.</para> @@ -6747,12 +6858,13 @@ public class InputValidator { </listitem> <listitem> - <para>Simulating command line arguments in eclipse requires - a run time configuration. Click <guimenu>Run</guimenu> - <guimenuitem>Run Configurations...</guimenuitem>. Choose - <quote>Java Applications</quote> and "new launch - configuration" from the panel's left side, choose your - project and main class (if not already selected).</para> + <para>Simulating command line arguments in <xref + linkend="glo_Eclipse"/> requires a run time configuration. + Click <guimenu>Run</guimenu> <guimenuitem>Run + Configurations...</guimenuitem>. Choose <quote>Java + Applications</quote> and "new launch configuration" from the + panel's left side, choose your project and main class (if + not already selected).</para> <screenshot> <info> @@ -6848,7 +6960,8 @@ public class InputValidator { </glossentry> <glossentry> - <glossterm>From inside Eclipse:</glossterm> + <glossterm>From inside <xref + linkend="glo_Eclipse"/>:</glossterm> <glossdef> <para>Create a maven run time configuration (see @@ -7163,7 +7276,7 @@ final BufferedReader inputBufferedReader = new BufferedReader(fileReader);</prog </glossentry> </glosslist> - <para><productname>Junit</productname> tests of internal + <para><xref linkend="glo_Junit"/> tests of internal functionality:</para> <glosslist> @@ -7747,9 +7860,9 @@ c12.equals("dummy"):false </listitem> <listitem> - <para>Write a <productname>Junit</productname> test which - reads from a given input file and compares its result with - a hard coded set of expected strings.</para> + <para>Write a <xref linkend="glo_Junit"/> test which reads + from a given input file and compares its result with a + hard coded set of expected strings.</para> </listitem> </orderedlist> </question> @@ -7760,7 +7873,7 @@ c12.equals("dummy"):false </annotation> <para>The input file smalltest.txt may be used to define a - <productname>Junit</productname> test:</para> + <xref linkend="glo_Junit"/> test:</para> <programlisting language="java"> @Test public void testWordSet() throws FileNotFoundException, IOException { @@ -7878,8 +7991,8 @@ public class LengthCompare implements Comparator<String> { </listitem> <listitem> - <para>Write a <productname>Junit</productname> test to - assure correct sorting of strings.</para> + <para>Write a <xref linkend="glo_Junit"/> test to assure + correct sorting of strings.</para> </listitem> </orderedlist> </question> @@ -8094,7 +8207,8 @@ public class WordFrequency { <para role="eclipse">P/HtmlFormatting/Simple/Exercise</para> </annotation> - <para>Import the above project into eclipse. Executing + <para>Import the above project into <xref + linkend="glo_Eclipse"/>. Executing <classname>de.hdm_stuttgart.mi.sd1.htmlformat.Address2text</classname> yields the following output:</para> diff --git a/Sda2/Ref/Fig/concurrentOptimisticFail.svg b/Sda2/Ref/Fig/concurrentOptimisticFail.svg new file mode 100644 index 000000000..25ad653e3 --- /dev/null +++ b/Sda2/Ref/Fig/concurrentOptimisticFail.svg @@ -0,0 +1,2076 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:ns1="http://sozi.baierouge.fr" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="concurrentOptimisticFail.svg" + inkscape:version="0.48.4 r9939" + version="1.1" + id="svg2" + height="418.78125" + width="536.09375"> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="2.1424092" + inkscape:cx="335.3683" + inkscape:cy="222.97191" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="true" + inkscape:window-width="1920" + inkscape:window-height="1176" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + showguides="true" + inkscape:guide-bbox="true" + inkscape:snap-global="false" + objecttolerance="10000" + guidetolerance="10000" + units="mm" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0"> + <inkscape:grid + type="xygrid" + id="grid4604" + empspacing="5" + visible="true" + enabled="true" + snapvisiblegridlinesonly="true" + originx="-37.27414px" + originy="-243.20196px" /> + </sodipodi:namedview> + <defs + id="defs4"> + <marker + inkscape:stockid="DiamondMend" + orient="auto" + refY="0" + refX="0" + id="DiamondMend" + style="overflow:visible"> + <path + id="path4249" + d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="matrix(0.4,0,0,0.4,-2.6,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path4158" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="EmptyTriangleOutL" + orient="auto" + refY="0" + refX="0" + id="EmptyTriangleOutL" + style="overflow:visible"> + <path + id="path4309" + d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" + style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="matrix(0.8,0,0,0.8,-4.8,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Lstart" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lstart"> + <path + inkscape:connector-curvature="0" + transform="matrix(0.8,0,0,0.8,10,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path3841" /> + </marker> + <marker + inkscape:stockid="SquareM" + orient="auto" + refY="0" + refX="0" + id="SquareM" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3914" + d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="scale(0.4,0.4)" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Lend" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path3844" /> + </marker> + <marker + style="overflow:visible" + id="DiamondM" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DiamondM"> + <path + inkscape:connector-curvature="0" + transform="scale(0.4,0.4)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" + id="path3923" /> + </marker> + <marker + style="overflow:visible" + id="DiamondMH" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DiamondMH"> + <path + inkscape:connector-curvature="0" + transform="scale(0.4,0.4)" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" + id="path4656" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1LendB" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1LendB"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path4659" /> + </marker> + <marker + inkscape:stockid="SquareMU" + orient="auto" + refY="0" + refX="0" + id="SquareMU" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path5221" + d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" + transform="scale(0.4,0.4)" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Lend3" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend3"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path5224" /> + </marker> + <marker + style="overflow:visible" + id="DiamondMo" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DiamondMo"> + <path + inkscape:connector-curvature="0" + transform="scale(0.4,0.4)" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" + d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" + id="path5799" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1LendO" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1LendO"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path5802" /> + </marker> + <marker + style="overflow:visible" + id="DiamondM1" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DiamondM1"> + <path + inkscape:connector-curvature="0" + transform="scale(0.4,0.4)" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" + d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" + id="path6393" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1LendV" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1LendV"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6396" /> + </marker> + <marker + inkscape:stockid="SquareMN" + orient="auto" + refY="0" + refX="0" + id="SquareMN" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path7813" + d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" + transform="scale(0.4,0.4)" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1LstartP" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1LstartP"> + <path + inkscape:connector-curvature="0" + transform="matrix(0.8,0,0,0.8,10,0)" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path7816" /> + </marker> + <marker + inkscape:stockid="SquareMb" + orient="auto" + refY="0" + refX="0" + id="SquareMb" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path9491" + d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" + transform="scale(0.4,0.4)" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1LendX" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1LendX"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path9494" /> + </marker> + <marker + inkscape:stockid="SquareM8" + orient="auto" + refY="0" + refX="0" + id="SquareM8" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path10143" + d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + transform="scale(0.4,0.4)" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1LendT" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1LendT"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path10146" /> + </marker> + <marker + inkscape:stockid="SquareMNT" + orient="auto" + refY="0" + refX="0" + id="SquareMNT" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path12195" + d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + transform="scale(0.4,0.4)" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1LstartPJ" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1LstartPJ"> + <path + inkscape:connector-curvature="0" + transform="matrix(0.8,0,0,0.8,10,0)" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path12198" /> + </marker> + <marker + inkscape:stockid="SquareMNTL" + orient="auto" + refY="0" + refX="0" + id="SquareMNTL" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path12907" + d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + transform="scale(0.4,0.4)" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Lendx" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lendx"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path12910" /> + </marker> + <marker + style="overflow:visible" + id="DiamondMoY" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DiamondMoY"> + <path + inkscape:connector-curvature="0" + transform="scale(0.4,0.4)" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" + d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" + id="path13187" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1LendOe" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1LendOe"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path13190" /> + </marker> + <marker + inkscape:stockid="EmptyTriangleOutLt" + orient="auto" + refY="0" + refX="0" + id="EmptyTriangleOutLt" + style="overflow:visible"> + <path + id="path4692" + d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + transform="matrix(0.8,0,0,0.8,-4.8,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="EmptyTriangleOutLt" + orient="auto" + refY="0" + refX="0" + id="EmptyTriangleOutLt-8" + style="overflow:visible"> + <path + id="path4692-6" + d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + transform="matrix(0.8,0,0,0.8,-4.8,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="EmptyTriangleOutLt" + orient="auto" + refY="0" + refX="0" + id="EmptyTriangleOutLt-3" + style="overflow:visible"> + <path + id="path4692-7" + d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + transform="matrix(0.8,0,0,0.8,-4.8,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1MendK" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1MendK"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path5820" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mendw" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mendw"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6591" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6594" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6-6" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6594-3" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6z" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6z"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6949" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6z-8" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6z"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6949-5" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6z-3" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6z"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6949-0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6z-1" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6z"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6949-1" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6z-33" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6z"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6949-55" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6z-39" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6z"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6949-559" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6z-88" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6z"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6949-57" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6-9" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6594-5" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1MendK-6" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1MendK"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path5820-7" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6z-4" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6z"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6949-3" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6z-6" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6z"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6949-06" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6z-5" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6z"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6949-58" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6z-16" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6z"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6949-6" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend6z-45" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend6z"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path6949-9" + inkscape:connector-curvature="0" /> + </marker> + </defs> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + transform="translate(-37.27414,-390.37897)" + id="layer1" + inkscape:groupmode="layer" + inkscape:label="Layer 1"> + <rect + y="417.87314" + x="349.56961" + height="199.09865" + width="75.529861" + id="rect6832-8-7" + style="fill:#f2f2f2;stroke:none" /> + <rect + y="418.67703" + x="220.14207" + height="198.29477" + width="60.255787" + id="rect6832-8" + style="fill:#f2f2f2;stroke:none" /> + <rect + y="542.20227" + x="470.04712" + height="219.77136" + width="59.100609" + id="view50-5" + style="fill:#f2f2f2;stroke:none" /> + <rect + transform="translate(0,502.36221)" + y="40" + x="125" + height="220" + width="90" + id="rect6832" + style="fill:#f2f2f2;stroke:none" /> + <text + transform="translate(0,308.2677)" + sodipodi:linespacing="125%" + id="text3004" + y="81.43441" + x="97.984795" + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="81.43441" + x="97.984795" + id="tspan3006" + sodipodi:role="line" /></text> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="51.716835" + y="590.13226" + id="text4576" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4578" + x="51.716835" + y="590.13226">Database</tspan></text> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="57.058464" + y="728.79333" + id="text4584" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + x="57.058464" + y="728.79333" + id="tspan4588">Client 1</tspan></text> + <g + id="g4179" + transform="translate(1,19.000027)"> + <text + sodipodi:linespacing="125%" + id="text4596" + y="563.36218" + x="144" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="563.36218" + x="144" + id="tspan4598" + sodipodi:role="line">Jim</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600" + y="579.36218" + x="145" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="579.36218" + x="145" + id="tspan4602" + sodipodi:role="line">37</tspan></text> + <rect + transform="translate(0,502.36221)" + y="50" + x="140" + height="30" + width="25" + id="rect4175" + style="fill:none;stroke:#000000" /> + <path + transform="translate(0,502.36221)" + inkscape:connector-curvature="0" + id="path4177" + d="m 140,65 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + transform="translate(116,159.00003)" + id="g4179-8"> + <text + sodipodi:linespacing="125%" + id="text4596-7" + y="563.36218" + x="144" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="563.36218" + x="144" + id="tspan4598-5" + sodipodi:role="line">Sid</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600-4" + y="579.36218" + x="145" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="579.36218" + x="145" + id="tspan4602-71" + sodipodi:role="line">37</tspan></text> + <rect + transform="translate(0,502.36221)" + y="50" + x="140" + height="30" + width="25" + id="rect4175-1" + style="fill:none;stroke:#000000" /> + <path + transform="translate(0,502.36221)" + inkscape:connector-curvature="0" + id="path4177-60" + d="m 140,65 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + transform="translate(1,159.00006)" + id="g4179-51"> + <text + sodipodi:linespacing="125%" + id="text4596-1" + y="563.36218" + x="144" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="563.36218" + x="144" + id="tspan4598-25" + sodipodi:role="line">Jim</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600-31" + y="579.36218" + x="145" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="579.36218" + x="145" + id="tspan4602-8" + sodipodi:role="line">37</tspan></text> + <rect + transform="translate(0,502.36221)" + y="50" + x="140" + height="30" + width="25" + id="rect4175-0" + style="fill:none;stroke:#000000" /> + <path + transform="translate(0,502.36221)" + inkscape:connector-curvature="0" + id="path4177-8" + d="m 140,65 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + transform="translate(338.00974,158.19616)" + id="g4179-8-6"> + <text + sodipodi:linespacing="125%" + id="text4596-7-8" + y="563.36218" + x="144" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="563.36218" + x="144" + id="tspan4598-5-3" + sodipodi:role="line">Sid</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600-4-2" + y="579.36218" + x="145" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="579.36218" + x="145" + id="tspan4602-71-7" + sodipodi:role="line">37</tspan></text> + <rect + transform="translate(0,502.36221)" + y="50" + x="140" + height="30" + width="25" + id="rect4175-1-0" + style="fill:none;stroke:#000000" /> + <path + transform="translate(0,502.36221)" + inkscape:connector-curvature="0" + id="path4177-60-8" + d="m 140,65 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + x="434.38489" + y="695.90057" + id="text3223" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3225" + x="434.38489" + y="695.90057">not</tspan></text> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + x="428.35568" + y="711.52783" + id="text3227" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3229" + x="428.35568" + y="711.52783">equal</tspan></text> + <path + sodipodi:nodetypes="cc" + style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendK)" + d="m 458.72716,693.6655 21.97929,-5.67601" + id="path3231" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6)" + d="m 463.50182,711.70447 15.59684,18.87333" + id="path3231-0" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" + d="m 165,717.36221 90,0" + id="path3231-0-2" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="220" + y="732.36218" + id="text7197" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan7199" + x="220" + y="732.36218">edit</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.99685039, 0.9992126;stroke-dashoffset:0" + d="m 45,135 440.8587,-0.40195" + id="path7201" + inkscape:connector-curvature="0" + transform="translate(0,502.36221)" + sodipodi:nodetypes="cc" /> + <path + sodipodi:nodetypes="cc" + style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" + d="m 490,598.34272 0,64.01949" + id="path3231-0-2-0" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" + d="m 155,602.36221 0,105" + id="path3231-0-2-6" + inkscape:connector-curvature="0" /> + <g + id="g7293" + transform="translate(-104,-119.99997)"> + <text + sodipodi:linespacing="125%" + id="text7257" + y="777.36218" + x="250" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="777.36218" + x="250" + id="tspan7259" + sodipodi:role="line">r</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7261" + y="787.36218" + x="249" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="787.36218" + x="249" + id="tspan7263" + sodipodi:role="line">e</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7265" + y="797.36218" + x="249" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="797.36218" + x="249" + id="tspan7267" + sodipodi:role="line">a</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7269" + y="811.36218" + x="249" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="811.36218" + x="249" + id="tspan7271" + sodipodi:role="line">d</tspan></text> + </g> + <g + id="g7293-1" + transform="translate(246,-159.99997)"> + <text + sodipodi:linespacing="125%" + id="text7257-0" + y="777.36218" + x="250" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="777.36218" + x="250" + id="tspan7259-6" + sodipodi:role="line">r</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7261-0" + y="787.36218" + x="249" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="787.36218" + x="249" + id="tspan7263-7" + sodipodi:role="line">e</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7265-8" + y="797.36218" + x="249" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="797.36218" + x="249" + id="tspan7267-0" + sodipodi:role="line">a</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7269-7" + y="811.36218" + x="249" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="811.36218" + x="249" + id="tspan7271-3" + sodipodi:role="line">d</tspan></text> + </g> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="540.64636" + y="763.52502" + id="text7375" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan7377" + x="540.64636" + y="763.52502">Time</tspan></text> + <path + sodipodi:nodetypes="cc" + style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#DiamondMend);marker-end:url(#Arrow1Lend)" + d="m 119.60006,773.96791 448.14069,-0.99788" + id="path7379" + inkscape:connector-curvature="0" /> + <g + transform="translate(368.98903,-340.85261)" + id="group30"> + <rect + y="764.0553" + x="-142.33704" + height="187.11328" + width="197.42996" + id="view30" + style="fill:none;stroke:#0000ff;stroke-width:0.99921262;stroke-miterlimit:4;stroke-dasharray:none"> + <title + id="title4592">Client side change</title> + </rect> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans" + x="-140.96068" + y="944.93225" + id="text8123" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan8125" + x="-140.96068" + y="944.93225">30</tspan></text> + </g> + <g + id="g4179-9" + transform="translate(100.20207,19.313639)"> + <text + sodipodi:linespacing="125%" + id="text4596-54" + y="563.36218" + x="144" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="563.36218" + x="144" + id="tspan4598-7" + sodipodi:role="line">Jim</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600-9" + y="579.36218" + x="145" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="579.36218" + x="145" + id="tspan4602-5" + sodipodi:role="line">37</tspan></text> + <rect + transform="translate(0,502.36221)" + y="50" + x="140" + height="30" + width="25" + id="rect4175-56" + style="fill:none;stroke:#000000" /> + <path + transform="translate(0,502.36221)" + inkscape:connector-curvature="0" + id="path4177-3" + d="m 140,65 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + id="g4179-92" + transform="translate(256.14621,15.21178)"> + <text + sodipodi:linespacing="125%" + id="text4596-60" + y="564.81512" + x="141.5784" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="564.81512" + x="141.5784" + id="tspan4598-72" + sodipodi:role="line">Kim</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600-2" + y="579.36218" + x="145" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="579.36218" + x="145" + id="tspan4602-9" + sodipodi:role="line">38</tspan></text> + <rect + transform="translate(0,502.36221)" + y="50" + x="140" + height="30" + width="25" + id="rect4175-10" + style="fill:none;stroke:#000000" /> + <path + transform="translate(0,502.36221)" + inkscape:connector-curvature="0" + id="path4177-603" + d="m 140,65 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="46.346935" + y="436.62521" + id="text4584-8" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + x="46.346935" + y="436.62521" + id="tspan4588-5">Client 2</tspan></text> + <g + transform="translate(8.0389767,42.606576)" + id="g9512"> + <g + transform="translate(91.788679,-161.47396)" + id="g4179-9-6"> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="144" + y="563.36218" + id="text4596-54-5" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4598-7-8" + x="144" + y="563.36218">Jim</tspan></text> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + x="145" + y="579.36218" + id="text4600-9-6" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4602-5-2" + x="145" + y="579.36218">37</tspan></text> + <rect + style="fill:none;stroke:#000000" + id="rect4175-56-7" + width="25" + height="30" + x="140" + y="50" + transform="translate(0,502.36221)" /> + <path + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 140,65 25,0 0,0" + id="path4177-3-3" + inkscape:connector-curvature="0" + transform="translate(0,502.36221)" /> + </g> + </g> + <g + transform="translate(-6.4311811,41.802678)" + id="g9480"> + <text + sodipodi:linespacing="125%" + id="text4596-54-6" + y="402.79425" + x="314.40662" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="402.79425" + x="314.40662" + id="tspan4598-7-2" + sodipodi:role="line">Kim</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600-9-3" + y="418.04306" + x="318.28616" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="418.04306" + x="318.28616" + id="tspan4602-5-4" + sodipodi:role="line">37</tspan></text> + <rect + y="391.04309" + x="313.28616" + height="30" + width="25" + id="rect4175-56-0" + style="fill:none;stroke:#000000" /> + <path + inkscape:connector-curvature="0" + id="path4177-3-7" + d="m 313.28617,406.0431 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <path + sodipodi:nodetypes="cc" + style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" + d="m 252.81184,570.77087 0.76737,-104.10474" + id="path3231-0-2-20" + inkscape:connector-curvature="0" /> + <g + id="g7293-7" + transform="translate(-7.2565342,-287.73251)"> + <text + sodipodi:linespacing="125%" + id="text7257-3" + y="777.36218" + x="250" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="777.36218" + x="250" + id="tspan7259-3" + sodipodi:role="line">r</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7261-9" + y="787.36218" + x="249" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="787.36218" + x="249" + id="tspan7263-1" + sodipodi:role="line">e</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7265-4" + y="797.36218" + x="249" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="797.36218" + x="249" + id="tspan7267-2" + sodipodi:role="line">a</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7269-9" + y="811.36218" + x="249" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="811.36218" + x="249" + id="tspan7271-1" + sodipodi:role="line">d</tspan></text> + </g> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="270.72177" + y="445.92776" + id="text7197-1" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan7199-7" + x="270.72177" + y="445.92776">edit</tspan></text> + <path + sodipodi:nodetypes="cc" + style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" + d="m 265.1876,448.28729 39.35444,0" + id="path3231-0-2-8" + inkscape:connector-curvature="0" /> + <g + transform="translate(44.264561,41.842249)" + id="g9480-3"> + <text + sodipodi:linespacing="125%" + id="text4596-54-6-7" + y="402.79425" + x="314.40662" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="402.79425" + x="314.40662" + id="tspan4598-7-2-3" + sodipodi:role="line">Kim</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600-9-3-9" + y="418.04306" + x="318.28616" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="418.04306" + x="318.28616" + id="tspan4602-5-4-1" + sodipodi:role="line">37</tspan></text> + <rect + y="391.04309" + x="313.28616" + height="30" + width="25" + id="rect4175-56-0-3" + style="fill:none;stroke:#000000" /> + <path + inkscape:connector-curvature="0" + id="path4177-3-7-8" + d="m 313.28617,406.0431 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + id="g4179-9-68" + transform="translate(218.35463,15.577937)"> + <text + sodipodi:linespacing="125%" + id="text4596-54-3" + y="563.36218" + x="144" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="563.36218" + x="144" + id="tspan4598-7-1" + sodipodi:role="line">Jim</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600-9-0" + y="579.36218" + x="145" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="579.36218" + x="145" + id="tspan4602-5-5" + sodipodi:role="line">37</tspan></text> + <rect + transform="translate(0,502.36221)" + y="50" + x="140" + height="30" + width="25" + id="rect4175-56-8" + style="fill:none;stroke:#000000" /> + <path + transform="translate(0,502.36221)" + inkscape:connector-curvature="0" + id="path4177-3-5" + d="m 140,65 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + id="g4179-9-68-9" + transform="translate(217.95269,-77.272243)"> + <text + sodipodi:linespacing="125%" + id="text4596-54-3-9" + y="563.36218" + x="144" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="563.36218" + x="144" + id="tspan4598-7-1-8" + sodipodi:role="line">Jim</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600-9-0-5" + y="579.36218" + x="145" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="579.36218" + x="145" + id="tspan4602-5-5-1" + sodipodi:role="line">37</tspan></text> + <rect + transform="translate(0,502.36221)" + y="50" + x="140" + height="30" + width="25" + id="rect4175-56-8-7" + style="fill:none;stroke:#000000" /> + <path + transform="translate(0,502.36221)" + inkscape:connector-curvature="0" + id="path4177-3-5-6" + d="m 140,65 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + id="g7293-1-0" + transform="translate(111.31837,-251.55711)"> + <text + sodipodi:linespacing="125%" + id="text7257-0-0" + y="777.36218" + x="250" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="777.36218" + x="250" + id="tspan7259-6-5" + sodipodi:role="line">r</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7261-0-5" + y="787.36218" + x="249" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="787.36218" + x="249" + id="tspan7263-7-0" + sodipodi:role="line">e</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7265-8-2" + y="797.36218" + x="249" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="797.36218" + x="249" + id="tspan7267-0-3" + sodipodi:role="line">a</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7269-7-1" + y="811.36218" + x="249" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="811.36218" + x="249" + id="tspan7271-3-0" + sodipodi:role="line">d</tspan></text> + </g> + <path + sodipodi:nodetypes="cc" + style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" + d="m 371.73925,567.8398 -0.0365,-61.09622" + id="path3231-0-2-20-0" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + x="304.20624" + y="482.57654" + id="text3223-9" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3225-0" + x="304.20624" + y="482.57654">still</tspan></text> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + x="299.38284" + y="494.98822" + id="text3227-0" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3229-6" + x="299.38284" + y="494.98822">equal</tspan></text> + <path + sodipodi:nodetypes="cc" + style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendK)" + d="M 336.58747,479.13567 360.57651,460.5973" + id="path3231-05" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6)" + d="m 336.53875,491.54736 25.24361,6.01096" + id="path3231-0-5" + inkscape:connector-curvature="0" /> + <g + id="g4179-92-0" + transform="translate(255.33392,-119.07492)"> + <text + sodipodi:linespacing="125%" + id="text4596-60-4" + y="564.81512" + x="141.5784" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="564.81512" + x="141.5784" + id="tspan4598-72-0" + sodipodi:role="line">Kim</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600-2-1" + y="579.36218" + x="145" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="579.36218" + x="145" + id="tspan4602-9-3" + sodipodi:role="line">38</tspan></text> + <rect + transform="translate(0,502.36221)" + y="50" + x="140" + height="30" + width="25" + id="rect4175-10-8" + style="fill:none;stroke:#000000" /> + <path + transform="translate(0,502.36221)" + inkscape:connector-curvature="0" + id="path4177-603-3" + d="m 140,65 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <path + sodipodi:nodetypes="cc" + style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" + d="m 409.84366,464.14583 0.40195,101.78441" + id="path3231-0-2-6-1" + inkscape:connector-curvature="0" /> + <g + id="g7303-6" + transform="translate(107.76957,-300.04669)"> + <text + sodipodi:linespacing="125%" + id="text7273-5" + y="777.36218" + x="304" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="777.36218" + x="304" + id="tspan7275-4" + sodipodi:role="line">w</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7277-7" + y="787.36218" + x="307" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="787.36218" + x="307" + id="tspan7279-8" + sodipodi:role="line">r</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7281-2" + y="800.36218" + x="307" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="800.36218" + x="307" + id="tspan7283-5" + sodipodi:role="line">i</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7285-3" + y="811.36218" + x="307" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="811.36218" + x="307" + id="tspan7287-0" + sodipodi:role="line">t</tspan></text> + <text + sodipodi:linespacing="125%" + id="text7289-7" + y="821.36218" + x="306" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="821.36218" + x="306" + id="tspan7291-4" + sodipodi:role="line">e</tspan></text> + </g> + <g + id="g4179-92-6" + transform="translate(337.73342,15.577937)"> + <text + sodipodi:linespacing="125%" + id="text4596-60-2" + y="564.81512" + x="141.5784" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="564.81512" + x="141.5784" + id="tspan4598-72-8" + sodipodi:role="line">Kim</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600-2-6" + y="579.36218" + x="145" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="579.36218" + x="145" + id="tspan4602-9-2" + sodipodi:role="line">38</tspan></text> + <rect + transform="translate(0,502.36221)" + y="50" + x="140" + height="30" + width="25" + id="rect4175-10-5" + style="fill:none;stroke:#000000" /> + <path + transform="translate(0,502.36221)" + inkscape:connector-curvature="0" + id="path4177-603-6" + d="m 140,65 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <g + id="g4179-92-6-9" + transform="translate(337.73343,111.64371)"> + <text + sodipodi:linespacing="125%" + id="text4596-60-2-0" + y="564.81512" + x="141.5784" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="564.81512" + x="141.5784" + id="tspan4598-72-8-6" + sodipodi:role="line">Kim</tspan></text> + <text + sodipodi:linespacing="125%" + id="text4600-2-6-5" + y="579.36218" + x="145" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="579.36218" + x="145" + id="tspan4602-9-2-3" + sodipodi:role="line">38</tspan></text> + <rect + transform="translate(0,502.36221)" + y="50" + x="140" + height="30" + width="25" + id="rect4175-10-5-0" + style="fill:none;stroke:#000000" /> + <path + transform="translate(0,502.36221)" + inkscape:connector-curvature="0" + id="path4177-603-6-1" + d="m 140,65 25,0 0,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + </g> + <text + sodipodi:linespacing="125%" + id="text10060" + y="554.27484" + x="475.19913" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="554.27484" + x="475.19913" + id="tspan10062" + sodipodi:role="line">Rollback</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.99685039, 0.9992126;stroke-dashoffset:0" + d="m 45.11468,532.49558 310.62728,-0.40195" + id="path7201-1" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.99685039, 0.9992126;stroke-dashoffset:0" + d="m 375.11467,532.09362 32.4787,-0.40195" + id="path7201-5" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.99685039, 0.9992126;stroke-dashoffset:0" + d="m 414.50565,532.09362 149.44581,0" + id="path7201-5-7" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.99685039, 0.9992126;stroke-dashoffset:0" + d="m 505.54706,636.80129 61.01707,0" + id="path7201-5-7-5" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <g + transform="translate(-358.53836,-298.24603)" + id="group10"> + <rect + ry="0" + y="688.97858" + x="396.16928" + height="418.05881" + width="535.38202" + id="view10" + style="fill:none;stroke:#0000ff;stroke-width:0.70866144;stroke-miterlimit:4;stroke-dasharray:none" /> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans" + x="908.26019" + y="734.47485" + id="text10132" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan10134" + x="908.26019" + y="734.47485">10</tspan></text> + </g> + <g + transform="translate(495.67035,-201.51711)" + id="group40"> + <rect + ry="0" + y="760.83972" + x="-147.96432" + height="189.52496" + width="219.9391" + id="view30-3" + style="fill:none;stroke:#0000ff;stroke-width:0.99921262;stroke-miterlimit:4;stroke-dasharray:none"> + <title + id="title4592-2">Client side change</title> + </rect> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans" + x="-140.96068" + y="944.93225" + id="text8123-2" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan8125-2" + x="-140.96068" + y="944.93225">40</tspan></text> + </g> + <g + id="group20" + transform="translate(2.3062254,4.9968216)"> + <rect + style="fill:none;stroke:#0000ff;stroke-width:1.0629921;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" + id="rect15119" + width="233.31313" + height="209.09776" + x="49.192089" + y="562.08331" /> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans" + x="55.342022" + y="765.41553" + id="text15121" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan15123" + x="55.342022" + y="765.41553">20</tspan></text> + </g> + <text + sodipodi:linespacing="125%" + id="text3922" + y="409.10367" + x="271.74283" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="409.10367" + x="271.74283" + id="tspan3924" + sodipodi:role="line">Long transaction</tspan></text> + <path + transform="translate(37.27659,416.00309)" + inkscape:connector-curvature="0" + id="path3926" + d="M 183.18731,-24.142754 182.91552,5.4824942" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + inkscape:connector-curvature="0" + id="path3926-7" + d="m 426.07399,392.53982 -0.27179,29.62525" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" + d="m 275.95029,798.17759 -149.01838,-0.0137" + id="path3231-0-2-20-0-5" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" + d="m 415.6607,798.50858 113.48769,-0.31162" + id="path3231-0-2-20-0-8" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" + d="m 384.93054,404.84493 39.91682,0.0568" + id="path3231-0-2-20-0-3" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" + d="m 268.87567,404.57314 -46.51281,-0.21498" + id="path3231-0-2-20-0-9" + inkscape:connector-curvature="0" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path3926-3" + d="m 124.68365,762.58463 0.65419,44.94976" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path3926-39" + d="m 530.23246,762.37525 0.0262,45.64194" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <text + sodipodi:linespacing="125%" + id="text3922-7" + y="800.83777" + x="295.25751" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="800.83777" + x="295.25751" + id="tspan3924-5" + sodipodi:role="line">Long transaction</tspan></text> + <text + xml:space="preserve" + style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="374.57156" + y="613.15881" + id="text6011" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan6013" + x="374.57156" + y="613.15881">Commit</tspan></text> + </g> + <script + id="sozi-script" + ns1:version="14.10-05142318">function namespace(b,d,a){var c=b;d.split(".").forEach(function(e){if(typeof c[e]==="undefined"){c[e]={}}c=c[e]});if(a){a(c,b)}return c}namespace(this,"sozi.events",function(b){var a={};b.listen=function(c,d){if(!a.hasOwnProperty(c)){a[c]=[]}a[c].push(d)};b.fire=function(d){var c=Array.prototype.slice.call(arguments,1);if(a.hasOwnProperty(d)){a[d].forEach(function(e){e.apply(null,c)})}}});namespace(this,"sozi.proto",function(a){a.Object={installConstructors:function(){function b(){}b.prototype=this;this.instance=function(){var c=new b();c.construct.apply(c,arguments);return c};this.subtype=function(d){var c=new b();c.augment(d);c.installConstructors();return c}},construct:function(){},augment:function(c){for(var b in c){if(c.hasOwnProperty(b)){this[b]=c[b]}}return this},bind:function(c){var b=this;return function(){return c.apply(b,arguments)}}};a.Object.installConstructors()});namespace(this,"sozi.actions",function(A,g){var u=namespace(g,"sozi.player");var v=namespace(g,"sozi.display");var n=g.document;var o=0;var w=1;var t=1.05;var y=5;var m=5;var r=false;var i=0;var h=0;function a(C,B,D){u.stop();v.viewPorts.player.zoom(C>0?t:1/t,B,D)}function x(B){u.stop();v.viewPorts.player.rotate(B>0?y:-y)}function s(){if(sozi.framelist.isVisible()){sozi.framelist.hide();u.restart()}else{u.stop();sozi.framelist.show()}}function d(B){return v.viewPorts.player.contains(B.clientX,B.clientY)}function f(B){if(!d(B)){return}if(B.button===o){n.documentElement.addEventListener("mousemove",q,false);r=false;i=B.clientX;h=B.clientY}else{if(B.button===w){s()}}B.stopPropagation();B.preventDefault()}function q(B){if(!d(B)){return}u.stop();if(!r&&(Math.abs(B.clientX-i)>m||Math.abs(B.clientY-h)>m)){r=true}if(r){sozi.events.fire("sozi.player.cleanup");v.viewPorts.player.drag(B.clientX-i,B.clientY-h);i=B.clientX;h=B.clientY}B.stopPropagation()}function c(B){if(!d(B)){return}if(B.button===o){n.documentElement.removeEventListener("mousemove",q,false)}B.stopPropagation();B.preventDefault()}function p(B){if(!d(B)){return}u.moveToPrevious();B.stopPropagation();B.preventDefault()}function e(B){if(!d(B)){return}if(!r&&B.button!==w){u.moveToNext()}B.stopPropagation();B.preventDefault()}function j(B){if(!d(B)){return}if(!B){B=g.event}var C=0;if(B.wheelDelta){C=B.wheelDelta}else{if(B.detail){C=-B.detail}}if(C!==0){if(B.shiftKey){x(C)}else{a(C,B.clientX,B.clientY)}}B.stopPropagation();B.preventDefault()}function l(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.charCode||B.which){case 43:a(1,g.innerWidth/2,g.innerHeight/2);break;case 45:a(-1,g.innerWidth/2,g.innerHeight/2);break;case 61:u.moveToCurrent();break;case 70:case 102:u.showAll();break;case 84:case 116:s();break;case 82:x(-1);break;case 114:x(1);break;default:return}B.stopPropagation();B.preventDefault()}function b(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.keyCode){case 36:if(B.shiftKey){u.jumpToFirst()}else{u.moveToFirst()}break;case 35:if(B.shiftKey){u.jumpToLast()}else{u.moveToLast()}break;case 38:case 33:case 37:if(B.shiftKey){u.jumpToPrevious()}else{u.moveToPrevious()}break;case 40:case 34:case 39:case 13:case 32:if(B.shiftKey){u.jumpToNext()}else{u.moveToNext()}break;default:return}B.stopPropagation();B.preventDefault()}function z(B){B.stopPropagation()}function k(){var C=n.getElementsByTagName("a");for(var D=0;D<C.length;D+=1){C[D].addEventListener("click",z,false);C[D].addEventListener("contextmenu",z,false)}var B=n.documentElement;B.addEventListener("click",e,false);B.addEventListener("mousedown",f,false);B.addEventListener("mouseup",c,false);B.addEventListener("contextmenu",p,false);B.addEventListener("DOMMouseScroll",j,false);g.onmousewheel=j;B.addEventListener("keypress",l,false);B.addEventListener("keydown",b,false)}sozi.events.listen("sozi.display.ready",k)});namespace(this,"sozi.animation",function(d,g){var h=g.mozRequestAnimationFrame||g.webkitRequestAnimationFrame||g.msRequestAnimationFrame||g.oRequestAnimationFrame;var k=function(){return g.performance&&g.performance.now?g.performance.now():Date.now()};d.setAnimationFrameHandlers=function(l,m){h=l;k=m};var i=40;var c;var j=[];function e(){if(j.length>0){if(h){h(e)}j.forEach(function(l){l.step(k())})}else{if(!h){g.clearInterval(c)}}}function b(){if(h){h(e)}else{c=g.setInterval(function(){e(k())},i)}}function a(l){j.push(l);if(j.length===1){b()}}function f(l){j.splice(j.indexOf(l),1)}d.Animator=sozi.proto.Object.subtype({construct:function(){this.durationMs=0;this.data=null;this.initialTime=0;this.started=false},start:function(l,m){this.durationMs=l;this.data=m;this.initialTime=k();this.onStep(0);if(!this.started){this.started=true;a(this)}},stop:function(){if(this.started){f(this);this.started=false}},step:function(m){var l=m-this.initialTime;if(l>=this.durationMs){this.stop();this.onStep(1);this.onDone()}else{this.onStep(l/this.durationMs)}},onStep:function(l){},onDone:function(){}});d.profiles={linear:function(l){return l},accelerate:function(l){return Math.pow(l,3)},"strong-accelerate":function(l){return Math.pow(l,5)},decelerate:function(l){return 1-Math.pow(1-l,3)},"strong-decelerate":function(l){return 1-Math.pow(1-l,5)},"accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,3)/2;return l<=0.5?n:1-n},"strong-accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,5)/2;return l<=0.5?n:1-n},"decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,2))/2;return l<=0.5?n:1-n},"strong-decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,3))/2;return l<=0.5?n:1-n},"immediate-beginning":function(l){return 1},"immediate-end":function(l){return l===1?1:0},"immediate-middle":function(l){return l>=0.5?1:0}}});namespace(this,"sozi.display",function(c,g){var f="http://www.w3.org/2000/svg";var b="http://www.w3.org/1999/xlink";var i=g.document;var k;var h;var j;c.viewPorts={};var e;c.CameraState=sozi.proto.Object.subtype({construct:function(){this.cx=this.cy=0;this.width=this.height=1;this.angle=0;this.clipped=true;this.transitionZoomPercent=0;this.transitionProfile=sozi.animation.profiles.linear;this.transitionPath=null},setCenter:function(l,m){this.cx=l;this.cy=m;return this},setSize:function(m,l){this.width=m;this.height=l;return this},setClipped:function(l){this.clipped=l;return this},setAngle:function(l){this.angle=(l+180)%360-180;return this},setRawAngle:function(l){this.angle=l;return this},setTransitionZoomPercent:function(l){this.transitionZoomPercent=l;return this},setTransitionProfile:function(l){this.transitionProfile=l;return this},setTransitionPath:function(l){this.transitionPath=l;return this},setAtElement:function(p){var s,o,t,m;if(p.nodeName==="rect"){s=p.x.baseVal.value;o=p.y.baseVal.value;t=p.width.baseVal.value;m=p.height.baseVal.value}else{var q=p.getBBox();s=q.x;o=q.y;t=q.width;m=q.height}var n=i.documentElement.createSVGPoint();n.x=s+t/2;n.y=o+m/2;var r=p.getCTM();n=n.matrixTransform(r);var l=Math.sqrt(r.a*r.a+r.b*r.b);return this.setCenter(n.x,n.y).setSize(t*l,m*l).setAngle(Math.atan2(r.b,r.a)*180/Math.PI)},setAtState:function(l){return this.setCenter(l.cx,l.cy).setSize(l.width,l.height).setAngle(l.angle).setClipped(l.clipped).setTransitionZoomPercent(l.transitionZoomPercent).setTransitionProfile(l.transitionProfile).setTransitionPath(l.transitionPath)},interpolatableAttributes:["width","height","angle"],interpolate:function(n,o,t,v,r){var p=1-t;for(var q=0;q<this.interpolatableAttributes.length;q+=1){var s=this.interpolatableAttributes[q];this[s]=o[s]*t+n[s]*p}var l=r?n.transitionPath:o.transitionPath;if(v&&l){var x=l.getTotalLength();if(r){var m=l.getPointAtLength(x);var u=l.getPointAtLength(0);var w=l.getPointAtLength(x*p)}else{var m=l.getPointAtLength(0);var u=l.getPointAtLength(x);var w=l.getPointAtLength(x*t)}this.cx=w.x+(o.cx-u.x)*t+(n.cx-m.x)*p;this.cy=w.y+(o.cy-u.y)*t+(n.cy-m.y)*p}else{this.cx=o.cx*t+n.cx*p;this.cy=o.cy*t+n.cy*p}}});c.Camera=c.CameraState.subtype({construct:function(n,o){c.CameraState.construct.call(this);this.viewPort=n;this.svgClipRect=i.createElementNS(f,"rect");var m=i.createElementNS(f,"clipPath");m.setAttribute("id","sozi-clip-path-"+n.id+"-"+o);m.appendChild(this.svgClipRect);n.svgGroup.appendChild(m);var l=i.createElementNS(f,"g");l.setAttribute("clip-path","url(#sozi-clip-path-"+n.id+"-"+o+")");n.svgGroup.appendChild(l);if(n.isPrimary){this.svgLayer=i.createElementNS(f,"g");this.svgLayer.appendChild(i.getElementById(o))}else{this.svgLayer=i.createElementNS(f,"use");this.svgLayer.setAttributeNS(b,"href","#"+o)}l.appendChild(this.svgLayer)},setAtState:function(l){return c.CameraState.setAtState.call(this,l).update()},getScale:function(){return Math.min(this.viewPort.width/this.width,this.viewPort.height/this.height)},rotate:function(l){return this.setAngle(this.angle+l).update()},zoom:function(m,l,n){return this.setSize(this.width/m,this.height/m).drag((1-m)*(l-this.viewPort.width/2),(1-m)*(n-this.viewPort.height/2))},drag:function(m,l){var q=this.getScale();var o=this.angle*Math.PI/180;var n=Math.sin(o);var p=Math.cos(o);return this.setCenter(this.cx-(m*p-l*n)/q,this.cy-(m*n+l*p)/q).setClipped(false).update()},update:function(){var q=this.getScale();var n=this.width*q;var m=this.height*q;var l=(this.viewPort.width-n)/2;var r=(this.viewPort.height-m)/2;this.svgClipRect.setAttribute("x",this.clipped?l:0);this.svgClipRect.setAttribute("y",this.clipped?r:0);this.svgClipRect.setAttribute("width",this.clipped?n:this.viewPort.width);this.svgClipRect.setAttribute("height",this.clipped?m:this.viewPort.height);var p=-this.cx+this.width/2+l/q;var o=-this.cy+this.height/2+r/q;this.svgLayer.setAttribute("transform","scale("+q+")translate("+p+","+o+")rotate("+(-this.angle)+","+this.cx+","+this.cy+")");return this}});c.ViewPort=sozi.proto.Object.subtype({construct:function(n,m,l){this.id=n;c.viewPorts[n]=this;this.isPrimary=!!l;if(this.isPrimary){if(e){throw"Failed to create a primary viewport. A primary viewport already exists."}else{e=this}}this.svgGroup=i.createElementNS(f,"g");this.svgGroup.setAttribute("class","sozi-viewport");this.svgGroup.setAttribute("id","sozi-viewport-"+n);i.documentElement.appendChild(this.svgGroup);this.setLocation(0,0).setSize(g.innerWidth,g.innerHeight);this.cameras={};m.forEach(function(o){this.cameras[o]=c.Camera.instance(this,o)},this)},setSize:function(m,l){this.width=m;this.height=l;return this},setLocation:function(l,m){this.x=l;this.y=m;return this},contains:function(l,m){return l>=this.x&&l<this.x+this.width&&m>=this.y&&m<this.y+this.height},getDocumentState:function(){var m=c.CameraState.instance().setCenter(k.x+k.width/2,k.y+k.height/2).setSize(k.width,k.height).setClipped(false);var l={};for(var n in this.cameras){l[n]=m}return l},update:function(){this.svgGroup.setAttribute("transform","translate("+this.x+","+this.y+")");for(var l in this.cameras){this.cameras[l].update()}return this},showFrame:function(l){for(var m in l.states){this.cameras[m].setAtState(l.states[m])}return this},drag:function(m,l){for(var n in this.cameras){this.cameras[n].drag(m,l)}return this},zoom:function(m,l,o){for(var n in this.cameras){this.cameras[n].zoom(m,l,o)}return this},rotate:function(l){for(var m in this.cameras){this.cameras[m].rotate(l)}return this},onWindowResize:function(m,l){this.setLocation(this.x*m,this.y*l).setSize(this.width*m,this.height*l).update()}});function d(){var l=i.documentElement;k=l.getBBox();h=g.innerWidth;j=g.innerHeight;l.setAttribute("width",h);l.setAttribute("height",j);sozi.events.fire("sozi.display.ready")}function a(){var l=i.documentElement;l.setAttribute("width",g.innerWidth);l.setAttribute("height",g.innerHeight);for(var m in c.viewPorts){c.viewPorts[m].onWindowResize(g.innerWidth/h,g.innerHeight/j)}h=g.innerWidth;j=g.innerHeight}sozi.events.listen("sozi.document.ready",d);g.addEventListener("resize",a,false)});namespace(this,"sozi.document",function(c,e){var g=e.document;var b="http://sozi.baierouge.fr";var d={title:"Untitled",sequence:"0",hide:"true",clip:"true","show-in-frame-list":"true","timeout-enable":"false","timeout-ms":"5000","transition-duration-ms":"1000","transition-zoom-percent":"0","transition-profile":"linear","transition-path-hide":"true"};var h=["g","image","path","rect","circle","ellipse","line","polyline","polygon","text","clippath"];c.frames=[];c.idLayerList=[];function j(l,k){return l.getAttributeNS(b,k)||d[k]}function i(o,p,k){var l=o.states[p]=o.states[p]||sozi.display.CameraState.instance();if(typeof l.transitionZoomPercent==="undefined"||k.hasAttributeNS(b,"transition-zoom-percent")){l.setTransitionZoomPercent(parseInt(j(k,"transition-zoom-percent"),10))}if(typeof l.transitionProfile==="undefined"||k.hasAttributeNS(b,"transition-profile")){l.setTransitionProfile(sozi.animation.profiles[j(k,"transition-profile")])}if(typeof l.transitionPath==="undefined"||k.hasAttributeNS(b,"transition-path")){var n=g.getElementById(k.getAttributeNS(b,"transition-path"));if(n&&n.nodeName==="path"){l.setTransitionPath(n);if(j(k,"transition-path-hide")==="true"){n.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"refid")){var m=g.getElementById(k.getAttributeNS(b,"refid"));if(m){l.setAtElement(m);if(j(k,"hide")==="true"){m.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"clip")){l.setClipped(j(k,"clip")==="true")}}function a(){var l=[];var p=g.getElementsByTagNameNS(b,"layer");for(var n=0;n<p.length;n+=1){var s=p[n].getAttributeNS(b,"group");if(s&&l.indexOf(s)===-1){l.push(s)}}var r=g.documentElement;var o="http://www.w3.org/2000/svg";var q=g.createElementNS(o,"g");var k=Array.prototype.slice.call(r.childNodes);k.forEach(function(u,t){if(!u.getAttribute){r.removeChild(u)}else{if(l.indexOf(u.getAttribute("id"))!==-1){if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+t);c.idLayerList.push("sozi-wrapper-"+t);r.insertBefore(q,u);q=g.createElementNS(o,"g")}c.idLayerList.push(u.getAttribute("id"))}else{if(h.indexOf(u.localName.toLowerCase())!==-1){r.removeChild(u);q.appendChild(u)}}}});if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+k.length);c.idLayerList.push("sozi-wrapper-"+k.length);r.appendChild(q)}var m=Array.prototype.slice.call(g.getElementsByTagNameNS(b,"frame"));m.sort(function(u,t){var w=parseInt(j(u,"sequence"),10);var v=parseInt(j(t,"sequence"),10);return w-v});m.forEach(function(v,u){var x={id:v.getAttribute("id"),title:j(v,"title"),showInFrameList:j(v,"show-in-frame-list")==="true",sequence:parseInt(j(v,"sequence"),10),timeoutEnable:j(v,"timeout-enable")==="true",timeoutMs:parseInt(j(v,"timeout-ms"),10),transitionDurationMs:parseInt(j(v,"transition-duration-ms"),10),states:{}};c.idLayerList.forEach(function(A){if(u===0||A.search("sozi-wrapper-[0-9]+")!==-1){i(x,A,v)}else{var z=x.states[A]=sozi.display.CameraState.instance();var y=c.frames[c.frames.length-1].states[A];z.setAtState(y)}});var t=Array.prototype.slice.call(v.getElementsByTagNameNS(b,"layer"));t.forEach(function(y){var z=y.getAttributeNS(b,"group");if(z&&c.idLayerList.indexOf(z)!==-1){i(x,z,y)}});for(var w in x.states){if(x.states.hasOwnProperty(w)){c.frames.push(x);break}}})}c.getFrameIndexForId=function(l){for(var k=0;k<c.frames.length;k+=1){if(c.frames[k].id===l){return k}}return -1};function f(){g.documentElement.removeAttribute("viewBox");a();sozi.events.fire("sozi.document.ready")}e.addEventListener("load",f,false)});namespace(this,"sozi.framelist",function(u,k){var o=k.document;var c=5;var i;var p;var j=0;var h;var s;var b;var v;var w;var t;var e=300;var f="decelerate";var a="http://www.w3.org/2000/svg";function n(z){var x=z.relatedTarget,y=o.documentElement;while(x&&x!==i&&x!==y){x=x.parentNode}if(x!==i){u.hide();sozi.player.restart();z.stopPropagation()}}function r(y){var x=p.getCTM().f;if(x<=-k.innerHeight/2){x+=k.innerHeight/2}else{if(x<0){x=0}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function d(y){var x=p.getCTM().f;if(x+j>=k.innerHeight*3/2){x-=k.innerHeight/2}else{if(x+j>k.innerHeight+2*c){x=k.innerHeight-j-4*c}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function g(x){return function(y){sozi.player.previewFrame(x);y.stopPropagation()}}function l(x){x.stopPropagation()}function q(){i=o.createElementNS(a,"g");i.setAttribute("id","sozi-toc");o.documentElement.appendChild(i);p=o.createElementNS(a,"g");i.appendChild(p);var y=o.createElementNS(a,"rect");y.setAttribute("id","sozi-toc-background");y.setAttribute("x",c);y.setAttribute("y",c);y.setAttribute("rx",c);y.setAttribute("ry",c);y.addEventListener("click",l,false);y.addEventListener("mousedown",l,false);y.addEventListener("mouseout",n,false);p.appendChild(y);var A=0;sozi.document.frames.forEach(function(D,E){if(D.showInFrameList){var C=o.createElementNS(a,"text");C.appendChild(o.createTextNode(D.title));C.setAttribute("id","sozi-toc-"+D.id);p.appendChild(C);if(E===sozi.player.currentFrameIndex){C.setAttribute("class","sozi-toc-current")}var B=C.getBBox().width;j+=C.getBBox().height;if(B>A){A=B}C.setAttribute("x",2*c);C.setAttribute("y",j+c);C.addEventListener("click",g(E),false);C.addEventListener("mousedown",l,false)}});var x=o.createElementNS(a,"path");x.setAttribute("class","sozi-toc-arrow");x.setAttribute("d","M"+(A+3*c)+","+(5*c)+" l"+(4*c)+",0 l-"+(2*c)+",-"+(3*c)+" z");x.addEventListener("click",r,false);x.addEventListener("mousedown",l,false);i.appendChild(x);var z=o.createElementNS(a,"path");z.setAttribute("class","sozi-toc-arrow");z.setAttribute("d","M"+(A+3*c)+","+(7*c)+" l"+(4*c)+",0 l-"+(2*c)+","+(3*c)+" z");z.addEventListener("click",d,false);z.addEventListener("mousedown",l,false);i.appendChild(z);y.setAttribute("width",A+7*c);y.setAttribute("height",j+2*c);h=-A-9*c;s=0;w=v=h;i.setAttribute("transform","translate("+h+",0)");t=sozi.animation.Animator.instance().augment({onStep:function(B){var D=sozi.animation.profiles[f](B),C=1-D;w=v*D+b*C;i.setAttribute("transform","translate("+w+",0)")}})}function m(x){var y=Array.prototype.slice.call(o.getElementsByClassName("sozi-toc-current"));y.forEach(function(A){A.removeAttribute("class")});var z=sozi.document.frames[x];if(z.showInFrameList){o.getElementById("sozi-toc-"+z.id).setAttribute("class","sozi-toc-current")}}u.show=function(){o.documentElement.appendChild(i);b=w;v=s;t.start(e)};u.hide=function(){b=w;v=h;t.start(e)};u.isVisible=function(){return v===s};sozi.events.listen("sozi.player.ready",q);sozi.events.listen("sozi.player.cleanup",u.hide);sozi.events.listen("sozi.player.framechange",m)});namespace(this,"sozi.framenumber",function(a,d){var g=d.document;var e;var k,i;var f;var b="http://www.w3.org/2000/svg";function h(){var m=k.getBBox(),n=Math.max(m.width,m.height)*0.75,l=n*1.25;f.setAttribute("r",n);e.setAttribute("transform","translate("+l+","+l+")")}function c(){e=g.createElementNS(b,"g");k=g.createElementNS(b,"text");f=g.createElementNS(b,"circle");e.setAttribute("id","sozi-framenumber");f.setAttribute("cx",0);f.setAttribute("cy",0);e.appendChild(f);i=g.createTextNode(sozi.player.currentFrameIndex+1);k.setAttribute("text-anchor","middle");k.setAttribute("dominant-baseline","central");k.setAttribute("x",0);k.setAttribute("y",0);k.appendChild(i);e.appendChild(k);g.documentElement.appendChild(e);h()}function j(l){i.nodeValue=l+1}sozi.events.listen("sozi.player.ready",c);sozi.events.listen("sozi.player.framechange",j)});namespace(this,"sozi.links",function(c,e){var b="http://www.w3.org/2000/svg";var a="http://www.w3.org/1999/xlink";function f(g){return function(h){sozi.player.moveToFrame(g);h.preventDefault();h.stopPropagation()}}function d(){var h=e.document.getElementsByTagNameNS(b,"a");for(var j=0;j<h.length;j+=1){var g=h[j].getAttributeNS(a,"href");if(g&&g[0]==="#"){h[j].addEventListener("click",f(sozi.location.getFrameIndexForHash(g)),false)}}}sozi.events.listen("sozi.document.ready",d)});namespace(this,"sozi.location",function(a,d){var b=false;a.getFrameIndex=function(){return a.getFrameIndexForHash(d.location.hash)};a.getFrameIndexForHash=function(g){var h=g?g.slice(1):"1";var f;if(/^[0-9]+$/.test(h)){f=parseInt(h,10)-1}else{f=sozi.document.getFrameIndexForId(h)}if(f<0){return 0}else{if(f>=sozi.document.frames.length){return sozi.document.frames.length-1}else{return f}}};function e(){var f=a.getFrameIndex();if(!b){sozi.player.moveToFrame(f)}b=false}function c(f){b=true;d.location.hash="#"+sozi.document.frames[f].id}d.addEventListener("hashchange",e,false);sozi.events.listen("sozi.player.framechange",c)});namespace(this,"sozi.player",function(d,g){var l;var c;var i;var e=500;var n=-10;var j="linear";var f=0;d.currentFrameIndex=0;var k=false;var m=false;function h(){if(sozi.document.frames[d.currentFrameIndex].timeoutEnable){m=true;var o=(d.currentFrameIndex+1)%sozi.document.frames.length;i=g.setTimeout(function(){d.moveToFrame(o)},sozi.document.frames[d.currentFrameIndex].timeoutMs)}}d.startFromIndex=function(o){k=true;m=false;f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);h()};d.restart=function(){d.startFromIndex(d.currentFrameIndex)};d.stop=function(){c.stop();if(m){g.clearTimeout(i);m=false}k=false;f=d.currentFrameIndex};function b(o,y,w){var z={ss:((o<0)?Math.max(y,w):Math.min(y,w))*(100-o)/100,ts:0.5,k:0};if(o!==0){var s=y-w;var r=y-z.ss;var q=w-z.ss;if(s!==0){var p=Math.sqrt(r*q);var x=(r-p)/s;var t=(r+p)/s;z.ts=(x>0&&x<=1)?x:t}z.k=r/z.ts/z.ts}return z}d.jumpToFrame=function(o){d.stop();sozi.events.fire("sozi.player.cleanup");f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);sozi.events.fire("sozi.player.framechange",o)};d.getAnimationData=function(o,q,s,p,v,t){var r={};for(var w in o){r[w]={initialState:sozi.display.CameraState.instance(),finalState:sozi.display.CameraState.instance(),useTransitionPath:v,reverseTransitionPath:t};r[w].profile=p||q[w].transitionProfile;r[w].initialState.setAtState(o[w]);if(q.hasOwnProperty(w)){r[w].finalState.setAtState(q[w])}else{r[w].finalState.setAtState(o[w])}if(r[w].finalState.angle-r[w].initialState.angle>180){r[w].finalState.setRawAngle(r[w].finalState.angle-360)}else{if(r[w].finalState.angle-r[w].initialState.angle<-180){r[w].initialState.setRawAngle(r[w].initialState.angle-360)}}var u=s||q[w].transitionZoomPercent;if(u&&q.hasOwnProperty(w)){r[w].zoomWidth=b(u,o[w].width,q[w].width);r[w].zoomHeight=b(u,o[w].height,q[w].height)}}return r};d.previewFrame=function(o){d.currentFrameIndex=o;c.start(e,d.getAnimationData(l.cameras,sozi.document.frames[o].states,n,sozi.animation.profiles[j]),false,false);sozi.events.fire("sozi.player.framechange",o)};d.moveToFrame=function(r){if(m){g.clearTimeout(i);m=false}var q,t,s,p,o;if(r===(d.currentFrameIndex-1)%sozi.document.frames.length){q=sozi.document.frames[d.currentFrameIndex].transitionDurationMs;t=undefined;s=undefined;p=true;o=true}else{if(r===(d.currentFrameIndex+1)%sozi.document.frames.length){q=sozi.document.frames[r].transitionDurationMs;t=undefined;s=undefined;p=true;o=false}else{q=e;t=n;s=sozi.animation.profiles[j];p=false;o=false}}sozi.events.fire("sozi.player.cleanup");k=true;d.currentFrameIndex=r;c.start(q,d.getAnimationData(l.cameras,sozi.document.frames[r].states,t,s,p,o));sozi.events.fire("sozi.player.framechange",r)};d.jumpToFirst=function(){d.jumpToFrame(0)};d.moveToFirst=function(){d.moveToFrame(0)};d.jumpToPrevious=function(){var o=d.currentFrameIndex;if(!c.started||f<=d.currentFrameIndex){o-=1}if(o>=0){d.jumpToFrame(o)}};d.moveToPrevious=function(){for(var o=d.currentFrameIndex-1;o>=0;o-=1){var p=sozi.document.frames[o];if(!p.timeoutEnable||p.timeoutMs!==0){d.moveToFrame(o);break}}};d.jumpToNext=function(){var o=d.currentFrameIndex;if(!c.started||f>=d.currentFrameIndex){o+=1}if(o<sozi.document.frames.length){d.jumpToFrame(o)}};d.moveToNext=function(){if(d.currentFrameIndex<sozi.document.frames.length-1||sozi.document.frames[d.currentFrameIndex].timeoutEnable){d.moveToFrame((d.currentFrameIndex+1)%sozi.document.frames.length)}};d.jumpToLast=function(){d.jumpToFrame(sozi.document.frames.length-1)};d.moveToLast=function(){d.moveToFrame(sozi.document.frames.length-1)};d.moveToCurrent=function(){d.moveToFrame(d.currentFrameIndex)};d.showAll=function(){d.stop();sozi.events.fire("sozi.player.cleanup");c.start(e,d.getAnimationData(l.cameras,l.getDocumentState(),n,sozi.animation.profiles[j],false,false))};function a(){l=sozi.display.ViewPort.instance("player",sozi.document.idLayerList,true);d.startFromIndex(sozi.location.getFrameIndex());g.setTimeout(l.bind(l.update),1);sozi.events.fire("sozi.player.ready")}d.onAnimationStep=function(o,q){for(var s in q){var p=l.cameras[s];p.interpolate(q[s].initialState,q[s].finalState,q[s].profile(o),q[s].useTransitionPath,q[s].reverseTransitionPath);var r;if(q[s].zoomWidth&&q[s].zoomWidth.k!==0){r=o-q[s].zoomWidth.ts;p.width=q[s].zoomWidth.k*r*r+q[s].zoomWidth.ss}if(q[s].zoomHeight&&q[s].zoomHeight.k!==0){r=o-q[s].zoomHeight.ts;p.height=q[s].zoomHeight.k*r*r+q[s].zoomHeight.ss}p.setClipped(q[s].finalState.clipped)}l.update()};c=sozi.animation.Animator.instance().augment({onStep:function(o){d.onAnimationStep(o,this.data)},onDone:function(){for(var o in this.data){l.cameras[o].setAtState(this.data[o].finalState)}l.update();f=d.currentFrameIndex;if(k){h()}}});sozi.events.listen("sozi.display.ready",a)});</script> + <style + id="sozi-style" + ns1:version="14.10-05142318">#sozi-toc text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}#sozi-toc text:hover{fill:#0cf;cursor:pointer}#sozi-toc text.sozi-toc-current{fill:#fa4}#sozi-toc-background{stroke:#222;stroke-opacity:.1;stroke-width:10;fill:#222;fill-opacity:.9}.sozi-toc-arrow{fill:#eff;fill-opacity:.75;stroke:none}.sozi-toc-arrow:hover{fill:#0cf}#sozi-framenumber circle{stroke:#222;stroke-opacity:.1;stroke-width:4;fill:#222;fill-opacity:.9}#sozi-framenumber text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}</style> + <script + id="sozi-extras-media-script" + ns1:version="14.10-05142318">this.addEventListener("load",function(){var h="http://www.w3.org/2000/svg",l="http://sozi.baierouge.fr",s="http://www.w3.org/1999/xhtml",m=this,o=m.document,q=[],r,e,d,c,p,a,g,f,b;function n(i){i.stopPropagation()}function t(i,j,k){sozi.events.listen("sozi.player.framechange",function(u){var v=sozi.document.frames[u].id;if(v===j){i.play()}else{if(v===k){i.pause()}}})}q.push(o.getElementsByTagNameNS(l,"video"));q.push(o.getElementsByTagNameNS(l,"audio"));r=[];for(c=0;c<q.length;c+=1){for(e=0;e<q[c].length;e+=1){p=q[c][e].parentNode;b=o.createElementNS(s,"source");b.setAttribute("type",q[c][e].getAttributeNS(l,"type"));b.setAttribute("src",q[c][e].getAttributeNS(l,"src"));for(d=0;d<r.length;d+=1){if(r[d].rect===p){break}}if(d===r.length){p.setAttribute("visibility","hidden");f=o.createElementNS(s,q[c][e].localName);f.setAttribute("controls","controls");if(q[c][e].localName==="video"){f.setAttribute("width",p.getAttribute("width"));f.setAttribute("height",p.getAttribute("height"))}f.addEventListener("click",n,false);f.addEventListener("contextmenu",n,false);g=o.createElementNS(s,"html");g.appendChild(f);a=o.createElementNS(h,"foreignObject");a.setAttribute("x",p.getAttribute("x"));a.setAttribute("y",p.getAttribute("y"));a.setAttribute("width",p.getAttribute("width"));a.setAttribute("height",p.getAttribute("height"));a.appendChild(g);p.parentNode.insertBefore(a,p.nextSibling);if(q[c][e].hasAttributeNS(l,"start-frame")){t(f,q[c][e].getAttributeNS(l,"start-frame"),q[c][e].getAttributeNS(l,"stop-frame"))}r.push({rect:q[c][e].parentNode,htmlMedia:f})}r[d].htmlMedia.appendChild(b)}}},false);</script> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="1" + ns1:title="Overview 1" + ns1:refid="group10" /> + <ns1:frame + ns1:refid="group20" + ns1:title="Client 1 read" + ns1:sequence="2" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000.0" + ns1:transition-duration-ms="1000.0" + ns1:transition-zoom-percent="0.0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="3" + ns1:title="Modify Client 2" + ns1:refid="group30" /> + <ns1:frame + ns1:refid="group40" + ns1:title="Re-read Client 1 and rollback" + ns1:sequence="4" + ns1:hide="true" + ns1:clip="true" + ns1:show-in-frame-list="true" + ns1:timeout-enable="false" + ns1:timeout-ms="5000.0" + ns1:transition-duration-ms="1000.0" + ns1:transition-zoom-percent="0.0" + ns1:transition-profile="linear" + ns1:transition-path-hide="true" /> + <ns1:frame + ns1:transition-path-hide="true" + ns1:transition-profile="linear" + ns1:transition-zoom-percent="0.0" + ns1:transition-duration-ms="1000.0" + ns1:timeout-ms="5000.0" + ns1:timeout-enable="false" + ns1:show-in-frame-list="true" + ns1:clip="true" + ns1:hide="true" + ns1:sequence="5" + ns1:title="Overview 2" + ns1:refid="group10" /> +</svg> diff --git a/glossary.xml b/glossary.xml index d2efae243..5f33c011e 100644 --- a/glossary.xml +++ b/glossary.xml @@ -9,7 +9,8 @@ xmlns:db="http://docbook.org/ns/docbook"> <glosslist> <glossentry xml:id="glo_ApacheDirectoryStudio"> - <glossterm>Apache Directory Studio</glossterm> + <glossterm><productname>Apache Directory + Studio</productname></glossterm> <glossdef> <para><link xlink:href="http://directory.apache.org/studio">Apache @@ -27,7 +28,7 @@ </glossentry> <glossentry xml:id="glo_BlueJ"> - <glossterm>BjueJ</glossterm> + <glossterm><productname>BjueJ</productname></glossterm> <glossdef> <para><link xlink:href="http://www.bluej.org">Java Development @@ -85,10 +86,10 @@ </glossentry> <glossentry xml:id="glo_Eclipse"> - <glossterm>Eclipse</glossterm> + <glossterm><productname>Eclipse</productname></glossterm> <glossdef> - <para>Professional Java <xref linkend="glo_IDE"/> available from <link + <para>Java <xref linkend="glo_IDE"/> available from <link xlink:href="http://eclipse.org">eclipse.org</link>.</para> </glossdef> </glossentry> @@ -123,8 +124,37 @@ </glossdef> </glossentry> + <glossentry xml:id="glo_framework"> + <glossterm>Framework</glossterm> + + <glossdef> + <para>Software providing an abstraction for a particular problem + domain thereby facilitating development. Examples:</para> + + <glosslist> + <glossentry> + <glossterm><xref linkend="glo_Junit"/></glossterm> + + <glossdef> + <para>Management of unit tests.</para> + </glossdef> + </glossentry> + + <glossentry> + <glossterm><link + xlink:href="http://www.eclipse.org/eclipselink">Eclipse + link</link></glossterm> + + <glossdef> + <para>Persisting Java objects.</para> + </glossdef> + </glossentry> + </glosslist> + </glossdef> + </glossentry> + <glossentry xml:id="glo_Git"> - <glossterm><acronym>Git</acronym></glossterm> + <glossterm><productname>Git</productname></glossterm> <glossdef> <para><link xlink:href="http://git-scm.com">The Git version control @@ -133,10 +163,10 @@ </glossentry> <glossentry xml:id="glo_Greenfoot"> - <glossterm><acronym>Greenfoot</acronym></glossterm> + <glossterm><productname>Greenfoot</productname></glossterm> <glossdef> - <para><link xlink:href="???">Teach and learn Java + <para><link xlink:href="http://www.greenfoot.org">Teach and learn Java programming</link>.</para> </glossdef> </glossentry> @@ -151,7 +181,7 @@ </glossdef> </glossentry> - <glossentry xml:id="org_HdM"> + <glossentry xml:id="glo_HdM"> <glossterm><orgname>HdM</orgname></glossterm> <glossdef> @@ -199,33 +229,6 @@ </glossdef> </glossentry> - <glossentry xml:id="glo_JAXB"> - <glossterm>Jaxb</glossterm> - - <glossdef> - <para>Java Architecture for XML Binding</para> - - <itemizedlist> - <listitem> - <para><link xlink:href="https://jaxb.java.net">JAXB - homepage</link></para> - </listitem> - - <listitem> - <para><link - xlink:href="https://docs.oracle.com/javase/tutorial/jaxb">Oracle - tutorial</link></para> - </listitem> - - <listitem> - <para><link - xlink:href="https://www.jcp.org/en/jsr/detail?id=222">JSR 222: - JavaTM Architecture for XML Binding (JAXB) 2.0</link></para> - </listitem> - </itemizedlist> - </glossdef> - </glossentry> - <glossentry xml:id="glo_Jar"> <glossterm><acronym>Jar</acronym></glossterm> @@ -256,6 +259,33 @@ </glossdef> </glossentry> + <glossentry xml:id="glo_JAXB"> + <glossterm><acronym>JAXB</acronym></glossterm> + + <glossdef> + <para>Java Architecture for XML Binding</para> + + <itemizedlist> + <listitem> + <para><link xlink:href="https://jaxb.java.net">JAXB + homepage</link></para> + </listitem> + + <listitem> + <para><link + xlink:href="https://docs.oracle.com/javase/tutorial/jaxb">Oracle + tutorial</link></para> + </listitem> + + <listitem> + <para><link + xlink:href="https://www.jcp.org/en/jsr/detail?id=222">JSR 222: + JavaTM Architecture for XML Binding (JAXB) 2.0</link></para> + </listitem> + </itemizedlist> + </glossdef> + </glossentry> + <glossentry xml:id="glo_JDBC"> <glossterm><trademark>JDBC</trademark></glossterm> @@ -287,7 +317,7 @@ </glossentry> <glossentry xml:id="glo_Junit"> - <glossterm><acronym>Junit</acronym></glossterm> + <glossterm><productname>Junit</productname></glossterm> <glossdef> <para><link xlink:href="http://junit.org">Junit</link></para> @@ -325,7 +355,7 @@ </glossentry> <glossentry xml:id="glo_Maven"> - <glossterm>Maven</glossterm> + <glossterm><productname>Maven</productname></glossterm> <glossdef> <para><link xlink:href="http://maven.apache.org">Software project @@ -376,8 +406,8 @@ <glossdef> <para><link xlink:href="http://maven.apache.org">project object - model</link> file describing a <xref linkend="glo_Maven"/> - project</para> + model</link> file describing a <xref linkend="glo_Maven"/> project or + module</para> </glossdef> </glossentry> @@ -429,7 +459,7 @@ </glossentry> <glossentry xml:id="glo_Svn"> - <glossterm><acronym>Svn</acronym></glossterm> + <glossterm><productname>Svn</productname></glossterm> <glossdef> <para><link xlink:href="https://subversion.apache.org">The Svn version @@ -495,7 +525,7 @@ </glossentry> <glossentry xml:id="glo_xjc"> - <glossterm>xjc</glossterm> + <glossterm><productname>xjc</productname></glossterm> <glossdef> <para><link xlink:href="https://jaxb.java.net/2.2.4/docs/xjc.html"> -- GitLab