summaryrefslogtreecommitdiff
path: root/doc/diagrams/main.svg
diff options
context:
space:
mode:
Diffstat (limited to 'doc/diagrams/main.svg')
-rw-r--r--doc/diagrams/main.svg2
1 files changed, 1 insertions, 1 deletions
diff --git a/doc/diagrams/main.svg b/doc/diagrams/main.svg
index a1f032b..095b97d 100644
--- a/doc/diagrams/main.svg
+++ b/doc/diagrams/main.svg
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="571pt" style="width:1299px;height:571px;" version="1.1" viewBox="0 0 1299 571" width="1299pt"><defs><filter height="300%" id="f1" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FEFECE" filter="url(#f1)" height="60.8047" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="552" y="164"/><ellipse cx="604.75" cy="180" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M607.7188,185.6406 Q607.1406,185.9375 606.5,186.0859 Q605.8594,186.2344 605.1563,186.2344 Q602.6563,186.2344 601.3359,184.5859 Q600.0156,182.9375 600.0156,179.8125 Q600.0156,176.6875 601.3359,175.0313 Q602.6563,173.375 605.1563,173.375 Q605.8594,173.375 606.5078,173.5313 Q607.1563,173.6875 607.7188,173.9844 L607.7188,176.7031 Q607.0938,176.125 606.5,175.8516 Q605.9063,175.5781 605.2813,175.5781 Q603.9375,175.5781 603.25,176.6484 Q602.5625,177.7188 602.5625,179.8125 Q602.5625,181.9063 603.25,182.9766 Q603.9375,184.0469 605.2813,184.0469 Q605.9063,184.0469 606.5,183.7734 Q607.0938,183.5 607.7188,182.9219 L607.7188,185.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="45" x="625.25" y="184.1543">SSSync</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="553" x2="710" y1="196" y2="196"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="553" x2="710" y1="204" y2="204"/><ellipse cx="563" cy="215.9023" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="133" x="572" y="218.2104">void main(String[] args)</text><rect fill="#FEFECE" filter="url(#f1)" height="73.6094" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="830" y="8"/><ellipse cx="889.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M892.7188,29.6406 Q892.1406,29.9375 891.5,30.0859 Q890.8594,30.2344 890.1563,30.2344 Q887.6563,30.2344 886.3359,28.5859 Q885.0156,26.9375 885.0156,23.8125 Q885.0156,20.6875 886.3359,19.0313 Q887.6563,17.375 890.1563,17.375 Q890.8594,17.375 891.5078,17.5313 Q892.1563,17.6875 892.7188,17.9844 L892.7188,20.7031 Q892.0938,20.125 891.5,19.8516 Q890.9063,19.5781 890.2813,19.5781 Q888.9375,19.5781 888.25,20.6484 Q887.5625,21.7188 887.5625,23.8125 Q887.5625,25.9063 888.25,26.9766 Q888.9375,28.0469 890.2813,28.0469 Q890.9063,28.0469 891.5,27.7734 Q892.0938,27.5 892.7188,26.9219 L892.7188,29.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="114" x="910.25" y="28.1543">SSSyncConfParser</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="831" x2="1071" y1="40" y2="40"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="831" x2="1071" y1="48" y2="48"/><ellipse cx="841" cy="59.9023" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="214" x="850" y="62.2104">loadMainConfig(String mainConfigFile)</text><ellipse cx="841" cy="72.707" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="216" x="850" y="75.0151">loadConnConfig(String connConfigFile)</text><rect fill="#FEFECE" filter="url(#f1)" height="60.8047" style="stroke: #A80036; stroke-width: 1.5;" width="327" x="469" y="14.5"/><ellipse cx="543.75" cy="30.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M546.7188,36.1406 Q546.1406,36.4375 545.5,36.5859 Q544.8594,36.7344 544.1563,36.7344 Q541.6563,36.7344 540.3359,35.0859 Q539.0156,33.4375 539.0156,30.3125 Q539.0156,27.1875 540.3359,25.5313 Q541.6563,23.875 544.1563,23.875 Q544.8594,23.875 545.5078,24.0313 Q546.1563,24.1875 546.7188,24.4844 L546.7188,27.2031 Q546.0938,26.625 545.5,26.3516 Q544.9063,26.0781 544.2813,26.0781 Q542.9375,26.0781 542.25,27.1484 Q541.5625,28.2188 541.5625,30.3125 Q541.5625,32.4063 542.25,33.4766 Q542.9375,34.5469 544.2813,34.5469 Q544.9063,34.5469 545.5,34.2734 Q546.0938,34 546.7188,33.4219 L546.7188,36.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="169" x="564.25" y="34.6543">SSSyncConnectionsFactory</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="470" x2="795" y1="46.5" y2="46.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="470" x2="795" y1="54.5" y2="54.5"/><ellipse cx="480" cy="66.4023" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="301" x="489" y="68.7104">setupConnections(ConfigConnectionsBean confConn)</text><rect fill="#FEFECE" filter="url(#f1)" height="60.8047" style="stroke: #A80036; stroke-width: 1.5;" width="428" x="6" y="14.5"/><ellipse cx="152.25" cy="30.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M155.2188,36.1406 Q154.6406,36.4375 154,36.5859 Q153.3594,36.7344 152.6563,36.7344 Q150.1563,36.7344 148.8359,35.0859 Q147.5156,33.4375 147.5156,30.3125 Q147.5156,27.1875 148.8359,25.5313 Q150.1563,23.875 152.6563,23.875 Q153.3594,23.875 154.0078,24.0313 Q154.6563,24.1875 155.2188,24.4844 L155.2188,27.2031 Q154.5938,26.625 154,26.3516 Q153.4063,26.0781 152.7813,26.0781 Q151.4375,26.0781 150.75,27.1484 Q150.0625,28.2188 150.0625,30.3125 Q150.0625,32.4063 150.75,33.4766 Q151.4375,34.5469 152.7813,34.5469 Q153.4063,34.5469 154,34.2734 Q154.5938,34 155.2188,33.4219 L155.2188,36.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="127" x="172.75" y="34.6543">SSSyncTasksFactory</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="433" y1="46.5" y2="46.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="433" y1="54.5" y2="54.5"/><ellipse cx="17" cy="66.4023" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="402" x="26" y="68.7104">setupTasks(ConnectionsHolder connections, ConfigRootBean confMain)</text><rect fill="#FEFECE" filter="url(#f1)" height="86.4141" style="stroke: #A80036; stroke-width: 1.5;" width="139" x="223" y="326"/><ellipse cx="238" cy="342" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M238.1094,337.3438 L236.9531,342.4219 L239.2813,342.4219 L238.1094,337.3438 Z M236.625,335.1094 L239.6094,335.1094 L242.9688,347.5 L240.5156,347.5 L239.75,344.4375 L236.4688,344.4375 L235.7188,347.5 L233.2813,347.5 L236.625,335.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="107" x="252" y="346.1543">AbstractSyncTask</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="224" x2="361" y1="358" y2="358"/><polygon fill="none" points="234,364.9023,238,368.9023,234,372.9023,230,368.9023" style="stroke: #B38D22; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="94" x="243" y="372.2104">String taskName</text><polygon fill="none" points="234,377.707,238,381.707,234,385.707,230,381.707" style="stroke: #B38D22; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="243" y="385.0151">boolean dryRun</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="224" x2="361" y1="391.6094" y2="391.6094"/><ellipse cx="234" cy="403.5117" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="76" x="243" y="405.8198">Boolean call()</text><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="221" y="169"/><ellipse cx="236" cy="185" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M231.9219,180.7656 L231.9219,178.6094 L239.3125,178.6094 L239.3125,180.7656 L236.8438,180.7656 L236.8438,188.8438 L239.3125,188.8438 L239.3125,191 L231.9219,191 L231.9219,188.8438 L234.3906,188.8438 L234.3906,180.7656 L231.9219,180.7656 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="112" x="250" y="189.1543">Callable&lt;Boolean&gt;</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="222" x2="364" y1="201" y2="201"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="222" x2="364" y1="209" y2="209"/><rect fill="#FEFECE" filter="url(#f1)" height="60.8047" style="stroke: #A80036; stroke-width: 1.5;" width="174" x="770" y="162.5"/><ellipse cx="803.9" cy="178.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M806.8688,184.1406 Q806.2906,184.4375 805.65,184.5859 Q805.0094,184.7344 804.3063,184.7344 Q801.8063,184.7344 800.4859,183.0859 Q799.1656,181.4375 799.1656,178.3125 Q799.1656,175.1875 800.4859,173.5313 Q801.8063,171.875 804.3063,171.875 Q805.0094,171.875 805.6578,172.0313 Q806.3063,172.1875 806.8688,172.4844 L806.8688,175.2031 Q806.2438,174.625 805.65,174.3516 Q805.0563,174.0781 804.4313,174.0781 Q803.0875,174.0781 802.4,175.1484 Q801.7125,176.2188 801.7125,178.3125 Q801.7125,180.4063 802.4,181.4766 Q803.0875,182.5469 804.4313,182.5469 Q805.0563,182.5469 805.65,182.2734 Q806.2438,182 806.8688,181.4219 L806.8688,184.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="822.1" y="182.6543">ExecutorService</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="771" x2="943" y1="194.5" y2="194.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="771" x2="943" y1="202.5" y2="202.5"/><ellipse cx="781" cy="214.4023" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="790" y="216.7104">invokeAll(Callable tasks...)</text><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="446" y="345"/><ellipse cx="461" cy="361" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M463.9688,366.6406 Q463.3906,366.9375 462.75,367.0859 Q462.1094,367.2344 461.4063,367.2344 Q458.9063,367.2344 457.5859,365.5859 Q456.2656,363.9375 456.2656,360.8125 Q456.2656,357.6875 457.5859,356.0313 Q458.9063,354.375 461.4063,354.375 Q462.1094,354.375 462.7578,354.5313 Q463.4063,354.6875 463.9688,354.9844 L463.9688,357.7031 Q463.3438,357.125 462.75,356.8516 Q462.1563,356.5781 461.5313,356.5781 Q460.1875,356.5781 459.5,357.6484 Q458.8125,358.7188 458.8125,360.8125 Q458.8125,362.9063 459.5,363.9766 Q460.1875,365.0469 461.5313,365.0469 Q462.1563,365.0469 462.75,364.7734 Q463.3438,364.5 463.9688,363.9219 L463.9688,366.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="475" y="365.1543">ConfigRootBean</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="447" x2="577" y1="377" y2="377"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="447" x2="577" y1="385" y2="385"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="661" y="345"/><ellipse cx="676" cy="361" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M678.9688,366.6406 Q678.3906,366.9375 677.75,367.0859 Q677.1094,367.2344 676.4063,367.2344 Q673.9063,367.2344 672.5859,365.5859 Q671.2656,363.9375 671.2656,360.8125 Q671.2656,357.6875 672.5859,356.0313 Q673.9063,354.375 676.4063,354.375 Q677.1094,354.375 677.7578,354.5313 Q678.4063,354.6875 678.9688,354.9844 L678.9688,357.7031 Q678.3438,357.125 677.75,356.8516 Q677.1563,356.5781 676.5313,356.5781 Q675.1875,356.5781 674.5,357.6484 Q673.8125,358.7188 673.8125,360.8125 Q673.8125,362.9063 674.5,363.9766 Q675.1875,365.0469 676.5313,365.0469 Q677.1563,365.0469 677.75,364.7734 Q678.3438,364.5 678.9688,363.9219 L678.9688,366.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="690" y="365.1543">ConfigConnectionsBean</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="662" x2="841" y1="377" y2="377"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="662" x2="841" y1="385" y2="385"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="151" x="926" y="345"/><ellipse cx="941" cy="361" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M943.9688,366.6406 Q943.3906,366.9375 942.75,367.0859 Q942.1094,367.2344 941.4063,367.2344 Q938.9063,367.2344 937.5859,365.5859 Q936.2656,363.9375 936.2656,360.8125 Q936.2656,357.6875 937.5859,356.0313 Q938.9063,354.375 941.4063,354.375 Q942.1094,354.375 942.7578,354.5313 Q943.4063,354.6875 943.9688,354.9844 L943.9688,357.7031 Q943.3438,357.125 942.75,356.8516 Q942.1563,356.5781 941.5313,356.5781 Q940.1875,356.5781 939.5,357.6484 Q938.8125,358.7188 938.8125,360.8125 Q938.8125,362.9063 939.5,363.9766 Q940.1875,365.0469 941.5313,365.0469 Q942.1563,365.0469 942.75,364.7734 Q943.3438,364.5 943.9688,363.9219 L943.9688,366.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="955" y="365.1543">ConnectionsHolder</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="927" x2="1076" y1="377" y2="377"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="927" x2="1076" y1="385" y2="385"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="149" x="325" y="514"/><ellipse cx="340" cy="530" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M342.9688,535.6406 Q342.3906,535.9375 341.75,536.0859 Q341.1094,536.2344 340.4063,536.2344 Q337.9063,536.2344 336.5859,534.5859 Q335.2656,532.9375 335.2656,529.8125 Q335.2656,526.6875 336.5859,525.0313 Q337.9063,523.375 340.4063,523.375 Q341.1094,523.375 341.7578,523.5313 Q342.4063,523.6875 342.9688,523.9844 L342.9688,526.7031 Q342.3438,526.125 341.75,525.8516 Q341.1563,525.5781 340.5313,525.5781 Q339.1875,525.5781 338.5,526.6484 Q337.8125,527.7188 337.8125,529.8125 Q337.8125,531.9063 338.5,532.9766 Q339.1875,534.0469 340.5313,534.0469 Q341.1563,534.0469 341.75,533.7734 Q342.3438,533.5 342.9688,532.9219 L342.9688,535.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="354" y="534.1543">ConfigGlobalsBean</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="326" x2="473" y1="546" y2="546"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="326" x2="473" y1="554" y2="554"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="558" y="514"/><ellipse cx="573" cy="530" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M575.9688,535.6406 Q575.3906,535.9375 574.75,536.0859 Q574.1094,536.2344 573.4063,536.2344 Q570.9063,536.2344 569.5859,534.5859 Q568.2656,532.9375 568.2656,529.8125 Q568.2656,526.6875 569.5859,525.0313 Q570.9063,523.375 573.4063,523.375 Q574.1094,523.375 574.7578,523.5313 Q575.4063,523.6875 575.9688,523.9844 L575.9688,526.7031 Q575.3438,526.125 574.75,525.8516 Q574.1563,525.5781 573.5313,525.5781 Q572.1875,525.5781 571.5,526.6484 Q570.8125,527.7188 570.8125,529.8125 Q570.8125,531.9063 571.5,532.9766 Q572.1875,534.0469 573.5313,534.0469 Q574.1563,534.0469 574.75,533.7734 Q575.3438,533.5 575.9688,532.9219 L575.9688,535.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="587" y="534.1543">ConfigTaskBean</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="559" x2="689" y1="546" y2="546"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="559" x2="689" y1="554" y2="554"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="840" y="514"/><ellipse cx="855" cy="530" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M857.9688,535.6406 Q857.3906,535.9375 856.75,536.0859 Q856.1094,536.2344 855.4063,536.2344 Q852.9063,536.2344 851.5859,534.5859 Q850.2656,532.9375 850.2656,529.8125 Q850.2656,526.6875 851.5859,525.0313 Q852.9063,523.375 855.4063,523.375 Q856.1094,523.375 856.7578,523.5313 Q857.4063,523.6875 857.9688,523.9844 L857.9688,526.7031 Q857.3438,526.125 856.75,525.8516 Q856.1563,525.5781 855.5313,525.5781 Q854.1875,525.5781 853.5,526.6484 Q852.8125,527.7188 852.8125,529.8125 Q852.8125,531.9063 853.5,532.9766 Q854.1875,534.0469 855.5313,534.0469 Q856.1563,534.0469 856.75,533.7734 Q857.3438,533.5 857.9688,532.9219 L857.9688,535.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="869" y="534.1543">LDAPConnectionWrapper</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="841" x2="1026" y1="546" y2="546"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="841" x2="1026" y1="554" y2="554"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="1111" y="514"/><ellipse cx="1126" cy="530" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1128.9688,535.6406 Q1128.3906,535.9375 1127.75,536.0859 Q1127.1094,536.2344 1126.4063,536.2344 Q1123.9063,536.2344 1122.5859,534.5859 Q1121.2656,532.9375 1121.2656,529.8125 Q1121.2656,526.6875 1122.5859,525.0313 Q1123.9063,523.375 1126.4063,523.375 Q1127.1094,523.375 1127.7578,523.5313 Q1128.4063,523.6875 1128.9688,523.9844 L1128.9688,526.7031 Q1128.3438,526.125 1127.75,525.8516 Q1127.1563,525.5781 1126.5313,525.5781 Q1125.1875,525.5781 1124.5,526.6484 Q1123.8125,527.7188 1123.8125,529.8125 Q1123.8125,531.9063 1124.5,532.9766 Q1125.1875,534.0469 1126.5313,534.0469 Q1127.1563,534.0469 1127.75,533.7734 Q1128.3438,533.5 1128.9688,532.9219 L1128.9688,535.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="1140" y="534.1543">SQLConnectionWrapper</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1289" y1="546" y2="546"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1112" x2="1289" y1="554" y2="554"/><path d="M293,237.402 C293,264.53 293,299.053 293,325.932 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="286,237.103,293,217.103,300,237.103,286,237.103" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M603.813,235.107 C580.402,269.247 547.901,316.645 528.505,344.93 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="611.371,224.084,604.679,226.7704,604.5849,233.9809,611.2769,231.2945,611.371,224.084" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="540.7701" y="334.1107">1</text><path d="M660.187,235.107 C683.598,269.247 716.099,316.645 735.495,344.93 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="652.629,224.084,652.7231,231.2945,659.4151,233.9809,659.321,226.7704,652.629,224.084" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="726.5765" y="333.8692">1</text><path d="M717.791,229.137 C766.951,249.844 829.517,277.173 884,304 C909.809,316.708 938.057,332.21 960.443,344.887 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="705.594,224.02,709.5789,230.03,716.6593,228.6632,712.6744,222.6532,705.594,224.02" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="940.3539" y="334.0795">1</text><path d="M554.048,229.713 C509.638,250.529 453.206,277.777 404,304 C390.303,311.299 375.862,319.426 362.09,327.393 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="565.946,224.155,558.817,223.0699,555.0735,229.2332,562.2025,230.3183,565.946,224.155" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="369.9058" y="329.5824">*</text><path d="M866.942,84.262 C813.546,109.203 745.492,140.99 696.387,163.926 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="871.736,82.023,861.8889,82.2087,867.206,84.1395,865.2752,89.4566,871.736,82.023" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="18" x="718.7382" y="158.904">(1)</text><path d="M632,80.79 C632,106.143 632,139.778 632,163.784 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="632,75.512,628,84.512,632,80.512,636,84.512,632,75.512" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="18" x="627.3467" y="152.896">(2)</text><path d="M309.085,77.218 C381.325,103.343 482.243,139.84 551.944,165.048 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="304.369,75.512,311.4707,82.3359,309.0706,77.2135,314.1931,74.8134,304.369,75.512" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="18" x="525.8268" y="158.028">(3)</text><path d="M711.01,205.883 C728.372,206.356 746.904,206.384 764.735,205.975 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="769.744,205.848,760.6452,202.0781,764.7456,205.9751,760.8486,210.0756,769.744,205.848" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="18" x="719.1263" y="215.9221">(4)</text><path d="M488.718,404.131 C466.959,436.964 435.049,485.1131 416.017,513.8313 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="495.953,393.214,489.3041,396.0055,489.3237,403.2166,495.9726,400.4251,495.953,393.214" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="428.1782" y="502.7996">1</text><path d="M535.282,404.131 C557.041,436.964 588.951,485.1131 607.983,513.8313 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="528.047,393.214,528.0274,400.4251,534.6763,403.2166,534.6959,396.0055,528.047,393.214" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="599.8551" y="502.9429">*</text><path d="M987.342,405.43 C974.147,438.223 955.129,485.4893 943.725,513.8313 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="992.257,393.214,986.3065,397.2873,987.7778,404.3467,993.7283,400.2734,992.257,393.214" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="951.3914" y="503.0132">*</text><path d="M1040.86,402.003 C1079.54,434.853 1137.99,484.486 1172.54,513.8313 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1030.51,393.214,1032.4943,400.1467,1039.6569,400.9815,1037.6726,394.0488,1030.51,393.214" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="1158.7617" y="503.0198">*</text></g></svg> \ No newline at end of file
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="595pt" style="width:1136px;height:595px;" version="1.1" viewBox="0 0 1136 595" width="1136pt"><defs><filter height="300%" id="f1" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FEFECE" filter="url(#f1)" height="73.6094" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="571" y="175"/><ellipse cx="623.75" cy="191" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M626.7188,196.6406 Q626.1406,196.9375 625.5,197.0859 Q624.8594,197.2344 624.1563,197.2344 Q621.6563,197.2344 620.3359,195.5859 Q619.0156,193.9375 619.0156,190.8125 Q619.0156,187.6875 620.3359,186.0313 Q621.6563,184.375 624.1563,184.375 Q624.8594,184.375 625.5078,184.5313 Q626.1563,184.6875 626.7188,184.9844 L626.7188,187.7031 Q626.0938,187.125 625.5,186.8516 Q624.9063,186.5781 624.2813,186.5781 Q622.9375,186.5781 622.25,187.6484 Q621.5625,188.7188 621.5625,190.8125 Q621.5625,192.9063 622.25,193.9766 Q622.9375,195.0469 624.2813,195.0469 Q624.9063,195.0469 625.5,194.7734 Q626.0938,194.5 626.7188,193.9219 L626.7188,196.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="45" x="644.25" y="195.1543">SSSync</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="572" x2="729" y1="207" y2="207"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="572" x2="729" y1="227.8047" y2="227.8047"/><ellipse cx="582" cy="239.707" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="133" x="591" y="242.0151">void main(String[] args)</text><rect fill="#FEFECE" filter="url(#f1)" height="86.4141" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="211" y="8"/><ellipse cx="270.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M273.7188,29.6406 Q273.1406,29.9375 272.5,30.0859 Q271.8594,30.2344 271.1563,30.2344 Q268.6563,30.2344 267.3359,28.5859 Q266.0156,26.9375 266.0156,23.8125 Q266.0156,20.6875 267.3359,19.0313 Q268.6563,17.375 271.1563,17.375 Q271.8594,17.375 272.5078,17.5313 Q273.1563,17.6875 273.7188,17.9844 L273.7188,20.7031 Q273.0938,20.125 272.5,19.8516 Q271.9063,19.5781 271.2813,19.5781 Q269.9375,19.5781 269.25,20.6484 Q268.5625,21.7188 268.5625,23.8125 Q268.5625,25.9063 269.25,26.9766 Q269.9375,28.0469 271.2813,28.0469 Q271.9063,28.0469 272.5,27.7734 Q273.0938,27.5 273.7188,26.9219 L273.7188,29.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="114" x="291.25" y="28.1543">SSSyncConfParser</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="212" x2="452" y1="40" y2="40"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="212" x2="452" y1="60.8047" y2="60.8047"/><ellipse cx="222" cy="72.707" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="214" x="231" y="75.0151">loadMainConfig(String mainConfigFile)</text><ellipse cx="222" cy="85.5117" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="216" x="231" y="87.8198">loadConnConfig(String connConfigFile)</text><rect fill="#FEFECE" filter="url(#f1)" height="86.4141" style="stroke: #A80036; stroke-width: 1.5;" width="327" x="488" y="8"/><ellipse cx="562.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M565.7188,29.6406 Q565.1406,29.9375 564.5,30.0859 Q563.8594,30.2344 563.1563,30.2344 Q560.6563,30.2344 559.3359,28.5859 Q558.0156,26.9375 558.0156,23.8125 Q558.0156,20.6875 559.3359,19.0313 Q560.6563,17.375 563.1563,17.375 Q563.8594,17.375 564.5078,17.5313 Q565.1563,17.6875 565.7188,17.9844 L565.7188,20.7031 Q565.0938,20.125 564.5,19.8516 Q563.9063,19.5781 563.2813,19.5781 Q561.9375,19.5781 561.25,20.6484 Q560.5625,21.7188 560.5625,23.8125 Q560.5625,25.9063 561.25,26.9766 Q561.9375,28.0469 563.2813,28.0469 Q563.9063,28.0469 564.5,27.7734 Q565.0938,27.5 565.7188,26.9219 L565.7188,29.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="169" x="583.25" y="28.1543">SSSyncConnectionsFactory</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="814" y1="40" y2="40"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="489" x2="814" y1="73.6094" y2="73.6094"/><ellipse cx="499" cy="85.5117" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="301" x="508" y="87.8198">setupConnections(ConfigConnectionsBean confConn)</text><rect fill="#FEFECE" filter="url(#f1)" height="86.4141" style="stroke: #A80036; stroke-width: 1.5;" width="278" x="849" y="8"/><ellipse cx="920.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M923.2188,29.6406 Q922.6406,29.9375 922,30.0859 Q921.3594,30.2344 920.6563,30.2344 Q918.1563,30.2344 916.8359,28.5859 Q915.5156,26.9375 915.5156,23.8125 Q915.5156,20.6875 916.8359,19.0313 Q918.1563,17.375 920.6563,17.375 Q921.3594,17.375 922.0078,17.5313 Q922.6563,17.6875 923.2188,17.9844 L923.2188,20.7031 Q922.5938,20.125 922,19.8516 Q921.4063,19.5781 920.7813,19.5781 Q919.4375,19.5781 918.75,20.6484 Q918.0625,21.7188 918.0625,23.8125 Q918.0625,25.9063 918.75,26.9766 Q919.4375,28.0469 920.7813,28.0469 Q921.4063,28.0469 922,27.7734 Q922.5938,27.5 923.2188,26.9219 L923.2188,29.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="127" x="940.75" y="28.1543">SSSyncTasksFactory</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="850" x2="1126" y1="40" y2="40"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="850" x2="1126" y1="60.8047" y2="60.8047"/><ellipse cx="860" cy="79.1094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="252" x="869" y="75.0151">setupTasks(ConnectionsHolder connections,</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="941" y="87.8198">ConfigRootBean confMain)</text><rect fill="#FEFECE" filter="url(#f1)" height="86.4141" style="stroke: #A80036; stroke-width: 1.5;" width="139" x="234" y="350"/><ellipse cx="249" cy="366" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M249.1094,361.3438 L247.9531,366.4219 L250.2813,366.4219 L249.1094,361.3438 Z M247.625,359.1094 L250.6094,359.1094 L253.9688,371.5 L251.5156,371.5 L250.75,368.4375 L247.4688,368.4375 L246.7188,371.5 L244.2813,371.5 L247.625,359.1094 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="107" x="263" y="370.1543">AbstractSyncTask</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="235" x2="372" y1="382" y2="382"/><polygon fill="none" points="245,388.9023,249,392.9023,245,396.9023,241,392.9023" style="stroke: #B38D22; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="94" x="254" y="396.2104">String taskName</text><polygon fill="none" points="245,401.707,249,405.707,245,409.707,241,405.707" style="stroke: #B38D22; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="254" y="409.0151">boolean dryRun</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="235" x2="372" y1="415.6094" y2="415.6094"/><ellipse cx="245" cy="427.5117" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="76" x="254" y="429.8198">Boolean call()</text><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="232" y="187"/><ellipse cx="247" cy="203" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M242.9219,198.7656 L242.9219,196.6094 L250.3125,196.6094 L250.3125,198.7656 L247.8438,198.7656 L247.8438,206.8438 L250.3125,206.8438 L250.3125,209 L242.9219,209 L242.9219,206.8438 L245.3906,206.8438 L245.3906,198.7656 L242.9219,198.7656 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="112" x="261" y="207.1543">Callable&lt;Boolean&gt;</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="233" x2="375" y1="219" y2="219"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="233" x2="375" y1="227" y2="227"/><rect fill="#FEFECE" filter="url(#f1)" height="86.4141" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="6" y="349"/><ellipse cx="41.7" cy="365" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M44.6688,370.6406 Q44.0906,370.9375 43.45,371.0859 Q42.8094,371.2344 42.1063,371.2344 Q39.6063,371.2344 38.2859,369.5859 Q36.9656,367.9375 36.9656,364.8125 Q36.9656,361.6875 38.2859,360.0313 Q39.6063,358.375 42.1063,358.375 Q42.8094,358.375 43.4578,358.5313 Q44.1063,358.6875 44.6688,358.9844 L44.6688,361.7031 Q44.0438,361.125 43.45,360.8516 Q42.8563,360.5781 42.2313,360.5781 Q40.8875,360.5781 40.2,361.6484 Q39.5125,362.7188 39.5125,364.8125 Q39.5125,366.9063 40.2,367.9766 Q40.8875,369.0469 42.2313,369.0469 Q42.8563,369.0469 43.45,368.7734 Q44.0438,368.5 44.6688,367.9219 L44.6688,370.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="60.3" y="369.1543">BasicSyncTask</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="174" y1="381" y2="381"/><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="389.9023"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="26" y="395.2104">MVDataReader srcReader</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="402.707"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="26" y="408.0151">MVDataReader dstReader</text><rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="415.5117"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="129" x="26" y="420.8198">MVDataWriter dstWriter</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="174" y1="427.4141" y2="427.4141"/><rect fill="#FEFECE" filter="url(#f1)" height="73.6094" style="stroke: #A80036; stroke-width: 1.5;" width="174" x="789" y="174"/><ellipse cx="822.9" cy="190" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M825.8688,195.6406 Q825.2906,195.9375 824.65,196.0859 Q824.0094,196.2344 823.3063,196.2344 Q820.8063,196.2344 819.4859,194.5859 Q818.1656,192.9375 818.1656,189.8125 Q818.1656,186.6875 819.4859,185.0313 Q820.8063,183.375 823.3063,183.375 Q824.0094,183.375 824.6578,183.5313 Q825.3063,183.6875 825.8688,183.9844 L825.8688,186.7031 Q825.2438,186.125 824.65,185.8516 Q824.0563,185.5781 823.4313,185.5781 Q822.0875,185.5781 821.4,186.6484 Q820.7125,187.7188 820.7125,189.8125 Q820.7125,191.9063 821.4,192.9766 Q822.0875,194.0469 823.4313,194.0469 Q824.0563,194.0469 824.65,193.7734 Q825.2438,193.5 825.8688,192.9219 L825.8688,195.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="841.1" y="194.1543">ExecutorService</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="790" x2="962" y1="206" y2="206"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="790" x2="962" y1="226.8047" y2="226.8047"/><ellipse cx="800" cy="238.707" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="809" y="241.0151">invokeAll(Callable tasks...)</text><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="703" y="369"/><ellipse cx="718" cy="385" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M720.9688,390.6406 Q720.3906,390.9375 719.75,391.0859 Q719.1094,391.2344 718.4063,391.2344 Q715.9063,391.2344 714.5859,389.5859 Q713.2656,387.9375 713.2656,384.8125 Q713.2656,381.6875 714.5859,380.0313 Q715.9063,378.375 718.4063,378.375 Q719.1094,378.375 719.7578,378.5313 Q720.4063,378.6875 720.9688,378.9844 L720.9688,381.7031 Q720.3438,381.125 719.75,380.8516 Q719.1563,380.5781 718.5313,380.5781 Q717.1875,380.5781 716.5,381.6484 Q715.8125,382.7188 715.8125,384.8125 Q715.8125,386.9063 716.5,387.9766 Q717.1875,389.0469 718.5313,389.0469 Q719.1563,389.0469 719.75,388.7734 Q720.3438,388.5 720.9688,387.9219 L720.9688,390.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="732" y="389.1543">ConfigRootBean</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="704" x2="834" y1="401" y2="401"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="704" x2="834" y1="409" y2="409"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="181" x="918" y="369"/><ellipse cx="933" cy="385" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M935.9688,390.6406 Q935.3906,390.9375 934.75,391.0859 Q934.1094,391.2344 933.4063,391.2344 Q930.9063,391.2344 929.5859,389.5859 Q928.2656,387.9375 928.2656,384.8125 Q928.2656,381.6875 929.5859,380.0313 Q930.9063,378.375 933.4063,378.375 Q934.1094,378.375 934.7578,378.5313 Q935.4063,378.6875 935.9688,378.9844 L935.9688,381.7031 Q935.3438,381.125 934.75,380.8516 Q934.1563,380.5781 933.5313,380.5781 Q932.1875,380.5781 931.5,381.6484 Q930.8125,382.7188 930.8125,384.8125 Q930.8125,386.9063 931.5,387.9766 Q932.1875,389.0469 933.5313,389.0469 Q934.1563,389.0469 934.75,388.7734 Q935.3438,388.5 935.9688,387.9219 L935.9688,390.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="947" y="389.1543">ConfigConnectionsBean</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="919" x2="1098" y1="401" y2="401"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="919" x2="1098" y1="409" y2="409"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="151" x="457" y="369"/><ellipse cx="472" cy="385" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M474.9688,390.6406 Q474.3906,390.9375 473.75,391.0859 Q473.1094,391.2344 472.4063,391.2344 Q469.9063,391.2344 468.5859,389.5859 Q467.2656,387.9375 467.2656,384.8125 Q467.2656,381.6875 468.5859,380.0313 Q469.9063,378.375 472.4063,378.375 Q473.1094,378.375 473.7578,378.5313 Q474.4063,378.6875 474.9688,378.9844 L474.9688,381.7031 Q474.3438,381.125 473.75,380.8516 Q473.1563,380.5781 472.5313,380.5781 Q471.1875,380.5781 470.5,381.6484 Q469.8125,382.7188 469.8125,384.8125 Q469.8125,386.9063 470.5,387.9766 Q471.1875,389.0469 472.5313,389.0469 Q473.1563,389.0469 473.75,388.7734 Q474.3438,388.5 474.9688,387.9219 L474.9688,390.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="119" x="486" y="389.1543">ConnectionsHolder</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="458" x2="607" y1="401" y2="401"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="458" x2="607" y1="409" y2="409"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="149" x="700" y="538"/><ellipse cx="715" cy="554" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M717.9688,559.6406 Q717.3906,559.9375 716.75,560.0859 Q716.1094,560.2344 715.4063,560.2344 Q712.9063,560.2344 711.5859,558.5859 Q710.2656,556.9375 710.2656,553.8125 Q710.2656,550.6875 711.5859,549.0313 Q712.9063,547.375 715.4063,547.375 Q716.1094,547.375 716.7578,547.5313 Q717.4063,547.6875 717.9688,547.9844 L717.9688,550.7031 Q717.3438,550.125 716.75,549.8516 Q716.1563,549.5781 715.5313,549.5781 Q714.1875,549.5781 713.5,550.6484 Q712.8125,551.7188 712.8125,553.8125 Q712.8125,555.9063 713.5,556.9766 Q714.1875,558.0469 715.5313,558.0469 Q716.1563,558.0469 716.75,557.7734 Q717.3438,557.5 717.9688,556.9219 L717.9688,559.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="729" y="558.1543">ConfigGlobalsBean</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="701" x2="848" y1="570" y2="570"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="701" x2="848" y1="578" y2="578"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="132" x="933" y="538"/><ellipse cx="948" cy="554" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M950.9688,559.6406 Q950.3906,559.9375 949.75,560.0859 Q949.1094,560.2344 948.4063,560.2344 Q945.9063,560.2344 944.5859,558.5859 Q943.2656,556.9375 943.2656,553.8125 Q943.2656,550.6875 944.5859,549.0313 Q945.9063,547.375 948.4063,547.375 Q949.1094,547.375 949.7578,547.5313 Q950.4063,547.6875 950.9688,547.9844 L950.9688,550.7031 Q950.3438,550.125 949.75,549.8516 Q949.1563,549.5781 948.5313,549.5781 Q947.1875,549.5781 946.5,550.6484 Q945.8125,551.7188 945.8125,553.8125 Q945.8125,555.9063 946.5,556.9766 Q947.1875,558.0469 948.5313,558.0469 Q949.1563,558.0469 949.75,557.7734 Q950.3438,557.5 950.9688,556.9219 L950.9688,559.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="100" x="962" y="558.1543">ConfigTaskBean</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="934" x2="1064" y1="570" y2="570"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="934" x2="1064" y1="578" y2="578"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="166" y="538"/><ellipse cx="181" cy="554" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M183.9688,559.6406 Q183.3906,559.9375 182.75,560.0859 Q182.1094,560.2344 181.4063,560.2344 Q178.9063,560.2344 177.5859,558.5859 Q176.2656,556.9375 176.2656,553.8125 Q176.2656,550.6875 177.5859,549.0313 Q178.9063,547.375 181.4063,547.375 Q182.1094,547.375 182.7578,547.5313 Q183.4063,547.6875 183.9688,547.9844 L183.9688,550.7031 Q183.3438,550.125 182.75,549.8516 Q182.1563,549.5781 181.5313,549.5781 Q180.1875,549.5781 179.5,550.6484 Q178.8125,551.7188 178.8125,553.8125 Q178.8125,555.9063 179.5,556.9766 Q180.1875,558.0469 181.5313,558.0469 Q182.1563,558.0469 182.75,557.7734 Q183.3438,557.5 183.9688,556.9219 L183.9688,559.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="155" x="195" y="558.1543">LDAPConnectionWrapper</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="167" x2="352" y1="570" y2="570"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="167" x2="352" y1="578" y2="578"/><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="437" y="538"/><ellipse cx="452" cy="554" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M454.9688,559.6406 Q454.3906,559.9375 453.75,560.0859 Q453.1094,560.2344 452.4063,560.2344 Q449.9063,560.2344 448.5859,558.5859 Q447.2656,556.9375 447.2656,553.8125 Q447.2656,550.6875 448.5859,549.0313 Q449.9063,547.375 452.4063,547.375 Q453.1094,547.375 453.7578,547.5313 Q454.4063,547.6875 454.9688,547.9844 L454.9688,550.7031 Q454.3438,550.125 453.75,549.8516 Q453.1563,549.5781 452.5313,549.5781 Q451.1875,549.5781 450.5,550.6484 Q449.8125,551.7188 449.8125,553.8125 Q449.8125,555.9063 450.5,556.9766 Q451.1875,558.0469 452.5313,558.0469 Q453.1563,558.0469 453.75,557.7734 Q454.3438,557.5 454.9688,556.9219 L454.9688,559.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="466" y="558.1543">SQLConnectionWrapper</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="438" x2="615" y1="570" y2="570"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="438" x2="615" y1="578" y2="578"/><path d="M681.765,259.19 C704.732,294.42 735.17,341.108 753.351,368.997 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="674.595,248.193,674.5212,255.4037,681.1488,258.2452,681.2227,251.0345,674.595,248.193" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="744.7534" y="357.9061">1</text><path d="M734.544,254.239 C805.14,289.931 903.736,339.78 961.524,368.997 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="722.586,248.193,726.1357,254.4699,733.295,253.6075,729.7453,247.3306,722.586,248.193" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="938.4348" y="357.7341">1</text><path d="M620.235,259.19 C597.268,294.42 566.83,341.108 548.649,368.997 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="627.405,248.193,620.7773,251.0345,620.8512,258.2452,627.4788,255.4037,627.405,248.193" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="560.6337" y="357.9349">1</text><path d="M562.036,253.836 C517.495,275.259 462.976,302.206 415,328 C401.33,335.35 386.901,343.499 373.133,351.473 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="574.023,248.088,566.8833,247.0755,563.2027,253.2766,570.3424,254.2891,574.023,248.088" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="380.9488" y="353.6571">*</text><path d="M304,255.208 C304,283.975 304,321.313 304,349.863 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="297,255.168,304,235.168,311,255.168,297,255.168" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M174.578,392.395 C187.459,392.455 200.793,392.518 213.789,392.578 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="213.85,385.579,233.817,392.672,213.785,399.578,213.85,385.579" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M893.034,96.234 C855.347,114.198 811.62,135.058 772,154 C757.919,160.732 742.92,167.913 728.448,174.847 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="897.6,94.057,887.7546,94.3181,893.0864,96.2081,891.1964,101.5399,897.6,94.057" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="29" x="737.9316" y="172.5997">(#3)</text><path d="M651,99.234 C651,123.432 651,152.291 651,174.757 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="651,94.145,647,103.145,651,99.145,655,103.145,651,94.145" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="29" x="640.7675" y="163.7974">(#2)</text><path d="M422.202,96.525 C471.291,121.3 531.25,151.562 577.472,174.89 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="417.486,94.145,423.7178,101.7716,421.9495,96.3982,427.3229,94.6299,417.486,94.145" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="29" x="543.5816" y="163.8965">(#1)</text><path d="M730.01,223.883 C747.372,224.356 765.904,224.384 783.735,223.975 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="788.744,223.848,779.6452,220.0781,783.7456,223.9751,779.8486,228.0756,788.744,223.848" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="29" x="737.9867" y="234.9615">(#4)</text><path d="M770.324,430.304 C771.487,463.058 773.145,509.7401 774.142,537.8313 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="769.86,417.214,766.0755,423.3522,770.2859,429.2064,774.0705,423.0682,769.86,417.214" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="774.0672" y="526.8799">1</text><path d="M812.49,424.956 C857.175,457.79 925.744,508.1725 966.108,537.8313 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="801.953,417.214,804.4191,423.9903,811.6226,424.3202,809.1566,417.5439,801.953,417.214" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="950.2652" y="526.9727">*</text><path d="M483.021,423.939 C430.066,456.721 347.553,507.8008 299.132,537.7752 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="494.176,417.034,486.969,416.7914,483.9731,423.3507,491.1801,423.5933,494.176,417.034" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="331.4344" y="526.7786">*</text><path d="M531.676,430.304 C530.513,463.058 528.855,509.7401 527.858,537.8313 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="532.14,417.214,527.9295,423.0682,531.7141,429.2064,535.9245,423.3522,532.14,417.214" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="529.3654" y="527.0219">*</text></g></svg> \ No newline at end of file