felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j...@apache.org
Subject svn commit: r1605431 - in /felix/sandbox/http-rfc189: api/ base/src/main/java/org/apache/felix/http/base/internal/handler/ bridge/ bundle/ cometd/ itest/src/test/java/org/apache/felix/http/itest/ jetty/ parent/ proxy/ servlet-api/ sslfilter/ whiteboard/
Date Wed, 25 Jun 2014 14:55:09 GMT
Author: jawi
Date: Wed Jun 25 14:55:09 2014
New Revision: 1605431

URL: http://svn.apache.org/r1605431
Log:
RFC-189 / FELIX-4060:

- extended & cleaned the itest on the request dispatching;
- cleanup of code duplication in ServletHandler;
- fixed Maven POMs as they were b0rked somehow (incorrect
  artifact type).


Modified:
    felix/sandbox/http-rfc189/api/pom.xml
    felix/sandbox/http-rfc189/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandler.java
    felix/sandbox/http-rfc189/bridge/pom.xml
    felix/sandbox/http-rfc189/bundle/pom.xml
    felix/sandbox/http-rfc189/cometd/pom.xml
    felix/sandbox/http-rfc189/itest/src/test/java/org/apache/felix/http/itest/RequestDispatchTest.java
    felix/sandbox/http-rfc189/jetty/pom.xml
    felix/sandbox/http-rfc189/parent/pom.xml
    felix/sandbox/http-rfc189/proxy/pom.xml
    felix/sandbox/http-rfc189/servlet-api/pom.xml
    felix/sandbox/http-rfc189/sslfilter/pom.xml
    felix/sandbox/http-rfc189/whiteboard/pom.xml

Modified: felix/sandbox/http-rfc189/api/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/api/pom.xml?rev=1605431&r1=1605430&r2=1605431&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/api/pom.xml (original)
+++ felix/sandbox/http-rfc189/api/pom.xml Wed Jun 25 14:55:09 2014
@@ -29,7 +29,7 @@
     <name>Apache Felix Http Api</name>
     <artifactId>org.apache.felix.http.api</artifactId>
     <version>3.0.0-SNAPSHOT</version>
-    <packaging>jar</packaging>
+    <packaging>bundle</packaging>
 
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/http/api</connection>
@@ -42,6 +42,7 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
                 <configuration>
                     <instructions>
                         <Export-Package>

Modified: felix/sandbox/http-rfc189/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandler.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandler.java?rev=1605431&r1=1605430&r2=1605431&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandler.java (original)
+++ felix/sandbox/http-rfc189/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandler.java Wed Jun 25 14:55:09 2014
@@ -265,16 +265,7 @@ public final class ServletHandler extend
     public RequestDispatcher createRequestDispatcher(String path, String pathInContext, String query)
     {
         // Determine which servletPath we should use...
-        String servletPath = null;
-        for (Pattern pattern : this.patterns)
-        {
-            Matcher m = pattern.matcher(pathInContext);
-            if (m.find())
-            {
-                servletPath = m.groupCount() > 0 ? m.group(1) : m.group();
-                break;
-            }
-        }
+        String servletPath = determineServletPath(pathInContext);
 
         return new RequestDispatcherImpl(path, servletPath, pathInContext, query);
     }

Modified: felix/sandbox/http-rfc189/bridge/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/bridge/pom.xml?rev=1605431&r1=1605430&r2=1605431&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/bridge/pom.xml (original)
+++ felix/sandbox/http-rfc189/bridge/pom.xml Wed Jun 25 14:55:09 2014
@@ -29,7 +29,7 @@
     <name>Apache Felix Http Bridge</name>
     <artifactId>org.apache.felix.http.bridge</artifactId>
     <version>3.0.0-SNAPSHOT</version>
-    <packaging>jar</packaging>
+    <packaging>bundle</packaging>
 
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/http/bridge</connection>
@@ -42,6 +42,7 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
                 <configuration>
                     <instructions>
                         <Bundle-Activator>

Modified: felix/sandbox/http-rfc189/bundle/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/bundle/pom.xml?rev=1605431&r1=1605430&r2=1605431&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/bundle/pom.xml (original)
+++ felix/sandbox/http-rfc189/bundle/pom.xml Wed Jun 25 14:55:09 2014
@@ -29,7 +29,7 @@
     <name>Apache Felix Http Bundle</name>
     <artifactId>org.apache.felix.http.bundle</artifactId>
     <version>3.0.0-SNAPSHOT</version>
-    <packaging>jar</packaging>
+    <packaging>bundle</packaging>
 
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/http/bundle</connection>
@@ -42,6 +42,7 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
                 <configuration>
                     <instructions>
                     	<X-Jetty-Version>

Modified: felix/sandbox/http-rfc189/cometd/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/cometd/pom.xml?rev=1605431&r1=1605430&r2=1605431&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/cometd/pom.xml (original)
+++ felix/sandbox/http-rfc189/cometd/pom.xml Wed Jun 25 14:55:09 2014
@@ -42,6 +42,7 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
                 <configuration>
                     <instructions>
                         <Bundle-Activator>

