INT-1380, moved Loan Broker sample to new git repo

This commit is contained in:
Oleg Zhurakousky
2010-09-16 08:26:04 -04:00
commit 6f2f4bae23
46 changed files with 1199 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

1
case-studies/loan-broker/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/target

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>loan-broker</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.springframework.ide.eclipse.core.springbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.maven.ide.eclipse.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.springframework.ide.eclipse.core.springnature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.maven.ide.eclipse.maven2Nature</nature>
</natures>
</projectDescription>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<beansProjectDescription>
<version>1</version>
<pluginVersion><![CDATA[2.3.3.201007151000-M2]]></pluginVersion>
<configSuffixes>
<configSuffix><![CDATA[xml]]></configSuffix>
</configSuffixes>
<enableImports><![CDATA[false]]></enableImports>
<configs>
</configs>
<configSets>
</configSets>
</beansProjectDescription>

View File

@@ -0,0 +1,21 @@
The Loan Broker sample is distributed as a valid Eclipse/Maven project, so you can run it in two ways.
Maven (command line):
1. Execute 'mvn install'
You should see output that looks similar to this:
. . . . .
INFO : org.springframework.integration.loanbroker.demo.LoanBrokerDemo -
********* Best Quote:
====== Loan Quote =====
Lender: StubBank-11
Loan amount: $270,279
Quotation Date: Fri Mar 12 02:19:35 EST 2010
Expiration Date: Tue Mar 16 02:19:35 EDT 2010
Term: 17 years
Rate: 5.9092593%
=======================
. . . . .
Eclipse/STS (with m2eclipse plug-in)
1. Import project into Eclipse/STS. If the m2eclipse plugin is installed, the dependencies will be downloaded automatically.
2. Run the 'org.springframework.integration.samples.loanbroker.demo.LoanBrokerDemo' class located in 'src/test/java'.

