/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.camel.component.cxf; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.non_wrapper.types.GetPerson; import org.apache.camel.non_wrapper.types.GetPersonResponse; import org.apache.cxf.message.MessageContentsList; public class RouteBuilderCxfTracer extends RouteBuilder { @Override public void configure() throws Exception { from("cxf:http://localhost:9000/PersonService/" + "?serviceClass=org.apache.camel.non_wrapper.Person" + "&serviceName={http://camel.apache.org/non-wrapper}PersonService" + "&portName={http://camel.apache.org/non-wrapper}soap" + "&dataFormat=POJO") .process(new BeforeProcessor()).to("direct:something").process(new AfterProcessor()); from("direct:something") .process(new DoSomethingProcessor()) .process(new DoNothingProcessor()); } private static class DoSomethingProcessor implements Processor { public void process(Exchange exchange) throws Exception { exchange.getOut().setBody(exchange.getIn().getBody() + " world!"); } } private static class DoNothingProcessor implements Processor { public void process(Exchange exchange) throws Exception { exchange.getOut().setBody(exchange.getIn().getBody()); } } private static class BeforeProcessor implements Processor { public void process(Exchange e) throws Exception { MessageContentsList mclIn = e.getIn().getBody(MessageContentsList.class); e.getIn().setBody(((GetPerson) mclIn.get(0)).getPersonId(), String.class); } } private static class AfterProcessor implements Processor { public void process(Exchange e) throws Exception { GetPersonResponse gpr = new GetPersonResponse(); gpr.setName("Bill"); gpr.setPersonId(e.getIn().getBody(String.class)); gpr.setSsn("Test"); MessageContentsList mclOut = new MessageContentsList(); mclOut.set(0, gpr); e.getOut().setBody(mclOut, MessageContentsList.class); } } }