using google guice instead of weld

This commit is contained in:
Sebastian Sdorra
2010-09-11 14:28:10 +02:00
parent d8f206fda1
commit 64253bcb4f
9 changed files with 139 additions and 78 deletions

View File

@@ -0,0 +1,80 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package sonia.scm;
//~--- non-JDK imports --------------------------------------------------------
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.servlet.GuiceServletContextListener;
import com.google.inject.servlet.ServletModule;
import sonia.scm.api.rest.UriExtensionsConfig;
import sonia.scm.security.Authenticator;
import sonia.scm.security.DemoAuthenticator;
//~--- JDK imports ------------------------------------------------------------
import com.sun.jersey.api.core.PackagesResourceConfig;
import com.sun.jersey.api.core.ResourceConfig;
import com.sun.jersey.guice.spi.container.servlet.GuiceContainer;
import com.sun.jersey.spi.container.servlet.ServletContainer;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author Sebastian Sdorra
*/
public class ContextListener extends GuiceServletContextListener
{
/** Field description */
public static final String REST_MAPPING = "/api/rest/*";
/** Field description */
public static final String REST_PACKAGE = "sonia.scm.api.rest";
//~--- get methods ----------------------------------------------------------
/**
* Method description
*
*
* @return
*/
@Override
protected Injector getInjector()
{
return Guice.createInjector(new ServletModule()
{
@Override
protected void configureServlets()
{
bind(Authenticator.class).to(DemoAuthenticator.class);
Map<String, String> params = new HashMap<String, String>();
/*
* params.put("com.sun.jersey.spi.container.ContainerRequestFilters",
* "com.sun.jersey.api.container.filter.LoggingFilter");
* params.put("com.sun.jersey.spi.container.ContainerResponseFilters",
* "com.sun.jersey.api.container.filter.LoggingFilter");
* params.put("com.sun.jersey.config.feature.Trace", "true");
* params.put("com.sun.jersey.config.feature.TracePerRequest", "true");
*/
params.put(ResourceConfig.FEATURE_REDIRECT, Boolean.TRUE.toString());
params.put(ServletContainer.RESOURCE_CONFIG_CLASS,
UriExtensionsConfig.class.getName());
params.put(PackagesResourceConfig.PROPERTY_PACKAGES, REST_PACKAGE);
serve(REST_MAPPING).with(GuiceContainer.class, params);
}
});
}
}

View File

@@ -9,6 +9,8 @@ package sonia.scm.api.rest.resources;
//~--- non-JDK imports --------------------------------------------------------
import com.google.inject.Inject;
import sonia.scm.SCMContext;
import sonia.scm.ScmState;
import sonia.scm.User;
@@ -17,9 +19,6 @@ import sonia.scm.security.Authenticator;
//~--- JDK imports ------------------------------------------------------------
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.FormParam;
@@ -36,7 +35,6 @@ import javax.ws.rs.core.Response;
*
* @author Sebastian Sdorra
*/
@Singleton
@Path("authentication")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public class AuthenticationResource

View File

@@ -16,8 +16,6 @@ import sonia.scm.group.Group;
import java.util.Collection;
import java.util.LinkedHashMap;
import javax.inject.Singleton;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@@ -26,7 +24,6 @@ import javax.ws.rs.core.MediaType;
*
* @author Sebastian Sdorra
*/
@Singleton
@Path("groups")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public class GroupResource extends AbstractResource<Group>

View File

@@ -18,7 +18,6 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import javax.inject.Singleton;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@@ -28,7 +27,6 @@ import javax.ws.rs.core.MediaType;
*
* @author Sebastian Sdorra
*/
@Singleton
@Path("repositories")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public class RepositoryResource extends AbstractResource<Repository>

View File

@@ -9,6 +9,7 @@ package sonia.scm.security;
//~--- non-JDK imports --------------------------------------------------------
import com.google.inject.Inject;
import sonia.scm.User;
//~--- JDK imports ------------------------------------------------------------
@@ -17,7 +18,6 @@ import java.io.IOException;
import java.security.Principal;
import javax.inject.Inject;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
@@ -25,7 +25,6 @@ import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
@@ -34,7 +33,6 @@ import javax.servlet.http.HttpServletResponse;
*
* @author Sebastian Sdorra
*/
@WebFilter(urlPatterns = "/api/rest/*")
public class SecurityFilter implements Filter
{