Index: contribs/jersey-guice/src/test/java/com/sun/jersey/guice/AbstractGuiceGrizzlyTest.java =================================================================== --- contribs/jersey-guice/src/test/java/com/sun/jersey/guice/AbstractGuiceGrizzlyTest.java (revision 5580) +++ contribs/jersey-guice/src/test/java/com/sun/jersey/guice/AbstractGuiceGrizzlyTest.java (working copy) @@ -46,9 +46,16 @@ import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory; import junit.framework.TestCase; +import org.glassfish.grizzly.http.server.HttpHandler; import org.glassfish.grizzly.http.server.HttpServer; -import org.glassfish.grizzly.servlet.ServletHandler; +import org.glassfish.grizzly.servlet.FilterRegistration; +import org.glassfish.grizzly.servlet.ServletRegistration; +import org.glassfish.grizzly.servlet.WebappContext; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.ws.rs.core.UriBuilder; import java.io.IOException; import java.net.URI; @@ -90,18 +97,22 @@ public void startServer(Class c) { LOGGER.info("Starting grizzly..."); - - ServletHandler sa = new ServletHandler(); - - sa.addServletListener(c.getName()); - + WebappContext context = new WebappContext("TestContext", baseUri.getRawPath()); + context.addListener(c.getName()); f = new GuiceFilter(); - sa.addFilter(f, "guiceFilter", null); + FilterRegistration reg = context.addFilter("guiceFilter", f); + reg.addMappingForUrlPatterns(null, "/*"); + ServletRegistration sreg = context.addServlet("TestServlet", new HttpServlet() { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + } + }); + sreg.addMapping("/test/*"); + - sa.setContextPath(baseUri.getRawPath()); - try { - httpServer = GrizzlyServerFactory.createHttpServer(baseUri, sa); + httpServer = GrizzlyServerFactory.createHttpServer(baseUri, (HttpHandler) null); + context.deploy(httpServer); httpServer.start(); } catch (IOException ex) { throw new RuntimeException(ex); Index: contribs/spring/src/test/java/com/sun/jersey/spring/AbstractResourceTest.java =================================================================== --- contribs/spring/src/test/java/com/sun/jersey/spring/AbstractResourceTest.java (revision 5580) +++ contribs/spring/src/test/java/com/sun/jersey/spring/AbstractResourceTest.java (working copy) @@ -46,8 +46,10 @@ import com.sun.jersey.api.core.PackagesResourceConfig; import com.sun.jersey.spi.spring.container.servlet.SpringServlet; import com.sun.jersey.spring.tests.util.JerseyTestHelper; +import org.glassfish.grizzly.http.server.HttpHandler; import org.glassfish.grizzly.http.server.HttpServer; -import org.glassfish.grizzly.servlet.ServletHandler; +import org.glassfish.grizzly.servlet.ServletRegistration; +import org.glassfish.grizzly.servlet.WebappContext; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; @@ -105,18 +107,22 @@ */ private void startGrizzly(int port, String servletPath) throws Exception { LOGGER.info("Starting grizzly..."); - ServletHandler sa = new ServletHandler(); - sa.setServletInstance(SpringServlet.class.newInstance()); - sa.addServletListener("org.springframework.web.context.ContextLoaderListener"); - sa.addContextParameter("contextConfigLocation","classpath:"+_springConfig); + System.out.println("SERVLET PATH: " + servletPath); + WebappContext context = new WebappContext("TestContext"); + context.addListener("org.springframework.web.context.ContextLoaderListener"); + context.addContextInitParameter("contextConfigLocation","classpath:"+_springConfig); + ServletRegistration registration = + context.addServlet("SpringServlet", SpringServlet.class); if (!springManaged) { - sa.addInitParameter( "com.sun.jersey.config.property.resourceConfigClass", - PackagesResourceConfig.class.getName() ); - sa.addInitParameter( PackagesResourceConfig.PROPERTY_PACKAGES, - "com.sun.jersey.spring.jerseymanaged" ); + registration.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", + PackagesResourceConfig.class.getName()); + registration.setInitParameter(PackagesResourceConfig.PROPERTY_PACKAGES, + "com.sun.jersey.spring.jerseymanaged"); } - sa.setServletPath(servletPath); - httpServer = GrizzlyServerFactory.createHttpServer(new URI("http://localhost:" + port + "/" + servletPath), sa); + registration.addMapping(servletPath + "/*"); + + httpServer = GrizzlyServerFactory.createHttpServer(new URI("http://localhost:" + port + "/" + servletPath), (HttpHandler) null); + context.deploy(httpServer); httpServer.start(); } Index: contribs/spring/src/test/java/com/sun/jersey/spring/tests/AbstractTest.java =================================================================== --- contribs/spring/src/test/java/com/sun/jersey/spring/tests/AbstractTest.java (revision 5580) +++ contribs/spring/src/test/java/com/sun/jersey/spring/tests/AbstractTest.java (working copy) @@ -44,8 +44,10 @@ import com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory; import com.sun.jersey.spi.spring.container.servlet.SpringServlet; import com.sun.jersey.spring.tests.util.JerseyTestHelper; +import org.glassfish.grizzly.http.server.HttpHandler; import org.glassfish.grizzly.http.server.HttpServer; -import org.glassfish.grizzly.servlet.ServletHandler; +import org.glassfish.grizzly.servlet.ServletRegistration; +import org.glassfish.grizzly.servlet.WebappContext; import org.testng.annotations.AfterClass; import javax.ws.rs.core.UriBuilder; @@ -84,24 +86,19 @@ public void start(Map initParams) { String appConfig = this.getClass().getName(); appConfig = appConfig.replace(".", "/") + "-config.xml"; - try { stop(); - - ServletHandler sa = new ServletHandler(); - sa.setServletInstance(SpringServlet.class.newInstance()); - sa.setServletPath("/spring"); - + WebappContext context = new WebappContext("TestContext"); + ServletRegistration registration = + context.addServlet("SpringServlet", SpringServlet.class); + registration.addMapping("/spring/*"); if (initParams != null) { - for (Map.Entry e : initParams.entrySet()) { - sa.addInitParameter(e.getKey(), e.getValue()); - } + registration.setInitParameters(initParams); } - - sa.addServletListener("org.springframework.web.context.ContextLoaderListener"); - sa.addContextParameter("contextConfigLocation", "classpath:" + appConfig); - - httpServer = GrizzlyServerFactory.createHttpServer(BASE_URI, sa); + context.addListener("org.springframework.web.context.ContextLoaderListener"); + context.addContextInitParameter("contextConfigLocation", "classpath:" + appConfig); + httpServer = GrizzlyServerFactory.createHttpServer(BASE_URI, (HttpHandler) null); + context.deploy(httpServer); httpServer.start(); } catch (Exception e) { throw new RuntimeException(e); Index: jersey-grizzly2/src/main/java/com/sun/jersey/server/impl/container/grizzly2/GrizzlyContainer.java =================================================================== --- jersey-grizzly2/src/main/java/com/sun/jersey/server/impl/container/grizzly2/GrizzlyContainer.java (revision 5580) +++ jersey-grizzly2/src/main/java/com/sun/jersey/server/impl/container/grizzly2/GrizzlyContainer.java (working copy) @@ -54,7 +54,6 @@ import org.glassfish.grizzly.http.server.Request; import org.glassfish.grizzly.http.server.Response; import org.glassfish.grizzly.http.server.HttpHandler; -import org.glassfish.grizzly.http.util.Charsets; import com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory; @@ -64,6 +63,7 @@ import com.sun.jersey.spi.container.*; import com.sun.jersey.spi.inject.SingletonTypeInjectableProvider; +import org.glassfish.grizzly.http.util.Constants; /** * Grizzly 2.0 Jersey container. @@ -197,7 +197,7 @@ // TODO: this is terrible, there must be a way to obtain the original request URI! String originalURI = UriBuilder.fromPath( request.getRequest().getRequestURIRef() - .getOriginalRequestURIBC().toString(Charsets.DEFAULT_CHARSET)) + .getOriginalRequestURIBC().toString(Constants.DEFAULT_HTTP_CHARSET)) .build().toString(); String queryString = request.getQueryString(); @@ -210,7 +210,7 @@ try { final ContainerRequest cRequest = new ContainerRequest(_application, request.getMethod().getMethodString(), baseUri, requestUri, - getHeaders(request), request.getInputStream(true)); + getHeaders(request), request.getInputStream()); _application.handleRequest(cRequest, new Writer(response)); } catch (final IOException ex) { Index: jersey-grizzly2/src/main/java/com/sun/jersey/api/container/grizzly2/GrizzlyServerFactory.java =================================================================== --- jersey-grizzly2/src/main/java/com/sun/jersey/api/container/grizzly2/GrizzlyServerFactory.java (revision 5580) +++ jersey-grizzly2/src/main/java/com/sun/jersey/api/container/grizzly2/GrizzlyServerFactory.java (working copy) @@ -320,7 +320,9 @@ // Map the path to the processor. final ServerConfiguration config = server.getServerConfiguration(); - config.addHttpHandler(handler, u.getPath()); + if (handler != null) { + config.addHttpHandler(handler, u.getPath()); + } // Start the server. server.start(); Index: jersey-grizzly2/pom.xml =================================================================== --- jersey-grizzly2/pom.xml (revision 5580) +++ jersey-grizzly2/pom.xml (working copy) @@ -1,4 +1,3 @@ - 4.0.0 @@ -130,12 +129,12 @@ org.glassfish.grizzly grizzly-http - 2.1.2 + 2.2.1-SNAPSHOT org.glassfish.grizzly grizzly-http-server - 2.1.2 + 2.2.1-SNAPSHOT Index: jersey-test-framework/jersey-test-framework-grizzly2/src/main/java/com/sun/jersey/test/framework/spi/container/grizzly2/web/GrizzlyWebTestContainerFactory.java =================================================================== --- jersey-test-framework/jersey-test-framework-grizzly2/src/main/java/com/sun/jersey/test/framework/spi/container/grizzly2/web/GrizzlyWebTestContainerFactory.java (revision 5580) +++ jersey-test-framework/jersey-test-framework-grizzly2/src/main/java/com/sun/jersey/test/framework/spi/container/grizzly2/web/GrizzlyWebTestContainerFactory.java (working copy) @@ -46,11 +46,16 @@ import com.sun.jersey.test.framework.spi.container.TestContainer; import com.sun.jersey.test.framework.spi.container.TestContainerException; import com.sun.jersey.test.framework.spi.container.TestContainerFactory; +import org.glassfish.grizzly.http.server.HttpHandler; import org.glassfish.grizzly.http.server.HttpServer; -import org.glassfish.grizzly.servlet.ServletHandler; +import org.glassfish.grizzly.servlet.FilterRegistration; +import org.glassfish.grizzly.servlet.ServletRegistration; +import org.glassfish.grizzly.servlet.WebappContext; import javax.servlet.Servlet; import javax.ws.rs.core.UriBuilder; +import javax.servlet.http.HttpServlet; +import javax.servlet.ServletException; import java.io.IOException; import java.net.URI; import java.util.EventListener; @@ -94,7 +99,7 @@ final String servletPath; - final Class servletClass; + final Class servletClass; List filters = null; @@ -160,66 +165,77 @@ */ private void instantiateGrizzlyWebServer() { - final ServletHandler handler = new ServletHandler(); + String contextPathLocal; + if (contextPath != null && contextPath.length() > 0) { + if (!contextPath.startsWith("/")) { + contextPathLocal = "/" + contextPath; + } else { + contextPathLocal = contextPath; + } + } else { + contextPathLocal = ""; + } + String servletPathLocal; + if(servletPath != null && servletPath.length() > 0) { + if( !servletPath.startsWith("/") ) { + servletPathLocal = "/" + servletPath; + } else { + servletPathLocal = servletPath; + } + if (servletPathLocal.endsWith("/")) { + servletPathLocal += "*"; + } else { + servletPathLocal +="/*"; + } + } else { + servletPathLocal = "/*"; + } - Servlet servletInstance; - if( servletClass != null) { - try { - servletInstance = (Servlet) servletClass.newInstance(); - } catch (InstantiationException ex) { - throw new TestContainerException(ex); - } catch (IllegalAccessException ex) { - throw new TestContainerException(ex); + WebappContext context = + new WebappContext("TestContext", contextPathLocal); + + if (servletClass != null) { + ServletRegistration registration = + context.addServlet(servletClass.getName(), servletClass); + for(String initParamName : initParams.keySet()) { + registration.setInitParameter(initParamName, initParams.get(initParamName)); } - handler.setServletInstance(servletInstance); + + + registration.addMapping(servletPathLocal); + } else { + ServletRegistration registration = + context.addServlet("default", new HttpServlet() { + public void service() throws ServletException { + } + }); + registration.addMapping(""); } for(Class eventListener : eventListeners) { - handler.addServletListener(eventListener.getName()); + context.addListener(eventListener); } for(String contextParamName : contextParams.keySet()) { - handler.addContextParameter(contextParamName, contextParams.get(contextParamName)); + context.addContextInitParameter(contextParamName, contextParams.get(contextParamName)); } - for(String initParamName : initParams.keySet()) { - handler.addInitParameter(initParamName, initParams.get(initParamName)); - } - if(contextPath != null && contextPath.length() > 0) { - if( !contextPath.startsWith("/") ) { - handler.setContextPath("/" + contextPath); - } else { - handler.setContextPath(contextPath); - } - } - - if(servletPath != null && servletPath.length() > 0) { - if( !servletPath.startsWith("/") ) { - handler.setServletPath("/" + servletPath); - } else { - handler.setServletPath(servletPath); - } - } - // Filter support if ( filters!=null ) { - try { - for(WebAppDescriptor.FilterDescriptor d : this.filters) { - handler.addFilter(d.getFilterClass().newInstance(), d.getFilterName(), d.getInitParams()); - } - } catch (InstantiationException ex) { - throw new TestContainerException(ex); - } catch (IllegalAccessException ex) { - throw new TestContainerException(ex); + for (WebAppDescriptor.FilterDescriptor d : this.filters) { + FilterRegistration freg = context.addFilter(d.getFilterName(), d.getFilterClass()); + freg.setInitParameters(d.getInitParams()); + freg.addMappingForUrlPatterns(null, servletPathLocal); } } try { - httpServer = GrizzlyServerFactory.createHttpServer(baseUri, handler); + httpServer = GrizzlyServerFactory.createHttpServer(baseUri, (HttpHandler) null); + context.deploy(httpServer); } catch(IOException ioe) { throw new TestContainerException(ioe); } } } -} \ No newline at end of file +} Index: jersey-grizzly2-servlet/src/main/java/com/sun/jersey/api/container/grizzly2/servlet/GrizzlyWebContainerFactory.java =================================================================== --- jersey-grizzly2-servlet/src/main/java/com/sun/jersey/api/container/grizzly2/servlet/GrizzlyWebContainerFactory.java (revision 5580) +++ jersey-grizzly2-servlet/src/main/java/com/sun/jersey/api/container/grizzly2/servlet/GrizzlyWebContainerFactory.java (working copy) @@ -39,12 +39,12 @@ */ package com.sun.jersey.api.container.grizzly2.servlet; -import com.sun.jersey.api.container.ContainerException; import com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory; import com.sun.jersey.api.core.ClasspathResourceConfig; import com.sun.jersey.spi.container.servlet.ServletContainer; import org.glassfish.grizzly.http.server.HttpServer; -import org.glassfish.grizzly.servlet.ServletHandler; +import org.glassfish.grizzly.servlet.ServletRegistration; +import org.glassfish.grizzly.servlet.WebappContext; import javax.servlet.Servlet; import java.io.File; @@ -219,18 +219,6 @@ if (u == null) throw new IllegalArgumentException("The URI must not be null"); - final ServletHandler handler = new ServletHandler(); - if (initParams == null) { - handler.addInitParameter(ClasspathResourceConfig.PROPERTY_CLASSPATH, - System.getProperty("java.class.path").replace(File.pathSeparatorChar, ';')); - } else { - for (Map.Entry e : initParams.entrySet()) { - handler.addInitParameter(e.getKey(), e.getValue()); - } - } - - handler.setServletInstance(getInstance(c)); - String path = u.getPath(); if (path == null) throw new IllegalArgumentException("The URI path, of the URI " + u + @@ -245,17 +233,21 @@ if (path.length() > 1) { if (path.endsWith("/")) path = path.substring(0, path.length() - 1); - handler.setContextPath(path); } - return GrizzlyServerFactory.createHttpServer(u, handler); + WebappContext context = new WebappContext("", path); + ServletRegistration registration = context.addServlet(c.getName(), c); + registration.addMapping(""); + if (initParams == null) { + registration.setInitParameter(ClasspathResourceConfig.PROPERTY_CLASSPATH, + System.getProperty("java.class.path").replace(File.pathSeparatorChar, ';')); + } else { + registration.setInitParameters(initParams); + } + + HttpServer server = GrizzlyServerFactory.createHttpServer(u); + context.deploy(server); + return server; } - private static Servlet getInstance(Class c){ - try{ - return c.newInstance(); - } catch (Exception e) { - throw new ContainerException(e); - } - } } \ No newline at end of file Index: jersey-grizzly2-servlet/pom.xml =================================================================== --- jersey-grizzly2-servlet/pom.xml (revision 5580) +++ jersey-grizzly2-servlet/pom.xml (working copy) @@ -1,4 +1,3 @@ - 4.0.0 @@ -129,7 +128,7 @@ org.glassfish.grizzly grizzly-http-servlet - 2.1.2 + 2.2.1-SNAPSHOT com.sun.jersey Index: samples/pom.xml =================================================================== --- samples/pom.xml (revision 5580) +++ samples/pom.xml (working copy) @@ -82,7 +82,9 @@ generate-wadl groovy helloworld + helloworld-webapp https-clientserver-grizzly https-server-glassfish Index: samples/https-clientserver-grizzly/src/main/java/com/sun/jersey/samples/https_grizzly/Server.java =================================================================== --- samples/https-clientserver-grizzly/src/main/java/com/sun/jersey/samples/https_grizzly/Server.java (revision 5580) +++ samples/https-clientserver-grizzly/src/main/java/com/sun/jersey/samples/https_grizzly/Server.java (working copy) @@ -45,7 +45,8 @@ import com.sun.jersey.samples.https_grizzly.auth.SecurityFilter; import com.sun.jersey.spi.container.servlet.ServletContainer; import org.glassfish.grizzly.http.server.HttpServer; -import org.glassfish.grizzly.servlet.ServletHandler; +import org.glassfish.grizzly.servlet.ServletRegistration; +import org.glassfish.grizzly.servlet.WebappContext; import org.glassfish.grizzly.ssl.SSLContextConfigurator; import org.glassfish.grizzly.ssl.SSLEngineConfigurator; @@ -82,20 +83,17 @@ protected static void startServer() { // add Jersey resource servlet - - ServletHandler jerseyAdapter = new ServletHandler(); - jerseyAdapter.addInitParameter("com.sun.jersey.config.property.packages", + WebappContext context = new WebappContext("context"); + ServletRegistration registration = + context.addServlet("ServletContainer", ServletContainer.class); + registration.setInitParameter("com.sun.jersey.config.property.packages", "com.sun.jersey.samples.https_grizzly.resource;com.sun.jersey.samples.https_grizzly.auth"); - jerseyAdapter.setContextPath("/"); - jerseyAdapter.setServletInstance(new ServletContainer()); // add security filter (which handles http basic authentication) - - jerseyAdapter.addInitParameter(ResourceConfig.PROPERTY_CONTAINER_REQUEST_FILTERS, + registration.setInitParameter(ResourceConfig.PROPERTY_CONTAINER_REQUEST_FILTERS, SecurityFilter.class.getName()); // Grizzly ssl configuration - SSLContextConfigurator sslContext = new SSLContextConfigurator(); // set up security context @@ -108,13 +106,14 @@ webServer = GrizzlyServerFactory.createHttpServer( getBaseURI(), - jerseyAdapter, + null, true, new SSLEngineConfigurator(sslContext).setClientMode(false).setNeedClientAuth(true) ); // start Grizzly embedded server // System.out.println("Jersey app started. Try out " + BASE_URI + "\nHit CTRL + C to stop it..."); + context.deploy(webServer); webServer.start(); } catch (Exception ex) {