working project
This commit is contained in:
@@ -59,32 +59,48 @@ public class Main {
|
||||
|
||||
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();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
.choice()
|
||||
.when(simple("${header.ean} == 'false'"))
|
||||
.marshal(xmlDataFormat)
|
||||
.to("activemq:queue:BadEan")
|
||||
.when(simple("${header.dimension} == 'false'"))
|
||||
.marshal(xmlDataFormat)
|
||||
.to("activemq:queue:BadDimension")
|
||||
.otherwise()
|
||||
.marshal(xmlDataFormat)
|
||||
.to("activemq:queue:ValidMaterial")
|
||||
.when(simple("${header.ean} == false"))
|
||||
.marshal(xmlDataFormat)
|
||||
.to("activemq:queue:BadEan")
|
||||
.when(simple("${header.dimension} == false"))
|
||||
.marshal(xmlDataFormat)
|
||||
.to("activemq:queue:BadDimension")
|
||||
.otherwise()
|
||||
.marshal(xmlDataFormat)
|
||||
.to("activemq:queue:ValidMaterial")
|
||||
.to("log:?level=INFO&showBody=true");
|
||||
|
||||
/*
|
||||
from("activemq:queue:ValidMaterial")
|
||||
.process(new MyProcess())
|
||||
.unmarshal(xmlDataFormat)
|
||||
.process(exchange -> {
|
||||
|
||||
MaterialType material = (MaterialType) exchange.getIn().getBody();
|
||||
//MaterialTypeType type = material.getMaterialType();
|
||||
//exchange.getIn().setHeader("type", true);
|
||||
//if (!(type.equals("A1") || type.equals("A2") || type.equals("A3")))
|
||||
// exchange.getIn().setHeader("type", false);
|
||||
//if(exchange.getIn().getHeader("type").equals(true))
|
||||
System.out.println(material.toString());
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.release11;
|
||||
|
||||
|
||||
import generated.MaterialType;
|
||||
import generated.MaterialTypeType;
|
||||
import generated.Package;
|
||||
@@ -28,8 +29,8 @@ public class MyAggregator implements AggregationStrategy {
|
||||
material.setIsDeleted((Boolean) oldEx.get("is_deleted"));
|
||||
|
||||
|
||||
oldExchange.getIn().setHeader("dimension", "true");
|
||||
oldExchange.getIn().setHeader("ean", "true");
|
||||
oldExchange.getIn().setHeader("dimension", true);
|
||||
oldExchange.getIn().setHeader("ean", true);
|
||||
|
||||
for (int i = 0; i < newEx.size(); i++) {
|
||||
Package p = new Package();
|
||||
@@ -46,9 +47,9 @@ public class MyAggregator implements AggregationStrategy {
|
||||
Pattern pattern = Pattern.compile("\\d\\dx\\d\\dx\\d\\d");
|
||||
Matcher matcher = pattern.matcher(p.getDimension());
|
||||
if (!matcher.matches())
|
||||
oldExchange.getIn().setHeader("dimension", "false");
|
||||
oldExchange.getIn().setHeader("dimension", false);
|
||||
if(!isEanGood(p.getEan()))
|
||||
oldExchange.getIn().setHeader("ean", "false");
|
||||
oldExchange.getIn().setHeader("ean", false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
package com.release11;
|
||||
|
||||
import org.apache.camel.CamelContext;
|
||||
import org.apache.camel.ProducerTemplate;
|
||||
import org.apache.camel.builder.RouteBuilder;
|
||||
import org.apache.camel.impl.DefaultCamelContext;
|
||||
import org.apache.camel.support.SimpleRegistry;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.Random;
|
||||
|
||||
public class MyBuilder extends RouteBuilder {
|
||||
|
||||
//MyBuilder myBuilder = new MyBuilder();
|
||||
//context.addRoutes(myBuilder);
|
||||
|
||||
@Override
|
||||
public void configure() throws Exception {
|
||||
from("timer:foo?fixedRate=true&period=400")
|
||||
.log("Hello Camel");
|
||||
}
|
||||
|
||||
public enum enumType {
|
||||
A1, A2, A3, B1, B2, B3, Z1, Z2, Z3;
|
||||
}
|
||||
|
||||
public void doRandomMaterials() throws IOException {
|
||||
|
||||
File fileName = new File("/home/igor/Documents/XML_Tasks/Camel/sql_script/sql.dml");
|
||||
|
||||
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
|
||||
Random random = new Random();
|
||||
for (int i = 1; i <= 100; i++) {
|
||||
String number = "number" + random.nextInt(1000, 10000);
|
||||
String name = "name" + random.nextInt(1000, 10000);
|
||||
String description = "description" + random.nextInt(1000, 10000);
|
||||
String is_deleted = "";
|
||||
if (random.nextInt() % 2 == 0)
|
||||
is_deleted = "true";
|
||||
else
|
||||
is_deleted = "false";
|
||||
|
||||
enumType[] x = enumType.values();
|
||||
String type = x[random.nextInt(x.length)].toString();
|
||||
writer.write("INSERT INTO material VALUES(" +
|
||||
i + ", '" + number + "', '" + type + "', '" + name + "', '" + description + "', " + is_deleted + ");\n");
|
||||
}
|
||||
writer.close();
|
||||
|
||||
}
|
||||
|
||||
public void doRandomPackage() throws IOException {
|
||||
|
||||
File fileName = new File("/home/igor/Documents/XML_Tasks/Camel/sql_script/sql.dml");
|
||||
|
||||
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName, true));
|
||||
Random random = new Random();
|
||||
for (int i = 1; i <= 100; i++) {
|
||||
String number = "number" + random.nextInt(1000, 10000);
|
||||
Integer material_id = i;
|
||||
String ean = eanGenerator();
|
||||
String unit_of_measure = "unit" + random.nextInt(1000, 10000);
|
||||
String dimension = random.nextInt(5, 35) + "x" + random.nextInt(5, 35) + "x" + random.nextInt(5, 35);
|
||||
String description = "description" + random.nextInt(1000, 10000);
|
||||
|
||||
writer.write("INSERT INTO package VALUES(" +
|
||||
i + ", '" + number + "', '" + material_id + "', '" + ean + "', '"
|
||||
+ unit_of_measure + "', '" + dimension + "', '" + description + "');\n");
|
||||
}
|
||||
|
||||
for (int i = 101; i <= 200; i++) {
|
||||
String number = "number" + random.nextInt(1000, 10000);
|
||||
Integer material_id = random.nextInt(1, 101);
|
||||
String ean = eanGenerator();
|
||||
String unit_of_measure = "unit" + random.nextInt(1000, 10000);
|
||||
String dimension = random.nextInt(5, 35) + "x" + random.nextInt(5, 35) + "x" + random.nextInt(5, 35);
|
||||
String description = "description" + random.nextInt(1000, 10000);
|
||||
|
||||
writer.write("INSERT INTO package VALUES(" +
|
||||
i + ", '" + number + "', '" + material_id + "', '" + ean + "', '"
|
||||
+ unit_of_measure + "', '" + dimension + "', '" + description + "');\n");
|
||||
}
|
||||
|
||||
|
||||
writer.close();
|
||||
|
||||
}
|
||||
|
||||
public String eanGenerator() {
|
||||
|
||||
String result = "590";
|
||||
Random random = new Random();
|
||||
while (result.length() < 12) {
|
||||
result += random.nextInt(10);
|
||||
}
|
||||
|
||||
int sum = 0;
|
||||
for (int i = 0; i < result.length(); i++) {
|
||||
if (i % 2 == 1)
|
||||
sum += (result.charAt(i) - '0') * 3;
|
||||
else
|
||||
sum += (int) result.charAt(i) - '0';
|
||||
}
|
||||
|
||||
sum = sum - (sum / 10) * (10);
|
||||
if (sum != 0)
|
||||
sum = 10 - sum;
|
||||
result += sum;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
16
src/main/java/com/release11/MyProcess.java
Normal file
16
src/main/java/com/release11/MyProcess.java
Normal file
@@ -0,0 +1,16 @@
|
||||
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);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user