modified pom and some classes
This commit is contained in:
		@@ -1,73 +0,0 @@
 | 
			
		||||
package com.release11;
 | 
			
		||||
 | 
			
		||||
import com.mysql.cj.jdbc.MysqlDataSource;
 | 
			
		||||
import org.apache.activemq.ActiveMQConnectionFactory;
 | 
			
		||||
import org.apache.activemq.command.ActiveMQMapMessage;
 | 
			
		||||
import org.apache.camel.*;
 | 
			
		||||
import org.apache.camel.builder.RouteBuilder;
 | 
			
		||||
import org.apache.camel.component.jms.JmsComponent;
 | 
			
		||||
import org.apache.camel.impl.DefaultCamelContext;
 | 
			
		||||
import org.apache.camel.support.SimpleRegistry;
 | 
			
		||||
import org.apache.log4j.BasicConfigurator;
 | 
			
		||||
 | 
			
		||||
public class Main {
 | 
			
		||||
 | 
			
		||||
    public static void main(String[] args) throws Exception {
 | 
			
		||||
 | 
			
		||||
        //MyBuilder myBuilder = new MyBuilder();
 | 
			
		||||
        //myBuilder.doRandomMaterials();
 | 
			
		||||
        //myBuilder.doRandomPackage();
 | 
			
		||||
 | 
			
		||||
        //to("log:?level=INFO&showHeaders=true&showBody=true")
 | 
			
		||||
 | 
			
		||||
        MysqlDataSource source = new MysqlDataSource();
 | 
			
		||||
        String jacek = "jdbc:mysql://10.101.111.19:3306/camel_db";
 | 
			
		||||
        source.setURL(jacek);
 | 
			
		||||
        source.setUser("root");
 | 
			
		||||
        source.setPassword("admin");
 | 
			
		||||
        SimpleRegistry registry = new SimpleRegistry();
 | 
			
		||||
        registry.bind("source", MysqlDataSource.class, source);
 | 
			
		||||
        CamelContext context = new DefaultCamelContext(registry);
 | 
			
		||||
        BasicConfigurator.configure();
 | 
			
		||||
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://10.101.111.19:8088");
 | 
			
		||||
        connectionFactory.setUserName("admin");
 | 
			
		||||
        connectionFactory.setPassword("admin");
 | 
			
		||||
        context.addComponent("activemq", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
 | 
			
		||||
 | 
			
		||||
        DAO myFunctions = new DAO();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        context.addRoutes(new RouteBuilder() {
 | 
			
		||||
            @Override
 | 
			
		||||
            public void configure() throws Exception {
 | 
			
		||||
 | 
			
		||||
                from("direct:start")
 | 
			
		||||
                        .setBody(constant("SELECT * FROM material LIMIT 10"))
 | 
			
		||||
                        .to("jdbc:source")
 | 
			
		||||
                        .split(body())
 | 
			
		||||
                        .to("activemq:queue:material");
 | 
			
		||||
 | 
			
		||||
                from("activemq:queue:material")
 | 
			
		||||
                        .split(body())
 | 
			
		||||
                        //.bean(myFunctions, "getId")
 | 
			
		||||
                        .setHeader("id", simple("${body[id]}"))
 | 
			
		||||
                        .setBody(constant("SELECT * FROM package WHERE material_id = :?id"))
 | 
			
		||||
                        .to("jdbc:source?useHeadersAsParameters=true")
 | 
			
		||||
                        .to("activemq:queue:materialPackage");
 | 
			
		||||
                        //.to("log:?level=INFO&showBody=true");
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        context.start();
 | 
			
		||||
        ProducerTemplate template = context.createProducerTemplate();
 | 
			
		||||
        template.sendBody("direct:start", null);
 | 
			
		||||
        Thread.sleep(1000);
 | 
			
		||||
        //template.setDefaultEndpointUri("activemq:queue:material");
 | 
			
		||||
 | 
			
		||||
        context.stop();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										67
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										67
									
								
								pom.xml
									
									
									
									
									
								
							@@ -51,6 +51,73 @@
 | 
			
		||||
            <version>3.12.0</version>
 | 
			
		||||
        </dependency>
 | 
			
		||||
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>javax.xml.bind</groupId>
 | 
			
		||||
            <artifactId>jaxb-api</artifactId>
 | 
			
		||||
            <version>2.3.1</version>
 | 
			
		||||
        </dependency>
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>com.sun.xml.bind</groupId>
 | 
			
		||||
            <artifactId>jaxb-impl</artifactId>
 | 
			
		||||
            <version>3.0.0</version>
 | 
			
		||||
        </dependency>
 | 
			
		||||
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.apache.camel.springboot</groupId>
 | 
			
		||||
            <artifactId>camel-jaxb-starter</artifactId>
 | 
			
		||||
            <version>3.12.0</version>
 | 
			
		||||
        </dependency>
 | 
			
		||||
 | 
			
		||||
        <!-- https://mvnrepository.com/artifact/javax.activation/activation -->
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>javax.activation</groupId>
 | 
			
		||||
            <artifactId>activation</artifactId>
 | 
			
		||||
            <version>1.1</version>
 | 
			
		||||
        </dependency>
 | 
			
		||||
 | 
			
		||||
        <!-- https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime -->
 | 
			
		||||
        <dependency>
 | 
			
		||||
            <groupId>org.glassfish.jaxb</groupId>
 | 
			
		||||
            <artifactId>jaxb-runtime</artifactId>
 | 
			
		||||
            <version>2.3.1</version>
 | 
			
		||||
        </dependency>
 | 
			
		||||
 | 
			
		||||
    </dependencies>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    <build>
 | 
			
		||||
        <plugins>
 | 
			
		||||
            <plugin>
 | 
			
		||||
                <groupId>org.codehaus.mojo</groupId>
 | 
			
		||||
                <artifactId>jaxb2-maven-plugin</artifactId>
 | 
			
		||||
                <version>2.5.0</version>
 | 
			
		||||
                <executions>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <id>xsd-to-java</id>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>xjc</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                </executions>
 | 
			
		||||
                <configuration>
 | 
			
		||||
                    <sources>
 | 
			
		||||
                        <source>${basedir}/src/main/resources/material.xsd</source>
 | 
			
		||||
                    </sources>
 | 
			
		||||
                </configuration>
 | 
			
		||||
            </plugin>
 | 
			
		||||
            <plugin>
 | 
			
		||||
                <groupId>org.apache.maven.plugins</groupId>
 | 
			
		||||
                <artifactId>maven-compiler-plugin</artifactId>
 | 
			
		||||
                <configuration>
 | 
			
		||||
                    <source>17</source>
 | 
			
		||||
                    <target>17</target>
 | 
			
		||||
                </configuration>
 | 
			
		||||
            </plugin>
 | 
			
		||||
        </plugins>
 | 
			
		||||
    </build>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
</project>
 | 
			
		||||
@@ -2,13 +2,16 @@ package com.release11;
 | 
			
		||||
 | 
			
		||||
import com.mysql.cj.jdbc.MysqlDataSource;
 | 
			
		||||
import org.apache.activemq.ActiveMQConnectionFactory;
 | 
			
		||||
import org.apache.activemq.command.ActiveMQMapMessage;
 | 
			
		||||
import org.apache.camel.*;
 | 
			
		||||
import org.apache.camel.builder.RouteBuilder;
 | 
			
		||||
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.*;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public class Main {
 | 
			
		||||
 | 
			
		||||
@@ -27,6 +30,24 @@ public class Main {
 | 
			
		||||
        source.setPassword("admin");
 | 
			
		||||
        SimpleRegistry registry = new SimpleRegistry();
 | 
			
		||||
        registry.bind("source", MysqlDataSource.class, source);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //jax.marshal(Exchange ,jax,);
 | 
			
		||||
        //registry.bind("jax", JaxbDataFormat.class, XMLDataFormat);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        CamelContext context = new DefaultCamelContext(registry);
 | 
			
		||||
        BasicConfigurator.configure();
 | 
			
		||||
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://10.101.111.19:8088");
 | 
			
		||||
@@ -34,16 +55,16 @@ public class Main {
 | 
			
		||||
        connectionFactory.setPassword("admin");
 | 
			
		||||
        context.addComponent("activemq", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
 | 
			
		||||
 | 
			
		||||
        DAO myFunctions = new DAO();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        context.addRoutes(new RouteBuilder() {
 | 
			
		||||
            @Override
 | 
			
		||||
            public void configure() throws Exception {
 | 
			
		||||
 | 
			
		||||
                JaxbDataFormat XMLDataFormat = new JaxbDataFormat();
 | 
			
		||||
                //XMLDataFormat.setSchemaLocation("/home/igor/Documents/Jacek/jacek-and-igor/src/main/resources/material.xsd");
 | 
			
		||||
                XMLDataFormat.setContextPath("generated");
 | 
			
		||||
                JAXBContext jaxbContext = JAXBContext.newInstance(generated.MaterialType.class);
 | 
			
		||||
                XMLDataFormat.setContext(jaxbContext);
 | 
			
		||||
 | 
			
		||||
                from("direct:start")
 | 
			
		||||
                        .setBody(constant("SELECT * FROM material"))
 | 
			
		||||
                        .to("jdbc:source")
 | 
			
		||||
@@ -60,12 +81,52 @@ public class Main {
 | 
			
		||||
                        .to("activemq:queue:materialPackage")
 | 
			
		||||
                        .to("log:?level=INFO&showBody=true");
 | 
			
		||||
 | 
			
		||||
                from("direct:test")
 | 
			
		||||
                        .setBody(constant("SELECT * FROM material LIMIT 1"))
 | 
			
		||||
                        .to("jdbc:source")
 | 
			
		||||
                        .split(body())
 | 
			
		||||
                        .to("activemq:queue:materialTest");
 | 
			
		||||
 | 
			
		||||
                from("activemq:queue:materialTest")
 | 
			
		||||
                        .marshal(XMLDataFormat)
 | 
			
		||||
                        .to("activemq:queue:test");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                from("direct:pretty")
 | 
			
		||||
                        .setBody(constant("<?xml version='1.0'?>" +
 | 
			
		||||
                                "<material>\n" +
 | 
			
		||||
                                "    <material_number>7</material_number>\n" +
 | 
			
		||||
                                "    <material_type>A1</material_type>\n" +
 | 
			
		||||
                                "    <material_name>LEGO 17272</material_name>\n" +
 | 
			
		||||
                                "    <description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</description>\n" +
 | 
			
		||||
                                "    <is_deleted>false</is_deleted>\n" +
 | 
			
		||||
                                "    <packages>\n" +
 | 
			
		||||
                                "        <package_number>11988</package_number>\n" +
 | 
			
		||||
                                "        <ean>80975098498590834</ean>\n" +
 | 
			
		||||
                                "        <unit_of_measure>pcs</unit_of_measure>\n" +
 | 
			
		||||
                                "        <dimension>17x17x17</dimension>\n" +
 | 
			
		||||
                                "        <description>Lorem ipsum dolor sit amet, consectetur adipiscing elit</description>\n" +
 | 
			
		||||
                                "    </packages>\n" +
 | 
			
		||||
                                "    <packages>\n" +
 | 
			
		||||
                                "        <package_number>118</package_number>\n" +
 | 
			
		||||
                                "        <ean>877854875843774</ean>\n" +
 | 
			
		||||
                                "        <unit_of_measure>pcs</unit_of_measure>\n" +
 | 
			
		||||
                                "        <dimension>20x20x20</dimension>\n" +
 | 
			
		||||
                                "    </packages>\n" +
 | 
			
		||||
                                "</material>\n"))
 | 
			
		||||
                        .unmarshal()
 | 
			
		||||
                        .jaxb("generated")
 | 
			
		||||
                        .to("activemq:queue:test")
 | 
			
		||||
                        .to("log:?level=INFO&showBody=true");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        context.start();
 | 
			
		||||
        ProducerTemplate template = context.createProducerTemplate();
 | 
			
		||||
        template.sendBody("direct:start", null);
 | 
			
		||||
        template.sendBody("direct:pretty", null);
 | 
			
		||||
        Thread.sleep(1000);
 | 
			
		||||
        //template.setDefaultEndpointUri("activemq:queue:material");
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,8 @@
 | 
			
		||||
 | 
			
		||||
    <xs:complexType name="package">
 | 
			
		||||
        <xs:sequence>
 | 
			
		||||
            <xs:element name="id" type="xs:int"/>
 | 
			
		||||
            <xs:element name="material_id" type="xs:int"/>
 | 
			
		||||
            <xs:element name="package_number" type="xs:int"/>
 | 
			
		||||
            <xs:element name="ean" type="xs:string"/>
 | 
			
		||||
            <xs:element name="unit_of_measure" type="xs:string"/>
 | 
			
		||||
@@ -11,7 +13,7 @@
 | 
			
		||||
        </xs:sequence>
 | 
			
		||||
    </xs:complexType>
 | 
			
		||||
 | 
			
		||||
    <xs:simpleType name="material_type" final="restriction">
 | 
			
		||||
    <xs:simpleType name="material_typeType" final="restriction">
 | 
			
		||||
        <xs:restriction base="xs:string">
 | 
			
		||||
            <xs:enumeration value="A1"/>
 | 
			
		||||
            <xs:enumeration value="A2"/>
 | 
			
		||||
@@ -27,8 +29,9 @@
 | 
			
		||||
 | 
			
		||||
    <xs:complexType name="materialType">
 | 
			
		||||
        <xs:sequence>
 | 
			
		||||
            <xs:element name="id" type="xs:int"/>
 | 
			
		||||
            <xs:element name="material_number" type="xs:int"/>
 | 
			
		||||
            <xs:element name="material_type" type="material_type"/>
 | 
			
		||||
            <xs:element name="material_type" type="material_typeType"/>
 | 
			
		||||
            <xs:element name="material_name" type="xs:string"/>
 | 
			
		||||
            <xs:element name="description" type="xs:string"/>
 | 
			
		||||
            <xs:element name="is_deleted" type="xs:boolean"/>
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -3,6 +3,8 @@
 | 
			
		||||
 | 
			
		||||
    <xs:complexType name="package">
 | 
			
		||||
        <xs:sequence>
 | 
			
		||||
            <xs:element name="id" type="xs:int"/>
 | 
			
		||||
            <xs:element name="material_id" type="xs:int"/>
 | 
			
		||||
            <xs:element name="package_number" type="xs:int"/>
 | 
			
		||||
            <xs:element name="ean" type="xs:string"/>
 | 
			
		||||
            <xs:element name="unit_of_measure" type="xs:string"/>
 | 
			
		||||
@@ -11,7 +13,7 @@
 | 
			
		||||
        </xs:sequence>
 | 
			
		||||
    </xs:complexType>
 | 
			
		||||
 | 
			
		||||
    <xs:simpleType name="material_type" final="restriction">
 | 
			
		||||
    <xs:simpleType name="material_typeType" final="restriction">
 | 
			
		||||
        <xs:restriction base="xs:string">
 | 
			
		||||
            <xs:enumeration value="A1"/>
 | 
			
		||||
            <xs:enumeration value="A2"/>
 | 
			
		||||
@@ -27,8 +29,9 @@
 | 
			
		||||
 | 
			
		||||
    <xs:complexType name="materialType">
 | 
			
		||||
        <xs:sequence>
 | 
			
		||||
            <xs:element name="id" type="xs:int"/>
 | 
			
		||||
            <xs:element name="material_number" type="xs:int"/>
 | 
			
		||||
            <xs:element name="material_type" type="material_type"/>
 | 
			
		||||
            <xs:element name="material_type" type="material_typeType"/>
 | 
			
		||||
            <xs:element name="material_name" type="xs:string"/>
 | 
			
		||||
            <xs:element name="description" type="xs:string"/>
 | 
			
		||||
            <xs:element name="is_deleted" type="xs:boolean"/>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user