| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| |
| 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. |
| |
| --> |
| <beans xmlns="http://www.springframework.org/schema/beans" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xmlns:camel="http://camel.apache.org/schema/spring" |
| xmlns:cxf="http://camel.apache.org/schema/cxf" |
| xmlns:jaxws="http://cxf.apache.org/jaxws" |
| xmlns:context="http://www.springframework.org/schema/context" |
| xsi:schemaLocation=" |
| http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd |
| http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd |
| http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd |
| http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd |
| http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> |
| |
| <!-- spring property placeholder, ignore resource not found as the file resource is for unit testing --> |
| <context:property-placeholder location="classpath:loanbroker.properties,file:target/custom.properties" |
| ignore-resource-not-found="true"/> |
| |
| <!-- web service for credit agency --> |
| <jaxws:endpoint id="creditAgent" |
| implementor="org.apache.camel.loanbroker.credit.CreditAgency" |
| address="http://localhost:${credit_agency.port}/creditAgency"/> |
| |
| <bean id="bank1" class="org.apache.camel.loanbroker.bank.Bank"> |
| <constructor-arg index="0"> |
| <value>bank1</value> |
| </constructor-arg> |
| </bean> |
| |
| <bean id="bank2" class="org.apache.camel.loanbroker.bank.Bank"> |
| <constructor-arg index="0"> |
| <value>bank2</value> |
| </constructor-arg> |
| </bean> |
| |
| <bean id="bank3" class="org.apache.camel.loanbroker.bank.Bank"> |
| <constructor-arg index="0"> |
| <value>bank3</value> |
| </constructor-arg> |
| </bean> |
| |
| <!-- web service for the 3 banks --> |
| <jaxws:endpoint id="bankService1" |
| implementor="#bank1" |
| address="http://localhost:${bank1.port}/bank1"/> |
| |
| <jaxws:endpoint id="bankService2" |
| implementor="#bank2" |
| address="http://localhost:${bank2.port}/bank2"/> |
| |
| <jaxws:endpoint id="bankService3" |
| implementor="#bank3" |
| address="http://localhost:${bank3.port}/bank3"/> |
| |
| |
| <!-- loan broker web service --> |
| <cxf:cxfEndpoint id="loanBroker" |
| address="http://localhost:${loan_broker.port}/loanBroker" |
| serviceClass="org.apache.camel.loanbroker.LoanBrokerWS"/> |
| |
| <!-- Camel --> |
| <camel:camelContext id="webService"> |
| |
| <!-- define endpoints for the banks --> |
| <camel:endpoint id="bank1WS" |
| uri="cxf://http://localhost:${bank1.port}/bank1?serviceClass=org.apache.camel.loanbroker.bank.BankWS"/> |
| <camel:endpoint id="bank2WS" |
| uri="cxf://http://localhost:${bank2.port}/bank2?serviceClass=org.apache.camel.loanbroker.bank.BankWS"/> |
| <camel:endpoint id="bank3WS" |
| uri="cxf://http://localhost:${bank3.port}/bank3?serviceClass=org.apache.camel.loanbroker.bank.BankWS"/> |
| |
| <camel:route id="loanBrokerRoute"> |
| <camel:from uri="cxf:bean:loanBroker"/> |
| <camel:process ref="creditScoreProcessor"/> |
| <camel:multicast parallelProcessing="true" strategyRef="bankResponse"> |
| <camel:to uri="ref:bank1WS"/> |
| <camel:to uri="ref:bank2WS"/> |
| <camel:to uri="ref:bank3WS"/> |
| </camel:multicast> |
| <camel:process ref="replyProcessor"/> |
| </camel:route> |
| </camel:camelContext> |
| |
| <!-- processor to calculate credit score --> |
| <bean id="creditScoreProcessor" class="org.apache.camel.loanbroker.CreditScoreProcessor"> |
| <constructor-arg index="0" value="http://localhost:${credit_agency.port}/creditAgency"/> |
| </bean> |
| |
| <bean id="replyProcessor" class="org.apache.camel.loanbroker.ReplyProcessor"/> |
| |
| <!-- strategy to assemble the bank responses --> |
| <bean id="bankResponse" class="org.apache.camel.loanbroker.BankResponseAggregationStrategy"/> |
| |
| </beans> |