diff --git a/src/main/java/org/springframework/guice/annotation/ModuleRegistryConfiguration.java b/src/main/java/org/springframework/guice/annotation/ModuleRegistryConfiguration.java index be30427..5ab7ceb 100644 --- a/src/main/java/org/springframework/guice/annotation/ModuleRegistryConfiguration.java +++ b/src/main/java/org/springframework/guice/annotation/ModuleRegistryConfiguration.java @@ -197,6 +197,7 @@ class ModuleRegistryConfiguration .filter(e -> !Arrays.stream(modulesToFilter) .filter(ex -> (e.getSource().toString().contains(ex))).findFirst().isPresent()) .collect(Collectors.toList()); + modules = Collections.singletonList(Elements.getModule(elements)); } for (Element e : elements) { if (e instanceof Binding) { diff --git a/src/test/java/org/springframework/guice/ModuleFilteringTests.java b/src/test/java/org/springframework/guice/ModuleFilteringTests.java index 9c8356e..82290fc 100644 --- a/src/test/java/org/springframework/guice/ModuleFilteringTests.java +++ b/src/test/java/org/springframework/guice/ModuleFilteringTests.java @@ -2,6 +2,7 @@ package org.springframework.guice; import static org.junit.Assert.assertNotNull; +import com.google.inject.*; import org.junit.AfterClass; import org.junit.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; @@ -11,8 +12,9 @@ import org.springframework.context.annotation.Configuration; import org.springframework.guice.ModuleFilteringTests.FilterThisModule; import org.springframework.guice.annotation.EnableGuiceModules; -import com.google.inject.AbstractModule; -import com.google.inject.Module; +import org.springframework.guice.annotation.InjectorFactory; + +import java.util.List; public class ModuleFilteringTests { @@ -21,7 +23,7 @@ public class ModuleFilteringTests { System.clearProperty("spring.guice.modules.exclude"); } - @Test + @Test(expected = RuntimeException.class) public void verifyAllIsWellWhenNoModulesFiltered() { System.setProperty("spring.guice.modules.exclude", "FilterSomeNonExistentModule"); AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext( @@ -44,10 +46,13 @@ public class ModuleFilteringTests { } public static interface SomeInterface {} - + public static class SomeDependency implements SomeInterface { + public SomeDependency() { + throw new RuntimeException("Should never be instantiated"); + } } - + public static class FilterThisModule extends AbstractModule { @Override protected void configure() { @@ -59,15 +64,20 @@ public class ModuleFilteringTests { @EnableGuiceModules @Configuration class ModuleFilteringTestsConfig { - + + @Bean + public InjectorFactory injectorFactory() { + return modules -> Guice.createInjector(Stage.PRODUCTION, modules); + } + @Bean public Module module() { return new AbstractModule() { - + @Override protected void configure() { - install(new FilterThisModule()); + install(new FilterThisModule()); } }; } -} \ No newline at end of file +}