package com.github.signed.tryanderror.jersey; import com.github.signed.tryanderror.jersey.resources.GuiceResourceProvider; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Module; import com.google.inject.servlet.GuiceServletContextListener; import com.sun.jersey.guice.JerseyServletModule; import java.util.ArrayList; import java.util.List; import java.util.ServiceLoader; public class GuiceConfig extends GuiceServletContextListener { @Override protected Injector getInjector() { System.out.println("\ncreate the injector\n"); JerseyServletModule jerseyServletModule = new ResourceModule(); ServiceLoader<GuiceResourceProvider> serviceLoader = ServiceLoader.load(GuiceResourceProvider.class); List<Module> modules = new ArrayList<Module>(); modules.add(jerseyServletModule); for(GuiceResourceProvider provider:serviceLoader){ modules.add(provider.getResourceModule()); } return Guice.createInjector(modules); } }