Вы находитесь на странице: 1из 3

Basic File/Order Transformations in Camel: Myordertocsvprocess.

java
package ordertocsvtransform; import org.apache.camel.Exchange; import org.apache.camel.Processor; public class Myordertocsvprocess implements Processor { public void process(Exchange exchange) throws Exception { String custom = exchange.getIn().getBody(String.class); String id = custom.substring(0, 6); String customerId = custom.substring(6,8); String date = custom.substring(14,18); String items = custom.substring(18,20); String items2 = custom.substring(22); String[] itemIds = items2.split("@"); StringBuilder csv = new StringBuilder(); csv.append(id.trim()); csv.append(",").append(customerId.trim()); csv.append(",").append(date.trim()); // csv.append(",").append(items.trim()); for (String itemss : itemIds) { csv.append(",").append(itemss.trim()); } exchange.getIn().setBody(csv.toString()); }}

OrderToCsvBean.java
package ordertocsvtransform; public class OrderToCsvBean { public String map(String custom) { String id = custom.substring(0, 9); String customerId = custom.substring(9, 13); String date = custom.substring(14, 17); String items = custom.substring(29); String[] itemIds = items.split("@"); StringBuilder csv = new StringBuilder(); csv.append(id); csv.append(",").append(date); csv.append(",").append(customerId); for (String item : itemIds) { csv.append(",").append(item); } return csv.toString(); } }

SpringOrderToCsvProcessorTest.java
package ordertocsvtransform; import java.io.File; import org.apache.camel.test.junit4.CamelSpringTestSupport; import org.junit.Test; import org.springframework.context.support.AbstractXmlApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringOrderToCsvProcessorTest extends CamelSpringTestSupport {

@Override protected AbstractXmlApplicationContext createApplicationContext() {

return new ClassPathXmlApplicationContext("com/SpringOrderToCsvProcessorTest.xml"); }

@Test public void testOrderToCsvProcessor() throws Exception { // this is the inhouse format we want to transform to CSV String inhouse = "0000004444000001212320091208 1217@1478@2132"; template.sendBodyAndHeader("direct:start", inhouse, "Date", "20091208");

File file = new File("target/orders/received/report-20091208.csv"); assertTrue("File should exist", file.exists());

// compare the expected file content String body = context.getTypeConverter().convertTo(String.class, file); assertEquals("000000444,20091208,000001212,1217,1478,2132", body); } }

Вам также может понравиться