Browse Source

Test for actual HttpInvokerProxyFactoryBean usage with plain FactoryBean return type

Issue: SPR-12141
pull/598/head
Juergen Hoeller 11 years ago
parent
commit
f4f7f40f18
  1. 41
      spring-web/src/test/java/org/springframework/remoting/httpinvoker/HttpInvokerFactoryBeanIntegrationTests.java

41
spring-web/src/test/java/org/springframework/remoting/httpinvoker/HttpInvokerFactoryBeanIntegrationTests.java

@ -27,6 +27,7 @@ import org.springframework.context.annotation.Bean; @@ -27,6 +27,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.core.env.Environment;
import org.springframework.remoting.support.RemoteInvocation;
import org.springframework.remoting.support.RemoteInvocationResult;
import org.springframework.scheduling.annotation.Async;
@ -60,6 +61,17 @@ public class HttpInvokerFactoryBeanIntegrationTests { @@ -60,6 +61,17 @@ public class HttpInvokerFactoryBeanIntegrationTests {
myBean.myService.handleAsync();
}
@Test
public void withConfigurationClassWithPlainFactoryBean() {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
context.register(ConfigWithPlainFactoryBean.class);
context.refresh();
MyBean myBean = context.getBean("myBean", MyBean.class);
assertSame(context.getBean("myService"), myBean.myService);
myBean.myService.handle();
myBean.myService.handleAsync();
}
public interface MyService {
@ -93,7 +105,6 @@ public class HttpInvokerFactoryBeanIntegrationTests { @@ -93,7 +105,6 @@ public class HttpInvokerFactoryBeanIntegrationTests {
HttpInvokerProxyFactoryBean factory = new HttpInvokerProxyFactoryBean();
factory.setServiceUrl("/svc/dummy");
factory.setServiceInterface(MyService.class);
Thread thread = Thread.currentThread();
factory.setHttpInvokerRequestExecutor(new HttpInvokerRequestExecutor() {
@Override
public RemoteInvocationResult executeRequest(HttpInvokerClientConfiguration config, RemoteInvocation invocation) {
@ -109,4 +120,32 @@ public class HttpInvokerFactoryBeanIntegrationTests { @@ -109,4 +120,32 @@ public class HttpInvokerFactoryBeanIntegrationTests {
}
}
@Configuration
static class ConfigWithPlainFactoryBean {
@Autowired
Environment env;
@Bean
public MyBean myBean() {
return new MyBean();
}
@Bean
public FactoryBean myService() {
String name = env.getProperty("testbean.name");
HttpInvokerProxyFactoryBean factory = new HttpInvokerProxyFactoryBean();
factory.setServiceUrl("/svc/" + name);
factory.setServiceInterface(MyService.class);
factory.setHttpInvokerRequestExecutor(new HttpInvokerRequestExecutor() {
@Override
public RemoteInvocationResult executeRequest(HttpInvokerClientConfiguration config, RemoteInvocation invocation) {
return new RemoteInvocationResult(null);
}
});
return factory;
}
}
}

Loading…
Cancel
Save