From cc3f9054f478d9698e240bfb644d0d9de9a37c85 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Thu, 19 Dec 2013 14:10:36 +0000
Subject: [PATCH] #333 feature - Refactoring to use JEtty and RestEasy with Guice
---
securis/src/main/java/net/curisit/securis/MainApp.java | 50 +++++++++++++++++++++++++++++++++-----------------
1 files changed, 33 insertions(+), 17 deletions(-)
diff --git a/securis/src/main/java/net/curisit/securis/MainApp.java b/securis/src/main/java/net/curisit/securis/MainApp.java
index 5b00695..0cfe9b7 100644
--- a/securis/src/main/java/net/curisit/securis/MainApp.java
+++ b/securis/src/main/java/net/curisit/securis/MainApp.java
@@ -1,15 +1,19 @@
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.RequestsModule;
import net.curisit.securis.ioc.SecurisModule;
-import org.glassfish.grizzly.http.server.HttpServer;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.servlet.FilterHolder;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
+import org.jboss.resteasy.plugins.guice.GuiceResteasyBootstrapServletContextListener;
+import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -17,39 +21,51 @@
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 Server server;
private static Injector injector = null;
@Inject
@Named("base-uri")
private URI uri;
- public static void main(String[] args) throws IOException, InterruptedException {
+ public static void main(String[] args) throws Exception {
log.info("SeCuris init...");
- injector = Guice.createInjector(Arrays.asList(new SecurisModule()));
- mHttpServer = startServer(injector.getInstance(Key.get(URI.class, Names.named("base-uri"))));
+ injector = Guice.createInjector(new SecurisModule(), new RequestsModule());
+ // createBiDirectionalGuiceBridge(ServiceLocatorFactory.getInstance().create("default"), new SecurisModule());
+ 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);
+ private static void startServer(URI uri) throws Exception {
+ System.out.println("Starting jetty...");
+ // ResourceConfig rc = new PackagesResourceConfig("net.curisit.securis.services", "org.codehaus.jackson.jaxrs");
+ // IoCComponentProviderFactory ioc = new GuiceComponentProviderFactory(rc, injector);
+ server = new Server(9997);
+ ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
+ context.setContextPath("/");
+ context.addEventListener(injector.getInstance(GuiceResteasyBootstrapServletContextListener.class));
- return GrizzlyServerFactory.createHttpServer(uri, rc, ioc);
+ ServletHolder sh = new ServletHolder(HttpServletDispatcher.class);
+ context.setInitParameter("resteasy.role.based.security", "true");
+ context.addFilter(new FilterHolder(injector.getInstance(AuthFilter.class)), "/*", null);
+ // context.addServlet(DefaultServlet.class, "/*");
+ context.addServlet(sh, "/*");
+
+ server.setHandler(context);
+ server.start();
+ server.join();
+ // rc.packages("net.curisit.securis.services", "org.codehaus.jackson.jaxrs");
+
+ // new CLStaticHttpHandler(new URLClassLoader(new URL[] {new URL("file:///home/username/staticfiles.jar")})), "/www")
+
}
}
--
Gitblit v1.3.2