Author: rotty3000
Date: Thu Sep  7 21:07:30 2017
New Revision: 1807650

URL: http://svn.apache.org/viewvc?rev=1807650&view=rev
Log:
[CDI] add http request scoped test with reference

Signed-off-by: Raymond AugĂ© <[email protected]>

Added:
    
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BarServlet.java
      - copied, changed from r1807639, 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BeanServlet.java
    
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/FooServlet.java
      - copied, changed from r1807639, 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BeanServlet.java
    
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/RequestData.java
    
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/SessionData.java
      - copied, changed from r1807639, 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/SessionBean.java
Removed:
    
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BeanServlet.java
    
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/SessionBean.java
Modified:
    aries/trunk/cdi/cdi-itests/bnd/tb6-beans.xml
    
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/HttpTestCase.java

Modified: aries/trunk/cdi/cdi-itests/bnd/tb6-beans.xml
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/bnd/tb6-beans.xml?rev=1807650&r1=1807649&r2=1807650&view=diff
==============================================================================
--- aries/trunk/cdi/cdi-itests/bnd/tb6-beans.xml (original)
+++ aries/trunk/cdi/cdi-itests/bnd/tb6-beans.xml Thu Sep  7 21:07:30 2017
@@ -1,6 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <beans xmlns:cdi="http://www.osgi.org/xmlns/cdi/v1.0.0";>
-       <cdi:component class="org.apache.aries.cdi.test.tb6.BeanServlet" />
-       <cdi:component class="org.apache.aries.cdi.test.tb6.SessionBean" />
+       <cdi:component class="org.apache.aries.cdi.test.tb6.BarServlet" />
+       <cdi:component class="org.apache.aries.cdi.test.tb6.FooServlet" />
+       <cdi:component class="org.apache.aries.cdi.test.tb6.RequestData" />
+       <cdi:component class="org.apache.aries.cdi.test.tb6.SessionData" />
 </beans>

Modified: 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/HttpTestCase.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/HttpTestCase.java?rev=1807650&r1=1807649&r2=1807650&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/HttpTestCase.java
 (original)
+++ 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/HttpTestCase.java
 Thu Sep  7 21:07:30 2017
@@ -37,8 +37,9 @@ import org.osgi.util.tracker.ServiceTrac
 
 public class HttpTestCase extends AbstractTestCase {
 
-       public void testSessionBean() throws Exception {
-               Bundle tb5Bundle = installBundle("tb6.jar");
+       public void testSessionScoped() throws Exception {
+               Bundle tb6Bundle = installBundle("tb6.jar");
+               Bundle tb2Bundle = installBundle("tb2.jar");
 
                try {
                        String path = "/foo";
@@ -94,7 +95,71 @@ public class HttpTestCase extends Abstra
                        }
                }
                finally {
-                       tb5Bundle.uninstall();
+                       tb6Bundle.uninstall();
+                       tb2Bundle.uninstall();
+               }
+       }
+
+       public void testRequestScopedWithReference() throws Exception {
+               Bundle tb6Bundle = installBundle("tb6.jar");
+               Bundle tb2Bundle = installBundle("tb2.jar");
+
+               try {
+                       String path = "/bar";
+
+                       RequestInfoDTO requestInfoDTO = waitFor(path);
+
+                       assertEquals("bar", requestInfoDTO.servletDTO.name);
+
+                       HttpClientBuilder clientBuilder = hcbf.newBuilder();
+                       CloseableHttpClient httpclient = clientBuilder.build();
+
+                       CookieStore cookieStore = new BasicCookieStore();
+                       HttpContext httpContext = new BasicHttpContext();
+                       
httpContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore);
+
+                       URI uri = new URIBuilder(getEndpoint()).
+                               setPath(path).
+                               setParameter("name", "test").
+                               build();
+
+                       HttpGet httpget = new HttpGet(uri);
+
+                       try (CloseableHttpResponse response = 
httpclient.execute(httpget, httpContext)) {
+                               HttpEntity entity = response.getEntity();
+
+                               assertEquals("POJO-IMPLtest", read(entity));
+                       }
+
+                       for (int i = 0; i < 10; i++) {
+                               uri = new URIBuilder(getEndpoint()).
+                                       setPath(path).
+                                       build();
+
+                               httpget = new HttpGet(uri);
+
+                               try (CloseableHttpResponse response = 
httpclient.execute(httpget, httpContext)) {
+                                       HttpEntity entity = 
response.getEntity();
+
+                                       assertEquals("", read(entity));
+                               }
+                       }
+
+                       uri = new URIBuilder(getEndpoint()).
+                               setPath(path).
+                               build();
+
+                       httpget = new HttpGet(uri);
+
+                       try (CloseableHttpResponse response = 
httpclient.execute(httpget)) {
+                               HttpEntity entity = response.getEntity();
+
+                               assertEquals("", read(entity));
+                       }
+               }
+               finally {
+                       tb6Bundle.uninstall();
+                       tb2Bundle.uninstall();
                }
        }
 