Modified: felix/sandbox/http-rfc189/itest/src/test/java/org/apache/felix/http/itest/RequestDispatchTest.java
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/itest/src/test/java/org/apache/felix/http/itest/RequestDispatchTest.java?rev=1605431&r1=1605430&r2=1605431&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/itest/src/test/java/org/apache/felix/http/itest/RequestDispatchTest.java (original)
+++ felix/sandbox/http-rfc189/itest/src/test/java/org/apache/felix/http/itest/RequestDispatchTest.java Wed Jun 25 14:55:09 2014
@@ -54,12 +54,84 @@ import org.osgi.service.http.NamespaceEx
 @RunWith(PaxExam.class)
 public class RequestDispatchTest extends BaseIntegrationTest
 {
+    private static final String DEFAULT_CONTEXT_PATH = "";
+
     /**
      * Tests that we can forward content from other servlets using the {@link RequestDispatcher} service.
      */
     @Test
     public void testDispatchForwardToAbsoluteURIOk() throws Exception
     {
+        doTestForwardAbsoluteURI(DEFAULT_CONTEXT_PATH, "/forward", null);
+        doTestForwardAbsoluteURI(DEFAULT_CONTEXT_PATH, "/forward/", null);
+        doTestForwardAbsoluteURI(DEFAULT_CONTEXT_PATH, "/forward", "/to/other/path");
+    }
+
+    /**
+     * Tests that we can forward content from other servlets using the {@link RequestDispatcher} service.
+     */
+    @Test
+    public void testDispatchForwardToRelativeURIOk() throws Exception
+    {
+        doTestForwardRelativeURI(DEFAULT_CONTEXT_PATH, null);
+        doTestForwardRelativeURI(DEFAULT_CONTEXT_PATH, "/to/other/path");
+    }
+
+    /**
+     * Tests that we can include content from other servlets using the {@link RequestDispatcher} service.
+     */
+    @Test
+    public void testDispatchIncludeAbsoluteURIOk() throws Exception
+    {
+        doTestIncludeAbsoluteURI(DEFAULT_CONTEXT_PATH, null);
+        doTestIncludeAbsoluteURI(DEFAULT_CONTEXT_PATH, "/other/content");
+    }
+
+    /**
+     * Tests that we can include content from other servlets using the {@link RequestDispatcher} service.
+     */
+    @Test
+    public void testDispatchIncludeRelativeURIOk() throws Exception
+    {
+        doTestIncludeRelativeURI(DEFAULT_CONTEXT_PATH, null);
+        doTestIncludeRelativeURI(DEFAULT_CONTEXT_PATH, "/other/content");
+    }
+
+    /**
+     * Tests that we can forward content from other servlets using the {@link RequestDispatcher} service.
+     */
+    @Test
+    public void testDispatchOnNonRootContextPathOk() throws Exception
+    {
+        // Configure HTTP on a different context path...
+        String contextPath = "/otherContext";
+        Configuration config = configureHttpService(createDictionary("org.apache.felix.http.context_path", contextPath, "org.osgi.service.http.port", "8080"));
+
+        try
+        {
+            // Include multiple tests in one as to keep tests a little easier to read...
+            doTestForwardAbsoluteURI(contextPath, "/forward", null);
+            doTestForwardAbsoluteURI(contextPath, "/forward/", null);
+            doTestIncludeAbsoluteURI(contextPath, null);
+
+            doTestForwardAbsoluteURI(contextPath, "/forward", "/to/other/path");
+            doTestIncludeAbsoluteURI(contextPath, "/other/content");
+
+            doTestForwardRelativeURI(contextPath, null);
+            doTestIncludeRelativeURI(contextPath, null);
+
+            doTestForwardRelativeURI(contextPath, "/to/other/path");
+            doTestIncludeRelativeURI(contextPath, "/other/content");
+        }
+        finally
+        {
+            config.delete();
+        }
+    }
+
+    private void doTestForwardAbsoluteURI(final String contextPath, final String forwardPath, final String forwardPathSuffix) throws ServletException, NamespaceException, InterruptedException,
+        IOException
+    {
         CountDownLatch initLatch = new CountDownLatch(2);
         CountDownLatch destroyLatch = new CountDownLatch(2);
 
@@ -70,27 +142,27 @@ public class RequestDispatchTest extends
             @Override
             protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
             {
-                Object includeContextPath = req.getAttribute(FORWARD_CONTEXT_PATH);
-                if (includeContextPath != null)
+                Object forwardContextPath = req.getAttribute(FORWARD_CONTEXT_PATH);
+                if (forwardContextPath != null)
                 {
-                    assertEquals("", req.getContextPath());
-                    assertEquals("/forward", req.getServletPath());
-                    assertEquals(null, req.getPathInfo());
-                    assertEquals("/forward", req.getRequestURI());
+                    assertEquals(contextPath, req.getContextPath());
+                    assertEquals(forwardPath, req.getServletPath());
+                    assertEquals(forwardPathSuffix, req.getPathInfo());
+                    assertEquals(contextPath.concat(forwardPath).concat(nvl(forwardPathSuffix)), req.getRequestURI());
                     assertEquals("bar=qux&quu", req.getQueryString());
 
-                    assertEquals("", includeContextPath);
+                    assertEquals(contextPath, forwardContextPath);
                     assertEquals("/test", req.getAttribute(FORWARD_SERVLET_PATH));
                     assertEquals("/foo", req.getAttribute(FORWARD_PATH_INFO));
-                    assertEquals("/test/foo", req.getAttribute(FORWARD_REQUEST_URI));
+                    assertEquals(contextPath.concat("/test/foo"), req.getAttribute(FORWARD_REQUEST_URI));
                     assertEquals("bar=qux&quu", req.getAttribute(FORWARD_QUERY_STRING));
                 }
                 else
                 {
-                    assertEquals("", req.getContextPath());
-                    assertEquals("/forward", req.getServletPath());
+                    assertEquals(contextPath, req.getContextPath());
+                    assertEquals(forwardPath, req.getServletPath());
                     assertEquals("/bar", req.getPathInfo());
-                    assertEquals("/forward/bar", req.getRequestURI());
+                    assertEquals(contextPath.concat(forwardPath).concat("/bar"), req.getRequestURI());
                     assertEquals("quu=qux", req.getQueryString());
                 }
 
@@ -105,25 +177,25 @@ public class RequestDispatchTest extends
             @Override
             protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
             {
-                assertEquals("", req.getContextPath());
+                assertEquals(contextPath, req.getContextPath());
                 assertEquals("/test", req.getServletPath());
                 assertEquals("/foo", req.getPathInfo());
-                assertEquals("/test/foo", req.getRequestURI());
+                assertEquals(contextPath.concat("/test/foo"), req.getRequestURI());
                 assertEquals("bar=qux&quu", req.getQueryString());
 
                 resp.getWriter().println("NOT_SEND");
-                req.getRequestDispatcher("/forward").forward(req, resp);
+                req.getRequestDispatcher(forwardPath.concat(nvl(forwardPathSuffix))).forward(req, resp);
                 resp.getWriter().println("NOT_SEND");
             }
         };
 
-        register("/forward", forward);
+        register(forwardPath, forward);
         register("/test", servlet);
 
         assertTrue(initLatch.await(5, TimeUnit.SECONDS));
 
-        assertContent("FORWARD\n", createURL("/test/foo?bar=qux&quu"));
-        assertContent("FORWARD\n", createURL("/forward/bar?quu=qux"));
+        assertContent("FORWARD\n", createURL(contextPath.concat("/test/foo?bar=qux&quu")));
+        assertContent("FORWARD\n", createURL(contextPath.concat(forwardPath).concat("/bar?quu=qux")));
 
         unregister(forward);
         unregister(servlet);
@@ -132,10 +204,9 @@ public class RequestDispatchTest extends
     }
 
     /**
-     * Tests that we can forward content from other servlets using the {@link RequestDispatcher} service.
+     * Tests that we can forward requests to the same servlet using the {@link RequestDispatcher} service.
      */
-    @Test
-    public void testDispatchForwardToRelativeURIOk() throws Exception
+    private void doTestForwardRelativeURI(final String contextPath, final String forwardPathSuffix) throws ServletException, NamespaceException, InterruptedException, IOException
     {
         CountDownLatch initLatch = new CountDownLatch(1);
         CountDownLatch destroyLatch = new CountDownLatch(1);
@@ -150,35 +221,35 @@ public class RequestDispatchTest extends
                 Object contextPathAttr = req.getAttribute(FORWARD_CONTEXT_PATH);
                 if (contextPathAttr != null)
                 {
-                    assertEquals("", req.getContextPath());
+                    assertEquals(contextPath, req.getContextPath());
                     assertEquals("/test", req.getServletPath());
-                    assertEquals("/forward", req.getPathInfo());
-                    assertEquals("/test/forward", req.getRequestURI());
+                    assertEquals("/forward".concat(nvl(forwardPathSuffix)), req.getPathInfo());
+                    assertEquals(contextPath.concat("/test/forward").concat(nvl(forwardPathSuffix)), req.getRequestURI());
                     assertEquals("bar=qux&quu", req.getQueryString());
 
-                    assertEquals("", contextPathAttr);
+                    assertEquals(contextPath, contextPathAttr);
                     assertEquals("/test", req.getAttribute(FORWARD_SERVLET_PATH));
                     assertEquals("/foo", req.getAttribute(FORWARD_PATH_INFO));
-                    assertEquals("/test/foo", req.getAttribute(FORWARD_REQUEST_URI));
+                    assertEquals(contextPath.concat("/test/foo"), req.getAttribute(FORWARD_REQUEST_URI));
                     assertEquals("bar=qux&quu", req.getAttribute(FORWARD_QUERY_STRING));
 
                     resp.getWriter().println("FORWARD");
                 }
                 else
                 {
-                    assertEquals("", req.getContextPath());
+                    assertEquals(contextPath, req.getContextPath());
                     assertEquals("/test", req.getServletPath());
                     assertEquals("/foo", req.getPathInfo());
-                    assertEquals("/test/foo", req.getRequestURI());
+                    assertEquals(contextPath.concat("/test/foo"), req.getRequestURI());
                     assertEquals("bar=qux&quu", req.getQueryString());
 
                     resp.getWriter().println("NOT_SEND");
 
                     // ServletContext#getRequestDispatcher only takes absolute paths...
-                    RequestDispatcher disp = req.getServletContext().getRequestDispatcher("forward");
+                    RequestDispatcher disp = req.getServletContext().getRequestDispatcher("forward".concat(nvl(forwardPathSuffix)));
                     assertNull("ServletContext returned RequestDispatcher for relative path?!", disp);
                     // Causes a request to ourselves being made (/test/forward)...
-                    disp = req.getRequestDispatcher("forward");
+                    disp = req.getRequestDispatcher("forward".concat(nvl(forwardPathSuffix)));
                     assertNotNull("ServletRequest returned NO RequestDispatcher for relative path?!", disp);
 
                     disp.forward(req, resp);
@@ -191,7 +262,7 @@ public class RequestDispatchTest extends
 
         assertTrue(initLatch.await(5, TimeUnit.SECONDS));
 
-        assertContent("FORWARD\n", createURL("/test/foo?bar=qux&quu"));
+        assertContent("FORWARD\n", createURL(contextPath.concat("/test/foo?bar=qux&quu")));
 
         unregister(servlet);
 
@@ -201,8 +272,7 @@ public class RequestDispatchTest extends
     /**
      * Tests that we can include content from other servlets using the {@link RequestDispatcher} service.
      */
-    @Test
-    public void testDispatchIncludeAbsoluteURIOk() throws Exception
+    private void doTestIncludeAbsoluteURI(final String contextPath, final String includePathSuffix) throws Exception
     {
         CountDownLatch initLatch = new CountDownLatch(2);
         CountDownLatch destroyLatch = new CountDownLatch(2);
@@ -217,24 +287,24 @@ public class RequestDispatchTest extends
                 Object includeContextPath = req.getAttribute(INCLUDE_CONTEXT_PATH);
                 if (includeContextPath != null)
                 {
-                    assertEquals("", req.getContextPath());
+                    assertEquals(contextPath, req.getContextPath());
                     assertEquals("/test", req.getServletPath());
                     assertEquals("/foo", req.getPathInfo());
-                    assertEquals("/test/foo", req.getRequestURI());
+                    assertEquals(contextPath.concat("/test/foo"), req.getRequestURI());
                     assertEquals("bar=qux&quu", req.getQueryString());
 
-                    assertEquals("", includeContextPath);
+                    assertEquals(contextPath, includeContextPath);
                     assertEquals("/include", req.getAttribute(INCLUDE_SERVLET_PATH));
-                    assertEquals(null, req.getAttribute(INCLUDE_PATH_INFO));
-                    assertEquals("/include", req.getAttribute(INCLUDE_REQUEST_URI));
+                    assertEquals(includePathSuffix, req.getAttribute(INCLUDE_PATH_INFO));
+                    assertEquals(contextPath.concat("/include").concat(nvl(includePathSuffix)), req.getAttribute(INCLUDE_REQUEST_URI));
                     assertEquals(null, req.getAttribute(INCLUDE_QUERY_STRING));
                 }
                 else
                 {
-                    assertEquals("", req.getContextPath());
+                    assertEquals(contextPath, req.getContextPath());
                     assertEquals("/include", req.getServletPath());
                     assertEquals("/bar", req.getPathInfo());
-                    assertEquals("/include/bar", req.getRequestURI());
+                    assertEquals(contextPath.concat("/include/bar"), req.getRequestURI());
                     assertEquals("quu=qux", req.getQueryString());
                 }
 
@@ -249,14 +319,14 @@ public class RequestDispatchTest extends
             @Override
             protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
             {
-                assertEquals("", req.getContextPath());
+                assertEquals(contextPath, req.getContextPath());
                 assertEquals("/test", req.getServletPath());
                 assertEquals("/foo", req.getPathInfo());
-                assertEquals("/test/foo", req.getRequestURI());
+                assertEquals(contextPath.concat("/test/foo"), req.getRequestURI());
                 assertEquals("bar=qux&quu", req.getQueryString());
 
                 resp.getWriter().println("BEFORE");
-                req.getRequestDispatcher("/include").include(req, resp);
+                req.getRequestDispatcher("/include".concat(nvl(includePathSuffix))).include(req, resp);
                 resp.getWriter().println("AFTER");
             }
         };
@@ -266,8 +336,8 @@ public class RequestDispatchTest extends
 
         assertTrue(initLatch.await(5, TimeUnit.SECONDS));
 
-        assertContent("BEFORE\nINCLUDE\nAFTER\n", createURL("/test/foo?bar=qux&quu"));
-        assertContent("INCLUDE\n", createURL("/include/bar?quu=qux"));
+        assertContent("BEFORE\nINCLUDE\nAFTER\n", createURL(contextPath.concat("/test/foo?bar=qux&quu")));
+        assertContent("INCLUDE\n", createURL(contextPath.concat("/include/bar?quu=qux")));
 
         unregister(include);
         unregister(servlet);
@@ -276,10 +346,9 @@ public class RequestDispatchTest extends
     }
 
     /**
-     * Tests that we can include content from other servlets using the {@link RequestDispatcher} service.
+     * Tests that we can include content from the same servlet using the {@link RequestDispatcher} service.
      */
-    @Test
-    public void testDispatchIncludeRelativeURIOk() throws Exception
+    private void doTestIncludeRelativeURI(final String contextPath, final String includePathSuffix) throws Exception
     {
         CountDownLatch initLatch = new CountDownLatch(1);
         CountDownLatch destroyLatch = new CountDownLatch(1);
@@ -294,35 +363,35 @@ public class RequestDispatchTest extends
                 Object contextPathAttr = req.getAttribute(INCLUDE_CONTEXT_PATH);
                 if (contextPathAttr != null)
                 {
-                    assertEquals("", req.getContextPath());
+                    assertEquals(contextPath, req.getContextPath());
                     assertEquals("/foo", req.getPathInfo());
                     assertEquals("/test", req.getServletPath());
-                    assertEquals("/test/foo", req.getRequestURI());
+                    assertEquals(contextPath.concat("/test/foo"), req.getRequestURI());
                     assertEquals("bar=qux&quu", req.getQueryString());
 
-                    assertEquals("", contextPathAttr);
+                    assertEquals(contextPath, contextPathAttr);
                     assertEquals("/test", req.getAttribute(INCLUDE_SERVLET_PATH));
-                    //                    assertEquals("/include", req.getAttribute(INCLUDE_PATH_INFO));
-                    //                    assertEquals("/test/include", req.getAttribute(INCLUDE_REQUEST_URI));
+                    assertEquals("/include".concat(nvl(includePathSuffix)), req.getAttribute(INCLUDE_PATH_INFO));
+                    assertEquals(contextPath.concat("/test/include").concat(nvl(includePathSuffix)), req.getAttribute(INCLUDE_REQUEST_URI));
                     assertEquals(null, req.getAttribute(INCLUDE_QUERY_STRING));
 
                     resp.getWriter().println("INCLUDE");
                 }
                 else
                 {
-                    assertEquals("", req.getContextPath());
+                    assertEquals(contextPath, req.getContextPath());
                     assertEquals("/test", req.getServletPath());
-                    //                    assertEquals("/foo", req.getPathInfo());
-                    //                    assertEquals("/test/foo", req.getRequestURI());
+                    assertEquals("/foo", req.getPathInfo());
+                    assertEquals(contextPath.concat("/test/foo"), req.getRequestURI());
                     assertEquals("bar=qux&quu", req.getQueryString());
 
                     resp.getWriter().println("BEFORE");
 
                     // ServletContext#getRequestDispatcher only takes absolute paths...
-                    RequestDispatcher disp = req.getServletContext().getRequestDispatcher("include");
+                    RequestDispatcher disp = req.getServletContext().getRequestDispatcher("include".concat(nvl(includePathSuffix)));
                     assertNull("ServletContext returned RequestDispatcher for relative path?!", disp);
                     // Causes a request to ourselves being made (/test/forward)...
-                    disp = req.getRequestDispatcher("include");
+                    disp = req.getRequestDispatcher("include".concat(nvl(includePathSuffix)));
                     assertNotNull("ServletRequest returned NO RequestDispatcher for relative path?!", disp);
 
                     disp.include(req, resp);
@@ -335,180 +404,27 @@ public class RequestDispatchTest extends
 
         assertTrue(initLatch.await(5, TimeUnit.SECONDS));
 
-        assertContent("BEFORE\nINCLUDE\nAFTER\n", createURL("/test/foo?bar=qux&quu"));
+        assertContent("BEFORE\nINCLUDE\nAFTER\n", createURL(contextPath.concat("/test/foo?bar=qux&quu")));
 
         unregister(servlet);
 
         assertTrue(destroyLatch.await(5, TimeUnit.SECONDS));
     }
 
-    /**
-     * Tests that we can forward content from other servlets using the {@link RequestDispatcher} service.
-     */
-    @Test
-    public void testDispatchOnNonRootContextPathOk() throws Exception
-    {
-        // Configure HTTP on a different context path...
-        Configuration config = configureHttpService(createDictionary("org.apache.felix.http.context_path", "/context", "org.osgi.service.http.port", "8080"));
-
-        try
-        {
-            // Include two tests in one as to keep tests a little easier to read...
-            doTestForwardAbsoluteURI();
-            doTestIncludeAbsoluteURI();
-        }
-        finally
-        {
-            config.delete();
-        }
-    }
-
-    private void doTestForwardAbsoluteURI() throws ServletException, NamespaceException, InterruptedException, IOException
+    private static String nvl(String... strings)
     {
-        CountDownLatch initLatch = new CountDownLatch(2);
-        CountDownLatch destroyLatch = new CountDownLatch(2);
-
-        TestServlet forward = new TestServlet(initLatch, destroyLatch)
-        {
-            private static final long serialVersionUID = 1L;
-
-            @Override
-            protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
-            {
-                Object includeContextPath = req.getAttribute(FORWARD_CONTEXT_PATH);
-                if (includeContextPath != null)
-                {
-                    assertEquals("/context", req.getContextPath());
-                    assertEquals("/forward", req.getServletPath());
-                    assertEquals(null, req.getPathInfo());
-                    assertEquals("/context/forward", req.getRequestURI());
-                    assertEquals("bar=qux&quu", req.getQueryString());
-
-                    assertEquals("/context", includeContextPath);
-                    assertEquals("/test", req.getAttribute(FORWARD_SERVLET_PATH));
-                    assertEquals("/foo", req.getAttribute(FORWARD_PATH_INFO));
-                    assertEquals("/context/test/foo", req.getAttribute(FORWARD_REQUEST_URI));
-                    assertEquals("bar=qux&quu", req.getAttribute(FORWARD_QUERY_STRING));
-                }
-                else
-                {
-                    assertEquals("/context", req.getContextPath());
-                    assertEquals("/forward", req.getServletPath());
-                    assertEquals("/bar", req.getPathInfo());
-                    assertEquals("/context/forward/bar", req.getRequestURI());
-                    assertEquals("quu=qux", req.getQueryString());
-                }
-
-                resp.getWriter().println("FORWARD");
-            }
-        };
-
-        TestServlet servlet = new TestServlet(initLatch, destroyLatch)
+        for (String str : strings)
         {
-            private static final long serialVersionUID = 1L;
-
-            @Override
-            protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
+            if (!isEmpty(str))
             {
-                assertEquals("/context", req.getContextPath());
-                assertEquals("/test", req.getServletPath());
-                assertEquals("/foo", req.getPathInfo());
-                assertEquals("/context/test/foo", req.getRequestURI());
-                assertEquals("bar=qux&quu", req.getQueryString());
-
-                resp.getWriter().println("NOT_SEND");
-                req.getRequestDispatcher("/forward").forward(req, resp);
-                resp.getWriter().println("NOT_SEND");
+                return str;
             }
-        };
-
-        register("/forward", forward);
-        register("/test", servlet);
-
-        assertTrue(initLatch.await(5, TimeUnit.SECONDS));
-
-        assertContent("FORWARD\n", createURL("/context/test/foo?bar=qux&quu"));
-        assertContent("FORWARD\n", createURL("/context/forward/bar?quu=qux"));
-
-        unregister(forward);
-        unregister(servlet);
-
-        assertTrue(destroyLatch.await(5, TimeUnit.SECONDS));
+        }
+        return DEFAULT_CONTEXT_PATH;
     }
 
-    /**
-     * Tests that we can include content from other servlets using the {@link RequestDispatcher} service.
-     */
-    private void doTestIncludeAbsoluteURI() throws Exception
+    private static boolean isEmpty(String val)
     {
-        CountDownLatch initLatch = new CountDownLatch(2);
-        CountDownLatch destroyLatch = new CountDownLatch(2);
-
-        TestServlet include = new TestServlet(initLatch, destroyLatch)
-        {
-            private static final long serialVersionUID = 1L;
-
-            @Override
-            protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
-            {
-                Object includeContextPath = req.getAttribute(INCLUDE_CONTEXT_PATH);
-                if (includeContextPath != null)
-                {
-                    assertEquals("/context", req.getContextPath());
-                    assertEquals("/test", req.getServletPath());
-                    assertEquals("/foo", req.getPathInfo());
-                    assertEquals("/context/test/foo", req.getRequestURI());
-                    assertEquals("bar=qux&quu", req.getQueryString());
-
-                    assertEquals("/context", includeContextPath);
-                    assertEquals("/include", req.getAttribute(INCLUDE_SERVLET_PATH));
-                    assertEquals(null, req.getAttribute(INCLUDE_PATH_INFO));
-                    assertEquals("/context/include", req.getAttribute(INCLUDE_REQUEST_URI));
-                    assertEquals(null, req.getAttribute(INCLUDE_QUERY_STRING));
-                }
-                else
-                {
-                    assertEquals("/context", req.getContextPath());
-                    assertEquals("/include", req.getServletPath());
-                    assertEquals("/bar", req.getPathInfo());
-                    assertEquals("/context/include/bar", req.getRequestURI());
-                    assertEquals("quu=qux", req.getQueryString());
-                }
-
-                resp.getWriter().println("INCLUDE");
-            }
-        };
-
-        TestServlet servlet = new TestServlet(initLatch, destroyLatch)
-        {
-            private static final long serialVersionUID = 1L;
-
-            @Override
-            protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
-            {
-                assertEquals("/context", req.getContextPath());
-                assertEquals("/test", req.getServletPath());
-                assertEquals("/foo", req.getPathInfo());
-                assertEquals("/context/test/foo", req.getRequestURI());
-                assertEquals("bar=qux&quu", req.getQueryString());
-
-                resp.getWriter().println("BEFORE");
-                req.getRequestDispatcher("/include").include(req, resp);
-                resp.getWriter().println("AFTER");
-            }
-        };
-
-        register("/include", include);
-        register("/test", servlet);
-
-        assertTrue(initLatch.await(5, TimeUnit.SECONDS));
-
-        assertContent("BEFORE\nINCLUDE\nAFTER\n", createURL("/context/test/foo?bar=qux&quu"));
-        assertContent("INCLUDE\n", createURL("/context/include/bar?quu=qux"));
-
-        unregister(include);
-        unregister(servlet);
-
-        assertTrue(destroyLatch.await(5, TimeUnit.SECONDS));
+        return val == null || DEFAULT_CONTEXT_PATH.equals(val.trim());
     }
 }

Modified: felix/sandbox/http-rfc189/jetty/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/jetty/pom.xml?rev=1605431&r1=1605430&r2=1605431&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/jetty/pom.xml (original)
+++ felix/sandbox/http-rfc189/jetty/pom.xml Wed Jun 25 14:55:09 2014
@@ -29,7 +29,7 @@
     <name>Apache Felix Http Jetty</name>
     <artifactId>org.apache.felix.http.jetty</artifactId>
     <version>3.0.0-SNAPSHOT</version>
-    <packaging>jar</packaging>
+    <packaging>bundle</packaging>
     
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/http/jetty</connection>

Modified: felix/sandbox/http-rfc189/parent/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/parent/pom.xml?rev=1605431&r1=1605430&r2=1605431&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/parent/pom.xml (original)
+++ felix/sandbox/http-rfc189/parent/pom.xml Wed Jun 25 14:55:09 2014
@@ -1,136 +1,120 @@
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-    http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>felix-parent</artifactId>
-        <version>2.1</version>
-        <relativePath>../../pom/pom.xml</relativePath>
-    </parent>
-
-    <name>Apache Felix Http Parent POM</name>
-    <artifactId>org.apache.felix.http.parent</artifactId>
-    <version>3-SNAPSHOT</version>
-    <packaging>pom</packaging>
-
-    <prerequisites>
-        <maven>2.0.7</maven>
-    </prerequisites>
-
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    	<jetty.version>8.1.15.v20140411</jetty.version>
-    	<cometd.version>2.8.0</cometd.version>
-        <http.service.version>1.3.0</http.service.version>
-        <osgi.dto.version>1.0.0</osgi.dto.version>
-    	<servlet.version>3.0.1</servlet.version>
-
-    	<http.api.version>3.0.0</http.api.version>
-    </properties>
-
-    <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/http/parent</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/http/parent</developerConnection>
-        <url>http://svn.apache.org/viewvc/felix/trunk/http/parent/</url>
-    </scm>
-
-    <build>
-        <plugins>
-            <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                    <compilerVersion>1.5</compilerVersion>
-                </configuration>
-            </plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>2.4.0</version>
-                    <executions>
-                      <execution>
-                        <id>bundle</id>
-                        <phase>package</phase>
-                        <goals>
-                          <goal>bundle</goal>
-                        </goals>
-                      </execution>
-                    </executions>
-                    <configuration>
-                        <instructions>
-                            <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-                            <Bundle-Version>${project.version}</Bundle-Version>
-                        </instructions>                        
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-
-    <dependencies>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.8.2</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <version>1.8.2</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>javax.servlet</groupId>
-                <artifactId>javax.servlet-api</artifactId>
-                <version>${servlet.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.core</artifactId>
-                <version>4.2.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.compendium</artifactId>
-                <version>4.2.0</version>
-                <scope>provided</scope>
-            </dependency>
-	        <dependency>
-	            <groupId>biz.aQute</groupId>
-	            <artifactId>bndlib</artifactId>
-	            <version>1.50.0</version>
-	            <scope>provided</scope>
-	        </dependency>
-        </dependencies>
-    </dependencyManagement>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.felix</groupId>
+		<artifactId>felix-parent</artifactId>
+		<version>2.1</version>
+		<relativePath>../../pom/pom.xml</relativePath>
+	</parent>
+
+	<name>Apache Felix Http Parent POM</name>
+	<artifactId>org.apache.felix.http.parent</artifactId>
+	<version>3-SNAPSHOT</version>
+	<packaging>pom</packaging>
+
+	<prerequisites>
+		<maven>2.0.7</maven>
+	</prerequisites>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<jetty.version>8.1.15.v20140411</jetty.version>
+		<cometd.version>2.8.0</cometd.version>
+		<http.service.version>1.3.0</http.service.version>
+		<osgi.dto.version>1.0.0</osgi.dto.version>
+		<servlet.version>3.0.1</servlet.version>
+
+		<http.api.version>3.0.0</http.api.version>
+	</properties>
+
+	<scm>
+		<connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/http/parent</connection>
+		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/http/parent</developerConnection>
+		<url>http://svn.apache.org/viewvc/felix/trunk/http/parent/</url>
+	</scm>
+
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.5</source>
+					<target>1.5</target>
+					<compilerVersion>1.5</compilerVersion>
+				</configuration>
+			</plugin>
+		</plugins>
+		<pluginManagement>
+			<plugins>
+				<plugin>
+					<groupId>org.apache.felix</groupId>
+					<artifactId>maven-bundle-plugin</artifactId>
+					<version>2.4.0</version>
+					<configuration>
+						<instructions>
+							<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+							<Bundle-Version>${project.version}</Bundle-Version>
+						</instructions>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.8.2</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.mockito</groupId>
+			<artifactId>mockito-all</artifactId>
+			<version>1.8.2</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>javax.servlet</groupId>
+				<artifactId>javax.servlet-api</artifactId>
+				<version>${servlet.version}</version>
+				<scope>provided</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.osgi</groupId>
+				<artifactId>org.osgi.core</artifactId>
+				<version>4.2.0</version>
+				<scope>provided</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.osgi</groupId>
+				<artifactId>org.osgi.compendium</artifactId>
+				<version>4.2.0</version>
+				<scope>provided</scope>
+			</dependency>
+			<dependency>
+				<groupId>biz.aQute</groupId>
+				<artifactId>bndlib</artifactId>
+				<version>1.50.0</version>
+				<scope>provided</scope>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
 </project>

Modified: felix/sandbox/http-rfc189/proxy/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/proxy/pom.xml?rev=1605431&r1=1605430&r2=1605431&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/proxy/pom.xml (original)
+++ felix/sandbox/http-rfc189/proxy/pom.xml Wed Jun 25 14:55:09 2014
@@ -28,8 +28,8 @@
 
     <name>Apache Felix Http Proxy</name>
     <artifactId>org.apache.felix.http.proxy</artifactId>
-    <version>2.3.0-SNAPSHOT</version>
-    <packaging>jar</packaging>
+    <version>3.0.0-SNAPSHOT</version>
+    <packaging>bundle</packaging>
 
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/http/proxy</connection>
@@ -42,6 +42,7 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
                 <configuration>
                     <instructions>
                         <Export-Package>

Modified: felix/sandbox/http-rfc189/servlet-api/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/servlet-api/pom.xml?rev=1605431&r1=1605430&r2=1605431&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/servlet-api/pom.xml (original)
+++ felix/sandbox/http-rfc189/servlet-api/pom.xml Wed Jun 25 14:55:09 2014
@@ -1,69 +1,69 @@
 <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
-    license agreements. See the NOTICE file distributed with this work for additional 
-    information regarding copyright ownership. The ASF licenses this file to 
-    you under the Apache License, Version 2.0 (the "License"); you may not use 
-    this file except in compliance with the License. You may obtain a copy of 
-    the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
-    by applicable law or agreed to in writing, software distributed under the 
-    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
-    OF ANY KIND, either express or implied. See the License for the specific 
-    language governing permissions and limitations under the License. -->
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
->
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.http.parent</artifactId>
-        <version>3-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
-    </parent>
-
-    <name>Apache Felix Servlet API</name>
-    <description>Provides the Servlet API for use by applications</description>
-    <artifactId>org.apache.felix.http.servlet-api</artifactId>
-    <version>1.0.1-SNAPSHOT</version>
-    <packaging>jar</packaging>
-
-    <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/http/servlet-api</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/http/servlet-api</developerConnection>
-        <url>http://svn.apache.org/viewvc/felix/trunk/http/servlet-api/</url>
-    </scm>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Export-Package>
-                            javax.servlet;
-                            javax.servlet.annotation;
-                            javax.servlet.descriptor;
-                            javax.servlet.http;
-                                version=2.6,
-                            javax.servlet;
-                            javax.servlet.annotation;
-                            javax.servlet.descriptor;
-                            javax.servlet.http;
-                                version=3.0
-                        </Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.tomcat</groupId>
-            <artifactId>tomcat-servlet-api</artifactId>
-            <version>7.0.8</version>
-        </dependency>
-    </dependencies>
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.apache.felix</groupId>
+		<artifactId>org.apache.felix.http.parent</artifactId>
+		<version>3-SNAPSHOT</version>
+		<relativePath>../parent/pom.xml</relativePath>
+	</parent>
+
+	<name>Apache Felix Servlet API</name>
+	<description>Provides the Servlet API for use by applications</description>
+	<artifactId>org.apache.felix.http.servlet-api</artifactId>
+	<version>1.0.1-SNAPSHOT</version>
+	<packaging>bundle</packaging>
+
+	<scm>
+		<connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/http/servlet-api</connection>
+		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/http/servlet-api</developerConnection>
+		<url>http://svn.apache.org/viewvc/felix/trunk/http/servlet-api/</url>
+	</scm>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+				<extensions>true</extensions>
+				<configuration>
+					<instructions>
+						<Export-Package>
+							javax.servlet;
+							javax.servlet.annotation;
+							javax.servlet.descriptor;
+							javax.servlet.http;
+							version=2.6,
+							javax.servlet;
+							javax.servlet.annotation;
+							javax.servlet.descriptor;
+							javax.servlet.http;
+							version=3.0
+						</Export-Package>
+						<Embed-Dependency>tomcat-servlet-api;inline=true</Embed-Dependency>
+					</instructions>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.tomcat</groupId>
+			<artifactId>tomcat-servlet-api</artifactId>
+			<version>7.0.8</version>
+		</dependency>
+	</dependencies>
 
 </project>

Modified: felix/sandbox/http-rfc189/sslfilter/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/sslfilter/pom.xml?rev=1605431&r1=1605430&r2=1605431&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/sslfilter/pom.xml (original)
+++ felix/sandbox/http-rfc189/sslfilter/pom.xml Wed Jun 25 14:55:09 2014
@@ -29,7 +29,7 @@
     <name>Apache Felix Http SSL Filter</name>
     <artifactId>org.apache.felix.http.sslfilter</artifactId>
     <version>0.1.0-SNAPSHOT</version>
-    <packaging>jar</packaging>
+    <packaging>bundle</packaging>
 
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/http/sslfilter</connection>

Modified: felix/sandbox/http-rfc189/whiteboard/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/http-rfc189/whiteboard/pom.xml?rev=1605431&r1=1605430&r2=1605431&view=diff
==============================================================================
--- felix/sandbox/http-rfc189/whiteboard/pom.xml (original)
+++ felix/sandbox/http-rfc189/whiteboard/pom.xml Wed Jun 25 14:55:09 2014
@@ -29,7 +29,7 @@
     <name>Apache Felix Http Whiteboard</name>
     <artifactId>org.apache.felix.http.whiteboard</artifactId>
     <version>3.0.0-SNAPSHOT</version>
-    <packaging>jar</packaging>
+    <packaging>bundle</packaging>
 
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/http/whiteboard</connection>



Mime
View raw message