From 783871a42a9136caf79cd95e9c76a3109dbee61b Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Tue, 24 Sep 2013 07:55:27 -0700 Subject: [PATCH] Restore 'maven.java.net' repository Restore 'maven.java.net' repository accidentally removed in commit 2337e763. --- .../src/test/java/wibble/Spr10918Tests.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 spring-context/src/test/java/wibble/Spr10918Tests.java diff --git a/spring-context/src/test/java/wibble/Spr10918Tests.java b/spring-context/src/test/java/wibble/Spr10918Tests.java new file mode 100644 index 00000000000..665fe335d2f --- /dev/null +++ b/spring-context/src/test/java/wibble/Spr10918Tests.java @@ -0,0 +1,49 @@ + +package wibble; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import org.junit.Test; +import org.springframework.beans.factory.support.BeanDefinitionRegistry; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; +import org.springframework.core.type.AnnotationMetadata; + +import static org.hamcrest.CoreMatchers.*; +import static org.junit.Assert.*; + +public class Spr10918Tests { + + @Test + public void invokesRegistrarOnlyOnce() { + final AnnotationConfigApplicationContext myContext = new AnnotationConfigApplicationContext(); + myContext.scan(getClass().getPackage().getName()); + myContext.refresh(); + assertThat(TestImport.invocations, is(1)); + myContext.close(); + } + + @Import(TestImport.class) + @Retention(RetentionPolicy.RUNTIME) + public @interface AnotherImport { + } + + @Configuration + @AnotherImport + public static class TestConfiguration { + } + + public static class TestImport implements ImportBeanDefinitionRegistrar { + + static int invocations = 0; + + @Override + public void registerBeanDefinitions(AnnotationMetadata anImport, + BeanDefinitionRegistry aRegistry) { + invocations++; + } + } +}