C:\Source\grizzly\modules\http-servlet\src\test\java\com\sun\grizzly\http\ComplexGrizzlyWebServerTest.java
C:\Source\grizzly\modules\http-servlet\src\test\java\com\sun\grizzly\http\ComplexGrizzlyWebServerTest.java
At revision: 2964
2009/4/14 Jeanfrancois Arcand <Jeanfrancois.Arcand_at_sun.com>
> Salut,
>
> Survivant 00 wrote:
>
>> here a little unit test modified to test this case
>>
>> context = /test
>> servletPath = /servlet1
>> mapping = *.1
>> mapping = /1
>> mapping = *.a
>>
>> URL = http://localhost:port/test/servlet1/test.1
>> URL = http://localhost:port/test/servlet1/1
>> URL = http://localhost:port/test/servlet1/test.a
>>
>> when I try the 3th test.. I obtain the response for http://localhost:port/test/servlet1/test.1
>> instead. For me it's a bug.. or it's me that didn't set the
>> ServletAdapter correctly.
>>
>> someone can test it please.
>>
>
> Commit your code but put __testComplexAliasMapping() (so the test is not
> executed). I will take a look.
>
> Thanks!!
>
> -- Jeanfrancois
>
>
>
>>
>> /*
>> *
>> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
>> *
>> * Copyright 2007-2008 Sun Microsystems, Inc. All rights reserved.
>> *
>> * The contents of this file are subject to the terms of either the GNU
>> * General Public License Version 2 only ("GPL") or the Common Development
>> * and Distribution License("CDDL") (collectively, the "License"). You
>> * may not use this file except in compliance with the License. You can
>> obtain
>> * a copy of the License at
>> https://glassfish.dev.java.net/public/CDDL+GPL.html
>> * or glassfish/bootstrap/legal/LICENSE.txt. See the License for the
>> specific
>> * language governing permissions and limitations under the License.
>> *
>> * When distributing the software, include this License Header Notice in
>> each
>> * file and include the License file at
>> glassfish/bootstrap/legal/LICENSE.txt.
>> * Sun designates this particular file as subject to the "Classpath"
>> exception
>> * as provided by Sun in the GPL Version 2 section of the License file
>> that
>> * accompanied this code. If applicable, add the following below the
>> License
>> * Header, with the fields enclosed by brackets [] replaced by your own
>> * identifying information: "Portions Copyrighted [year]
>> * [name of copyright owner]"
>> *
>> * Contributor(s):
>> *
>> * If you wish your version of this file to be governed by only the CDDL
>> or
>> * only the GPL Version 2, indicate your decision by adding "[Contributor]
>> * elects to include this software in this distribution under the [CDDL or
>> GPL
>> * Version 2] license." If you don't indicate a single choice of license,
>> a
>> * recipient has the option to distribute your version of this file under
>> * either the CDDL, the GPL Version 2 or to extend the choice of license
>> to
>> * its licensees as provided above. However, if you add GPL Version 2
>> code
>> * and therefore, elected the GPL Version 2 license, then the option
>> applies
>> * only if the new code is made subject to such option by the copyright
>> * holder.
>> *
>> */
>> package com.sun.grizzly.http;
>>
>> import java.io.BufferedReader;
>> import java.io.IOException;
>> import java.io.InputStreamReader;
>> import java.net.HttpURLConnection;
>> import java.net.URL;
>> import java.util.logging.Logger;
>>
>> import javax.servlet.ServletException;
>> import javax.servlet.http.HttpServlet;
>> import javax.servlet.http.HttpServletRequest;
>> import javax.servlet.http.HttpServletResponse;
>>
>> import junit.framework.TestCase;
>>
>> import com.sun.grizzly.http.embed.GrizzlyWebServer;
>> import com.sun.grizzly.http.servlet.ServletAdapter;
>>
>> /**
>> * {_at_link GrizzlyWebServer} tests.
>> *
>> * @author Hubert Iwaniuk
>> * @since Jan 22, 2009
>> */
>> public class ComplexGrizzlyWebServerTest extends TestCase {
>>
>> public static final int PORT = 18890 + 10;
>> private static Logger logger = Logger.getLogger("grizzly.test");
>> private GrizzlyWebServer gws;
>>
>> /**
>> * Want to test multiple servletMapping
>> *
>> * examples :
>> *
>> * context = /test
>> * servletPath = /servlet1
>> * mapping = *.1
>> * mapping = /1
>> *
>> * URL = http://localhost:port/test/servlet1/test.1
>> * URL = http://localhost:port/test/servlet1/1
>> *
>> * @throws IOException
>> */
>> public void testComplexAliasMapping() throws IOException {
>> System.out.println("testComplexAliasMapping");
>> try {
>> startGrizzlyWebServer(PORT);
>> String[] aliases = new String[] { "/1", "/2", "/3", "/*.a" };
>> String context = "/test";
>> String servletPath = "/servlet";
>> String rootFolder = ".";
>> for (String alias : aliases) {
>> addAdapter(context + servletPath + alias, context,
>> servletPath, rootFolder);
>> }
>>
>> for (String alias : aliases) {
>> HttpURLConnection conn = getConnection(context +
>> servletPath + alias);
>> assertEquals(HttpServletResponse.SC_OK,
>> getResponseCodeFromAlias(conn));
>> assertEquals(context + servletPath + alias,
>> readResponse(conn));
>> }
>> //special test
>> String url = context + servletPath + "/test.a";
>> HttpURLConnection conn = getConnection(url);
>> assertEquals(HttpServletResponse.SC_OK,
>> getResponseCodeFromAlias(conn));
>> assertEquals(url, readResponse(conn));
>> } finally {
>> stopGrizzlyWebServer();
>> }
>> }
>>
>> private String readResponse(HttpURLConnection conn) throws IOException
>> {
>> BufferedReader reader = new BufferedReader(new
>> InputStreamReader(conn.getInputStream()));
>> return reader.readLine();
>> }
>>
>> private HttpURLConnection getConnection(String alias) throws
>> IOException {
>> logger.info <http://logger.info>("sending request to " + alias);
>> URL url = new URL("http", "localhost", PORT, alias);
>> HttpURLConnection urlConn = (HttpURLConnection)
>> url.openConnection();
>> urlConn.connect();
>> return urlConn;
>> }
>>
>> private int getResponseCodeFromAlias(HttpURLConnection urlConn) throws
>> IOException {
>> return urlConn.getResponseCode();
>> }
>>
>> private ServletAdapter addAdapter(final String alias, final String
>> context, final String servletPath, final String rootFolder) {
>> ServletAdapter adapter = new ServletAdapter(new HttpServlet() {
>>
>> @Override
>> protected void doGet(HttpServletRequest req,
>> HttpServletResponse resp) throws ServletException, IOException {
>> logger.info <http://logger.info>(alias + " received
>> request " + req.getRequestURI());
>> resp.setStatus(HttpServletResponse.SC_OK);
>> resp.getWriter().write(alias);
>> }
>> });
>> adapter.setContextPath(context);
>> adapter.setServletPath(servletPath);
>> adapter.setRootFolder(rootFolder);
>> gws.addGrizzlyAdapter(adapter, new String[] { alias });
>> return adapter;
>> }
>>
>> private void startGrizzlyWebServer(int port) throws IOException {
>> gws = new GrizzlyWebServer(port);
>> gws.start();
>> }
>>
>> private void stopGrizzlyWebServer() {
>> gws.stop();
>> }
>> }
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_grizzly.dev.java.net
> For additional commands, e-mail: dev-help_at_grizzly.dev.java.net
>
>