use of org.apache.camel.component.bean.BeanInvocation in project camel by apache.
the class MultiPartClientMarshalTest method testSendPayload.
@Test
public void testSendPayload() throws Exception {
Exchange exchange = template.send("direct:start", new Processor() {
public void process(Exchange exchange) throws Exception {
BeanInvocation beanInvocation = new BeanInvocation();
GetCustomersByName getCustomersByName = new GetCustomersByName();
getCustomersByName.setName("Dr. Multipart");
beanInvocation.setMethod(MultiPartCustomerService.class.getMethod("getCustomersByName", GetCustomersByName.class, com.example.customerservice.multipart.Product.class));
Product product = new Product();
product.setName("Multiuse Product");
product.setDescription("Useful for lots of things.");
Object[] args = new Object[] { getCustomersByName, product };
beanInvocation.setArgs(args);
exchange.getIn().setBody(beanInvocation);
}
});
if (exchange.getException() != null) {
throw exchange.getException();
}
Map<String, String> nsMap = new HashMap<String, String>();
nsMap.put("soap", "http://schemas.xmlsoap.org/soap/envelope/");
nsMap.put("example", "http://multipart.customerservice.example.com/");
XQueryBuilder builder = XQueryBuilder.xquery("//soap:Envelope/soap:Header/example:product/name");
builder.setNamespaces(nsMap);
String result = builder.evaluateAsString(exchange);
assertTrue(result.equals("Multiuse Product"));
builder = XQueryBuilder.xquery("//soap:Envelope/soap:Body/example:getCustomersByName/name");
builder.setNamespaces(nsMap);
result = builder.evaluateAsString(exchange);
assertTrue(result.equals("Dr. Multipart"));
}
use of org.apache.camel.component.bean.BeanInvocation in project camel by apache.
the class MultiPartCxfServerTest method testSendRequestWithInAndInOutParts.
@Test
public void testSendRequestWithInAndInOutParts() throws Exception {
Exchange exchange = producerTemplate.send("direct:start", new Processor() {
public void process(Exchange exchange) throws Exception {
BeanInvocation beanInvocation = new BeanInvocation();
beanInvocation.setMethod(MultiPartCustomerService.class.getMethod("saveCustomer", SaveCustomer.class, Product.class, Holder.class));
Customer customer = new Customer();
customer.setName("TestCustomer");
customer.setRevenue(50000);
SaveCustomer saveCustomer = new SaveCustomer();
saveCustomer.setCustomer(customer);
Product product = new Product();
product.setName("Multiuse Product");
product.setDescription("Useful for lots of things.");
Holder<Company> holder = new Holder<Company>();
Object[] args = new Object[] { saveCustomer, product, holder };
beanInvocation.setArgs(args);
exchange.getIn().setBody(beanInvocation);
}
});
if (exchange.getException() != null) {
throw exchange.getException();
}
@SuppressWarnings("unchecked") List<Object> headers = (List<Object>) exchange.getOut().getHeader(SoapJaxbDataFormat.SOAP_UNMARSHALLED_HEADER_LIST);
assertTrue(headers.size() == 1);
Object companyHeaderObj = headers.get(0);
assertTrue(companyHeaderObj instanceof Company);
assertTrue(((Company) companyHeaderObj).getName().equals("MultipartSoft"));
}
use of org.apache.camel.component.bean.BeanInvocation in project camel by apache.
the class MultiPartCxfServerTest method testSendRequestWithReusedInAndInOutParts.
/**
* This test validates the end-to-end behavior of the service interface mapping when a parameter type
* is defined with a different QName in two different Web method. It also tests the case where a
* QName and type are directly reused across methods.
*/
@Test
public void testSendRequestWithReusedInAndInOutParts() throws Exception {
Exchange exchange = producerTemplate.send("direct:start", new Processor() {
public void process(Exchange exchange) throws Exception {
BeanInvocation beanInvocation = new BeanInvocation();
beanInvocation.setMethod(MultiPartCustomerService.class.getMethod("saveCustomerToo", SaveCustomer.class, Product.class, Holder.class));
Customer customer = new Customer();
customer.setName("TestCustomerToo");
customer.setRevenue(50000);
SaveCustomer saveCustomer = new SaveCustomer();
saveCustomer.setCustomer(customer);
Product product = new Product();
product.setName("Multiuse Product");
product.setDescription("Useful for lots of things.");
Holder<Company> holder = new Holder<Company>();
Object[] args = new Object[] { saveCustomer, product, holder };
beanInvocation.setArgs(args);
exchange.getIn().setBody(beanInvocation);
}
});
if (exchange.getException() != null) {
throw exchange.getException();
}
@SuppressWarnings("unchecked") List<Object> headers = (List<Object>) exchange.getOut().getHeader(SoapJaxbDataFormat.SOAP_UNMARSHALLED_HEADER_LIST);
assertTrue(headers.size() == 1);
Object companyHeaderObj = headers.get(0);
assertTrue(companyHeaderObj instanceof Company);
assertTrue(((Company) companyHeaderObj).getName().equals("MultipartSoft"));
}
use of org.apache.camel.component.bean.BeanInvocation in project camel by apache.
the class MultiPartCxfServerTest method testSendRequestWithInPart.
@Test
public void testSendRequestWithInPart() throws Exception {
Exchange exchange = producerTemplate.send("direct:start", new Processor() {
public void process(Exchange exchange) throws Exception {
BeanInvocation beanInvocation = new BeanInvocation();
GetCustomersByName getCustomersByName = new GetCustomersByName();
getCustomersByName.setName("Dr. Multipart");
beanInvocation.setMethod(MultiPartCustomerService.class.getMethod("getCustomersByName", GetCustomersByName.class, com.example.customerservice.multipart.Product.class));
Product product = new Product();
product.setName("Multipart Product");
product.setDescription("Useful for lots of things.");
Object[] args = new Object[] { getCustomersByName, product };
beanInvocation.setArgs(args);
exchange.getIn().setBody(beanInvocation);
}
});
if (exchange.getException() != null) {
throw exchange.getException();
}
Object responseObj = exchange.getOut().getBody();
assertTrue(responseObj instanceof GetCustomersByNameResponse);
GetCustomersByNameResponse response = (GetCustomersByNameResponse) responseObj;
assertTrue(response.getReturn().get(0).getName().equals("Multipart Product"));
}
Aggregations