From 1825c933d08cf6c85f201392c8f55ebdf2eaed27 Mon Sep 17 00:00:00 2001 From: Taylor Wicksell Date: Wed, 24 May 2017 16:59:18 -0700 Subject: [PATCH] set resource description for beans provided by Guice modules --- .../annotation/ModuleRegistryConfiguration.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/springframework/guice/annotation/ModuleRegistryConfiguration.java b/src/main/java/org/springframework/guice/annotation/ModuleRegistryConfiguration.java index 6c216e3..b65a48f 100644 --- a/src/main/java/org/springframework/guice/annotation/ModuleRegistryConfiguration.java +++ b/src/main/java/org/springframework/guice/annotation/ModuleRegistryConfiguration.java @@ -41,6 +41,7 @@ import com.google.inject.Injector; import com.google.inject.Key; import com.google.inject.Module; import com.google.inject.name.Named; +import com.google.inject.spi.ElementSource; @Configuration @Order(Ordered.HIGHEST_PRECEDENCE + 10) @@ -60,13 +61,21 @@ class ModuleRegistryConfiguration implements BeanDefinitionRegistryPostProcessor continue; } - entry.getValue().getKey().toString(); + Binding binding = entry.getValue(); + Key key = entry.getKey(); + Object source = binding.getSource(); + RootBeanDefinition bean = new RootBeanDefinition(GuiceFactoryBean.class); ConstructorArgumentValues args = new ConstructorArgumentValues(); - args.addIndexedArgumentValue(0, entry.getKey().getTypeLiteral().getRawType()); - args.addIndexedArgumentValue(1, entry.getValue().getProvider()); + args.addIndexedArgumentValue(0, key.getTypeLiteral().getRawType()); + args.addIndexedArgumentValue(1, binding.getProvider()); bean.setConstructorArgumentValues(args); - registry.registerBeanDefinition(extractName(entry.getValue().getKey()), bean); + if (source != null && source instanceof ElementSource) { + bean.setResourceDescription(((ElementSource) source).getDeclaringSource().toString()); + } else { + bean.setResourceDescription("spring-guice"); + } + registry.registerBeanDefinition(extractName(key), bean); } if(injector.getParent() != null)