From 5ae80bf18ddf4fc25043efc326464230640ee91e Mon Sep 17 00:00:00 2001 From: Igor Date: Thu, 18 Nov 2021 18:15:15 +0100 Subject: [PATCH] set properties --- .idea/uiDesigner.xml | 124 ++++++++++++++ src/main/java/com/release11/DAO.java | 155 ------------------ src/main/java/com/release11/Main.java | 25 +-- ...MyAggregator.java => MergeAggregator.java} | 15 +- src/main/java/com/release11/MyProcess.java | 16 -- .../java/com/release11/ValidatorProcess.java | 47 ++++++ target/classes/com/release11/DAO.class | Bin 2505 -> 0 bytes target/classes/com/release11/Main$1$1.class | Bin 1002 -> 0 bytes target/classes/com/release11/Main$1.class | Bin 3242 -> 3233 bytes target/classes/com/release11/Main.class | Bin 2378 -> 2340 bytes .../com/release11/MergeAggregator.class | Bin 0 -> 3366 bytes .../classes/com/release11/MyAggregator.class | Bin 3851 -> 0 bytes target/classes/com/release11/MyProcess.class | Bin 997 -> 0 bytes .../com/release11/ValidatorProcess.class | Bin 0 -> 2333 bytes target/classes/generated/MaterialType.class | Bin 2559 -> 2559 bytes .../classes/generated/MaterialTypeType.class | Bin 2340 -> 2281 bytes target/classes/generated/ObjectFactory.class | Bin 1388 -> 1388 bytes target/classes/generated/Package.class | Bin 2180 -> 2180 bytes 18 files changed, 178 insertions(+), 204 deletions(-) create mode 100644 .idea/uiDesigner.xml delete mode 100644 src/main/java/com/release11/DAO.java rename src/main/java/com/release11/{MyAggregator.java => MergeAggregator.java} (79%) delete mode 100644 src/main/java/com/release11/MyProcess.java create mode 100644 src/main/java/com/release11/ValidatorProcess.java delete mode 100644 target/classes/com/release11/DAO.class delete mode 100644 target/classes/com/release11/Main$1$1.class create mode 100644 target/classes/com/release11/MergeAggregator.class delete mode 100644 target/classes/com/release11/MyAggregator.class delete mode 100644 target/classes/com/release11/MyProcess.class create mode 100644 target/classes/com/release11/ValidatorProcess.class diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/release11/DAO.java b/src/main/java/com/release11/DAO.java deleted file mode 100644 index 6ac110d..0000000 --- a/src/main/java/com/release11/DAO.java +++ /dev/null @@ -1,155 +0,0 @@ -package com.release11; - -import generated.MaterialType; -import org.apache.camel.Exchange; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Result; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import java.io.File; -import java.util.*; - -public class DAO { - - static List packages = new ArrayList<>(); - - public void getId(Exchange exchange) throws InterruptedException { - - MaterialType tmp = (MaterialType) exchange.getIn().getBody(); - System.out.println(tmp.getDescription() + tmp.getMaterialName()); - Thread.sleep(10000); - exchange.getIn().setBody("SELECT * FROM package WHERE material_id = 1"); - } - - public void test(Exchange exchange) throws InterruptedException { - - HashMap map = (HashMap) exchange.getIn().getBody(); - MaterialType materialType = new MaterialType(); - materialType.setId((Integer) map.get("id")); - materialType.setMaterialNumber((String) map.get("number")); - // materialType.getMaterialType(map.get("type")); - materialType.setMaterialName((String) map.get("name")); - materialType.setDescription((String) map.get("description")); - materialType.setIsDeleted((Boolean) map.get("is_deleted")); - - - // System.out.println(tmp.getDescription()+tmp.getMaterialName()); - Thread.sleep(3000); - exchange.getIn().setBody(materialType); - } - -/* - public void splitPackage(LinkedHashMap packageMap) { - Package pack = new Package(); - pack.setId((Integer) packageMap.get("id")); - pack.setNumber((String) packageMap.get("number")); - pack.setMaterial_id((Integer) packageMap.get("material_id")); - pack.setEan((String.valueOf(packageMap.get("ean")))); - pack.setUnit_of_measure((String) packageMap.get("unit_of_measure")); - pack.setDimension((String) packageMap.get("dimension")); - pack.setDescription((String) packageMap.get("description")); - packages.add(pack); - } - - public void splitMaterial(LinkedHashMap materialMap) { - Material material = mapToMaterial(materialMap); - materials.add(material); - } - - public String singleXML(Material material) throws Exception { - - File file = new File("src/main/resources/test.xml"); - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = dbf.newDocumentBuilder(); - Document doc = builder.newDocument(); - Element root = doc.createElement("material"); - - Element materialNumber = doc.createElement("material_number"); - materialNumber.setTextContent(String.valueOf(material.getNumber())); - root.appendChild(materialNumber); - - Element materialType = doc.createElement("material_type"); - materialType.setTextContent(String.valueOf(material.getType())); - root.appendChild(materialType); - - Element materialName = doc.createElement("material_name"); - materialName.setTextContent(String.valueOf(material.getName())); - root.appendChild(materialName); - - Element description = doc.createElement("description"); - description.setTextContent(material.getDescription()); - root.appendChild(description); - - Element is_deleted = doc.createElement("is_deleted"); - is_deleted.setTextContent(String.valueOf(material.getIs_deleted())); - root.appendChild(is_deleted); - - for (Package p : material.getPackageList()) { - - Element packageElement = doc.createElement("packages"); - - Element packageNumber = doc.createElement("package_number"); - packageNumber.setTextContent(String.valueOf(p.getNumber())); - packageElement.appendChild(packageNumber); - - Element ean = doc.createElement("ean"); - ean.setTextContent(String.valueOf(p.getEan())); - packageElement.appendChild(ean); - - Element unit = doc.createElement("unit_of_measure"); - unit.setTextContent(String.valueOf(p.getUnit_of_measure())); - packageElement.appendChild(unit); - - Element dimension = doc.createElement("dimension"); - dimension.setTextContent(String.valueOf(p.getDimension())); - packageElement.appendChild(dimension); - - Element descriptionPackage = doc.createElement("description"); - descriptionPackage.setTextContent(String.valueOf(p.getDescription())); - packageElement.appendChild(descriptionPackage); - - root.appendChild(packageElement); - } - - doc.appendChild(root); - DOMSource src = new DOMSource(doc); - Result result = new StreamResult(file); - TransformerFactory tf = TransformerFactory.newInstance(); - Transformer transformer = tf.newTransformer(); - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - transformer.transform(src, result); - - String xml = ""; - Scanner myReader = new Scanner(file); - while (myReader.hasNextLine()) { - xml += myReader.nextLine() + "\n"; - } - - return xml; - - } - - public Material mapToMaterial(LinkedHashMap list) { - Material material = new Material(); - material.setId((Integer) list.get("id")); - material.setNumber((String) list.get("number")); - material.setType(Material.enumType.valueOf((String) list.get("type"))); - material.setName((String) list.get("name")); - material.setDescription((String) list.get("description")); - material.setIs_deleted((Boolean) list.get("is_deleted")); - for (int j = 0; j < packages.size(); j++) { - if (packages.get(j).getMaterial_id() == material.getId()) - material.getPackageList().add(packages.get(j)); - } - return material; - } - - */ -} diff --git a/src/main/java/com/release11/Main.java b/src/main/java/com/release11/Main.java index 2ae2a6e..253a7cc 100644 --- a/src/main/java/com/release11/Main.java +++ b/src/main/java/com/release11/Main.java @@ -2,7 +2,6 @@ package com.release11; import com.mysql.cj.jdbc.MysqlDataSource; import generated.MaterialType; -import generated.MaterialTypeType; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.camel.*; import org.apache.camel.builder.RouteBuilder; @@ -11,9 +10,7 @@ import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.support.SimpleRegistry; import org.apache.log4j.BasicConfigurator; import org.apache.camel.converter.jaxb.JaxbDataFormat; - import javax.xml.bind.*; -import java.util.HashMap; public class Main { @@ -58,27 +55,13 @@ public class Main { .to("jdbc:source?useHeadersAsParameters=true"); from("activemq:queue:RawMaterial") - .enrich("direct:getPackages", new MyAggregator()) - .process(new Processor(){ - - @Override - public void process(Exchange exchange) throws Exception { - MaterialType material = (MaterialType) exchange.getIn().getBody(); - - - - - - - } - }) - - + .enrich("direct:getPackages", new MergeAggregator()) + .process(new ValidatorProcess()) .choice() - .when(simple("${header.ean} == false")) + .when(simple("${exchangeProperty[dimension]}"+" == false")) .marshal(xmlDataFormat) .to("activemq:queue:BadEan") - .when(simple("${header.dimension} == false")) + .when(simple("${exchangeProperty[ean]}"+" == false")) .marshal(xmlDataFormat) .to("activemq:queue:BadDimension") .otherwise() diff --git a/src/main/java/com/release11/MyAggregator.java b/src/main/java/com/release11/MergeAggregator.java similarity index 79% rename from src/main/java/com/release11/MyAggregator.java rename to src/main/java/com/release11/MergeAggregator.java index b920cae..7c7ef9a 100644 --- a/src/main/java/com/release11/MyAggregator.java +++ b/src/main/java/com/release11/MergeAggregator.java @@ -12,12 +12,12 @@ import java.util.HashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; -public class MyAggregator implements AggregationStrategy { +public class MergeAggregator implements AggregationStrategy { @Override public Exchange aggregate(Exchange oldExchange, Exchange newExchange) { - HashMap oldEx = (HashMap) oldExchange.getIn().getBody(); - ArrayList newEx = (ArrayList) newExchange.getIn().getBody(); + HashMap oldEx = oldExchange.getIn().getBody(HashMap.class); + ArrayList newEx = newExchange.getIn().getBody(ArrayList.class); oldEx.put("packages", newEx); MaterialType material = new MaterialType(); @@ -42,17 +42,8 @@ public class MyAggregator implements AggregationStrategy { p.setDimension((String) newEx.get(i).get("dimension")); p.setDescription((String) newEx.get(i).get("description")); material.getPackages().add(p); - - //validation - Pattern pattern = Pattern.compile("\\d\\dx\\d\\dx\\d\\d"); - Matcher matcher = pattern.matcher(p.getDimension()); - if (!matcher.matches()) - oldExchange.getIn().setHeader("dimension", false); - if(!isEanGood(p.getEan())) - oldExchange.getIn().setHeader("ean", false); } - oldExchange.getIn().setBody(material); return oldExchange; } diff --git a/src/main/java/com/release11/MyProcess.java b/src/main/java/com/release11/MyProcess.java deleted file mode 100644 index a30104e..0000000 --- a/src/main/java/com/release11/MyProcess.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.release11; - -import org.apache.camel.Exchange; -import org.apache.camel.Processor; - -public class MyProcess implements Processor { - @Override - public void process(Exchange exchange) throws Exception { - System.out.println("SIEMAAAAAAAAAAA"); - String tmp = (String) exchange.getIn().getBody(); - System.out.println(tmp); - System.out.println("SIEMAAAAAAAAAAA"); - Thread.sleep(100000); - - } -} diff --git a/src/main/java/com/release11/ValidatorProcess.java b/src/main/java/com/release11/ValidatorProcess.java new file mode 100644 index 0000000..7ea6c25 --- /dev/null +++ b/src/main/java/com/release11/ValidatorProcess.java @@ -0,0 +1,47 @@ +package com.release11; + +import generated.MaterialType; +import generated.Package; +import org.apache.camel.Exchange; +import org.apache.camel.Processor; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class ValidatorProcess implements Processor { + @Override + public void process(Exchange exchange) throws Exception { + MaterialType material = exchange.getIn().getBody(MaterialType.class); + Pattern pattern = Pattern.compile("\\d\\dx\\d\\dx\\d\\d"); + for (Package p: material.getPackages()) { + Matcher matcher = pattern.matcher(p.getDimension()); + if (!matcher.matches()) + exchange.setProperty("dimension", false); + if(!isEanGood(p.getEan())) + exchange.setProperty("ean", false); + } + } + + boolean isEanGood(String ean) { + + int sum = 0; + for (int i = 0; i < ean.length() - 1; i++) { + if (i % 2 == 1) + sum += (ean.charAt(i) - '0') * 3; + else + sum += (int) ean.charAt(i) - '0'; + } + + sum = sum - (sum / 10) * (10); + if (sum != 0) + sum = 10 - sum; + + int tmp1 = Integer.valueOf(sum); + int tmp2 = Integer.valueOf(ean.charAt(ean.length()-1)-'0'); + + if(tmp1 == tmp2) + return true; + + return false; + } +} diff --git a/target/classes/com/release11/DAO.class b/target/classes/com/release11/DAO.class deleted file mode 100644 index 677603c72fc25ca49e20fb569217cb0302e63886..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2505 zcmaJ?d3O_49KEj#lcpo-O4-B!g{Gwtt89{jLKj<1+DdDYqQEqHCPODPVP=BVeZhU- zQ9p%xPT0=z@VDQ=uj28(Op+$Fnw(kQo8NZtZ+UQAk1vZVEw&|Y|XpRjowj+c#4PhPa&;_WdjC4-M(?(ue@rfJh z9JQrDYgYQxw!qHVU~-*UN_w7=m5Fw2Mnpr0j!tw5Z2d1m0gdL)IGI&}9vXZ&%!Gy> zfh}2SOV{vaCZ6KmH4STFwIJKD1$`Q}>ez@m6{xKcL@f3sds`+gQDyYK5;G%|vKxY|G z(KoI5l;P!4MnPq#IRutxlbH$Q1fJ1x8fTbN5-+g79$?j09g~$U4dYeg<=UUNeVLVR z7-N{!@hqkULZocbu!^i~Ho~;>dsfGDNGcLo=_I2iHmyjQVb9pb{IYa4%r&qUBuS~B z(=o3S)JfG^d6acRc!8E|mWq-)uj54}7pa%yw-A;D+B0jVsDxkA@v;)$OyRmJ4dJpt z*z_)Eq$SxK8jJ?8XB@|ph8@Ngq;+IKg!*!@w+47gImqhB!Q^KJ*c%VbDcno7qG`XQ zfejTDUO7>xUDsGmnw}qqh2}OCa7}}&!vpivnRfDVmxc^aj*P^|PtTI+O3knjI)YS{ z?I;s0fwp-wYa4#iWtjUO`aD{f*}0(b5~rxsGUj9`9!Z+EoGG)sU@TkQ=}J0j!&)>r zDY&j|w)i=dzPpp_Vxy_@RAa7p#nunC>g;2+5{0Zy!X5u3%4+iSY@n^ljb|5KhG|!p z=Z&Y~CS9)$KUJr$TP!fEH6g8B1tw8@;WTt)HS&{Le;)5AC zX{3F}!041=XDsRUCmm;{SV+{Rvohc6b{Z5Fj19yu*2!`o+rurPpq|d*ft7T!_N%~Y6!A|j^iP~#}lH!;};;&svY<& za@B$2zWs<>_yybk E1qBv%y#N3J diff --git a/target/classes/com/release11/Main$1$1.class b/target/classes/com/release11/Main$1$1.class deleted file mode 100644 index 800bf5a45034a85ad46c39d352e1d9ee26e88959..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1002 zcmaJq5{>fciJ+6r<@@H$`SzUse*XIQ9l#d0a!4U^8!^@51mK_O2(?ya=OwF zYpq&KU_Kf6aqTe?omr4}9$Dlp(w9C)X z5p~pOyVE!l$n5GqKmN5%>8!eNbLBr!0*B{vP374puyUT{YLxgoj4f;kEL^&HaYNL5eG<9qm2WiW zOebv`939vT-9X2F=yg>x(0vPRtIDjdvhl<;Q_j`l2j4r1NR&NLaq?QniG}C1Zu*sg zy&v-L?FKTARg85ucoqUH5T%l7a`t_Svw)k-uJN?Z*ktm}jV}<*udqIkF}JwR6JrqT zT&oilZsQIk;>T=)h`Xrq&TzeBl;&RAIKvfzGb{-Fz*6^;F+XP6K@t07*7XVgg0+Nu sxKEZM=L6JiW5dO~Y!VJR@%wRwu5Fij>Az9Hx6awKA2q++zaFdW^*gY&mc6VTAxJk$c zHEO&?Jn>q-XsMO5$|_T3O)N16eel5tU##-MJoz`Q^3t;qW7MhI>F%$;{?0kwXZF+l z5Au^g{PEQ{0P69cf(Owl;e-MoI%RZuwp+sE5}r`dgI+K0lkud25c*{dcy>@hHijge zlrikNBOW;Fd1Erh6+DFz851&2$(Zy~r@hn}8E0ka5~dW46`|9^!V)41O11;;A=5IV z3Mw(9_Ly$l zTnuD<%xsaR9L#l8EMSpA?&G%8W!et1s%In4XA+ zQbHTQ=9fxXQSmfZRh-8fgBmd`9(EdRN4H4p0+OQ0m!GBLBGy$rgJ&5Ih;=DXeD2$w z%$$u(g&S;h!3uK~&*74a=kbDy7jc=PKo2{{B9G5E%rEc--Y}>y_0nD}Lyt*#i9y?0 zDaxIGJ$z1&a+@JDzC$@oiZaU6GmimO~uQ2Ma8RljiG+1qoO#HTit^TI)Z$UyF)bBW@H#{By`&L6W<b-X=U<0z z(<2>vf}!+(^tk>{C5FQP)*ipJq>6WORos^MiQnZiaf{`#3bEnOuOBoQ9NxBI#3Gz- zP0ro_r zsq|rbr>DRQ93fxbCg2e~N)f|jRP6JL*(C(vC+zkneB(FZ@2SxOF46)wkv{HEYSPe` zkb7%tU1S6`#YJXNQ(a`a*tLah?LHT~$p&3$E^@T{UF;bRYPm$y@`Bm}F7jOzcm%C5 z<)@1FQW3F;oT=q*qKH;4cCn9Wn<$~6)I}KuF7^kLT6wCjqQ=F6EmUe%E~?1}HCmFi z|Hdir;Vx?LFb{4c+99%|cbj5iFCDfTGJ@EJ8Wf_I`g(|v5Drs!8>z4D)SMF(4I+62 zr>SQK{awbXXXnv?%S5??qjaU4@IIRH5su+AwBQT0;%l_wJ1YMk$MGXN@H0B`3&v6t zDB14v&IDxqL|TnBi9&3VS`$s9nKl+62>HOV3}I C%U3}F delta 1502 zcmZWpT~JhI7=FI}JBQ^6coYm*XdzT~`B_&*a0Ln#g%UInh(zqL`?(z4A2{bA64GWr z_G3l#rIpn*HPbZHMNJnSoERILE}FWio5rT8+b+89u8XGkETE-(ai0C&?|Gm1J@3!? zu>8~Vtv~$p)z<);@tz+pxFvWLc;RE%E-p#sqQzTO;%n72y4B9$t_=-JkcHb7t@J~J zTSg&6L6T>ViiIP!l)BheBC8}G@wyJM8PgZ8FmOJ zZ4p1ZHi}!m!GMfC422Vkv3ShPP8)GbumMd9_MutSOI@Xo)_w&s9ANN_WfQXup<2-) z2gG%014U{;n}T*cC_a(;D1i>~x2vMik3(pZaCkk~pHgv;j3W%{+IuCrbwZ1u(~{hj z(M1WQ*GhCoPsn(f3^j93uv2>C^t_Y8F$F#7W$>ALdNReuF<(gR^2%aFF3KlyLcycx z6BBZZk~k>_+%dvIvEU9zBs|8j^{%4Lb|jMqPij`y@M8#W=S5B_7{O_AOE$t1&QJ&M z^2ryvChEs1G-rUu7|Lr!B`Z@xgN}bf0moU|U#6#X4b^Z9Go2WsDAob4z%_Mx2f|l412+-Z5Qg!(2f|ov|@X z7*?PBzy0E>-NsYv%uA~l^;yE9J5@30;{wz}rXejtBLY;uAfgCiH}+x=4&(@EV{w$e zk$q^P0pCxv8$%kcxQI3?T{~W<1-yn{ypQAf7$@)yHzKMQ(i<9^c1NaGp_=VQ# zH}ZB`5L_+uS_@?Sj4ODBS`olEconZvI~IuLK{F$H58j}I3j%NEjaTs&uIDXR@h+iC McU6SWZ*&#@1=k)^#sB~S diff --git a/target/classes/com/release11/Main.class b/target/classes/com/release11/Main.class index e93c1a7a41856bb0492d5c0eba1b1776f498661a..f62d36bd8bcf654b471eba067eaca556375c9854 100644 GIT binary patch delta 1044 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 JM{g0F`X3!cOrHP% literal 0 HcmV?d00001 diff --git a/target/classes/com/release11/MyAggregator.class b/target/classes/com/release11/MyAggregator.class deleted file mode 100644 index 07be9207f66b4b85e86071f6251c6a77d6cecd3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3851 zcmai0`F~Vb760DZ-emG1Az^@_i2i8hjc9n8d6_&qTW6sJ zwThyxOY26})~%v8T2X1yAt_p0tJT)EF17Cd1ODPK`tkFD`n~VXn}rPc`6O@dJ?Eb7 zp6@yLynN-EX93)Tzx&{TQ-Mo`8y@ERkuywK) zUeqY?si=i25J;w@AuXka=k!omi|et_-V@@?| zwfPYvll5YqfR~=%LpL%$G-ADq8_>isQ#nSxBe>kga!OT4-XO3hsweccmenJnQGU~g z7CSVb(tT)#(~FG)4kIFMZc?!sH_|496WCJ4W>pJY?NH4`4JWdCR8RY`1+6OD(9Xb& zM0Qe(<(LL$ZCKjvP_Z2$rX|C)Lpq6c{u_#v*~2K;C5#&Z%o_tN16AuRRmS8+fFT&`z~JTGn+sEz2EaN0;^jbuU| z9#JtW53i)rp%TlBg91JyGab=mI)R|z&WfzI-I)CA`cS{D`WUlgM*rjFY;8V~n+wtZ}Q%d@$hj!H>9v zJzImH7+kJd9_x^wdsU?6&DPVof(i?EUa(qf@kz(MKiuc+s-bMDo+0hd7 zw2JpjrcB&WDMbcGWLh6o@j-luaj^Ca(Pac0?B-^6G1;k@r;p$v1rMwEC_YAy8AR1-3S~f`^Ym5vf_9v59C&2E6Q}Tg3ui_~@O{2tt z^@LST)}+MhcT{{=){!TsC!*OoNxGli)cA&RUm&`&a|XfM zG;;0B>ErEag{z{PiQw`fz@8QQuEVM_I~2tPM2fF_S!XZQ5p63e8^r;u!&Jd3=a*$X z8%fk{@PC-~nT$njlL9wf$5)@%5MoIuIO zQyd!PPd6X9iDWJv*7uoRVpVx@Y?m6ak;UYI!1p#58~(rfKYPz08+LQuMKY+L!(-|OmVSQ~KV z5jcDa&39i!ORqcN?r7MM#~Yu+mOO%aY?FjelhB>V&2qQH+AX3tkJ}_+$Y$@8yJ35G zhun>syYW2UoX4c)O~aIH5l5DA)QJKiQY1KgJbsUKY4)tBy99$y-P5ZClz_|c$s@)X zD!fZpaEflGD##hr1uL9f1t&tzB2MJ-jtcVqb_DOKAWzxk_f?RK@qQrS&f|fAvV;#i zaJb>)i}+-(H{cB@c|4lO=X+}cHF_PG9$zmpBSq$Ek65_!PfI4? zUc$E>Xg|+QiHOx)`4PlgbYUImyZ|Ss_0Tx9C(*>$x)~2+10Ru%IFC&P z+-AIp8}Sde$$w+3ScRYnqE+lho0w#SjbocQ$#LNnI>kerf*(P*c!Cq~)3{l@fKB2h z>=3WwRuhM_#M+Cv%>SPdZKr7ar+5io%JtCR%c#Kxu?9cG&xu}QvVd2)`UQR|G0fGk zxN@M5dVh^qh~5^lgx}z|jIv8C;CJ{vOXJl7<}KbI$a{^H?Qp%03s4k1slaRgH7f8c zXr|^X_?H4h!5IZ-|AVIgQVZm}Wz~sTM@y2Da`roSHMi$+!4)}+_GWj=^*9=v+MDyp z*LOxdb4U9Zu(G&6+JD+97G8g)sj1!&hA||V z-RDh75AUJdyj`b^#J*jwbo`NVI(YU^yn6@bTkvPDoYdmOU%0YvumPUSa0#)&$NOox PjLkx}p1)F?1AqG;y9e=a diff --git a/target/classes/com/release11/MyProcess.class b/target/classes/com/release11/MyProcess.class deleted file mode 100644 index e72bcecef6f9513e20685ddab6ab9b4716bd6bba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 997 zcmaJ=U2hUW6g|^Im%_GGN~NV0Ta6W3+7-W*T2oC;YCxON@V+b)*k;)!%VOloH-CqJ zK_ArmV0`vR8P6^s6|s^qvvcpAbMBmb@6TV~z5{rGr%_B{T0uxf7&8J3r}`URvvj+m zy{?@~!xNah3UU+ek9MXUmI*-n;kE(L;d}oUC&kHN#icK zhqt~!d<@*TxcY8?EpS!)0l1AjJPF*zJ%ad`-}z(2ediOD#N21Zx6iO7aE4WZAJ{0< zoTqi@P2&1j+&CvmlK}9CD~c3HD?_SH%ps3>K)l`u9}trU_c^?51-AV|JR2quOl3^9)jGuy9F+8eVfsxz|?_V zsNuGbz4%PW8raco1+yZpD$!7JN5|**LdTc*O2^l}-J3Y7;u{^`;;xSG@V$zAzReFh ze#Bie=jALDh&AZaK=ab-4Vh<7JG;2n;-t-NhMuQatDnTYt;w?aK9^r$-eMz(*bcne zZt|ro_6E-dLPhCi+1x~Oyqlx*yfaNM4|lm}>BviZIAa&?2<+{oQKoG0!i{%urU`}5 zWa8&E$Z??a#0K%YE?b-3QO0Vul-E7ZoZI;1%&JG{JzFKbUFIfmgIf-40P1H{GO7!5 zjeX+uA@LQfvDvX<-_c51>&)Wp27d&$TD7VWINVuVrewHF@>We+c@CG3te+nzt)au} z`r5rbW7`~Q?2>xhDA(jA|HdS*c4FJIU~FT}MPI5{dd(eko3?YW&TxAf)MfCFv zxC40%aB2<0rFM*#b1W`{{hUy5aCMwt;(bUWL`}6-qQ4r)1WWD1DpIr!@azf>;2>kB zX*mkzDR!#}s+d$U^#n&$L{%L64?~Y>e3&K*k00Ti1CA>ntzjPa!#Kg&;M{1cjsd0c zD^jB&NBIT)iPUHvgR#j%xO8py0eUv~*Jkep#e--6CK55N9MejL*~EQBVp@WWM;NMO zcrMj+);!;o9aTmL=r*K03_fJcCREde2_!*)1n6NA1I%kLL7C+KDEoSfojprQmXKT~ zDAx%>nE+TUeT*l4=oJ3-I7Zll+&i0qIXHo7))}Df47CBC--VM6yX$PwELTbcx;Vm5 Xpa?OhJw_=01bc)}z&Uyg;I01w(YZ2B literal 0 HcmV?d00001 diff --git a/target/classes/generated/MaterialType.class b/target/classes/generated/MaterialType.class index d1a328970df1a92fc697b91f08ae93d995706c47..ad211961d11e0aea69941ad78709318f949f9a5c 100644 GIT binary patch literal 2559 zcmai#T~ixX7{~u7FNB086xu?u2)4Ct2->v1RRvKjpwR%8&{*+;S&}p9smUhpZaU=y z=)E66@15~NXNsNCv3J!Ozl4q-#PNT2H?k}Xy~x?!bDo#q`9J45`Sagjo&dOsyEzzG z%VG%Ydf3pzZ9ROVhfO_H^{|z}ogA`Q%b=FQrveGp5D;a7eA{%Tt<2VXue~d6fw9Vc z^MP4vnO3t@b!}xe=LIG=dzP!(vZfrh+mcI`)p1Q%bu35Vis$gK^swD3?JBELGXGyK z-EFs4TCy!ImqAjN*_Hw${fs+SkaEzLU-pzO8%b_T2pD~ft-UTCrYcQoNt>LF(po^P zSM-lzhx^t$u4g`bGEcRBPqxj#cfj#>7)rVBF&@P9nTHzEsoScnw=9rV&a!Mt@=(KV zft+%78vTjEu37)WY)UF~%9pa|s#d9@9IZjNs+yMR_H6F!a%6cSw9ngqkoiUW3@j*1 zxr+kH!fcH)-s&{8j1^@`zi3+~YoaUHshh2u$!hXDm`u6%6j9EFVuv+k_;gdcW$uL0 zc^=Y^|CK6~b+YsWv(;nlQ5yCA`X}W~!IwI6Rz?{iYI?Td?=^g?boh}_SX~lMb(lsCLE3KutraM<)?&Jnos@J9CbnKu7 zp3yG8bzqxbEw5CT1umVOA+XMN?M`>YZb;j}6#MmTcSH(`_R#9)BX(VF!2B#_oMtcX5HYoxy7)gOtw4x0Fr^O2v2m976)9 z9h|}0ZH#l3EWzp|SAx|^fAu-8(DppdNP9HM^Zg*)MzA`>=NNxMbZ#xOz<3uJkK1Ls z7YUWXWe@IEdIEpFE#gjsxE0O%(ZV_y(B6OZ*ae8P_--c7BA! z4-x0JSmzS12hNMcOXyU^^ZQ5~q|SM>caTQSi!kn61?e@~4XUrHU%{&}AjuyiAZ9Gc zYk2(#$lN}XQIIx4tYblRZ3N!nALda-Qc;k-SdcgIRvbtw3i1^}zCIR2pEQBDV--n9 zLB5FvnU7Z_9R>N8Am1Ge;w!Qc3o;M|`92opop_LeD9AoRetrhXBHoQDO(uF+e~Sfq z4@*Z%!^4`1f;=V2@5h4ZHWhduw|J0s*K8umZ(ySM2!nqhU;Gu>&mJSUk3l`7HA+G^ zVV+OmFWxwRv+@54Ax;F{uMu34Gx7{dK;5$Xquh%J>K$^OJYP1S+2+ T<6zjq2)`UmIhb}ZZ^*T(?f!0lng5Kkgu zU;u*x=kA&J%|gSp>V=*Cd$Q^Z46Z0kxvK*4++rn#A*7NRHjsuPFj<$Dv`tsm3R_%l zWj1yX+EO5g4UFTwfYH_WJzgwD z$I?>IZqmS%j&o$UZ8oKLIAh>~7Nl#^soJXTs+OhiFB-Un%K|CotjmVvM-cL!mONwN z3Z4}hYMa$B&AN0*j1RWssz#xt9Cta1=LE*RFYqqcY}-80l3~mvE--VeW4Wp+E6P#( z4Y_7nE!Whc>FjyW*@MD^W}~pLtXjc5k``_^8ygMTl$N_Jkg)g-0;63j?pOhLL$>^? zqik7=GmS!E1Tb{Bo{jMt*Y6mm@F8cgUf__SCO3QK4)8fMMZxDb?FwF zC01gQC&xb}a>d08kN3?+hrY+C)V1rD+WDMMh+o-3u~C&C!m1NF|Kq$K2sE|((LT3+ zMP8=UGis71eeQjex!hS6;V`;@k9+ZNGK8|;t7Wzp10B0aE2r2iYSOjGzR+~_E)%&u z9WPB^LCVN|w#!qm&RG^^mpR=s+d-ZdPAHw0|KW10V^`&-(m5aNGOek&rW;3K>FhFH zt5&7swCtczpHkGmcAz`3S==bC3(TJ#A<#~>?N)oou1TAXKg5v;a3<;*$G3!@Utrhr zUGEE&=Nv2|zlSACIjsWe3?+f|1z-9iCDgq}H4dkfP6}NooKS%@&3%DS;GH8XB%r_R z^v4Osa4!*53@>}&j#*}C#gWeS6{-}t3+@B?M-V@IHm`EkV*MLr^E7JIFEC#C(b{};@>`qQ$aWEc)B7Rbo)(4_=Hz6#?V9QI^W8SwIZ?0 fj;ip;88ME}zChAJ+To7~;|``ATySv7!Il33l_%wK diff --git a/target/classes/generated/MaterialTypeType.class b/target/classes/generated/MaterialTypeType.class index 37556ba8c8840760a449d79dab757a32441f6af9..31495ce9b8eb7004dc2ba3cd3292adfc968da0ab 100644 GIT binary patch literal 2281 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 ax4L5kpYu!ro9cphadnq!ZjHn*fqwynzu67| diff --git a/target/classes/generated/ObjectFactory.class b/target/classes/generated/ObjectFactory.class index 31f828ca4779ff16dfd2489743ed1109c21381b4..fa00d5dc11b746d6444a2c94806269227e21e494 100644 GIT binary patch delta 632 zcmZvZO-~b16o%h3Q##XYfp#h_R!~0e2TDtkkA*QN1h=>`rprs2G{v?iZDZo9I};Z! z$ovtIMH7hr09O1E_U;Jpoq|GO7WbTU?|Yv6-ZK~KLcKe?Joy7)1DgtCc2d^Eh9sDkj3Zics?MCmdz|J2Z$+@H;h_rRf7q~6m z^E(aQ48Gf++&Gf(1nD4Yr!#_N-EaFH3ie7LbnUaQvmqP&w6ZFWaU_g-J=l?{ipe$v zng9Bo-F?5-d#`J~FP(3K#J>KjOHJLbmxd`CcGNO<^i}Edi z`wx)C)BAu30V8(+?B9H_e+tvELjzm`6KYR?0@O(Suq=(vT zAMC<2Jm>ig6&9y8$CzL}&uXEIMZD-D2bZI`nOKfPF(2=XRXycB8X$fQ$IMP{T{lNS O!Q-ZdVn{VEmVhgIPD`}_ delta 612 zcmZvY!A=uV6o$V$(=x-gwPn%u4D8I1p(8iLVT+&Smo|9t2C=iHv#7e9V|{RXVDZt?H~as~2?8OrB{pQKwr^)Af@nMp_^R@@fitfpdx;eh0ykhy$Ijd|{e<8^?hnN!u9&+*#1H(3e4h=8yRMhnQ>lWBjZ#?+COusiU&N@`;rtMElrCy zW>{9Xa?BK~$4qPEk1sY>*HYZ4ev|E}8r6o(oKkYTGnd-U3GgJ+rN`5Z>ZVwO-&Ddw AK>z>% diff --git a/target/classes/generated/Package.class b/target/classes/generated/Package.class index 656d9edce638b31d9f050a64bc1d5409310f3d9a..255622484064eb35c00a9c3c84ecbce6010e8bfc 100644 GIT binary patch literal 2180 zcmai!*-{fh6oyZSED#b1;KJg*Kmc{zaYYe=QU!v7l%*HgByAj=OybOh!h0V;?|lHR z@`Bio+peJg z=@q#u*NnB2Wh|R^!H|Ev#{H6&vs6jh-eo~iTb7id)_UP3Zk4Xc{8L#}x2vUPRHuvRG|sC6oQ(Rv{9>So8Ii>871ASgHG+dUn)Od zD%DR~3b=&r0vsF#<>no;!q*TKzhWYI6s59*i(nlu7r4T-X$NQv5*KH_a$Z`C63Sp7 z97eq-CY0!!E-G6&(5+z1)vg8jSW$VbAqqp*m|NRLvs2tBwkoYE%BB%C(;#>nVU7C? z{6WdOQaiGPI;}Fu3`OqDZVu$;aTLw5aB<}L3vP4oUlF-p=qQD#iN8Xo5Ye!0V{fCh zZR~G6NY0n5PF_u#ENCi#J;75XXn5;s8q4RE>z18`=M@EQYYO~#_G-~VY;1BWH$5Tf z@YWrI=tQOV2MTJbIOWQ$Q&3Kd_R!uGwNffYX*QkIm7?8jy4m!y>7y<|9h(M0P=+s9 z8|>NT6_xksAYQyA1~@@cE{au@>ksCD5@yoc>0S9^oj*Rb!uww`9d_cS41w`Pj zrv(mxZBFZ{r-4|XhFbuE+vCcx`>-?c6nMslK9cx=MTGXl#{I*ybO38+M*wbi2v2BD zM_~U=UZ==AI2)61X_Jpqe~>(i=m>J+Lwy?*`P(|_pU$D-9lye^T2#=U(FS}ZL0K(G zQyApF7GzKl(i8@H1Q59m$Pf){6p6kMDPn0sj?wW=iVSa1Gz_u^kmvse;lEta2`xx0 z4Dvz?V(39)VUU*qd9@A5Ni9e`4DwnFa!L;p4}-h`$lGl|PHRCDVUTq#$QeCIA`J2c zAYZouIjaR}4ugExf}GQXG>1Wc0OaSEAQ3w6PvwaJIXa1V>jLIxK+#3IM3=F}2j~i2 XeMkwHT3t%J)alZ0m%3f*b*b++tXf%% literal 2180 zcmai!%W@M(6o&tnWeHnjOBiEf?za%x4h$sZLQD(>+n_2FbBl{g7EW8!h#{kqGBcvg zJ`VtU9w1b)NUESx#e#w@#RI_0Q2aeJ!eZRmi@BUW|LOkvoId^f{qq+9e!%5H5Qz6xZd9Q&%Q z|0x?vAm=&)qNbI@7Rp*S*rX(IrB`$G@OBF$*dZ{~PGWxPG*?w1FtWJ5`i&@X{l>JG z@3b(c<$X%}+Wx}AcpTm#*V64PN`{?4Y0n-Dd$ni4ahu8y-BzsMZ{dI*EjcQz2W~s! zxWM@JjvrCB?1t{Dr)GV>6-n(11&+laYxY{xvsYc;vE@gveXHrsdy3OX(*k*4Ho4_e zcYiB-@5AY~R{V5d+XD4h#|@Oz$D9j+vIbvi-Ck)X=$z+b%i%obMb}qJHf~Bn>6EnU z(p#2H9_@56AKh_Dxnprd_KDQrP*IH(tX7Rym{|F0ZDN_`J?V8g?GQy*KGuXbWxaNV z{?UcA6b=Ot5LU`+g@m-)4~h{=4JA&aWHZb1bsM)#P* z+S^;$VeRi77`)Ny1a-CG>V#S;>by}RTtAU!?W8CTJ5F4Q2`F|NauKD*q*xG_?OrH1c8J6FY$Yb&*2b9=wL^s zj!NvvX~$7~`5TVW%LYol-LTZbPTCmuRX2>?WDa9P5ur>cuMNJdv}}F_zx|W{L;S~| z947eIZs0T~`PS?dUH=NXFYOY6%G zxXJ~u#WRd0s&sjcb}B{^_{In_lm)qE1o_qsGL!}RgCKGXkkk0ikdey2nT&Wwknee; zC+S?z$ka1bvLI^&x&K)ZU2=gRjUc00kiU%}XUrg@S&#<=dAJ40PezbkS&&CYkZCi> zt}Mtu1bMs#$XO%E?kvbtBgoHYklk63mjrpW1;~sMWM3BKjS=LW8Dw7;dZ v`S?`M#@EqF_SOZSn^OuGF^74Yynq&P>30-EltPq4jD#2qF&<)Xhyx!0bj4m@