package net.curisit.securis; import java.io.IOException; import java.net.URI; import java.util.Arrays; import javax.inject.Inject; import javax.inject.Named; import net.curisit.securis.ioc.SecurisModule; import org.glassfish.grizzly.http.server.HttpServer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Key; import com.google.inject.name.Names; import com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory; import com.sun.jersey.api.core.PackagesResourceConfig; import com.sun.jersey.api.core.ResourceConfig; import com.sun.jersey.core.spi.component.ioc.IoCComponentProviderFactory; import com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory; public class MainApp { private static final Logger log = LoggerFactory.getLogger(MainApp.class); private static HttpServer mHttpServer; private static Injector injector = null; @Inject @Named("base-uri") private URI uri; public static void main(String[] args) throws IOException, InterruptedException { log.info("SeCuris init..."); injector = Guice.createInjector(Arrays.asList(new SecurisModule())); mHttpServer = startServer(injector.getInstance(Key.get(URI.class, Names.named("base-uri")))); while (true) { Thread.currentThread().sleep(100); } } private static HttpServer startServer(URI uri) throws IOException { System.out.println("Starting grizzly2..."); ResourceConfig rc = new PackagesResourceConfig("net.curisit.securis.services", "org.codehaus.jackson.jaxrs"); IoCComponentProviderFactory ioc = new GuiceComponentProviderFactory(rc, injector); return GrizzlyServerFactory.createHttpServer(uri, rc, ioc); } }