diff --git a/pom.xml b/pom.xml index 4a54fc3..1fb2353 100644 --- a/pom.xml +++ b/pom.xml @@ -81,6 +81,28 @@ jaxb-runtime 2.3.1 + + org.apache.camel.springboot + camel-jackson-starter + 3.12.0 + + + + + org.apache.camel + camel-http + 3.12.0 + + + + + + org.apache.camel + camel-ftp + 3.12.0 + + + @@ -113,6 +135,17 @@ 11 + + org.codehaus.mojo + exec-maven-plugin + 1.2.1 + + com.release11.Main + + arg1 + + + diff --git a/src/main/java/com/release11/Main.java b/src/main/java/com/release11/Main.java index a01c67d..5bce488 100644 --- a/src/main/java/com/release11/Main.java +++ b/src/main/java/com/release11/Main.java @@ -1,23 +1,17 @@ package com.release11; import com.mysql.cj.jdbc.MysqlDataSource; +import com.release11.Processors.*; +import generated.ObjectFactory; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.camel.*; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.jackson.JacksonDataFormat; import org.apache.camel.component.jms.JmsComponent; 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.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.List; public class Main { @@ -47,7 +41,9 @@ public class Main { JaxbDataFormat xmlDataFormat = new JaxbDataFormat(); xmlDataFormat.setContextPath("generated"); - //xmlDataFormat.setSchemaLocation("/home/igor/Documents/Jacek/jacek-and-igor/src/main/resources/material.xsd"); + JacksonDataFormat jacksonDataFormat = new JacksonDataFormat(ObjectFactory.class); + jacksonDataFormat.setPrettyPrint(true); + errorHandler(deadLetterChannel("activemq:queue:dead")); from("direct:start") .setBody(constant("SELECT * FROM material")) @@ -60,46 +56,46 @@ public class Main { .setBody(simple("SELECT * FROM package WHERE material_id = :?material_id")) .to("jdbc:source?useHeadersAsParameters=true"); - from("activemq:queue:RawMaterial") + from("activemq:queue:RawMaterial")//subskruypcja .enrich("direct:getPackages", new MergeAggregator()) .process(new ValidatorProcess()) .choice() - .when(simple("${exchangeProperty[dimension]}"+" == false")) - .marshal(xmlDataFormat) - .to("activemq:queue:BadEan") - .when(simple("${exchangeProperty[ean]}"+" == false")) - .marshal(xmlDataFormat) - .to("activemq:queue:BadDimension") - .otherwise() - .marshal(xmlDataFormat) - .to("activemq:queue:ValidMaterial") + .when(simple("${exchangeProperty[ean]}"+" == false")).marshal(xmlDataFormat).to("activemq:queue:BadEan") + .when(simple("${exchangeProperty[dimension]}"+" == false")).marshal(xmlDataFormat).to("activemq:queue:BadDimension") + .otherwise().marshal(xmlDataFormat).to("activemq:topic:Material") .to("log:?level=INFO&showBody=true"); + from("activemq:topic:Material?clientId=1&durableSubscriptionName=FilteredType") + .filter().xpath("//material_type='A1' or //material_type='A2' or //material_type='A3'") + .to("activemq:queue:FilteredType"); - - from("activemq:queue:siema") - .process(new XMLProcess()) + from("activemq:queue:FilteredType") .unmarshal(xmlDataFormat) .process(new XMLProcess()) - .to("activemq:queue:test"); + .marshal(jacksonDataFormat) + .to("http:10.101.111.19:1080/api/json/material"); + + + + + from("activemq:topic:Material?clientId=2&durableSubscriptionName=FilteredIsDeleted&acknowledgementModeName=CLIENT_ACKNOWLEDGE") + .filter().xpath("//is_deleted='false'") + .to("activemq:queue:FilteredIsDeleted"); + + from("activemq:queue:FilteredIsDeleted") + .unmarshal(xmlDataFormat) + .process(new CSVProcess()) + .to("sftp:test@10.101.111.19:2222/upload/test?password=admin"); } + + }); context.start(); ProducerTemplate template = context.createProducerTemplate(); - - Path path = Paths.get("/home/igor/Documents/Jacek/jacek-and-igor/src/main/resources/test.xml"); - ArrayList readAllLines = (ArrayList) Files.readAllLines(path); - String allFile = ""; - for (int i = 0; i < readAllLines.size(); i++) { - allFile+=readAllLines.get(i); - } - - //template.sendBody("direct:start", null); - template.sendBody("activemq:queue:siema", allFile); - + template.sendBody("direct:start", null); context.stop(); } } \ No newline at end of file diff --git a/src/main/java/com/release11/MergeAggregator.java b/src/main/java/com/release11/MergeAggregator.java index 7c7ef9a..3a4e315 100644 --- a/src/main/java/com/release11/MergeAggregator.java +++ b/src/main/java/com/release11/MergeAggregator.java @@ -6,11 +6,8 @@ import generated.MaterialTypeType; import generated.Package; import org.apache.camel.AggregationStrategy; import org.apache.camel.Exchange; - import java.util.ArrayList; import java.util.HashMap; -import java.util.regex.Matcher; -import java.util.regex.Pattern; public class MergeAggregator implements AggregationStrategy { @Override @@ -28,10 +25,6 @@ public class MergeAggregator implements AggregationStrategy { material.setDescription((String) oldEx.get("description")); material.setIsDeleted((Boolean) oldEx.get("is_deleted")); - - oldExchange.getIn().setHeader("dimension", true); - oldExchange.getIn().setHeader("ean", true); - for (int i = 0; i < newEx.size(); i++) { Package p = new Package(); p.setId((Integer) newEx.get(i).get("id")); diff --git a/src/main/java/com/release11/Processors/CSVProcess.java b/src/main/java/com/release11/Processors/CSVProcess.java new file mode 100644 index 0000000..53f8ccc --- /dev/null +++ b/src/main/java/com/release11/Processors/CSVProcess.java @@ -0,0 +1,34 @@ +package com.release11.Processors; + +import generated.MaterialType; +import generated.Package; +import org.apache.camel.Exchange; +import org.apache.camel.Processor; + +public class CSVProcess implements Processor { + + @Override + public void process(Exchange exchange) throws Exception { + MaterialType material = exchange.getIn().getBody(MaterialType.class); + String result = ""; + result+=material.getId()+","; + result+=material.getMaterialNumber()+","; + result+=material.getMaterialType()+","; + result+=material.getMaterialName()+","; + result+=material.getDescription()+";"; + + for (Package p: material.getPackages()) { + String pack = ""; + pack+=p.getId()+","; + pack+=p.getPackageNumber()+","; + pack+=p.getMaterialId()+","; + pack+=p.getEan()+","; + pack+=p.getUnitOfMeasure()+","; + pack+=p.getDimension()+","; + pack+=p.getDescription()+";"; + result+=pack; + } + + exchange.getIn().setBody(result); + } +} diff --git a/src/main/java/com/release11/ValidatorProcess.java b/src/main/java/com/release11/Processors/ValidatorProcess.java similarity index 86% rename from src/main/java/com/release11/ValidatorProcess.java rename to src/main/java/com/release11/Processors/ValidatorProcess.java index 7ea6c25..2b510c6 100644 --- a/src/main/java/com/release11/ValidatorProcess.java +++ b/src/main/java/com/release11/Processors/ValidatorProcess.java @@ -1,4 +1,4 @@ -package com.release11; +package com.release11.Processors; import generated.MaterialType; import generated.Package; @@ -15,10 +15,14 @@ public class ValidatorProcess implements Processor { Pattern pattern = Pattern.compile("\\d\\dx\\d\\dx\\d\\d"); for (Package p: material.getPackages()) { Matcher matcher = pattern.matcher(p.getDimension()); - if (!matcher.matches()) + if (!matcher.matches()) { exchange.setProperty("dimension", false); - if(!isEanGood(p.getEan())) + break; + } + if (!isEanGood(p.getEan())) { exchange.setProperty("ean", false); + break; + } } } diff --git a/src/main/java/com/release11/Processors/XMLProcess.java b/src/main/java/com/release11/Processors/XMLProcess.java new file mode 100644 index 0000000..83f8c10 --- /dev/null +++ b/src/main/java/com/release11/Processors/XMLProcess.java @@ -0,0 +1,16 @@ +package com.release11.Processors; + +import generated.MaterialType; +import generated.MaterialTypeType; +import org.apache.camel.Exchange; +import org.apache.camel.Processor; + +public class XMLProcess implements Processor { + @Override + public void process(Exchange exchange) throws Exception { + + MaterialType material = exchange.getIn().getBody(MaterialType.class); + System.out.println(material.toString()); + exchange.getIn().setBody(material); + } +} diff --git a/src/main/java/com/release11/XMLProcess.java b/src/main/java/com/release11/XMLProcess.java deleted file mode 100644 index 04535f2..0000000 --- a/src/main/java/com/release11/XMLProcess.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.release11; - -import org.apache.camel.Exchange; -import org.apache.camel.Processor; - -public class XMLProcess implements Processor { - @Override - public void process(Exchange exchange) throws Exception { - String tmp = exchange.getIn().getBody(String.class); - System.out.println(tmp); - exchange.getIn().setBody(tmp); - - } -} diff --git a/target/Camel-1.0-SNAPSHOT.jar b/target/Camel-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..15eba34 Binary files /dev/null and b/target/Camel-1.0-SNAPSHOT.jar differ diff --git a/target/classes/META-INF/JAXB/episode_xsd-to-java.xjb b/target/classes/META-INF/JAXB/episode_xsd-to-java.xjb index d0e1cbd..8b76fc2 100644 --- a/target/classes/META-INF/JAXB/episode_xsd-to-java.xjb +++ b/target/classes/META-INF/JAXB/episode_xsd-to-java.xjb @@ -5,7 +5,7 @@ This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.2 See https://javaee.github.io/jaxb-v2/ Any modifications to this file will be lost upon recompilation of the source schema. -Generated on: 2021.11.18 at 04:43:50 PM CET +Generated on: 2021.11.19 at 01:42:55 PM CET --> diff --git a/target/classes/com/release11/Main$1.class b/target/classes/com/release11/Main$1.class index 1ffeefd..97c0b79 100644 Binary files a/target/classes/com/release11/Main$1.class and b/target/classes/com/release11/Main$1.class differ diff --git a/target/classes/com/release11/Main.class b/target/classes/com/release11/Main.class index b5cdf0f..7d2d47c 100644 Binary files a/target/classes/com/release11/Main.class and b/target/classes/com/release11/Main.class differ diff --git a/target/classes/com/release11/MergeAggregator.class b/target/classes/com/release11/MergeAggregator.class index 7773b22..f2b4155 100644 Binary files a/target/classes/com/release11/MergeAggregator.class and b/target/classes/com/release11/MergeAggregator.class differ diff --git a/target/classes/com/release11/Processors/CSVProcess.class b/target/classes/com/release11/Processors/CSVProcess.class new file mode 100644 index 0000000..1630e32 Binary files /dev/null and b/target/classes/com/release11/Processors/CSVProcess.class differ diff --git a/target/classes/com/release11/Processors/ValidatorProcess.class b/target/classes/com/release11/Processors/ValidatorProcess.class new file mode 100644 index 0000000..d680e85 Binary files /dev/null and b/target/classes/com/release11/Processors/ValidatorProcess.class differ diff --git a/target/classes/com/release11/Processors/XMLProcess.class b/target/classes/com/release11/Processors/XMLProcess.class new file mode 100644 index 0000000..3491641 Binary files /dev/null and b/target/classes/com/release11/Processors/XMLProcess.class differ diff --git a/target/classes/com/release11/ValidatorProcess.class b/target/classes/com/release11/ValidatorProcess.class deleted file mode 100644 index f472d61..0000000 Binary files a/target/classes/com/release11/ValidatorProcess.class and /dev/null differ diff --git a/target/classes/com/release11/XMLProcess.class b/target/classes/com/release11/XMLProcess.class deleted file mode 100644 index 2aa8e06..0000000 Binary files a/target/classes/com/release11/XMLProcess.class and /dev/null differ diff --git a/target/classes/generated/MaterialType.class b/target/classes/generated/MaterialType.class index ad21196..d1a3289 100644 Binary files a/target/classes/generated/MaterialType.class and b/target/classes/generated/MaterialType.class differ diff --git a/target/generated-sources/jaxb/META-INF/JAXB/episode_xsd-to-java.xjb b/target/generated-sources/jaxb/META-INF/JAXB/episode_xsd-to-java.xjb index d0e1cbd..8b76fc2 100644 --- a/target/generated-sources/jaxb/META-INF/JAXB/episode_xsd-to-java.xjb +++ b/target/generated-sources/jaxb/META-INF/JAXB/episode_xsd-to-java.xjb @@ -5,7 +5,7 @@ This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.2 See https://javaee.github.io/jaxb-v2/ Any modifications to this file will be lost upon recompilation of the source schema. -Generated on: 2021.11.18 at 04:43:50 PM CET +Generated on: 2021.11.19 at 01:42:55 PM CET --> diff --git a/target/generated-sources/jaxb/generated/MaterialType.java b/target/generated-sources/jaxb/generated/MaterialType.java index 6edb9de..c905b4e 100644 --- a/target/generated-sources/jaxb/generated/MaterialType.java +++ b/target/generated-sources/jaxb/generated/MaterialType.java @@ -2,7 +2,7 @@ // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.2 // See https://javaee.github.io/jaxb-v2/ // Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2021.11.18 at 04:43:50 PM CET +// Generated on: 2021.11.19 at 01:42:55 PM CET // diff --git a/target/generated-sources/jaxb/generated/MaterialTypeType.java b/target/generated-sources/jaxb/generated/MaterialTypeType.java index 8636499..406dd3d 100644 --- a/target/generated-sources/jaxb/generated/MaterialTypeType.java +++ b/target/generated-sources/jaxb/generated/MaterialTypeType.java @@ -2,7 +2,7 @@ // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.2 // See https://javaee.github.io/jaxb-v2/ // Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2021.11.18 at 04:43:50 PM CET +// Generated on: 2021.11.19 at 01:42:55 PM CET // diff --git a/target/generated-sources/jaxb/generated/ObjectFactory.java b/target/generated-sources/jaxb/generated/ObjectFactory.java index 6b46e25..56ffdd8 100644 --- a/target/generated-sources/jaxb/generated/ObjectFactory.java +++ b/target/generated-sources/jaxb/generated/ObjectFactory.java @@ -2,7 +2,7 @@ // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.2 // See https://javaee.github.io/jaxb-v2/ // Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2021.11.18 at 04:43:50 PM CET +// Generated on: 2021.11.19 at 01:42:55 PM CET // diff --git a/target/generated-sources/jaxb/generated/Package.java b/target/generated-sources/jaxb/generated/Package.java index 63ba2e8..5a31930 100644 --- a/target/generated-sources/jaxb/generated/Package.java +++ b/target/generated-sources/jaxb/generated/Package.java @@ -2,7 +2,7 @@ // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.2 // See https://javaee.github.io/jaxb-v2/ // Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2021.11.18 at 04:43:50 PM CET +// Generated on: 2021.11.19 at 01:42:55 PM CET // diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 0000000..c834b61 --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Nov 19 13:44:30 CET 2021 +groupId=org.example +artifactId=Camel +version=1.0-SNAPSHOT diff --git a/target/maven-status/maven-compiler-plugin/compile/default-cli/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-cli/inputFiles.lst deleted file mode 100644 index 91e548f..0000000 --- a/target/maven-status/maven-compiler-plugin/compile/default-cli/inputFiles.lst +++ /dev/null @@ -1,4 +0,0 @@ -/home/igor/Documents/Jacek/jacek-and-igor/src/main/java/com/release11/Main.java -/home/igor/Documents/Jacek/jacek-and-igor/src/main/java/com/release11/MergeAggregator.java -/home/igor/Documents/Jacek/jacek-and-igor/src/main/java/com/release11/ValidatorProcess.java -/home/igor/Documents/Jacek/jacek-and-igor/src/main/java/com/release11/XMLProcess.java diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index c64bbd3..e69de29 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,6 +0,0 @@ -com/release11/Main$1.class -generated/MaterialTypeType.class -com/release11/Main.class -generated/Package.class -generated/MaterialType.class -generated/ObjectFactory.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index abf5e75..bc16a98 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,8 +1,9 @@ +/home/igor/Documents/Jacek/jacek-and-igor/src/main/java/com/release11/Processors/ValidatorProcess.java /home/igor/Documents/Jacek/jacek-and-igor/target/generated-sources/jaxb/generated/MaterialType.java /home/igor/Documents/Jacek/jacek-and-igor/target/generated-sources/jaxb/generated/Package.java /home/igor/Documents/Jacek/jacek-and-igor/target/generated-sources/jaxb/generated/ObjectFactory.java /home/igor/Documents/Jacek/jacek-and-igor/target/generated-sources/jaxb/generated/MaterialTypeType.java /home/igor/Documents/Jacek/jacek-and-igor/src/main/java/com/release11/Main.java /home/igor/Documents/Jacek/jacek-and-igor/src/main/java/com/release11/MergeAggregator.java -/home/igor/Documents/Jacek/jacek-and-igor/src/main/java/com/release11/ValidatorProcess.java -/home/igor/Documents/Jacek/jacek-and-igor/src/main/java/com/release11/XMLProcess.java +/home/igor/Documents/Jacek/jacek-and-igor/src/main/java/com/release11/Processors/XMLProcess.java +/home/igor/Documents/Jacek/jacek-and-igor/src/main/java/com/release11/Processors/CSVProcess.java diff --git a/target/maven-status/maven-compiler-plugin/compile/default-cli/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst similarity index 100% rename from target/maven-status/maven-compiler-plugin/compile/default-cli/createdFiles.lst rename to target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst diff --git a/target/site-webapp/WEB-INF/web.xml b/target/site-webapp/WEB-INF/web.xml deleted file mode 100644 index 5045c3f..0000000 --- a/target/site-webapp/WEB-INF/web.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - doxia - org.apache.maven.plugins.site.webapp.DoxiaFilter - - - - doxia - /* - - diff --git a/rozne.txt b/test.txt similarity index 100% rename from rozne.txt rename to test.txt