package com.netflix.governator.guice.transformer; import java.util.Collection; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.Module; import com.google.inject.spi.DefaultElementVisitor; import com.google.inject.spi.Element; import com.google.inject.spi.Elements; import com.google.inject.spi.StaticInjectionRequest; import com.netflix.governator.guice.ModuleTransformer; public class WarnAboutStaticInjections implements ModuleTransformer { private static Logger LOG = LoggerFactory.getLogger(WarnAboutStaticInjections.class); @Override public Collection<Module> call(Collection<Module> modules) { for(Element element : Elements.getElements(modules)) { element.acceptVisitor(new DefaultElementVisitor<Void>() { @Override public Void visit(StaticInjectionRequest request) { LOG.warn("You shouldn't be using static injection at: " + request.getSource()); return null; } }); } return modules; } }