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;