Guest User

Untitled

a guest
May 25th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. package org.sonatype.plexus.template;
  2.  
  3. import java.net.URLClassLoader;
  4.  
  5. import org.sonatype.guice.bean.reflect.ClassSpace;
  6. import org.sonatype.guice.bean.reflect.URLClassSpace;
  7. import org.sonatype.guice.bean.scanners.QualifiedScannerModule;
  8.  
  9. import com.google.inject.Injector;
  10. import com.google.inject.InjectorBuilder;
  11. import com.google.inject.Stage;
  12.  
  13. public class TychoInjector {
  14.  
  15. private Injector injector;
  16.  
  17. public TychoInjector() {
  18. URLClassLoader loader = (URLClassLoader) getClass().getClassLoader();
  19. final ClassSpace space = new URLClassSpace(loader);
  20. final InjectorBuilder injectorBuilder = new InjectorBuilder();
  21. injectorBuilder.stage(Stage.PRODUCTION); // TODO: hack to get eager singletons
  22. injectorBuilder.addModules(new QualifiedScannerModule(space));
  23. injector = injectorBuilder.build();
  24. }
  25.  
  26. public <T> T lookup(Class<T> key) {
  27. return injector.getInstance(key);
  28. }
  29. }
Add Comment
Please, Sign In to add comment