package com.netflix.governator.guice.transformer; import java.util.Collection; import java.util.List; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; 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 StripStaticInjections implements ModuleTransformer { @Override public Collection<Module> call(Collection<Module> modules) { final List<Element> noStatics = Lists.newArrayList(); for(Element element : Elements.getElements(modules)) { element.acceptVisitor(new DefaultElementVisitor<Void>() { @Override public Void visit(StaticInjectionRequest request) { // override to not call visitOther return null; } @Override public Void visitOther(Element element) { noStatics.add(element); return null; } }); } return ImmutableList.<Module>of(Elements.getModule(noStatics)); } }