View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.integration.samples</groupId>
<artifactId>loan-broker</artifactId>
<version>2.0.0</version>
<name>Spring Integration Loan Broker Sample</name>
<properties>
<spring.integration.version>2.0.0.M7</spring.integration.version>
<commons-logging.version>1.1.1</commons-logging.version>
<log4j.version>1.2.15</log4j.version>
<junit.version>4.7</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${commons-logging.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-ip</artifactId>
<version>${spring.integration.version}</version>
</dependency>
<!-- test-scoped dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Demo.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>repository.springframework.maven.release</id>
<name>Spring Framework Maven Release Repository</name>
<url>http://maven.springframework.org/release</url>
</repository>
<repository>
<id>repository.springframework.maven.milestone</id>
<name>Spring Framework Maven Milestone Repository</name>
<url>http://maven.springframework.org/milestone</url>
</repository>
<repository>
<id>repository.springframework.maven.snapshot</id>
<name>Spring Framework Maven Snapshot Repository</name>
<url>http://maven.springframework.org/snapshot</url>
</repository>
</repositories>
</project>

View File

@@ -0,0 +1,42 @@
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed 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.springframework.integration.samples.loanbroker;
import java.util.List;
import org.springframework.integration.samples.loanbroker.domain.LoanQuote;
import org.springframework.integration.samples.loanbroker.domain.LoanRequest;
/**
* POJI Gateway that connects method invocations to the request-channel.
* This completely isolates the developer from Spring Integration API details.
*
* @author Oleg Zhurakousky
*/
public interface LoanBrokerGateway {
/**
* Will return the best {@link LoanQuote} for the given request.
*/
public LoanQuote getBestLoanQuote(LoanRequest loanRequest);
/**
* Will return all {@link LoanQuote}s for the given request.
*/
public List<LoanQuote> getAllLoanQuotes(LoanRequest loanRequest);
}

View File

@@ -0,0 +1,53 @@
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed 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.springframework.integration.samples.loanbroker;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.springframework.integration.Message;
import org.springframework.integration.samples.loanbroker.domain.LoanQuote;
/**
* Aggregates {@link LoanQuote}s based on the value of the 'RESPONSE_TYPE' message header.
* When only the <i>best</i> quote is desired, the 'RESPONSE_TYPE' header should have a value
* of 'BEST'. In this example, that value is set by the 'gateway' when the
* {@link LoanBrokerGateway#getBestLoanQuote(org.springframework.integration.samples.loanbroker.domain.LoanRequest)}
* method is invoked by the client.
*
* @author Oleg Zhurakousky
*/
public class LoanQuoteAggregator {
/**
* Aggregates LoanQuote Messages to return a single reply Message.
*
* @param messages Messages received from upstream lenders.
* @return the best {@link LoanQuote} if the 'RESPONSE_TYPE' header value is 'BEST' else all quotes
*/
public Object aggregateQuotes(List<Message<LoanQuote>> messages) {
ArrayList<LoanQuote> payloads = new ArrayList<LoanQuote>(messages.size());
for (Message<LoanQuote> message : messages) {
payloads.add(message.getPayload());
}
Collections.sort(payloads);
String responseType = messages.get(0).getHeaders().get("RESPONSE_TYPE", String.class);
return ("BEST".equals(responseType)) ? payloads.get(0) : payloads;
}
}

View File

@@ -0,0 +1,61 @@
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed 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.springframework.integration.samples.loanbroker.domain;
/**
* @author Oleg Zhurakousky
*/
public class Address {
private String street;
private String zip;
private String city;
private String state;
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getZip() {
return zip;
}
public void setZip(String zip) {
this.zip = zip;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}

View File

@@ -0,0 +1,43 @@
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed 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.springframework.integration.samples.loanbroker.domain;
/**
* @author Oleg Zhurakousky
*/
public class CreditScore {
private final int score;
private String creditHistory;
public CreditScore(int score){
this.score = score;
}
public String getCreditHistory() {
return creditHistory;
}
public void setCreditHistory(String creditHistory) {
this.creditHistory = creditHistory;
}
public int getScore() {
return score;
}
}

View File

@@ -0,0 +1,52 @@
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed 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.springframework.integration.samples.loanbroker.domain;
/**
* @author Oleg Zhurakousky
*/
public class Customer {
private String firstName;
private String lastName;
private Address address;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}

View File

@@ -0,0 +1,103 @@
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed 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.springframework.integration.samples.loanbroker.domain;
import java.text.DecimalFormat;
import java.util.Date;
/**
* @author Oleg Zhurakousky
*/
public class LoanQuote implements Comparable<LoanQuote>{
private String lender;
private Date quoteDate;
private Date expirationDate;
private double amount;
private int term;
private float rate;
public String getLender() {
return lender;
}
public void setLender(String lender) {
this.lender = lender;
}
public Date getQuoteDate() {
return quoteDate;
}
public void setQuoteDate(Date quoteDate) {
this.quoteDate = quoteDate;
}
public Date getExpirationDate() {
return expirationDate;
}
public void setExpirationDate(Date expirationDate) {
this.expirationDate = expirationDate;
}
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
public int getTerm() {
return term;
}
public void setTerm(int term) {
this.term = term;
}
public float getRate() {
return rate;
}
public void setRate(float rate) {
this.rate = rate;
}
public String toString(){
return "\n====== Loan Quote =====\n" +
"Lender: " + this.lender + "\n" +
"Loan amount: " + new DecimalFormat("$###,###.###").format(this.amount) + "\n" +
"Quote Date: " + this.quoteDate + "\n" +
"Expiration Date: " + this.expirationDate + "\n" +
"Term: " + this.term + " years" + "\n" +
"Rate: " + this.rate + "%\n" +
"=======================\n";
}
public int compareTo(LoanQuote other) {
if (this.rate > other.rate) {
return 1;
}
else if (this.rate < other.rate) {
return -1;
}
return 0;
}
}

View File

@@ -0,0 +1,43 @@
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed 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.springframework.integration.samples.loanbroker.domain;
/**
* @author Oleg Zhurakousky
*/
public class LoanRequest {
private Customer customer;
private float loanAmount;
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
public float getLoanAmount() {
return loanAmount;
}
public void setLoanAmount(float loanAmount) {
this.loanAmount = loanAmount;
}
}

View File

@@ -0,0 +1,48 @@
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed 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.springframework.integration.samples.loanbroker.stubs;
import java.util.Calendar;
import java.util.Random;
import org.springframework.integration.samples.loanbroker.domain.LoanQuote;
import org.springframework.integration.samples.loanbroker.domain.LoanRequest;
/**
* @author Oleg Zhurakousky
*/
public class BankStub {
/**
* @param loanRequest the loan request
* @return a LoanQuote for the given request
*/
public LoanQuote quote(LoanRequest loanRequest) {
Calendar calendar = Calendar.getInstance();
LoanQuote loanQuote = new LoanQuote();
Random random = new Random();
loanQuote.setQuoteDate(calendar.getTime());
calendar.add(Calendar.DAY_OF_YEAR, random.nextInt(25));
loanQuote.setExpirationDate(calendar.getTime());
loanQuote.setRate(random.nextFloat() + 5);
loanQuote.setTerm(10 + random.nextInt(10));
loanQuote.setAmount(250000 + random.nextInt(40000));
loanQuote.setLender("StubBank-" + random.nextInt(30));
return loanQuote;
}
}

View File

@@ -0,0 +1,44 @@
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed 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.springframework.integration.samples.loanbroker.stubs;
import java.util.Random;
import org.apache.log4j.Logger;
import org.springframework.integration.samples.loanbroker.domain.CreditScore;
import org.springframework.integration.samples.loanbroker.domain.LoanRequest;
/**
* @author Oleg Zhurakousky
*/
public class CreditBureauStub {
private static Logger logger = Logger.getLogger(CreditBureauStub.class);
/**
* @param loanRequest the loan request
* @return the CreditScore for the given loan request
*/
public CreditScore getCreditScore(LoanRequest loanRequest){
Random random = new Random();
int creditScore = 700 + random.nextInt(150);
logger.info("Credit Score: " + creditScore);
return new CreditScore(creditScore);
}
}

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
<util:map id="banks">
<entry key="abcBankChannel" value="premier" />
<entry key="efgBankChannel" value="premier" />
<entry key="hijBankChannel" value="secondary" />
<entry key="xyzBankChannel" value="secondary" />
<entry key="fooBankChannel" value="secondary" />
</util:map>
</beans>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="classpath:stub-services-config.xml" />
<import resource="classpath:loan-broker-config.xml" />
<import resource="classpath:bank-channel-mappings-config.xml" />
<import resource="classpath:shark-detector-config.xml"/>
</beans>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="classpath:stub-services-config.xml" />
<import resource="classpath:loan-broker-config.xml" />
<import resource="classpath:bank-channel-mappings-config.xml" />
</beans>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/integration"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd">
<gateway id="loanBrokerGateway"
default-request-channel="loanBrokerPreProcessingChannel"
service-interface="org.springframework.integration.samples.loanbroker.LoanBrokerGateway">
<method name="getBestLoanQuote">
<header name="RESPONSE_TYPE" value="BEST"/>
</method>
</gateway>
<chain input-channel="loanBrokerPreProcessingChannel">
<header-enricher>
<header name="CREDIT_SCORE" ref="creditBureau" method="getCreditScore"/>
</header-enricher>
<router expression="headers['CREDIT_SCORE'].score > 780
? @banks.?[value.equals('premier')].keySet()
: @banks.?[value.equals('secondary')].keySet()"
apply-sequence="true"/>
</chain>
<!-- Messages are sent to the banks via bank channels and will be received and processed by an aggregator -->
<aggregator input-channel="quotesAggregationChannel" method="aggregateQuotes">
<beans:bean class="org.springframework.integration.samples.loanbroker.LoanQuoteAggregator"/>
</aggregator>
</beans:beans>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/integration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:int-ip="http://www.springframework.org/schema/integration/ip"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd
http://www.springframework.org/schema/integration/ip http://www.springframework.org/schema/integration/ip/spring-integration-ip-2.0.xsd">
<channel id="quotesAggregationChannel">
<interceptors>
<wire-tap channel="loanSharkDetectorChannel"/>
</interceptors>
</channel>
<channel id="loanSharkDetectorChannel"/>
<filter id="loanSharkFilter"
input-channel="loanSharkDetectorChannel"
output-channel="loanSharkChannel"
expression="payload.rate > 5.2"/>
<channel id="loanSharkChannel" />
<transformer input-channel="loanSharkChannel"
expression="payload.lender + ',' + payload.rate"
output-channel="sharkOutChannel"/>
<channel id="sharkOutChannel" />
<int-ip:udp-outbound-channel-adapter id="udpOut"
channel="sharkOutChannel"
host="225.6.7.8"
multicast="true"
port="11111"/>
</beans:beans>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd">
<bean id="creditBureau" class="org.springframework.integration.samples.loanbroker.stubs.CreditBureauStub" />
<bean id="bankStub" class="org.springframework.integration.samples.loanbroker.stubs.BankStub"/>
<!-- Bank Endpoints (to be rewired to remoting adapters) -->
<int:service-activator input-channel="abcBankChannel" output-channel="quotesAggregationChannel" ref="bankStub"/>
<int:service-activator input-channel="efgBankChannel" output-channel="quotesAggregationChannel" ref="bankStub"/>
<int:service-activator input-channel="hijBankChannel" output-channel="quotesAggregationChannel" ref="bankStub"/>
<int:service-activator input-channel="xyzBankChannel" output-channel="quotesAggregationChannel" ref="bankStub"/>
<int:service-activator input-channel="fooBankChannel" output-channel="quotesAggregationChannel" ref="bankStub"/>
<!-- end Bank Endpoints -->
</beans>

View File

@@ -0,0 +1,57 @@
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed 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.springframework.integration.samples.loanbroker.demo;
import java.util.List;
import org.apache.log4j.Logger;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.integration.samples.loanbroker.LoanBrokerGateway;
import org.springframework.integration.samples.loanbroker.domain.Customer;
import org.springframework.integration.samples.loanbroker.domain.LoanQuote;
import org.springframework.integration.samples.loanbroker.domain.LoanRequest;
/**
* @author Oleg Zhurakousky
*/
public class LoanBrokerDemo {
private static Logger logger = Logger.getLogger(LoanBrokerDemo.class);
public static void main(String[] args) {
new LoanBrokerDemo().runDemo();
}
@Test
public void runDemo() {
ApplicationContext context = new ClassPathXmlApplicationContext("bootstrap-config/stubbed-loan-broker.xml");
LoanBrokerGateway broker = context.getBean("loanBrokerGateway", LoanBrokerGateway.class);
LoanRequest loanRequest = new LoanRequest();
loanRequest.setCustomer(new Customer());
LoanQuote loan = broker.getBestLoanQuote(loanRequest);
logger.info("\n********* Best Quote: " + loan);
List<LoanQuote> loanQuotes = broker.getAllLoanQuotes(loanRequest);
logger.info("\n********* All Quotes: ");
for (LoanQuote loanQuote : loanQuotes) {
logger.info(loanQuote);
}
}
}

View File

@@ -0,0 +1,54 @@
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed 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.springframework.integration.samples.loanbroker.demo;
import java.util.List;
import org.apache.log4j.Logger;
import org.junit.Test;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.integration.samples.loanbroker.LoanBrokerGateway;
import org.springframework.integration.samples.loanbroker.domain.Customer;
import org.springframework.integration.samples.loanbroker.domain.LoanQuote;
import org.springframework.integration.samples.loanbroker.domain.LoanRequest;
/**
* @author Gary Russell
*/
public class LoanBrokerSharkDetectorDemo {
private static Logger logger = Logger.getLogger(LoanBrokerSharkDetectorDemo.class);
@Test
public void testUdpMulticast() {
ConfigurableApplicationContext context =
new ClassPathXmlApplicationContext("bootstrap-config/stubbed-loan-broker-multicast.xml");
LoanBrokerGateway broker = context.getBean("loanBrokerGateway", LoanBrokerGateway.class);
LoanRequest loanRequest = new LoanRequest();
loanRequest.setCustomer(new Customer());
LoanQuote loan = broker.getBestLoanQuote(loanRequest);
logger.info("\n********* Best Quote: " + loan);
List<LoanQuote> loanQuotes = broker.getAllLoanQuotes(loanRequest);
logger.info("\n********* All Quotes: ");
for (LoanQuote loanQuote : loanQuotes) {
logger.info(loanQuote);
}
}
}

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
<logger name="org.springframework.integration">
<level value="warn" />
</logger>
<logger name="org.springframework.integration.samples.loanbroker">
<level value="debug" />
</logger>
<!-- Root Logger -->
<root>
<priority value="warn" />
<appender-ref ref="console" />
</root>
</log4j:configuration>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
<util:map id="banks">
<entry key="abcBankChannel" value="premier" />
<entry key="efgBankChannel" value="premier" />
<entry key="hijBankChannel" value="secondary" />
<entry key="xyzBankChannel" value="secondary" />
<entry key="fooBankChannel" value="secondary" />
</util:map>
</beans>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="classpath:stub-services-config.xml" />
<import resource="classpath:loan-broker-config.xml" />
<import resource="classpath:bank-channel-mappings-config.xml" />
<import resource="classpath:shark-detector-config.xml"/>
</beans>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="classpath:stub-services-config.xml" />
<import resource="classpath:loan-broker-config.xml" />
<import resource="classpath:bank-channel-mappings-config.xml" />
</beans>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/integration"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd">
<gateway id="loanBrokerGateway"
default-request-channel="loanBrokerPreProcessingChannel"
service-interface="org.springframework.integration.samples.loanbroker.LoanBrokerGateway">
<method name="getBestLoanQuote">
<header name="RESPONSE_TYPE" value="BEST"/>
</method>
</gateway>
<chain input-channel="loanBrokerPreProcessingChannel">
<header-enricher>
<header name="CREDIT_SCORE" ref="creditBureau" method="getCreditScore"/>
</header-enricher>
<router expression="headers['CREDIT_SCORE'].score > 780
? @banks.?[value.equals('premier')].keySet()
: @banks.?[value.equals('secondary')].keySet()"
apply-sequence="true"/>
</chain>
<!-- Messages are sent to the banks via bank channels and will be received and processed by an aggregator -->
<aggregator input-channel="quotesAggregationChannel" method="aggregateQuotes">
<beans:bean class="org.springframework.integration.samples.loanbroker.LoanQuoteAggregator"/>
</aggregator>
</beans:beans>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/integration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:int-ip="http://www.springframework.org/schema/integration/ip"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd
http://www.springframework.org/schema/integration/ip http://www.springframework.org/schema/integration/ip/spring-integration-ip-2.0.xsd">
<channel id="quotesAggregationChannel">
<interceptors>
<wire-tap channel="loanSharkDetectorChannel"/>
</interceptors>
</channel>
<channel id="loanSharkDetectorChannel"/>
<filter id="loanSharkFilter"
input-channel="loanSharkDetectorChannel"
output-channel="loanSharkChannel"
expression="payload.rate > 5.2"/>
<channel id="loanSharkChannel" />
<transformer input-channel="loanSharkChannel"
expression="payload.lender + ',' + payload.rate"
output-channel="sharkOutChannel"/>
<channel id="sharkOutChannel" />
<int-ip:udp-outbound-channel-adapter id="udpOut"
channel="sharkOutChannel"
host="225.6.7.8"
multicast="true"
port="11111"/>
</beans:beans>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd">
<bean id="creditBureau" class="org.springframework.integration.samples.loanbroker.stubs.CreditBureauStub" />
<bean id="bankStub" class="org.springframework.integration.samples.loanbroker.stubs.BankStub"/>
<!-- Bank Endpoints (to be rewired to remoting adapters) -->
<int:service-activator input-channel="abcBankChannel" output-channel="quotesAggregationChannel" ref="bankStub"/>
<int:service-activator input-channel="efgBankChannel" output-channel="quotesAggregationChannel" ref="bankStub"/>
<int:service-activator input-channel="hijBankChannel" output-channel="quotesAggregationChannel" ref="bankStub"/>
<int:service-activator input-channel="xyzBankChannel" output-channel="quotesAggregationChannel" ref="bankStub"/>
<int:service-activator input-channel="fooBankChannel" output-channel="quotesAggregationChannel" ref="bankStub"/>
<!-- end Bank Endpoints -->
</beans>

View File

@@ -0,0 +1,5 @@
#Generated by Maven
#Sat Sep 04 08:22:17 EDT 2010
version=2.0.0.BUILD-SNAPSHOT
groupId=org.springframework.integration.samples
artifactId=loan-broker

View File

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" ?>
<testsuite failures="0" time="0.198" errors="0" skipped="0" tests="1" name="org.springframework.integration.samples.loanbroker.demo.LoanBrokerDemo">
<properties>
<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>
<property name="sun.boot.library.path" value="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Libraries"/>
<property name="java.vm.version" value="16.3-b01-279"/>
<property name="awt.nativeDoubleBuffering" value="true"/>
<property name="gopherProxySet" value="false"/>
<property name="mrj.build" value="10M3065"/>
<property name="java.vm.vendor" value="Apple Inc."/>
<property name="java.vendor.url" value="http://www.apple.com/"/>
<property name="path.separator" value=":"/>
<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>
<property name="file.encoding.pkg" value="sun.io"/>
<property name="user.country" value="US"/>
<property name="sun.java.launcher" value="SUN_STANDARD"/>
<property name="sun.os.patch.level" value="unknown"/>
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
<property name="user.dir" value="/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/spring-integration/spring-integration-samples/loan-broker"/>
<property name="java.runtime.version" value="1.6.0_20-b02-279-10M3065"/>
<property name="java.awt.graphicsenv" value="apple.awt.CGraphicsEnvironment"/>
<property name="basedir" value="/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/spring-integration/spring-integration-samples/loan-broker"/>
<property name="java.endorsed.dirs" value="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/endorsed"/>
<property name="os.arch" value="x86_64"/>
<property name="surefire.real.class.path" value="/var/folders/LR/LRJ9j7YWHOS5YAFmew+KqE+++TI/-Tmp-/surefirebooter12945245448292768.jar"/>
<property name="java.io.tmpdir" value="/var/folders/LR/LRJ9j7YWHOS5YAFmew+KqE+++TI/-Tmp-/"/>
<property name="line.separator" value="
"/>
<property name="java.vm.specification.vendor" value="Sun Microsystems Inc."/>
<property name="os.name" value="Mac OS X"/>
<property name="sun.jnu.encoding" value="MacRoman"/>
<property name="java.library.path" value=".:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java"/>
<property name="surefire.test.class.path" value="/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/spring-integration/spring-integration-samples/loan-broker/target/test-classes:/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/spring-integration/spring-integration-samples/loan-broker/target/classes:/Users/ozhurakousky/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/ozhurakousky/.m2/repository/log4j/log4j/1.2.12/log4j-1.2.12.jar:/Users/ozhurakousky/.m2/repository/org/springframework/integration/spring-integration-ip/2.0.0.BUILD-SNAPSHOT/spring-integration-ip-2.0.0.BUILD-SNAPSHOT.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-context/3.0.3.RELEASE/spring-context-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-aop/3.0.3.RELEASE/spring-aop-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-asm/3.0.3.RELEASE/spring-asm-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-beans/3.0.3.RELEASE/spring-beans-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-core/3.0.3.RELEASE/spring-core-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-expression/3.0.3.RELEASE/spring-expression-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/integration/spring-integration-core/2.0.0.BUILD-SNAPSHOT/spring-integration-core-2.0.0.BUILD-SNAPSHOT.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-tx/3.0.3.RELEASE/spring-tx-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/integration/spring-integration-stream/2.0.0.BUILD-SNAPSHOT/spring-integration-stream-2.0.0.BUILD-SNAPSHOT.jar:/Users/ozhurakousky/.m2/repository/org/springframework/commons/spring-commons-serializer/1.0.0.M1/spring-commons-serializer-1.0.0.M1.jar:/Users/ozhurakousky/.m2/repository/junit/junit/4.7/junit-4.7.jar:"/>
<property name="java.specification.name" value="Java Platform API Specification"/>
<property name="java.class.version" value="50.0"/>
<property name="sun.management.compiler" value="HotSpot 64-Bit Server Compiler"/>
<property name="os.version" value="10.6.4"/>
<property name="user.home" value="/Users/ozhurakousky"/>
<property name="user.timezone" value="America/New_York"/>
<property name="java.awt.printerjob" value="apple.awt.CPrinterJob"/>
<property name="java.specification.version" value="1.6"/>
<property name="file.encoding" value="MacRoman"/>
<property name="user.name" value="ozhurakousky"/>
<property name="java.class.path" value="/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/spring-integration/spring-integration-samples/loan-broker/target/test-classes:/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/spring-integration/spring-integration-samples/loan-broker/target/classes:/Users/ozhurakousky/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/ozhurakousky/.m2/repository/log4j/log4j/1.2.12/log4j-1.2.12.jar:/Users/ozhurakousky/.m2/repository/org/springframework/integration/spring-integration-ip/2.0.0.BUILD-SNAPSHOT/spring-integration-ip-2.0.0.BUILD-SNAPSHOT.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-context/3.0.3.RELEASE/spring-context-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-aop/3.0.3.RELEASE/spring-aop-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-asm/3.0.3.RELEASE/spring-asm-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-beans/3.0.3.RELEASE/spring-beans-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-core/3.0.3.RELEASE/spring-core-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-expression/3.0.3.RELEASE/spring-expression-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/integration/spring-integration-core/2.0.0.BUILD-SNAPSHOT/spring-integration-core-2.0.0.BUILD-SNAPSHOT.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-tx/3.0.3.RELEASE/spring-tx-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/integration/spring-integration-stream/2.0.0.BUILD-SNAPSHOT/spring-integration-stream-2.0.0.BUILD-SNAPSHOT.jar:/Users/ozhurakousky/.m2/repository/org/springframework/commons/spring-commons-serializer/1.0.0.M1/spring-commons-serializer-1.0.0.M1.jar:/Users/ozhurakousky/.m2/repository/junit/junit/4.7/junit-4.7.jar:"/>
<property name="java.vm.specification.version" value="1.0"/>
<property name="sun.arch.data.model" value="64"/>
<property name="java.home" value="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"/>
<property name="java.specification.vendor" value="Sun Microsystems Inc."/>
<property name="user.language" value="en"/>
<property name="awt.toolkit" value="apple.awt.CToolkit"/>
<property name="java.vm.info" value="mixed mode"/>
<property name="java.version" value="1.6.0_20"/>
<property name="java.ext.dirs" value="/Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext"/>
<property name="sun.boot.class.path" value="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsfd.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Resources/Java/JavaRuntimeSupport.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/charsets.jar"/>
<property name="java.vendor" value="Apple Inc."/>
<property name="localRepository" value="/Users/ozhurakousky/.m2/repository"/>
<property name="file.separator" value="/"/>
<property name="java.vendor.url.bug" value="http://bugreport.apple.com/"/>
<property name="sun.cpu.endian" value="little"/>
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
<property name="mrj.version" value="1060.1.6.0_20-279"/>
<property name="sun.cpu.isalist" value=""/>
</properties>
<testcase time="0.197" classname="org.springframework.integration.samples.loanbroker.demo.LoanBrokerDemo" name="runDemo"/>
</testsuite>

View File

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" ?>
<testsuite failures="0" time="3.344" errors="0" skipped="0" tests="1" name="org.springframework.integration.samples.loanbroker.demo.LoanBrokerSharkDetectorDemo">
<properties>
<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>
<property name="sun.boot.library.path" value="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Libraries"/>
<property name="java.vm.version" value="16.3-b01-279"/>
<property name="awt.nativeDoubleBuffering" value="true"/>
<property name="gopherProxySet" value="false"/>
<property name="mrj.build" value="10M3065"/>
<property name="java.vm.vendor" value="Apple Inc."/>
<property name="java.vendor.url" value="http://www.apple.com/"/>
<property name="path.separator" value=":"/>
<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>
<property name="file.encoding.pkg" value="sun.io"/>
<property name="user.country" value="US"/>
<property name="sun.java.launcher" value="SUN_STANDARD"/>
<property name="sun.os.patch.level" value="unknown"/>
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
<property name="user.dir" value="/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/spring-integration/spring-integration-samples/loan-broker"/>
<property name="java.runtime.version" value="1.6.0_20-b02-279-10M3065"/>
<property name="java.awt.graphicsenv" value="apple.awt.CGraphicsEnvironment"/>
<property name="basedir" value="/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/spring-integration/spring-integration-samples/loan-broker"/>
<property name="java.endorsed.dirs" value="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/endorsed"/>
<property name="os.arch" value="x86_64"/>
<property name="surefire.real.class.path" value="/var/folders/LR/LRJ9j7YWHOS5YAFmew+KqE+++TI/-Tmp-/surefirebooter12945245448292768.jar"/>
<property name="java.io.tmpdir" value="/var/folders/LR/LRJ9j7YWHOS5YAFmew+KqE+++TI/-Tmp-/"/>
<property name="line.separator" value="
"/>
<property name="java.vm.specification.vendor" value="Sun Microsystems Inc."/>
<property name="os.name" value="Mac OS X"/>
<property name="sun.jnu.encoding" value="MacRoman"/>
<property name="java.library.path" value=".:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java"/>
<property name="surefire.test.class.path" value="/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/spring-integration/spring-integration-samples/loan-broker/target/test-classes:/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/spring-integration/spring-integration-samples/loan-broker/target/classes:/Users/ozhurakousky/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/ozhurakousky/.m2/repository/log4j/log4j/1.2.12/log4j-1.2.12.jar:/Users/ozhurakousky/.m2/repository/org/springframework/integration/spring-integration-ip/2.0.0.BUILD-SNAPSHOT/spring-integration-ip-2.0.0.BUILD-SNAPSHOT.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-context/3.0.3.RELEASE/spring-context-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-aop/3.0.3.RELEASE/spring-aop-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-asm/3.0.3.RELEASE/spring-asm-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-beans/3.0.3.RELEASE/spring-beans-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-core/3.0.3.RELEASE/spring-core-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-expression/3.0.3.RELEASE/spring-expression-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/integration/spring-integration-core/2.0.0.BUILD-SNAPSHOT/spring-integration-core-2.0.0.BUILD-SNAPSHOT.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-tx/3.0.3.RELEASE/spring-tx-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/integration/spring-integration-stream/2.0.0.BUILD-SNAPSHOT/spring-integration-stream-2.0.0.BUILD-SNAPSHOT.jar:/Users/ozhurakousky/.m2/repository/org/springframework/commons/spring-commons-serializer/1.0.0.M1/spring-commons-serializer-1.0.0.M1.jar:/Users/ozhurakousky/.m2/repository/junit/junit/4.7/junit-4.7.jar:"/>
<property name="java.specification.name" value="Java Platform API Specification"/>
<property name="java.class.version" value="50.0"/>
<property name="sun.management.compiler" value="HotSpot 64-Bit Server Compiler"/>
<property name="os.version" value="10.6.4"/>
<property name="user.home" value="/Users/ozhurakousky"/>
<property name="user.timezone" value="America/New_York"/>
<property name="java.awt.printerjob" value="apple.awt.CPrinterJob"/>
<property name="java.specification.version" value="1.6"/>
<property name="file.encoding" value="MacRoman"/>
<property name="user.name" value="ozhurakousky"/>
<property name="java.class.path" value="/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/spring-integration/spring-integration-samples/loan-broker/target/test-classes:/Users/ozhurakousky/workspace-sts-2.3.3.M2/si/spring-integration/spring-integration-samples/loan-broker/target/classes:/Users/ozhurakousky/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/ozhurakousky/.m2/repository/log4j/log4j/1.2.12/log4j-1.2.12.jar:/Users/ozhurakousky/.m2/repository/org/springframework/integration/spring-integration-ip/2.0.0.BUILD-SNAPSHOT/spring-integration-ip-2.0.0.BUILD-SNAPSHOT.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-context/3.0.3.RELEASE/spring-context-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-aop/3.0.3.RELEASE/spring-aop-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-asm/3.0.3.RELEASE/spring-asm-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-beans/3.0.3.RELEASE/spring-beans-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-core/3.0.3.RELEASE/spring-core-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-expression/3.0.3.RELEASE/spring-expression-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/integration/spring-integration-core/2.0.0.BUILD-SNAPSHOT/spring-integration-core-2.0.0.BUILD-SNAPSHOT.jar:/Users/ozhurakousky/.m2/repository/org/springframework/spring-tx/3.0.3.RELEASE/spring-tx-3.0.3.RELEASE.jar:/Users/ozhurakousky/.m2/repository/org/springframework/integration/spring-integration-stream/2.0.0.BUILD-SNAPSHOT/spring-integration-stream-2.0.0.BUILD-SNAPSHOT.jar:/Users/ozhurakousky/.m2/repository/org/springframework/commons/spring-commons-serializer/1.0.0.M1/spring-commons-serializer-1.0.0.M1.jar:/Users/ozhurakousky/.m2/repository/junit/junit/4.7/junit-4.7.jar:"/>
<property name="java.vm.specification.version" value="1.0"/>
<property name="sun.arch.data.model" value="64"/>
<property name="java.home" value="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"/>
<property name="java.specification.vendor" value="Sun Microsystems Inc."/>
<property name="user.language" value="en"/>
<property name="awt.toolkit" value="apple.awt.CToolkit"/>
<property name="java.vm.info" value="mixed mode"/>
<property name="java.version" value="1.6.0_20"/>
<property name="java.ext.dirs" value="/Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext"/>
<property name="sun.boot.class.path" value="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsfd.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Resources/Java/JavaRuntimeSupport.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/charsets.jar"/>
<property name="java.vendor" value="Apple Inc."/>
<property name="localRepository" value="/Users/ozhurakousky/.m2/repository"/>
<property name="file.separator" value="/"/>
<property name="java.vendor.url.bug" value="http://bugreport.apple.com/"/>
<property name="sun.cpu.endian" value="little"/>
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
<property name="mrj.version" value="1060.1.6.0_20-279"/>
<property name="sun.cpu.isalist" value=""/>
</properties>
<testcase time="3.098" classname="org.springframework.integration.samples.loanbroker.demo.LoanBrokerSharkDetectorDemo" name="testUdpMulticast"/>
</testsuite>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
<logger name="org.springframework.integration">
<level value="warn" />
</logger>
<logger name="org.springframework.integration.samples.loanbroker">
<level value="debug" />
</logger>
<!-- Root Logger -->
<root>
<priority value="warn" />
<appender-ref ref="console" />
</root>
</log4j:configuration>