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