92 lines
13 KiB
XML
92 lines
13 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="352px" preserveAspectRatio="none" style="width:1323px;height:352px;" version="1.1" viewBox="0 0 1323 352" width="1323px" zoomAndPan="magnify"><defs/><g><!--MD5=[337a2b82978a806ce5bcf4ad5fd16aa2]
|
|
cluster xmls--><polygon fill="#FFFFFF" points="76.5,222,141.5,222,148.5,247.0679,180.5,247.0679,180.5,340,76.5,340,76.5,222" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="76.5" x2="148.5" y1="247.0679" y2="247.0679"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="59" x="80.5" y="238.9659">xml-files</text><!--MD5=[45650538d9e692597bc237bf2338e219]
|
|
cluster mdm2neo4j--><rect fill="#FFFFFF" height="275" style="stroke: #000000; stroke-width: 1.5;" width="719" x="326" y="25"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="83" x="644" y="41.9659">mdm2neo4j</text><!--MD5=[d7497fff2e6a9a1d994f1cc59d903d3b]
|
|
cluster database_connector--><polygon fill="#FFFFFF" points="830,120,975,120,982,145.0679,1021,145.0679,1021,242,830,242,830,120" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="830" x2="982" y1="145.0679" y2="145.0679"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="139" x="834" y="136.9659">database_connector</text><!--MD5=[bd29416b877ecfc5c3cef04f79efb9f2]
|
|
cluster xml_processor--><polygon fill="#FFFFFF" points="600,71,706,71,713,96.0679,797,96.0679,797,221,600,221,600,71" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="600" x2="713" y1="96.0679" y2="96.0679"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="100" x="604" y="87.9659">xml_processor</text><!--MD5=[3bec78ca12dc16b09861f7009b8d0a05]
|
|
cluster Neo4j DBMS--><polygon fill="#FFFFFF" points="1141,135,1151,125,1301,125,1301,222,1291,232,1141,232,1141,135" style="stroke: #000000; stroke-width: 1.5;"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1291" x2="1300" y1="135" y2="126"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1141" x2="1291" y1="135" y2="135"/><line style="stroke: #000000; stroke-width: 1.5;" x1="1291" x2="1291" y1="135" y2="232"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="84" x="1175" y="152.9659">Neo4j DBMS</text><!--MD5=[8fc3522a43f8c7199df5e09e5bb0188e]
|
|
entity user--><ellipse cx="128.5" cy="126" fill="#FEFECE" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.5;"/><path d="M128.5,134 L128.5,161 M115.5,142 L141.5,142 M128.5,161 L115.5,176 M128.5,161 L141.5,176 " fill="none" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="31" x="113" y="193.4659">User</text><!--MD5=[00b4040e603364f3b74d798c0912c1e4]
|
|
entity conf--><polygon fill="#FEFECE" points="38,40,38,106.1358,219,106.1358,219,50,209,40,38,40" style="stroke: #000000; stroke-width: 1.5;"/><path d="M209,40 L209,50 L219,50 " fill="#FEFECE" style="stroke: #000000; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="71" x="48" y="64.9659">mdm.conf</text><line style="stroke: #000000; stroke-width: 1.5;" x1="39" x2="218" y1="69.0679" y2="69.0679"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="149" x="54" y="88.0339">- database connection</text><!--MD5=[598c7458f910f9705370ab7196b85f6e]
|
|
entity *.xml--><rect fill="#FEFECE" height="35.0679" style="stroke: #000000; stroke-width: 1.5;" width="52" x="104.5" y="272.5"/><rect fill="#FEFECE" height="35.0679" style="stroke: #000000; stroke-width: 1.5;" width="52" x="100.5" y="268.5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="36" x="108.5" y="291.4659">*.xml</text><!--MD5=[983d0794f401e349a629364dfc448d7d]
|
|
entity run--><polygon fill="#FEFECE" points="342,105,342,209.2717,503,209.2717,503,115,493,105,342,105" style="stroke: #000000; stroke-width: 1.5;"/><path d="M493,105 L493,115 L503,115 " fill="#FEFECE" style="stroke: #000000; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="352" y="129.9659">run.py</text><line style="stroke: #000000; stroke-width: 1.5;" x1="343" x2="502" y1="134.0679" y2="134.0679"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="81" x="358" y="153.0339">Parameters:</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="118" x="358" y="172.1018">- path to xml-files</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="129" x="358" y="191.1697">- path to mdm.conf</text><!--MD5=[7feca6f6a073612d3294a2c89b6a5708]
|
|
entity c_neo--><rect fill="#FEFECE" height="68.1358" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="846" y="158"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="985" y="163"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="983" y="165"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="983" y="169"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="73" x="884" y="192.9659">«Singleton»</text><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="119" x="861" y="212.0339">Neo4jConnection</text><!--MD5=[be93e3bd3068dc9387925b2bab7c0091]
|
|
entity p_xml--><rect fill="#FEFECE" height="95.2038" style="stroke: #A80036; stroke-width: 1.5;" width="165" x="616" y="109.5"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="761" y="114.5"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="759" y="116.5"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="759" y="120.5"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="95" x="631" y="144.4659">XmlProcessor</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="617" x2="780" y1="148.5679" y2="148.5679"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="104" x="637" y="167.5339">- parse XML file</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="113" x="637" y="186.6018">- logic for import</text><!--MD5=[7468467f3b6b392f1d176d828c753b77]
|
|
entity db--><path d="M1192,178 C1192,168 1220.5,168 1220.5,168 C1220.5,168 1249,168 1249,178 L1249,206.0679 C1249,216.0679 1220.5,216.0679 1220.5,216.0679 C1220.5,216.0679 1192,216.0679 1192,206.0679 L1192,178 " fill="#FEFECE" style="stroke: #000000; stroke-width: 1.5;"/><path d="M1192,178 C1192,188 1220.5,188 1220.5,188 C1220.5,188 1249,188 1249,178 " fill="none" style="stroke: #000000; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="37" x="1202" y="206.9659">neo4j</text><!--MD5=[f271a736112486e7ec41007a5c5ce53c]
|
|
link user to run--><path d="M144.38,157 C176.8,157 256.17,157 321.69,157 " fill="none" id="user->run" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="321.96,150,341.96,157,321.96,164,321.96,150" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="28" x="266.5" y="152.897">start</text><!--MD5=[ba94fa49a806251d7bf299e72d969fd6]
|
|
link run to p_xml--><path d="M503.12,157 C536.85,157 576.25,157 610.73,157 " fill="none" id="run->p_xml" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="615.78,157,606.78,153,610.78,157,606.78,161,615.78,157" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="534" y="134.897">1 Object</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="537" y="152.603">per File</text><!--MD5=[0a3e5cb278b49f4eda44a0ba082371fa]
|
|
link run to c_neo--><path d="M496.68,209.08 C525.06,226.29 558.71,243.26 592,252 C683.57,276.03 712.88,273.83 805,252 C825.62,247.11 846.72,238.09 865.35,228.49 " fill="none" id="run->c_neo" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="870.03,226.04,860.2025,226.6881,865.6045,228.367,863.9256,233.769,870.03,226.04" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="689" y="229.897">init</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="665" y="247.603">connection</text><!--MD5=[8a7386d18f110db2ce9aedfd23e4f484]
|
|
link run to conf--><path d="M341.98,134.12 C305.61,123.66 262.23,111.18 224.19,100.24 " fill="none" id="run->conf" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="219.09,98.77,226.6498,105.0827,223.8987,100.1398,228.8415,97.3887,219.09,98.77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="57" x="252" y="105.897">read-only</text><!--MD5=[c6c1c7183ed8c16cfda3e0bc9fd1c103]
|
|
reverse link xmls to run--><path d="M180.8434,332.2315 C181.589,332.1736 182.3383,332.1124 183.0909,332.0479 C184.5962,331.919 186.115,331.7767 187.6447,331.6201 C193.7637,330.9935 200.0577,330.1371 206.3622,328.9852 C218.9713,326.6813 231.6225,323.195 243,318 C297.1,293.3 346.28,246.21 379.25,209.31 " fill="none" id="xmls<-run" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="180.8434,332.2315,190.1263,335.5222,185.8284,331.8441,189.5065,327.5462,180.8434,332.2315" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="57" x="252" y="272.897">read-only</text><!--MD5=[bb19df8b27ca915d940688a46e47b57a]
|
|
link p_xml to c_neo--><path d="M781.05,169.69 C800.53,172.72 821.35,175.95 840.91,179 " fill="none" id="p_xml->c_neo" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="845.86,179.77,837.5845,174.43,840.9198,178.999,836.3508,182.3343,845.86,179.77" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[168b4436ec304b879fe0277419ebc878]
|
|
link c_neo to db--><path d="M1005.02,192 C1064.47,192 1143.12,192 1186.77,192 " fill="none" id="c_neo->db" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1191.91,192,1182.91,188,1186.91,192,1182.91,196,1191.91,192" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="62" x="1062" y="187.897">read/write</text><!--MD5=[db7c712e0b3330f54b656f96ab9a54ae]
|
|
@startuml
|
|
|
|
|
|
left to right direction
|
|
|
|
skinparam nodesep 10
|
|
|
|
skinparam shadowing false
|
|
skinparam node {
|
|
}
|
|
|
|
together {
|
|
actor "User" as user
|
|
|
|
file conf [
|
|
**mdm.conf**
|
|
____
|
|
- database connection
|
|
]
|
|
|
|
folder "xml-files" as xmls {
|
|
collections "*.xml"
|
|
}
|
|
}
|
|
|
|
rectangle "mdm2neo4j" {
|
|
package "database_connector" {
|
|
component c_neo <<Singleton>> [
|
|
**Neo4jConnection**
|
|
]
|
|
}
|
|
package "xml_processor" {
|
|
component p_xml [
|
|
**XmlProcessor**
|
|
____
|
|
- parse XML file
|
|
- logic for import
|
|
]
|
|
}
|
|
file run [
|
|
**run.py**
|
|
____
|
|
Parameters:
|
|
- path to xml-files
|
|
- path to mdm.conf
|
|
]
|
|
}
|
|
|
|
node "Neo4j DBMS" {
|
|
database "neo4j" as db
|
|
}
|
|
|
|
user - -|> run : start
|
|
run - -> p_xml : 1 Object\nper File
|
|
run ..> c_neo : init\nconnection
|
|
run -> conf : read-only
|
|
run -u-> xmls : read-only
|
|
p_xml - -> c_neo
|
|
c_neo - -> db : read/write
|
|
|
|
@enduml
|
|
|
|
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
|
|
(GPL source distribution)
|
|
Java Runtime: OpenJDK Runtime Environment
|
|
JVM: OpenJDK 64-Bit Server VM
|
|
Java Version: 17.0.13+11-Debian-2deb12u1
|
|
Operating System: Linux
|
|
Default Encoding: UTF-8
|
|
Language: en
|
|
Country: GB
|
|
--></g></svg> |