You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ro...@apache.org on 2017/09/07 21:07:30 UTC

svn commit: r1807650 - in /aries/trunk/cdi/cdi-itests: bnd/ src/main/java/org/apache/aries/cdi/test/cases/ src/main/java/org/apache/aries/cdi/test/tb6/

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é <ro...@apache.org>

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;