package groovy.java;
import groovy.groovy.GroovyReturnsSubclassTests;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* Same as {@link GroovyReturnsSubclassTests} except it is .java file.
* Demonstrates that this issue is probably Groovy related?
*
* @author Rob Winch
* @see GroovyReturnsSubclassTests
* @see GroovyReturnsSubclassTests
*/
public class JavaReturnsSubclassTests {
private AnnotationConfigApplicationContext context;
@Test
public void returnsSubclass() {
for(int i=0;i < 1;i++) {
try {
context = new AnnotationConfigApplicationContext(MyConfig.class);
} finally {
if(context != null) {
context.close();
}
}
}
}
@Configuration
static class MyConfig extends BaseConfig {
@Bean
public String builder() throws Exception {
return null;
}
}
@Configuration
static abstract class BaseConfig {
public abstract Object builder() throws Exception;
}
}