@@ -143,7 +208,7 @@ public class HttpTestCase extends Abstra
        }
 
        private RequestInfoDTO waitFor(String path) throws InterruptedException 
{
-               return waitFor(path, 10);
+               return waitFor(path, 20);
        }
 
        private RequestInfoDTO waitFor(String path, int intervals) throws 
InterruptedException {

Copied: 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BarServlet.java
 (from r1807639, 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BeanServlet.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BarServlet.java?p2=aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BarServlet.java&p1=aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BeanServlet.java&r1=1807639&r2=1807650&rev=1807650&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BeanServlet.java
 (original)
+++ 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BarServlet.java
 Thu Sep  7 21:07:30 2017
@@ -30,13 +30,13 @@ import org.osgi.service.http.whiteboard.
 
 @Component(
        property = {
-               HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME + "=foo",
-               HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN + 
"=/foo"
+               HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME + "=bar",
+               HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN + 
"=/bar"
        },
        service = Servlet.class,
        serviceScope = ServiceScope.SINGLETON
 )
-public class BeanServlet extends HttpServlet {
+public class BarServlet extends HttpServlet {
 
        private static final long serialVersionUID = 1L;
 
@@ -47,24 +47,20 @@ public class BeanServlet extends HttpSer
 
                String name = request.getParameter("name");
 
-               response.setContentType("text/plain");
+               if (name != null) {
+                       requestData.setData(name);
+               }
 
-               PrintWriter writer = response.getWriter();
+               response.setContentType("text/plain");
 
-               if (!sessionBean.hasData() && (name == null)) {
-               }
-               else {
-                       if (name != null) {
-                               sessionBean.setData(name);
+               try (PrintWriter writer = response.getWriter()) {
+                       if (requestData.hasData()) {
+                               writer.print(requestData.getData());
                        }
-
-                       writer.print(sessionBean.getData());
                }
-
-               writer.close();
        }
 
        @Inject
-       SessionBean sessionBean;
+       RequestData requestData;
 
 }

Copied: 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/FooServlet.java
 (from r1807639, 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BeanServlet.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/FooServlet.java?p2=aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/FooServlet.java&p1=aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BeanServlet.java&r1=1807639&r2=1807650&rev=1807650&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/BeanServlet.java
 (original)
+++ 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/FooServlet.java
 Thu Sep  7 21:07:30 2017
@@ -36,7 +36,7 @@ import org.osgi.service.http.whiteboard.
        service = Servlet.class,
        serviceScope = ServiceScope.SINGLETON
 )
-public class BeanServlet extends HttpServlet {
+public class FooServlet extends HttpServlet {
 
        private static final long serialVersionUID = 1L;
 
@@ -47,24 +47,20 @@ public class BeanServlet extends HttpSer
 
                String name = request.getParameter("name");
 
-               response.setContentType("text/plain");
+               if (name != null) {
+                       sessionData.setData(name);
+               }
 
-               PrintWriter writer = response.getWriter();
+               response.setContentType("text/plain");
 
-               if (!sessionBean.hasData() && (name == null)) {
-               }
-               else {
-                       if (name != null) {
-                               sessionBean.setData(name);
+               try (PrintWriter writer = response.getWriter()) {
+                       if (sessionData.hasData()) {
+                               writer.print(sessionData.getData());
                        }
-
-                       writer.print(sessionBean.getData());
                }
-
-               writer.close();
        }
 
        @Inject
-       SessionBean sessionBean;
+       SessionData sessionData;
 
 }

Added: 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/RequestData.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/RequestData.java?rev=1807650&view=auto
==============================================================================
--- 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/RequestData.java
 (added)
+++ 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/RequestData.java
 Thu Sep  7 21:07:30 2017
@@ -0,0 +1,33 @@
+package org.apache.aries.cdi.test.tb6;
+
+import java.io.Serializable;
+
+import javax.enterprise.context.RequestScoped;
+import javax.inject.Inject;
+
+import org.apache.aries.cdi.test.interfaces.Pojo;
+import org.osgi.service.cdi.annotations.Reference;
+
+@RequestScoped
+public class RequestData implements Serializable {
+
+       public boolean hasData() {
+               return data != null;
+       }
+
+       public String getData() {
+               return data;
+       }
+
+       public void setData(String data) {
+               this.data = pojo.foo(data);
+       }
+
+       private static final long serialVersionUID = 1L;
+       private String data;
+
+       @Inject
+       @Reference
+       Pojo pojo;
+
+}

Copied: 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/SessionData.java
 (from r1807639, 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/SessionBean.java)
URL: 
http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/SessionData.java?p2=aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/SessionData.java&p1=aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/SessionBean.java&r1=1807639&r2=1807650&rev=1807650&view=diff
==============================================================================
--- 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/SessionBean.java
 (original)
+++ 
aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/tb6/SessionData.java
 Thu Sep  7 21:07:30 2017
@@ -21,7 +21,7 @@ import javax.inject.Named;
 
 @Named
 @SessionScoped
-public class SessionBean implements Serializable {
+public class SessionData implements Serializable {
 
        public boolean hasData() {
                return data != null;


Reply via email to