Upgrade to Spring Integration 1.0.1 (still broken).
This commit is contained in:
@@ -62,6 +62,10 @@
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.log4j</groupId>
|
||||
<artifactId>com.springsource.org.apache.log4j</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.aspectj</groupId>
|
||||
<artifactId>com.springsource.org.aspectj.runtime
|
||||
@@ -126,6 +130,6 @@
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<properties>
|
||||
<spring.integration.version>1.0.0.RC2</spring.integration.version>
|
||||
<spring.integration.version>1.0.1.RELEASE</spring.integration.version>
|
||||
</properties>
|
||||
</project>
|
||||
@@ -8,6 +8,7 @@ import java.util.List;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.batch.support.transaction.TransactionAwareProxyFactory;
|
||||
@@ -15,10 +16,7 @@ import org.springframework.beans.BeansException;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.context.Lifecycle;
|
||||
import org.springframework.integration.annotation.ChannelAdapter;
|
||||
import org.springframework.integration.annotation.MessageEndpoint;
|
||||
import org.springframework.integration.annotation.Poller;
|
||||
import org.springframework.integration.annotation.ServiceActivator;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
@@ -31,23 +29,22 @@ public class RepeatTransactionalPollingIntegrationTests implements ApplicationCo
|
||||
|
||||
private Log logger = LogFactory.getLog(getClass());
|
||||
|
||||
private List<String> processed = new ArrayList<String>();
|
||||
private static List<String> processed = new ArrayList<String>();
|
||||
|
||||
private List<String> expected;
|
||||
private static List<String> expected;
|
||||
|
||||
private List<String> handled = new ArrayList<String>();
|
||||
private static List<String> handled = new ArrayList<String>();
|
||||
|
||||
private List<String> list = new ArrayList<String>();
|
||||
private static List<String> list = new ArrayList<String>();
|
||||
|
||||
private Lifecycle bus;
|
||||
|
||||
private volatile int count = 0;
|
||||
private volatile static int count = 0;
|
||||
|
||||
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
||||
bus = (Lifecycle) applicationContext;
|
||||
}
|
||||
|
||||
@ServiceActivator(inputChannel = "requests", outputChannel = "replies")
|
||||
public String process(String message) {
|
||||
String result = message + ": " + count;
|
||||
logger.debug("Handling: " + message);
|
||||
@@ -61,8 +58,6 @@ public class RepeatTransactionalPollingIntegrationTests implements ApplicationCo
|
||||
return result;
|
||||
}
|
||||
|
||||
@ChannelAdapter("requests")
|
||||
@Poller(interval=10,adviceChain={"txAdvice","repeatAdvice"})
|
||||
public String input() {
|
||||
logger.debug("Polling: " + count);
|
||||
if (list.isEmpty()) {
|
||||
@@ -71,12 +66,19 @@ public class RepeatTransactionalPollingIntegrationTests implements ApplicationCo
|
||||
return list.remove(0);
|
||||
}
|
||||
|
||||
@ChannelAdapter("replies")
|
||||
public void output(String message) {
|
||||
handled.add(message);
|
||||
logger.debug("Handled: " + message);
|
||||
}
|
||||
|
||||
@Before
|
||||
public void clearLists() {
|
||||
list.clear();
|
||||
handled.clear();
|
||||
processed.clear();
|
||||
count = 0;
|
||||
}
|
||||
|
||||
@Test
|
||||
@DirtiesContext
|
||||
public void testSunnyDay() throws Exception {
|
||||
|
||||
@@ -8,6 +8,7 @@ import java.util.List;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.batch.support.transaction.TransactionAwareProxyFactory;
|
||||
@@ -16,9 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.context.Lifecycle;
|
||||
import org.springframework.integration.annotation.ChannelAdapter;
|
||||
import org.springframework.integration.annotation.MessageEndpoint;
|
||||
import org.springframework.integration.annotation.Poller;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
@@ -31,7 +30,7 @@ public class RetryRepeatTransactionalPollingIntegrationTests implements Applicat
|
||||
|
||||
private Log logger = LogFactory.getLog(getClass());
|
||||
|
||||
private List<String> list = new ArrayList<String>();
|
||||
private static List<String> list = new ArrayList<String>();
|
||||
|
||||
@Autowired
|
||||
private SimpleRecoverer recoverer;
|
||||
@@ -45,10 +44,14 @@ public class RetryRepeatTransactionalPollingIntegrationTests implements Applicat
|
||||
bus = (Lifecycle) applicationContext;
|
||||
}
|
||||
|
||||
private volatile int count = 0;
|
||||
private static volatile int count = 0;
|
||||
|
||||
@ChannelAdapter("requests")
|
||||
@Poller(interval=10,adviceChain={"txAdvice","repeatAdvice"})
|
||||
@Before
|
||||
public void clearLists() {
|
||||
list.clear();
|
||||
count = 0;
|
||||
}
|
||||
|
||||
public String input() {
|
||||
logger.debug("Polling: " + count);
|
||||
if (list.isEmpty()) {
|
||||
@@ -57,7 +60,6 @@ public class RetryRepeatTransactionalPollingIntegrationTests implements Applicat
|
||||
return list.remove(0);
|
||||
}
|
||||
|
||||
@ChannelAdapter("replies")
|
||||
public void output(String message) {
|
||||
count++;
|
||||
logger.debug("Handled: " + message);
|
||||
|
||||
@@ -8,6 +8,7 @@ import java.util.List;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.batch.support.transaction.TransactionAwareProxyFactory;
|
||||
@@ -16,9 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.context.Lifecycle;
|
||||
import org.springframework.integration.annotation.ChannelAdapter;
|
||||
import org.springframework.integration.annotation.MessageEndpoint;
|
||||
import org.springframework.integration.annotation.Poller;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
@@ -31,7 +30,7 @@ public class RetryTransactionalPollingIntegrationTests implements ApplicationCon
|
||||
|
||||
private Log logger = LogFactory.getLog(getClass());
|
||||
|
||||
private List<String> list = new ArrayList<String>();
|
||||
private static List<String> list = new ArrayList<String>();
|
||||
|
||||
@Autowired
|
||||
private SimpleRecoverer recoverer;
|
||||
@@ -45,10 +44,14 @@ public class RetryTransactionalPollingIntegrationTests implements ApplicationCon
|
||||
bus = (Lifecycle) applicationContext;
|
||||
}
|
||||
|
||||
private volatile int count = 0;
|
||||
private static volatile int count = 0;
|
||||
|
||||
@Before
|
||||
public void clearLists() {
|
||||
list.clear();
|
||||
count = 0;
|
||||
}
|
||||
|
||||
@ChannelAdapter("requests")
|
||||
@Poller(interval=10, transactionManager="transactionManager")
|
||||
public String input() {
|
||||
logger.debug("Polling: " + count);
|
||||
if (list.isEmpty()) {
|
||||
@@ -57,7 +60,6 @@ public class RetryTransactionalPollingIntegrationTests implements ApplicationCon
|
||||
return list.remove(0);
|
||||
}
|
||||
|
||||
@ChannelAdapter("replies")
|
||||
public void output(String message) {
|
||||
count++;
|
||||
logger.debug("Handled: " + message);
|
||||
@@ -86,7 +88,7 @@ public class RetryTransactionalPollingIntegrationTests implements ApplicationCon
|
||||
.commaDelimitedListToStringArray("a,b,fail,fail,d,e")));
|
||||
service.setExpected(expected);
|
||||
waitForResults(bus, expected.size(), 60);
|
||||
waitForResults(bus, 6, 100); // (a,b), (fail), (fail), ([fail],d), (e,f)
|
||||
waitForResults(bus, 6, 100); // a, b, (fail, fail, [fail]), d, e
|
||||
assertEquals(6,service.getProcessed().size()); // a,b,fail,fail,d,e
|
||||
assertEquals(1,recoverer.getRecovered().size()); // fail
|
||||
assertEquals(expected, service.getProcessed());
|
||||
|
||||
@@ -8,6 +8,7 @@ import java.util.List;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.batch.support.transaction.TransactionAwareProxyFactory;
|
||||
@@ -15,9 +16,7 @@ import org.springframework.beans.BeansException;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.context.Lifecycle;
|
||||
import org.springframework.integration.annotation.ChannelAdapter;
|
||||
import org.springframework.integration.annotation.MessageEndpoint;
|
||||
import org.springframework.integration.annotation.Poller;
|
||||
import org.springframework.integration.annotation.ServiceActivator;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
@@ -31,13 +30,13 @@ public class TransactionalPollingIntegrationTests implements ApplicationContextA
|
||||
|
||||
private Log logger = LogFactory.getLog(getClass());
|
||||
|
||||
private List<String> processed = new ArrayList<String>();
|
||||
|
||||
private List<String> handled = new ArrayList<String>();
|
||||
|
||||
private List<String> expected;
|
||||
private static List<String> processed = new ArrayList<String>();
|
||||
|
||||
private List<String> list = new ArrayList<String>();
|
||||
private static List<String> handled = new ArrayList<String>();
|
||||
|
||||
private static List<String> expected = new ArrayList<String>();
|
||||
|
||||
private static List<String> list = new ArrayList<String>();
|
||||
|
||||
private Lifecycle bus;
|
||||
|
||||
@@ -45,14 +44,14 @@ public class TransactionalPollingIntegrationTests implements ApplicationContextA
|
||||
bus = (Lifecycle) applicationContext;
|
||||
}
|
||||
|
||||
private volatile int count = 0;
|
||||
private volatile static int count = 0;
|
||||
|
||||
@ServiceActivator(inputChannel = "requests", outputChannel = "replies")
|
||||
public String process(String message) {
|
||||
String result = message + ": " + count;
|
||||
logger.debug("Handling: " + message);
|
||||
if (count<expected.size()) {
|
||||
processed.add(message);
|
||||
if (count < expected.size()) {
|
||||
processed.add(message);
|
||||
count++;
|
||||
}
|
||||
if ("fail".equals(message)) {
|
||||
@@ -60,21 +59,26 @@ public class TransactionalPollingIntegrationTests implements ApplicationContextA
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@ChannelAdapter("requests")
|
||||
@Poller(interval=10,transactionManager="transactionManager")
|
||||
|
||||
public String input() {
|
||||
logger.debug("Polling: " + count);
|
||||
logger.debug("Polling: " + count + " of " + list.size());
|
||||
if (list.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return list.remove(0);
|
||||
}
|
||||
|
||||
@ChannelAdapter("replies")
|
||||
public void output(String message) {
|
||||
public void output(String message) {
|
||||
handled.add(message);
|
||||
logger.debug("Handled: " + message);
|
||||
logger.debug("Handled: " + message);
|
||||
}
|
||||
|
||||
@Before
|
||||
public void clearLists() {
|
||||
list.clear();
|
||||
handled.clear();
|
||||
processed.clear();
|
||||
count = 0;
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -82,10 +86,9 @@ public class TransactionalPollingIntegrationTests implements ApplicationContextA
|
||||
public void testSunnyDay() throws Exception {
|
||||
list = TransactionAwareProxyFactory.createTransactionalList(Arrays.asList(StringUtils
|
||||
.commaDelimitedListToStringArray("a,b,c,d,e,f,g,h,j,k")));
|
||||
expected = Arrays.asList(StringUtils
|
||||
.commaDelimitedListToStringArray("a,b,c,d"));
|
||||
expected = Arrays.asList(StringUtils.commaDelimitedListToStringArray("a,b,c,d"));
|
||||
waitForResults(bus, 4, 60);
|
||||
assertEquals(expected,processed);
|
||||
assertEquals(expected, processed);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -93,10 +96,9 @@ public class TransactionalPollingIntegrationTests implements ApplicationContextA
|
||||
public void testRollback() throws Exception {
|
||||
list = TransactionAwareProxyFactory.createTransactionalList(Arrays.asList(StringUtils
|
||||
.commaDelimitedListToStringArray("a,b,fail,d,e,f,g,h,j,k")));
|
||||
expected = Arrays.asList(StringUtils
|
||||
.commaDelimitedListToStringArray("a,b,fail,fail"));
|
||||
expected = Arrays.asList(StringUtils.commaDelimitedListToStringArray("a,b,fail,fail"));
|
||||
waitForResults(bus, 4, 30);
|
||||
assertEquals(expected,processed);
|
||||
assertEquals(expected, processed);
|
||||
assertEquals(2, handled.size()); // a,b
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,33 @@
|
||||
http://www.springframework.org/schema/integration
|
||||
http://www.springframework.org/schema/integration/spring-integration-1.0.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
|
||||
<import resource="TransactionalPollingIntegrationTests-context.xml"/>
|
||||
|
||||
<integration:annotation-config />
|
||||
|
||||
<integration:channel id="requests" />
|
||||
<integration:channel id="replies" />
|
||||
|
||||
<integration:service-activator ref="testCase" input-channel="requests" output-channel="replies" method="process"/>
|
||||
|
||||
<integration:inbound-channel-adapter
|
||||
ref="testCase" method="input" channel="requests">
|
||||
<integration:poller>
|
||||
<integration:interval-trigger interval="10" />
|
||||
<integration:advice-chain>
|
||||
<ref bean="txAdvice"/>
|
||||
<ref bean="repeatAdvice"/>
|
||||
</integration:advice-chain>
|
||||
</integration:poller>
|
||||
</integration:inbound-channel-adapter>
|
||||
<integration:outbound-channel-adapter
|
||||
ref="testCase" method="output" channel="replies" />
|
||||
|
||||
<bean id="testCase"
|
||||
class="org.springframework.batch.integration.retry.RepeatTransactionalPollingIntegrationTests" />
|
||||
|
||||
<bean id="transactionManager"
|
||||
class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
|
||||
|
||||
<tx:advice id="txAdvice">
|
||||
<tx:attributes><tx:method name="*"/></tx:attributes>
|
||||
</tx:advice>
|
||||
|
||||
@@ -10,7 +10,30 @@
|
||||
http://www.springframework.org/schema/integration/spring-integration-1.0.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
|
||||
|
||||
<import resource="TransactionalPollingIntegrationTests-context.xml"/>
|
||||
<integration:annotation-config />
|
||||
|
||||
<integration:channel id="requests" />
|
||||
<integration:channel id="replies" />
|
||||
|
||||
<integration:inbound-channel-adapter
|
||||
ref="testCase" method="input" channel="requests">
|
||||
<integration:poller>
|
||||
<integration:interval-trigger interval="10" />
|
||||
<integration:advice-chain>
|
||||
<ref bean="txAdvice"/>
|
||||
<ref bean="repeatAdvice"/>
|
||||
</integration:advice-chain>
|
||||
</integration:poller>
|
||||
</integration:inbound-channel-adapter>
|
||||
<integration:outbound-channel-adapter
|
||||
ref="testCase" method="output" channel="replies" />
|
||||
|
||||
<bean id="testCase"
|
||||
class="org.springframework.batch.integration.retry.RetryRepeatTransactionalPollingIntegrationTests" />
|
||||
|
||||
<bean id="transactionManager"
|
||||
class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
|
||||
|
||||
<tx:advice id="txAdvice">
|
||||
<tx:attributes>
|
||||
<tx:method name="*" />
|
||||
|
||||
@@ -10,7 +10,27 @@
|
||||
http://www.springframework.org/schema/integration/spring-integration-1.0.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
|
||||
|
||||
<import resource="TransactionalPollingIntegrationTests-context.xml" />
|
||||
<integration:annotation-config />
|
||||
|
||||
<integration:channel id="requests" />
|
||||
<integration:channel id="replies" />
|
||||
|
||||
<integration:inbound-channel-adapter
|
||||
ref="testCase" method="input" channel="requests">
|
||||
<integration:poller>
|
||||
<integration:interval-trigger interval="10" />
|
||||
<integration:transactional />
|
||||
</integration:poller>
|
||||
</integration:inbound-channel-adapter>
|
||||
<integration:outbound-channel-adapter
|
||||
ref="testCase" method="output" channel="replies" />
|
||||
|
||||
<bean id="testCase"
|
||||
class="org.springframework.batch.integration.retry.RetryTransactionalPollingIntegrationTests" />
|
||||
|
||||
<bean id="transactionManager"
|
||||
class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
|
||||
|
||||
<bean id="service" class="org.springframework.batch.integration.retry.SimpleService" />
|
||||
<bean id="recoverer" class="org.springframework.batch.integration.retry.SimpleRecoverer" />
|
||||
<bean id="retryAdvice" class="org.springframework.batch.retry.interceptor.StatefulRetryOperationsInterceptor">
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:integration="http://www.springframework.org/schema/integration"
|
||||
xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:integration="http://www.springframework.org/schema/integration"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xmlns:p="http://www.springframework.org/schema/p" 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-2.5.xsd
|
||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
|
||||
@@ -9,8 +11,26 @@
|
||||
http://www.springframework.org/schema/integration
|
||||
http://www.springframework.org/schema/integration/spring-integration-1.0.xsd
|
||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
|
||||
<integration:annotation-config/>
|
||||
<integration:channel id="requests"/>
|
||||
|
||||
<integration:annotation-config />
|
||||
|
||||
<integration:channel id="requests" />
|
||||
<integration:channel id="replies" />
|
||||
<bean id="transactionManager" class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
|
||||
|
||||
<integration:inbound-channel-adapter
|
||||
ref="testCase" method="input" channel="requests">
|
||||
<integration:poller>
|
||||
<integration:interval-trigger interval="10" />
|
||||
<integration:transactional />
|
||||
</integration:poller>
|
||||
</integration:inbound-channel-adapter>
|
||||
<integration:outbound-channel-adapter
|
||||
ref="testCase" method="output" channel="replies" />
|
||||
|
||||
<bean id="testCase"
|
||||
class="org.springframework.batch.integration.retry.TransactionalPollingIntegrationTests" />
|
||||
|
||||
<bean id="transactionManager"
|
||||
class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
|
||||
|
||||
</beans>
|
||||
Reference in New Issue
Block a user