From 9dee3b104cccba41cab0f4369bec444485da7014 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Tue, 17 Dec 2013 18:18:33 +0000
Subject: [PATCH] #333 feature - Added Guice support to jersey framework

---
 securis/src/main/java/net/curisit/securis/MainApp.java |   41 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/MainApp.java b/securis/src/main/java/net/curisit/securis/MainApp.java
index c241b4c..5b00695 100644
--- a/securis/src/main/java/net/curisit/securis/MainApp.java
+++ b/securis/src/main/java/net/curisit/securis/MainApp.java
@@ -1,18 +1,55 @@
 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 HttpServer mHttpServer;
+	private static HttpServer mHttpServer;
+	private static Injector injector = null;
 
-	public static void main(String[] args) {
+	@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);
 	}
 
 }

--
Gitblit v1.3.2