mirror of
https://github.com/apache/struts.git
synced 2026-08-05 22:56:59 +00:00
WW-5182 Upgrade to Servlet API 3.1
This commit is contained in:
+1
-10
@@ -101,7 +101,7 @@
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
@@ -155,15 +155,6 @@
|
||||
<version>6.1.2.Final</version>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
|
||||
This is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
+1
-3
@@ -53,12 +53,10 @@
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<version>2.4</version>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
<reporting>
|
||||
|
||||
+1
-10
@@ -188,7 +188,7 @@
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
@@ -345,15 +345,6 @@
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
|
||||
This is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-validator</groupId>
|
||||
<artifactId>commons-validator</artifactId>
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.struts2.RequestUtils;
|
||||
import org.apache.struts2.StrutsConstants;
|
||||
import org.apache.struts2.StrutsException;
|
||||
import org.apache.struts2.util.FastByteArrayOutputStream;
|
||||
import org.apache.struts2.views.annotations.StrutsTag;
|
||||
import org.apache.struts2.views.annotations.StrutsTagAttribute;
|
||||
@@ -33,6 +34,7 @@ import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.WriteListener;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpServletResponseWrapper;
|
||||
@@ -296,6 +298,19 @@ public class Include extends Component {
|
||||
buffer = new FastByteArrayOutputStream();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isReady() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWriteListener(WriteListener writeListener) {
|
||||
try {
|
||||
writeListener.onWritePossible();
|
||||
} catch (IOException e) {
|
||||
throw new StrutsException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return all data that has been written to this OutputStream.
|
||||
|
||||
@@ -321,7 +321,7 @@ public class ServletUrlRenderer implements UrlRenderer {
|
||||
* @param parameters component parameters
|
||||
* @param contextParameters request parameters
|
||||
*/
|
||||
protected void mergeRequestParameters(String value, Map<String, Object> parameters, Map<String, Object> contextParameters) {
|
||||
protected void mergeRequestParameters(String value, Map<String, Object> parameters, Map<String, ?> contextParameters) {
|
||||
|
||||
Map<String, Object> mergedParams = new LinkedHashMap<>(contextParameters);
|
||||
|
||||
@@ -333,7 +333,7 @@ public class ServletUrlRenderer implements UrlRenderer {
|
||||
String queryString = value.substring(value.indexOf('?') + 1);
|
||||
|
||||
mergedParams = urlHelper.parseQueryString(queryString, false);
|
||||
for (Map.Entry<String, Object> entry : contextParameters.entrySet()) {
|
||||
for (Map.Entry<String, ?> entry : contextParameters.entrySet()) {
|
||||
if (!mergedParams.containsKey(entry.getKey())) {
|
||||
mergedParams.put(entry.getKey(), entry.getValue());
|
||||
}
|
||||
|
||||
@@ -24,11 +24,13 @@ import com.opensymphony.xwork2.util.TextParseUtil;
|
||||
import com.opensymphony.xwork2.util.ValueStack;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.struts2.StrutsException;
|
||||
import org.apache.struts2.views.jsp.ui.OgnlTool;
|
||||
import org.apache.struts2.views.util.UrlHelper;
|
||||
|
||||
import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.WriteListener;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpServletResponseWrapper;
|
||||
@@ -278,6 +280,20 @@ public class StrutsUtil {
|
||||
public void write(int aByte) {
|
||||
writer.write(aByte);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isReady() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWriteListener(WriteListener writeListener) {
|
||||
try {
|
||||
writeListener.onWritePossible();
|
||||
} catch (IOException e) {
|
||||
throw new StrutsException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
package org.apache.struts2.util;
|
||||
|
||||
import com.opensymphony.xwork2.ActionContext;
|
||||
import org.apache.struts2.ServletActionContext;
|
||||
import org.apache.struts2.views.util.DefaultUrlHelper;
|
||||
import org.apache.struts2.views.util.UrlHelper;
|
||||
|
||||
@@ -58,20 +57,10 @@ public class URLBean {
|
||||
|
||||
public String getURL() {
|
||||
// all this trickier with maps is to reduce the number of objects created
|
||||
Map<String, Object> fullParams = null;
|
||||
|
||||
if (params != null) {
|
||||
fullParams = new HashMap<String, Object>();
|
||||
}
|
||||
Map<String, Object> fullParams = new HashMap<>();
|
||||
|
||||
if (page == null) {
|
||||
// No particular page requested, so go to "same page"
|
||||
// Add query params to parameters
|
||||
if (fullParams != null) {
|
||||
fullParams.putAll(request.getParameterMap());
|
||||
} else {
|
||||
fullParams = request.getParameterMap();
|
||||
}
|
||||
fullParams.putAll(request.getParameterMap());
|
||||
}
|
||||
|
||||
// added parameters override, just like in URLTag
|
||||
@@ -84,7 +73,7 @@ public class URLBean {
|
||||
|
||||
public URLBean addParameter(String name, Object value) {
|
||||
if (params == null) {
|
||||
params = new HashMap<String, String>();
|
||||
params = new HashMap<>();
|
||||
}
|
||||
|
||||
if (value == null) {
|
||||
|
||||
@@ -18,25 +18,26 @@
|
||||
*/
|
||||
package org.apache.struts2.interceptor;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.Cookie;
|
||||
|
||||
import com.opensymphony.xwork2.security.DefaultAcceptedPatternsChecker;
|
||||
import com.opensymphony.xwork2.security.DefaultExcludedPatternsChecker;
|
||||
import com.opensymphony.xwork2.mock.MockActionInvocation;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
|
||||
import org.apache.struts2.ServletActionContext;
|
||||
import org.apache.struts2.StrutsInternalTestCase;
|
||||
import static org.easymock.EasyMock.*;
|
||||
|
||||
import com.opensymphony.xwork2.Action;
|
||||
import com.opensymphony.xwork2.ActionContext;
|
||||
import com.opensymphony.xwork2.ActionInvocation;
|
||||
import com.opensymphony.xwork2.ActionSupport;
|
||||
import com.opensymphony.xwork2.mock.MockActionInvocation;
|
||||
import com.opensymphony.xwork2.security.DefaultAcceptedPatternsChecker;
|
||||
import com.opensymphony.xwork2.security.DefaultExcludedPatternsChecker;
|
||||
import org.apache.struts2.ServletActionContext;
|
||||
import org.apache.struts2.StrutsInternalTestCase;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
|
||||
import javax.servlet.http.Cookie;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.easymock.EasyMock.createMock;
|
||||
import static org.easymock.EasyMock.expect;
|
||||
import static org.easymock.EasyMock.replay;
|
||||
import static org.easymock.EasyMock.verify;
|
||||
|
||||
public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
|
||||
@@ -44,9 +45,9 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
public void testIntercepDefault() throws Exception {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.setCookies(
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
);
|
||||
ServletActionContext.setRequest(request);
|
||||
|
||||
@@ -55,7 +56,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
ActionContext.getContext().getValueStack().push(action);
|
||||
|
||||
ActionInvocation invocation = (ActionInvocation) createMock(ActionInvocation.class);
|
||||
|
||||
|
||||
expect(invocation.getAction()).andReturn(action);
|
||||
expect(invocation.invoke()).andReturn(Action.SUCCESS);
|
||||
|
||||
@@ -75,16 +76,16 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
assertNull(ActionContext.getContext().getValueStack().findValue("cookie1"));
|
||||
assertNull(ActionContext.getContext().getValueStack().findValue("cookie2"));
|
||||
assertNull(ActionContext.getContext().getValueStack().findValue("cookie3"));
|
||||
|
||||
|
||||
verify(invocation);
|
||||
}
|
||||
|
||||
public void testInterceptAll1() throws Exception {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.setCookies(
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
);
|
||||
ServletActionContext.setRequest(request);
|
||||
|
||||
@@ -93,7 +94,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
ActionContext.getContext().getValueStack().push(action);
|
||||
|
||||
ActionInvocation invocation = (ActionInvocation) createMock(ActionInvocation.class);
|
||||
|
||||
|
||||
expect(invocation.getAction()).andReturn(action);
|
||||
expect(invocation.invoke()).andReturn(Action.SUCCESS);
|
||||
|
||||
@@ -117,7 +118,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie1"), "cookie1value");
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie2"), "cookie2value");
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie3"), "cookie3value");
|
||||
|
||||
|
||||
verify(invocation);
|
||||
}
|
||||
|
||||
@@ -125,9 +126,9 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
public void testInterceptAll2() throws Exception {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.setCookies(
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
);
|
||||
ServletActionContext.setRequest(request);
|
||||
|
||||
@@ -159,16 +160,16 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie1"), "cookie1value");
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie2"), "cookie2value");
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie3"), "cookie3value");
|
||||
|
||||
|
||||
verify(invocation);
|
||||
}
|
||||
|
||||
public void testInterceptSelectedCookiesNameOnly1() throws Exception {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.setCookies(
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
);
|
||||
ServletActionContext.setRequest(request);
|
||||
|
||||
@@ -200,16 +201,16 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie1"), "cookie1value");
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie2"), null);
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie3"), "cookie3value");
|
||||
|
||||
|
||||
verify(invocation);
|
||||
}
|
||||
|
||||
public void testInterceptSelectedCookiesNameOnly2() throws Exception {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.setCookies(
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
);
|
||||
ServletActionContext.setRequest(request);
|
||||
|
||||
@@ -218,7 +219,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
ActionContext.getContext().getValueStack().push(action);
|
||||
|
||||
ActionInvocation invocation = (ActionInvocation) createMock(ActionInvocation.class);
|
||||
|
||||
|
||||
expect(invocation.getAction()).andReturn(action);
|
||||
expect(invocation.invoke()).andReturn(Action.SUCCESS);
|
||||
|
||||
@@ -242,16 +243,16 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie1"), "cookie1value");
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie2"), null);
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie3"), "cookie3value");
|
||||
|
||||
|
||||
verify(invocation);
|
||||
}
|
||||
|
||||
public void testInterceptSelectedCookiesNameOnly3() throws Exception {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.setCookies(
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
);
|
||||
ServletActionContext.setRequest(request);
|
||||
|
||||
@@ -283,7 +284,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie1"), "cookie1value");
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie2"), null);
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie3"), "cookie3value");
|
||||
|
||||
|
||||
verify(invocation);
|
||||
}
|
||||
|
||||
@@ -291,9 +292,9 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
public void testInterceptSelectedCookiesNameAndValue() throws Exception {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.setCookies(
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
new Cookie("cookie1", "cookie1value"),
|
||||
new Cookie("cookie2", "cookie2value"),
|
||||
new Cookie("cookie3", "cookie3value")
|
||||
);
|
||||
ServletActionContext.setRequest(request);
|
||||
|
||||
@@ -325,7 +326,7 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie1"), "cookie1value");
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie2"), null);
|
||||
assertEquals(ActionContext.getContext().getValueStack().findValue("cookie3"), null);
|
||||
|
||||
|
||||
verify(invocation);
|
||||
}
|
||||
|
||||
@@ -338,20 +339,44 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
String pollution5 = "model[\"class\"]['classLoader']['jarPath']";
|
||||
String pollution6 = "class[\"classLoader\"]['jarPath']";
|
||||
|
||||
try {
|
||||
new Cookie(pollution1, "pollution1");
|
||||
fail("It shouldn't be possible to create cookie: " + pollution1);
|
||||
} catch (IllegalArgumentException e) {
|
||||
assertEquals(e.getMessage(), "Cookie name \"" + pollution1 + "\" is a reserved token");
|
||||
}
|
||||
|
||||
try {
|
||||
new Cookie(pollution4, "pollution4");
|
||||
fail("It shouldn't be possible to create cookie: " + pollution4);
|
||||
} catch (IllegalArgumentException e) {
|
||||
assertEquals(e.getMessage(), "Cookie name \"" + pollution4 + "\" is a reserved token");
|
||||
}
|
||||
|
||||
try {
|
||||
new Cookie(pollution5, "pollution5");
|
||||
fail("It shouldn't be possible to create cookie: " + pollution5);
|
||||
} catch (IllegalArgumentException e) {
|
||||
assertEquals(e.getMessage(), "Cookie name \"" + pollution5 + "\" is a reserved token");
|
||||
}
|
||||
|
||||
try {
|
||||
new Cookie(pollution6, "pollution6");
|
||||
fail("It shouldn't be possible to create cookie: " + pollution6);
|
||||
} catch (IllegalArgumentException e) {
|
||||
assertEquals(e.getMessage(), "Cookie name \"" + pollution6 + "\" is a reserved token");
|
||||
}
|
||||
|
||||
request.setCookies(
|
||||
new Cookie(pollution1, "pollution1"),
|
||||
new Cookie("pollution1", pollution1),
|
||||
new Cookie(pollution2, "pollution2"),
|
||||
new Cookie("pollution2", pollution2),
|
||||
new Cookie(pollution3, "pollution3"),
|
||||
new Cookie("pollution3", pollution3),
|
||||
new Cookie(pollution4, "pollution4"),
|
||||
new Cookie("pollution4", pollution4),
|
||||
new Cookie(pollution5, "pollution5"),
|
||||
new Cookie("pollution5", pollution5),
|
||||
new Cookie(pollution6, "pollution6"),
|
||||
new Cookie("pollution6", pollution6)
|
||||
);
|
||||
new Cookie("pollution1", pollution1),
|
||||
new Cookie(pollution2, "pollution2"),
|
||||
new Cookie("pollution2", pollution2),
|
||||
new Cookie(pollution3, "pollution3"),
|
||||
new Cookie("pollution3", pollution3),
|
||||
new Cookie("pollution4", pollution4),
|
||||
new Cookie("pollution5", pollution5),
|
||||
new Cookie("pollution6", pollution6)
|
||||
);
|
||||
ServletActionContext.setRequest(request);
|
||||
|
||||
final Map<String, Boolean> excludedName = new HashMap<String, Boolean>();
|
||||
@@ -375,12 +400,12 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
|
||||
interceptor.intercept(invocation);
|
||||
|
||||
assertFalse(excludedName.get(pollution1));
|
||||
//assertFalse(excludedName.get(pollution1));
|
||||
assertFalse(excludedName.get(pollution2));
|
||||
assertFalse(excludedName.get(pollution3));
|
||||
assertFalse(excludedName.get(pollution4));
|
||||
assertFalse(excludedName.get(pollution5));
|
||||
assertFalse(excludedName.get(pollution6));
|
||||
//assertFalse(excludedName.get(pollution4));
|
||||
//assertFalse(excludedName.get(pollution5));
|
||||
// assertFalse(excludedName.get(pollution6));
|
||||
}
|
||||
|
||||
public void testCookiesWithStrutsInternalsAccess() throws Exception {
|
||||
@@ -393,13 +418,13 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
String reqCookieValue = "request.userId=1";
|
||||
|
||||
request.setCookies(
|
||||
new Cookie(sessionCookieName, "1"),
|
||||
new Cookie("1", sessionCookieValue),
|
||||
new Cookie(appCookieName, "1"),
|
||||
new Cookie("1", appCookieValue),
|
||||
new Cookie(reqCookieName, "1"),
|
||||
new Cookie("1", reqCookieValue)
|
||||
);
|
||||
new Cookie(sessionCookieName, "1"),
|
||||
new Cookie("1", sessionCookieValue),
|
||||
new Cookie(appCookieName, "1"),
|
||||
new Cookie("1", appCookieValue),
|
||||
new Cookie(reqCookieName, "1"),
|
||||
new Cookie("1", reqCookieValue)
|
||||
);
|
||||
ServletActionContext.setRequest(request);
|
||||
|
||||
final Map<String, Boolean> excludedName = new HashMap<String, Boolean>();
|
||||
@@ -436,13 +461,13 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
String reqCookieValue = "request.userId=1";
|
||||
|
||||
request.setCookies(
|
||||
new Cookie(sessionCookieName, "1"),
|
||||
new Cookie("1", sessionCookieValue),
|
||||
new Cookie(appCookieName, "1"),
|
||||
new Cookie("1", appCookieValue),
|
||||
new Cookie(reqCookieName, "1"),
|
||||
new Cookie("1", reqCookieValue)
|
||||
);
|
||||
new Cookie(sessionCookieName, "1"),
|
||||
new Cookie("1", sessionCookieValue),
|
||||
new Cookie(appCookieName, "1"),
|
||||
new Cookie("1", appCookieValue),
|
||||
new Cookie(reqCookieName, "1"),
|
||||
new Cookie("1", reqCookieValue)
|
||||
);
|
||||
ServletActionContext.setRequest(request);
|
||||
|
||||
final Map<String, Boolean> excludedName = new HashMap<>();
|
||||
@@ -486,14 +511,29 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
return this.cookies;
|
||||
}
|
||||
|
||||
public String getCookie1() { return cookie1; }
|
||||
public void setCookie1(String cookie1) { this.cookie1 = cookie1; }
|
||||
public String getCookie1() {
|
||||
return cookie1;
|
||||
}
|
||||
|
||||
public String getCookie2() { return cookie2; }
|
||||
public void setCookie2(String cookie2) { this.cookie2 = cookie2; }
|
||||
public void setCookie1(String cookie1) {
|
||||
this.cookie1 = cookie1;
|
||||
}
|
||||
|
||||
public String getCookie3() { return cookie3; }
|
||||
public void setCookie3(String cookie3) { this.cookie3 = cookie3; }
|
||||
public String getCookie2() {
|
||||
return cookie2;
|
||||
}
|
||||
|
||||
public void setCookie2(String cookie2) {
|
||||
this.cookie2 = cookie2;
|
||||
}
|
||||
|
||||
public String getCookie3() {
|
||||
return cookie3;
|
||||
}
|
||||
|
||||
public void setCookie3(String cookie3) {
|
||||
this.cookie3 = cookie3;
|
||||
}
|
||||
}
|
||||
|
||||
public static class MockActionWithActionCookieAware extends ActionSupport implements org.apache.struts2.action.CookiesAware {
|
||||
@@ -511,14 +551,29 @@ public class CookieInterceptorTest extends StrutsInternalTestCase {
|
||||
return this.cookies;
|
||||
}
|
||||
|
||||
public String getCookie1() { return cookie1; }
|
||||
public void setCookie1(String cookie1) { this.cookie1 = cookie1; }
|
||||
public String getCookie1() {
|
||||
return cookie1;
|
||||
}
|
||||
|
||||
public String getCookie2() { return cookie2; }
|
||||
public void setCookie2(String cookie2) { this.cookie2 = cookie2; }
|
||||
public void setCookie1(String cookie1) {
|
||||
this.cookie1 = cookie1;
|
||||
}
|
||||
|
||||
public String getCookie3() { return cookie3; }
|
||||
public void setCookie3(String cookie3) { this.cookie3 = cookie3; }
|
||||
public String getCookie2() {
|
||||
return cookie2;
|
||||
}
|
||||
|
||||
public void setCookie2(String cookie2) {
|
||||
this.cookie2 = cookie2;
|
||||
}
|
||||
|
||||
public String getCookie3() {
|
||||
return cookie3;
|
||||
}
|
||||
|
||||
public void setCookie3(String cookie3) {
|
||||
this.cookie3 = cookie3;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,14 +23,21 @@ import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
import java.util.EventListener;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.servlet.Filter;
|
||||
import javax.servlet.FilterRegistration;
|
||||
import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.Servlet;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletRegistration;
|
||||
import javax.servlet.SessionCookieConfig;
|
||||
import javax.servlet.SessionTrackingMode;
|
||||
import javax.servlet.descriptor.JspConfigDescriptor;
|
||||
|
||||
|
||||
/**
|
||||
@@ -42,12 +49,12 @@ public class StrutsMockServletContext implements ServletContext {
|
||||
String realPath;
|
||||
String servletInfo;
|
||||
String contextPath;
|
||||
Map initParams = new HashMap();
|
||||
Map attributes = new HashMap();
|
||||
Map<String, String> initParams = new HashMap<>();
|
||||
Map<String, Object> attributes = new HashMap<>();
|
||||
InputStream resourceAsStream;
|
||||
|
||||
public void setInitParameter(String name, String value) {
|
||||
initParams.put(name, value);
|
||||
public boolean setInitParameter(String name, String value) {
|
||||
return initParams.put(name, value) != null;
|
||||
}
|
||||
|
||||
public void setRealPath(String value) {
|
||||
@@ -74,7 +81,7 @@ public class StrutsMockServletContext implements ServletContext {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Set getResourcePaths(String s) {
|
||||
public Set<String> getResourcePaths(String s) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -105,11 +112,11 @@ public class StrutsMockServletContext implements ServletContext {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Enumeration getServlets() {
|
||||
public Enumeration<Servlet> getServlets() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Enumeration getServletNames() {
|
||||
public Enumeration<String> getServletNames() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -130,7 +137,7 @@ public class StrutsMockServletContext implements ServletContext {
|
||||
return (String) initParams.get(s);
|
||||
}
|
||||
|
||||
public Enumeration getInitParameterNames() {
|
||||
public Enumeration<String> getInitParameterNames() {
|
||||
return Collections.enumeration(initParams.keySet());
|
||||
}
|
||||
|
||||
@@ -138,7 +145,7 @@ public class StrutsMockServletContext implements ServletContext {
|
||||
return attributes.get(s);
|
||||
}
|
||||
|
||||
public Enumeration getAttributeNames() {
|
||||
public Enumeration<String> getAttributeNames() {
|
||||
return Collections.enumeration(attributes.keySet());
|
||||
}
|
||||
|
||||
@@ -157,12 +164,142 @@ public class StrutsMockServletContext implements ServletContext {
|
||||
public void setServletInfo(String servletInfo) {
|
||||
this.servletInfo = servletInfo;
|
||||
}
|
||||
|
||||
|
||||
public String getContextPath() {
|
||||
return contextPath;
|
||||
}
|
||||
}
|
||||
|
||||
public void setContextPath(String contextPath) {
|
||||
this.contextPath = contextPath;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEffectiveMajorVersion() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEffectiveMinorVersion() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletRegistration.Dynamic addServlet(String servletName, String className) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletRegistration.Dynamic addServlet(String servletName, Servlet servlet) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletRegistration.Dynamic addServlet(String servletName, Class<? extends Servlet> servletClass) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends Servlet> T createServlet(Class<T> clazz) throws ServletException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletRegistration getServletRegistration(String servletName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, ? extends ServletRegistration> getServletRegistrations() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterRegistration.Dynamic addFilter(String filterName, String className) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterRegistration.Dynamic addFilter(String filterName, Filter filter) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterRegistration.Dynamic addFilter(String filterName, Class<? extends Filter> filterClass) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends Filter> T createFilter(Class<T> clazz) throws ServletException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterRegistration getFilterRegistration(String filterName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, ? extends FilterRegistration> getFilterRegistrations() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SessionCookieConfig getSessionCookieConfig() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSessionTrackingModes(Set<SessionTrackingMode> sessionTrackingModes) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<SessionTrackingMode> getDefaultSessionTrackingModes() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListener(String className) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends EventListener> void addListener(T t) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListener(Class<? extends EventListener> listenerClass) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends EventListener> T createListener(Class<T> clazz) throws ServletException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JspConfigDescriptor getJspConfigDescriptor() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClassLoader getClassLoader() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void declareRoles(String... roleNames) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getVirtualServerName() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,15 +89,6 @@
|
||||
<artifactId>tomcat-jasper</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
|
||||
This is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
@@ -63,12 +63,6 @@
|
||||
<artifactId>jsp-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-web</artifactId>
|
||||
|
||||
@@ -19,13 +19,14 @@
|
||||
* 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">
|
||||
<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.struts</groupId>
|
||||
<artifactId>struts2-plugins</artifactId>
|
||||
<version>6.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
</parent>
|
||||
|
||||
<artifactId>struts2-jfreechart-plugin</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
@@ -71,18 +72,9 @@
|
||||
<artifactId>easymock</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
|
||||
This is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
</project>
|
||||
|
||||
+5
-12
@@ -19,7 +19,8 @@
|
||||
* 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">
|
||||
<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.struts</groupId>
|
||||
@@ -105,18 +106,10 @@
|
||||
<artifactId>assertj-core</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
|
||||
This is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
|
||||
+4
-11
@@ -19,7 +19,8 @@
|
||||
* 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">
|
||||
<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.struts</groupId>
|
||||
@@ -85,17 +86,9 @@
|
||||
<artifactId>struts2-portlet-mocks-plugin</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
|
||||
This is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
</project>
|
||||
|
||||
@@ -106,15 +106,6 @@
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
|
||||
This is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.logging.log4j</groupId>
|
||||
<artifactId>log4j-core</artifactId>
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
* 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">
|
||||
<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.struts</groupId>
|
||||
@@ -47,16 +48,8 @@
|
||||
<artifactId>portlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
|
||||
This is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
+5
-11
@@ -19,7 +19,8 @@
|
||||
* 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">
|
||||
<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.struts</groupId>
|
||||
@@ -139,17 +140,10 @@
|
||||
<artifactId>commons-fileupload</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
|
||||
This is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
|
||||
+143
@@ -20,14 +20,22 @@ package org.apache.struts2.portlet.servlet;
|
||||
|
||||
import javax.portlet.PortletContext;
|
||||
import javax.portlet.PortletRequestDispatcher;
|
||||
import javax.servlet.Filter;
|
||||
import javax.servlet.FilterRegistration;
|
||||
import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.Servlet;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletRegistration;
|
||||
import javax.servlet.SessionCookieConfig;
|
||||
import javax.servlet.SessionTrackingMode;
|
||||
import javax.servlet.descriptor.JspConfigDescriptor;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.Enumeration;
|
||||
import java.util.EventListener;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@@ -86,6 +94,11 @@ public class PortletServletContext implements ServletContext {
|
||||
return portletContext.getInitParameterNames();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setInitParameter(String name, String value) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see javax.servlet.ServletContext#getMajorVersion()
|
||||
*/
|
||||
@@ -107,6 +120,16 @@ public class PortletServletContext implements ServletContext {
|
||||
return portletContext.getMinorVersion();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEffectiveMajorVersion() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEffectiveMinorVersion() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a {@link PortletServletRequestDispatcher} wrapping the {@link PortletRequestDispatcher}
|
||||
* as a {@link RequestDispatcher} instance.
|
||||
@@ -179,6 +202,126 @@ public class PortletServletContext implements ServletContext {
|
||||
return portletContext.getPortletContextName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletRegistration.Dynamic addServlet(String servletName, String className) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletRegistration.Dynamic addServlet(String servletName, Servlet servlet) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletRegistration.Dynamic addServlet(String servletName, Class<? extends Servlet> servletClass) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends Servlet> T createServlet(Class<T> clazz) throws ServletException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletRegistration getServletRegistration(String servletName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, ? extends ServletRegistration> getServletRegistrations() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterRegistration.Dynamic addFilter(String filterName, String className) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterRegistration.Dynamic addFilter(String filterName, Filter filter) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterRegistration.Dynamic addFilter(String filterName, Class<? extends Filter> filterClass) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends Filter> T createFilter(Class<T> clazz) throws ServletException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FilterRegistration getFilterRegistration(String filterName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, ? extends FilterRegistration> getFilterRegistrations() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SessionCookieConfig getSessionCookieConfig() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSessionTrackingModes(Set<SessionTrackingMode> sessionTrackingModes) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<SessionTrackingMode> getDefaultSessionTrackingModes() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListener(String className) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends EventListener> void addListener(T t) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListener(Class<? extends EventListener> listenerClass) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends EventListener> T createListener(Class<T> clazz) throws ServletException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JspConfigDescriptor getJspConfigDescriptor() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClassLoader getClassLoader() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void declareRoles(String... roleNames) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getVirtualServerName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws IllegalStateException Not supported in a portlet.
|
||||
* @see javax.servlet.ServletContext#getServletNames()
|
||||
|
||||
+18
-3
@@ -21,6 +21,7 @@ package org.apache.struts2.portlet.servlet;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.servlet.ReadListener;
|
||||
import javax.servlet.ServletInputStream;
|
||||
|
||||
/**
|
||||
@@ -31,11 +32,11 @@ import javax.servlet.ServletInputStream;
|
||||
public class PortletServletInputStream extends ServletInputStream {
|
||||
|
||||
private InputStream portletInputStream;
|
||||
|
||||
|
||||
public PortletServletInputStream(InputStream portletInputStream) {
|
||||
this.portletInputStream = portletInputStream;
|
||||
}
|
||||
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see java.io.InputStream#read()
|
||||
*/
|
||||
@@ -107,7 +108,7 @@ public class PortletServletInputStream extends ServletInputStream {
|
||||
public long skip(long n) throws IOException {
|
||||
return portletInputStream.skip(n);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the wrapped {@link InputStream} instance.
|
||||
* @return The wrapped {@link InputStream} instance.
|
||||
@@ -116,4 +117,18 @@ public class PortletServletInputStream extends ServletInputStream {
|
||||
return portletInputStream;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFinished() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isReady() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setReadListener(ReadListener readListener) {
|
||||
// no-op
|
||||
}
|
||||
}
|
||||
|
||||
+13
-2
@@ -22,6 +22,7 @@ import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.WriteListener;
|
||||
|
||||
/**
|
||||
* Wrapper object exposing a {@link OutputStream} from a portlet as a {@link ServletOutputStream} instance.
|
||||
@@ -31,7 +32,7 @@ import javax.servlet.ServletOutputStream;
|
||||
public class PortletServletOutputStream extends ServletOutputStream {
|
||||
|
||||
private OutputStream portletOutputStream;
|
||||
|
||||
|
||||
public PortletServletOutputStream(OutputStream portletOutputStream) {
|
||||
this.portletOutputStream = portletOutputStream;
|
||||
}
|
||||
@@ -75,7 +76,7 @@ public class PortletServletOutputStream extends ServletOutputStream {
|
||||
public void write(byte[] b, int off, int len) throws IOException {
|
||||
portletOutputStream.write(b, off, len);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the wrapped {@link OutputStream} instance.
|
||||
* @return The wrapped {@link OutputStream} instance.
|
||||
@@ -83,4 +84,14 @@ public class PortletServletOutputStream extends ServletOutputStream {
|
||||
public OutputStream getOutputStream() {
|
||||
return portletOutputStream;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isReady() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWriteListener(WriteListener writeListener) {
|
||||
// no-op
|
||||
}
|
||||
}
|
||||
|
||||
+139
-55
@@ -23,6 +23,7 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.security.Principal;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Locale;
|
||||
@@ -34,12 +35,20 @@ import javax.portlet.PortletContext;
|
||||
import javax.portlet.PortletRequest;
|
||||
import javax.portlet.PortletRequestDispatcher;
|
||||
import javax.portlet.PortletSession;
|
||||
import javax.servlet.AsyncContext;
|
||||
import javax.servlet.DispatcherType;
|
||||
import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletInputStream;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import javax.servlet.http.HttpUpgradeHandler;
|
||||
import javax.servlet.http.Part;
|
||||
|
||||
import static org.apache.struts2.portlet.PortletConstants.*;
|
||||
|
||||
@@ -71,7 +80,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#getAuthType()
|
||||
*/
|
||||
public String getAuthType() {
|
||||
@@ -80,7 +89,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#getContextPath()
|
||||
*/
|
||||
public String getContextPath() {
|
||||
@@ -89,7 +98,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -102,7 +111,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -113,7 +122,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
/**
|
||||
* Gets a property from the {@link PortletRequest}. Note that a
|
||||
* {@link PortletRequest} is not guaranteed to map properties to headers.
|
||||
*
|
||||
*
|
||||
* @see PortletRequest#getProperty(String)
|
||||
* @see javax.servlet.http.HttpServletRequest#getHeader(java.lang.String)
|
||||
*/
|
||||
@@ -124,7 +133,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
/**
|
||||
* Gets the property names from the {@link PortletRequest}. Note that a
|
||||
* {@link PortletRequest} is not guaranteed to map properties to headers.
|
||||
*
|
||||
*
|
||||
* @see PortletRequest#getPropertyNames()
|
||||
* @see javax.servlet.http.HttpServletRequest#getHeaderNames()
|
||||
*/
|
||||
@@ -136,7 +145,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
* Gets the values for the specified property from the
|
||||
* {@link PortletRequest}. Note that a {@link PortletRequest} is not
|
||||
* guaranteed to map properties to headers.
|
||||
*
|
||||
*
|
||||
* @see PortletRequest#getProperties(String)
|
||||
* @see HttpServletRequest#getHeaders(String)
|
||||
*/
|
||||
@@ -146,7 +155,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -156,7 +165,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#getMethod()
|
||||
*/
|
||||
public String getMethod() {
|
||||
@@ -170,7 +179,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#getPathInfo()
|
||||
*/
|
||||
public String getPathInfo() {
|
||||
@@ -179,7 +188,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#getPathTranslated()
|
||||
*/
|
||||
public String getPathTranslated() {
|
||||
@@ -188,7 +197,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#getQueryString()
|
||||
*/
|
||||
public String getQueryString() {
|
||||
@@ -197,7 +206,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#getRemoteUser()
|
||||
*/
|
||||
public String getRemoteUser() {
|
||||
@@ -206,7 +215,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -216,7 +225,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -226,7 +235,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#getRequestedSessionId()
|
||||
*/
|
||||
public String getRequestedSessionId() {
|
||||
@@ -237,7 +246,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
* A {@link PortletRequest} has no servlet path. But for compatibility with
|
||||
* Struts 2 components and interceptors, the action parameter on the request
|
||||
* is mapped to the servlet path.
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#getServletPath()
|
||||
*/
|
||||
public String getServletPath() {
|
||||
@@ -250,16 +259,21 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Get the {@link PortletSession} as a {@link PortletHttpSession} instance.
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#getSession()
|
||||
*/
|
||||
public HttpSession getSession() {
|
||||
return new PortletHttpSession(portletRequest.getPortletSession());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String changeSessionId() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the {@link PortletSession} as a {@link PortletHttpSession} instance.
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#getSession(boolean)
|
||||
*/
|
||||
public HttpSession getSession(boolean create) {
|
||||
@@ -268,7 +282,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#getUserPrincipal()
|
||||
*/
|
||||
public Principal getUserPrincipal() {
|
||||
@@ -277,7 +291,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -287,7 +301,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -297,7 +311,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -305,9 +319,39 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
throw new IllegalStateException("Not allowed in a portlet");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void login(String username, String password) throws ServletException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void logout() throws ServletException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Part> getParts() throws IOException, ServletException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Part getPart(String name) throws IOException, ServletException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends HttpUpgradeHandler> T upgrade(Class<T> handlerClass) throws IOException, ServletException {
|
||||
return null;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdValid()
|
||||
*/
|
||||
public boolean isRequestedSessionIdValid() {
|
||||
@@ -316,7 +360,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.http.HttpServletRequest#isUserInRole(java.lang.String)
|
||||
*/
|
||||
public boolean isUserInRole(String role) {
|
||||
@@ -327,7 +371,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
* Gets an attribute value on the {@link PortletRequest}. If the attribute
|
||||
* name is <tt>javax.servlet.include.servlet_path</tt>, it returns the
|
||||
* same as {@link PortletServletRequest#getServletPath()}
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#getAttribute(java.lang.String)
|
||||
*/
|
||||
public Object getAttribute(String name) {
|
||||
@@ -340,7 +384,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#getAttributeNames()
|
||||
*/
|
||||
public Enumeration getAttributeNames() {
|
||||
@@ -349,7 +393,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Can only be invoked in the event phase.
|
||||
*
|
||||
*
|
||||
* @see ServletRequest#getCharacterEncoding()
|
||||
* @throws IllegalStateException
|
||||
* If the portlet is not in the event phase.
|
||||
@@ -364,7 +408,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Can only be invoked in the event phase.
|
||||
*
|
||||
*
|
||||
* @see ServletRequest#getContentLength()
|
||||
* @throws IllegalStateException
|
||||
* If the portlet is not in the event phase.
|
||||
@@ -377,9 +421,14 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getContentLengthLong() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can only be invoked in the event phase.
|
||||
*
|
||||
*
|
||||
* @see ServletRequest#getContentType()
|
||||
* @throws IllegalStateException
|
||||
* If the portlet is not in the event phase.
|
||||
@@ -396,7 +445,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
* Can only be invoked in the event phase. When invoked in the event phase,
|
||||
* it will wrap the portlet's {@link InputStream} as a
|
||||
* {@link PortletServletInputStream}.
|
||||
*
|
||||
*
|
||||
* @see ServletRequest#getInputStream()
|
||||
* @throws IllegalStateException
|
||||
* If the portlet is not in the event phase.
|
||||
@@ -412,7 +461,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -425,7 +474,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -438,7 +487,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -449,9 +498,44 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
throw new IllegalStateException("Not allowed in a portlet");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletContext getServletContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AsyncContext startAsync() throws IllegalStateException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAsyncStarted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAsyncSupported() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AsyncContext getAsyncContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DispatcherType getDispatcherType() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#getLocale()
|
||||
*/
|
||||
public Locale getLocale() {
|
||||
@@ -460,7 +544,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#getLocales()
|
||||
*/
|
||||
public Enumeration getLocales() {
|
||||
@@ -469,7 +553,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#getParameter(java.lang.String)
|
||||
*/
|
||||
public String getParameter(String name) {
|
||||
@@ -485,7 +569,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#getParameterMap()
|
||||
*/
|
||||
public Map getParameterMap() {
|
||||
@@ -494,7 +578,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#getParameterNames()
|
||||
*/
|
||||
public Enumeration getParameterNames() {
|
||||
@@ -503,7 +587,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#getParameterValues(java.lang.String)
|
||||
*/
|
||||
public String[] getParameterValues(String name) {
|
||||
@@ -512,7 +596,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -525,7 +609,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Can only be invoked in the event phase.
|
||||
*
|
||||
*
|
||||
* @see ServletRequest#getReader()
|
||||
* @throws IllegalStateException
|
||||
* If the portlet is not in the event phase.
|
||||
@@ -540,7 +624,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#getRealPath(java.lang.String)
|
||||
*/
|
||||
public String getRealPath(String path) {
|
||||
@@ -549,7 +633,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -562,7 +646,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -575,7 +659,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -589,7 +673,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
/**
|
||||
* Get the {@link PortletRequestDispatcher} as a
|
||||
* {@link PortletServletRequestDispatcher} instance.
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#getRequestDispatcher(java.lang.String)
|
||||
*/
|
||||
public RequestDispatcher getRequestDispatcher(String path) {
|
||||
@@ -599,7 +683,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#getScheme()
|
||||
*/
|
||||
public String getScheme() {
|
||||
@@ -608,7 +692,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#getServerName()
|
||||
*/
|
||||
public String getServerName() {
|
||||
@@ -617,7 +701,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Not allowed in a portlet.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* Not allowed in a portlet.
|
||||
*/
|
||||
@@ -630,7 +714,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#isSecure()
|
||||
*/
|
||||
public boolean isSecure() {
|
||||
@@ -639,7 +723,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#removeAttribute(java.lang.String)
|
||||
*/
|
||||
public void removeAttribute(String name) {
|
||||
@@ -648,7 +732,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
*
|
||||
* @see javax.servlet.ServletRequest#setAttribute(java.lang.String,
|
||||
* java.lang.Object)
|
||||
*/
|
||||
@@ -658,7 +742,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Can only be invoked in the event phase.
|
||||
*
|
||||
*
|
||||
* @see ServletRequest#setCharacterEncoding(String)
|
||||
* @throws IllegalStateException
|
||||
* If the portlet is not in the event phase.
|
||||
@@ -674,7 +758,7 @@ public class PortletServletRequest implements HttpServletRequest {
|
||||
|
||||
/**
|
||||
* Get the wrapped {@link PortletRequest} instance.
|
||||
*
|
||||
*
|
||||
* @return The wrapped {@link PortletRequest} instance.
|
||||
*/
|
||||
public PortletRequest getPortletRequest() {
|
||||
|
||||
+28
-2
@@ -20,6 +20,7 @@ package org.apache.struts2.portlet.servlet;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Collection;
|
||||
import java.util.Locale;
|
||||
|
||||
import javax.portlet.PortletResponse;
|
||||
@@ -31,11 +32,11 @@ import javax.servlet.http.HttpServletResponse;
|
||||
public class PortletServletResponse implements HttpServletResponse {
|
||||
|
||||
protected PortletResponse portletResponse;
|
||||
|
||||
|
||||
public PortletServletResponse(PortletResponse portletResponse) {
|
||||
this.portletResponse = portletResponse;
|
||||
}
|
||||
|
||||
|
||||
public void addCookie(Cookie cookie) {
|
||||
throw new IllegalStateException("Not allowed in a portlet");
|
||||
}
|
||||
@@ -104,6 +105,26 @@ public class PortletServletResponse implements HttpServletResponse {
|
||||
throw new IllegalStateException("Not allowed in a portlet");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getStatus() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getHeader(String name) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<String> getHeaders(String name) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<String> getHeaderNames() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void flushBuffer() throws IOException {
|
||||
if(portletResponse instanceof RenderResponse) {
|
||||
((RenderResponse)portletResponse).flushBuffer();
|
||||
@@ -211,6 +232,11 @@ public class PortletServletResponse implements HttpServletResponse {
|
||||
throw new IllegalStateException("Not allowed in a portlet");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setContentLengthLong(long len) {
|
||||
|
||||
}
|
||||
|
||||
public void setContentType(String type) {
|
||||
if(portletResponse instanceof RenderResponse) {
|
||||
((RenderResponse)portletResponse).setContentType(type);
|
||||
|
||||
@@ -96,16 +96,6 @@
|
||||
<artifactId>assertj-core</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
|
||||
This is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
||||
+8
-16
@@ -19,7 +19,8 @@
|
||||
* 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">
|
||||
<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.struts</groupId>
|
||||
@@ -51,13 +52,13 @@
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-aspects</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-aop</artifactId>
|
||||
@@ -80,30 +81,21 @@
|
||||
<artifactId>commons-jci-fam</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context-support</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<dependency>
|
||||
<groupId>org.easymock</groupId>
|
||||
<artifactId>easymock</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.0 support Servlet 3.0 and higher
|
||||
So this is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
</project>
|
||||
|
||||
+5
-12
@@ -19,7 +19,8 @@
|
||||
* 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">
|
||||
<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.struts</groupId>
|
||||
@@ -51,18 +52,10 @@
|
||||
<artifactId>jsp-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.x only supports Servlet 3.0 and higher.
|
||||
This is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -59,15 +59,6 @@
|
||||
<artifactId>jsp-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- The Servlet API mocks in Spring Framework 4.0 support Servlet 3.0 and higher
|
||||
So this is only necessary in tests-->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>mockobjects</groupId>
|
||||
<artifactId>mockobjects-core</artifactId>
|
||||
|
||||
Reference in New Issue
Block a user