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